diff --git a/.changelog/16227.txt b/.changelog/16227.txt new file mode 100644 index 0000000000..698c7bd2fc --- /dev/null +++ b/.changelog/16227.txt @@ -0,0 +1,3 @@ +```release-note:improvement +ui: update Ember version to 3.27; +``` \ No newline at end of file diff --git a/ui/package.json b/ui/package.json index 1eb11e64fb..b7b44961c1 100644 --- a/ui/package.json +++ b/ui/package.json @@ -21,9 +21,7 @@ }, "resolutions": { "xmlhttprequest-ssl": "^1.6.3", - "ember-basic-dropdown": "3.0.21", - "ember-changeset": "3.10.1", - "validated-changeset": "0.10.0" + "ember-basic-dropdown": "3.0.21" }, "engines": { "node": ">=10 <=14" diff --git a/ui/packages/consul-ui/.eslintignore b/ui/packages/consul-ui/.eslintignore index ae9599337a..12c56b25f6 100644 --- a/ui/packages/consul-ui/.eslintignore +++ b/ui/packages/consul-ui/.eslintignore @@ -15,6 +15,7 @@ app/utils/dom/event-target/event-target-shim/event.js # misc /coverage/ !.* +.*/ .eslintcache # ember-try diff --git a/ui/packages/consul-ui/.eslintrc.js b/ui/packages/consul-ui/.eslintrc.js index 4875b0b2f2..755726f50c 100644 --- a/ui/packages/consul-ui/.eslintrc.js +++ b/ui/packages/consul-ui/.eslintrc.js @@ -72,5 +72,10 @@ module.exports = { 'node/no-unpublished-require': 'off', }), }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/ui/packages/consul-ui/.template-lintrc.js b/ui/packages/consul-ui/.template-lintrc.js index 8f185a67d4..4daa17b811 100644 --- a/ui/packages/consul-ui/.template-lintrc.js +++ b/ui/packages/consul-ui/.template-lintrc.js @@ -1,7 +1,7 @@ 'use strict'; module.exports = { - extends: 'octane', + extends: 'recommended', rules: { 'no-partial': false, 'table-groups': false, diff --git a/ui/packages/consul-ui/app/validations/intention-permission-http-header.js b/ui/packages/consul-ui/app/validations/intention-permission-http-header.js index 67d5560b1c..9322bce72e 100644 --- a/ui/packages/consul-ui/app/validations/intention-permission-http-header.js +++ b/ui/packages/consul-ui/app/validations/intention-permission-http-header.js @@ -1,8 +1,10 @@ import { validatePresence } from 'ember-changeset-validations/validators'; -import validateSometimes from 'ember-changeset-conditional-validations/validators/sometimes'; +import validateSometimes from 'consul-ui/validations/sometimes'; export default (schema) => ({ Name: [validatePresence(true)], - Value: validateSometimes([validatePresence(true)], function () { - return this.get('HeaderType') !== 'Present'; - }), + Value: [ + validateSometimes(validatePresence(true), function () { + return this.get('HeaderType') !== 'Present'; + }), + ], }); diff --git a/ui/packages/consul-ui/app/validations/intention-permission.js b/ui/packages/consul-ui/app/validations/intention-permission.js index 8fd96a6ce8..a7556e812d 100644 --- a/ui/packages/consul-ui/app/validations/intention-permission.js +++ b/ui/packages/consul-ui/app/validations/intention-permission.js @@ -3,27 +3,31 @@ import { validatePresence, validateFormat, } from 'ember-changeset-validations/validators'; -import validateSometimes from 'ember-changeset-conditional-validations/validators/sometimes'; +import validateSometimes from 'consul-ui/validations/sometimes'; const name = 'intention-permission'; export default (schema) => ({ - '*': validateSometimes([validatePresence(true)], function () { - const methods = this.get('HTTP.Methods') || []; - const headers = this.get('HTTP.Header') || []; - const pathType = this.get('HTTP.PathType') || 'NoPath'; - const path = this.get('HTTP.Path') || ''; - const isValid = [ - methods.length !== 0, - headers.length !== 0, - pathType !== 'NoPath' && path !== '', - ].includes(true); - return !isValid; - }), + '*': [ + validateSometimes(validatePresence(true), function () { + const methods = this.get('HTTP.Methods') || []; + const headers = this.get('HTTP.Header') || []; + const pathType = this.get('HTTP.PathType') || 'NoPath'; + const path = this.get('HTTP.Path') || ''; + const isValid = [ + methods.length !== 0, + headers.length !== 0, + pathType !== 'NoPath' && path !== '', + ].includes(true); + return !isValid; + }), + ], Action: [validateInclusion({ in: schema[name].Action.allowedValues })], HTTP: { - Path: validateSometimes([validateFormat({ regex: /^\// })], function () { - const pathType = this.get('HTTP.PathType'); - return typeof pathType !== 'undefined' && pathType !== 'NoPath'; - }), + Path: [ + validateSometimes(validateFormat({ regex: /^\// }), function () { + const pathType = this.get('HTTP.PathType'); + return typeof pathType !== 'undefined' && pathType !== 'NoPath'; + }), + ], }, }); diff --git a/ui/packages/consul-ui/app/validations/intention.js b/ui/packages/consul-ui/app/validations/intention.js index 9f03e0dc3b..89b0024864 100644 --- a/ui/packages/consul-ui/app/validations/intention.js +++ b/ui/packages/consul-ui/app/validations/intention.js @@ -1,18 +1,20 @@ import { validatePresence, validateLength } from 'ember-changeset-validations/validators'; -import validateSometimes from 'ember-changeset-conditional-validations/validators/sometimes'; +import validateSometimes from 'consul-ui/validations/sometimes'; export default { - '*': validateSometimes([validatePresence(true)], function () { - const action = this.get('Action') || ''; - const permissions = this.get('Permissions') || []; - if (action === '' && permissions.length === 0) { - return true; - } - return false; - }), + '*': [ + validateSometimes(validatePresence(true), function () { + const action = this.get('Action') || ''; + const permissions = this.get('Permissions') || []; + if (action === '' && permissions.length === 0) { + return true; + } + return false; + }), + ], SourceName: [validatePresence(true), validateLength({ min: 1 })], DestinationName: [validatePresence(true), validateLength({ min: 1 })], Permissions: [ - validateSometimes([validateLength({ min: 1 })], function (changes, content) { + validateSometimes(validateLength({ min: 1 }), function (changes, content) { return !this.get('Action'); }), ], diff --git a/ui/packages/consul-ui/app/validations/sometimes.js b/ui/packages/consul-ui/app/validations/sometimes.js new file mode 100644 index 0000000000..4ea54ecca8 --- /dev/null +++ b/ui/packages/consul-ui/app/validations/sometimes.js @@ -0,0 +1,45 @@ +/* eslint-disable no-prototype-builtins */ +import { get } from '@ember/object'; + +export default function validateSometimes(validator, condition) { + return guardValidatorWithCondition(validator); + + function guardValidatorWithCondition(validator) { + return function (key, newValue, oldValue, changes, content) { + let thisValue = { + get(property) { + if (property.includes('.')) { + let changesValue = get(changes, property); + if (typeof changesValue !== 'undefined') { + return changesValue; + } + + // Check if the `changes` value is explicitly undefined, + // or if it's not present at all. + let pathSegments = property.split('.'); + let propName = pathSegments.pop(); + let objPath = pathSegments.join('.'); + + let obj = get(changes, objPath); + if (obj && obj.hasOwnProperty && obj.hasOwnProperty(propName)) { + return changesValue; + } + + return get(content, property); + } + + if (changes.hasOwnProperty(property)) { + return get(changes, property); + } else { + return get(content, property); + } + }, + }; + + if (condition.call(thisValue, changes, content)) { + return validator(key, newValue, oldValue, changes, content); + } + return true; + }; + } +} diff --git a/ui/packages/consul-ui/config/ember-cli-update.json b/ui/packages/consul-ui/config/ember-cli-update.json index 7ae868b44e..439897f2bb 100644 --- a/ui/packages/consul-ui/config/ember-cli-update.json +++ b/ui/packages/consul-ui/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "3.24.0", + "version": "3.27.0", "blueprints": [ { "name": "app", diff --git a/ui/packages/consul-ui/package.json b/ui/packages/consul-ui/package.json index 71e5890ab7..91467dd8f4 100644 --- a/ui/packages/consul-ui/package.json +++ b/ui/packages/consul-ui/package.json @@ -13,7 +13,7 @@ "build:staging": "ember build --environment staging", "build:ci": "ember build --environment test", "doc:toc": "doctoc README.md", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel 'lint:!(fix)'", + "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", @@ -64,9 +64,9 @@ "@docfy/ember": "^0.4.1", "@ember/optional-features": "^2.0.0", "@ember/render-modifiers": "^1.0.2", - "@ember/test-helpers": "^2.1.4", - "@glimmer/component": "^1.0.3", - "@glimmer/tracking": "^1.0.3", + "@ember/test-helpers": "^2.2.5", + "@glimmer/component": "^1.0.4", + "@glimmer/tracking": "^1.0.4", "@hashicorp/design-system-components": "^1.0.4", "@hashicorp/design-system-tokens": "^1.0.0", "@hashicorp/ember-cli-api-double": "^4.0.0", @@ -107,29 +107,28 @@ "ember-assign-helper": "^0.3.0", "ember-auto-import": "^2.4.2", "ember-can": "^4.2.0", - "ember-changeset-conditional-validations": "^0.6.0", - "ember-changeset-validations": "~3.9.0", - "ember-cli": "~3.24.0", - "ember-cli-app-version": "^4.0.0", - "ember-cli-babel": "^7.23.0", + "ember-changeset-validations": "~3.15.2", + "ember-cli": "~3.27.0", + "ember-cli-app-version": "^5.0.0", + "ember-cli-babel": "^7.26.6", "ember-cli-code-coverage": "^1.0.0-beta.4", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-deprecation-workflow": "^2.1.0", "ember-cli-flash": "^2.1.1", - "ember-cli-htmlbars": "^5.3.1", + "ember-cli-htmlbars": "^5.7.1", "ember-cli-inject-live-reload": "^2.0.2", - "ember-cli-page-object": "^1.17.10", + "ember-cli-page-object": "^1.17.11", "ember-cli-postcss": "^8.1.0", "ember-cli-sri": "^2.1.1", "ember-cli-string-helpers": "^5.0.0", "ember-cli-template-lint": "^2.0.1", - "ember-cli-terser": "^4.0.1", + "ember-cli-terser": "^4.0.2", "ember-cli-yadda": "^0.7.0", - "ember-collection": "^1.0.0-alpha.9", + "ember-collection": "^1.0.0", "ember-compatibility-helpers": "^1.2.5", "ember-composable-helpers": "^5.0.0", - "ember-data": "~3.24.0", - "ember-data-model-fragments": "5.0.0-beta.0", + "ember-data": "~3.27.1", + "ember-data-model-fragments": "5.0.0-beta.8", "ember-decorators": "^6.1.1", "ember-exam": "^6.1.0", "ember-export-application-global": "^2.0.1", @@ -143,10 +142,10 @@ "ember-named-blocks-polyfill": "^0.2.3", "ember-on-helper": "^0.1.0", "ember-on-resize-modifier": "^0.3.0", - "ember-page-title": "^6.2.1", + "ember-page-title": "^6.2.2", "ember-power-select": "^4.0.5", "ember-power-select-with-create": "^0.8.0", - "ember-qunit": "^5.1.1", + "ember-qunit": "^5.1.4", "ember-ref-bucket": "^4.1.0", "ember-render-helpers": "^0.2.0", "ember-resolver": "^8.0.2", @@ -154,16 +153,17 @@ "ember-router-helpers": "^0.4.0", "ember-set-helper": "^2.0.0", "ember-sinon-qunit": "5.0.0", - "ember-source": "~3.24.0", + "ember-source": "~3.27.2", "ember-stargate": "^0.2.0", "ember-string-fns": "^1.4.0", "ember-test-selectors": "^5.0.0", "ember-truth-helpers": "^3.0.0", - "eslint": "^7.17.0", - "eslint-config-prettier": "^7.1.0", - "eslint-plugin-ember": "^10.1.1", + "eslint": "^7.27.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-ember": "^10.4.2", "eslint-plugin-node": "^11.0.0", - "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-prettier": "^3.4.0", + "eslint-plugin-qunit": "^6.1.1", "faker": "^5.5.3", "flat": "^5.0.0", "hast-util-to-string": "^1.0.4", @@ -177,9 +177,9 @@ "ngraph.graph": "^19.1.0", "parse-duration": "^1.0.0", "pretender": "^3.2.0", - "prettier": "^2.2.1", + "prettier": "^2.3.0", "pretty-ms": "^7.0.1", - "qunit": "^2.13.0", + "qunit": "^2.15.0", "qunit-dom": "^1.6.0", "react-is": "^17.0.1", "refractor": "^3.5.0", @@ -190,7 +190,7 @@ "tape": "^5.0.1", "text-encoding": "^0.7.0", "tippy.js": "^6.2.7", - "torii": "^0.10.1", + "torii": "^1.0.0-beta.1", "tracked-built-ins": "^3.1.0", "unist-util-visit": "^2.0.3", "wayfarer": "^7.0.1", diff --git a/ui/packages/consul-ui/tests/acceptance/hcp-login-test.js b/ui/packages/consul-ui/tests/acceptance/hcp-login-test.js index 28e08aaef8..7f39381d89 100644 --- a/ui/packages/consul-ui/tests/acceptance/hcp-login-test.js +++ b/ui/packages/consul-ui/tests/acceptance/hcp-login-test.js @@ -10,7 +10,7 @@ const TOKEN_SET_BY_HCP = 'token-set-by-hcp'; module('Acceptance | hcp login', function (hooks) { setupApplicationTest(hooks); - module('with `CONSUL_HTTP_TOKEN` not set', function () { + module('with `CONSUL_HTTP_TOKEN` not set', function (hooks) { hooks.beforeEach(function () { setupTestEnv(this.owner, { CONSUL_ACLS_ENABLED: true, diff --git a/ui/packages/consul-ui/tests/index.html b/ui/packages/consul-ui/tests/index.html index 4ee572ab4b..3e2cff93aa 100644 --- a/ui/packages/consul-ui/tests/index.html +++ b/ui/packages/consul-ui/tests/index.html @@ -23,7 +23,7 @@ - + {{content-for "body-footer"}} {{content-for "test-body-footer"}} diff --git a/ui/packages/consul-ui/tests/integration/adapters/auth-method-test.js b/ui/packages/consul-ui/tests/integration/adapters/auth-method-test.js index 7e29dfe329..6e2f436a41 100644 --- a/ui/packages/consul-ui/tests/integration/adapters/auth-method-test.js +++ b/ui/packages/consul-ui/tests/integration/adapters/auth-method-test.js @@ -29,6 +29,7 @@ module('Integration | Adapter | auth-method', function (hooks) { }); }); test('requestForQueryRecord returns the correct body', function (assert) { + assert.expect(2); return nspaceRunner( (adapter, serializer, client) => { const request = client.body.bind(client); diff --git a/ui/packages/consul-ui/tests/integration/adapters/binding-rule-test.js b/ui/packages/consul-ui/tests/integration/adapters/binding-rule-test.js index bbdc6c1bc5..d9ecc7e60f 100644 --- a/ui/packages/consul-ui/tests/integration/adapters/binding-rule-test.js +++ b/ui/packages/consul-ui/tests/integration/adapters/binding-rule-test.js @@ -17,6 +17,7 @@ module('Integration | Adapter | binding-rule', function (hooks) { assert.equal(`${actual.method} ${actual.url}`, expected); }); test('requestForQuery returns the correct body', function (assert) { + assert.expect(2); return nspaceRunner( (adapter, serializer, client) => { const request = client.body.bind(client); diff --git a/ui/packages/consul-ui/tests/integration/adapters/discovery-chain-test.js b/ui/packages/consul-ui/tests/integration/adapters/discovery-chain-test.js index aec3dd3209..d678acc5a5 100644 --- a/ui/packages/consul-ui/tests/integration/adapters/discovery-chain-test.js +++ b/ui/packages/consul-ui/tests/integration/adapters/discovery-chain-test.js @@ -29,6 +29,8 @@ module('Integration | Adapter | discovery-chain', function (hooks) { }); }); test('requestForQueryRecord returns the correct body', function (assert) { + assert.expect(2); + return nspaceRunner( (adapter, serializer, client) => { const request = client.body.bind(client); diff --git a/ui/packages/consul-ui/tests/integration/adapters/intention-test.js b/ui/packages/consul-ui/tests/integration/adapters/intention-test.js index f6fe9e50d0..6fa9ac6d99 100644 --- a/ui/packages/consul-ui/tests/integration/adapters/intention-test.js +++ b/ui/packages/consul-ui/tests/integration/adapters/intention-test.js @@ -10,6 +10,7 @@ module('Integration | Adapter | intention', function (hooks) { const id = 'SourcePartition:SourceNS:SourceName:DestinationPartition:DestinationNS:DestinationName'; test('requestForQuery returns the correct url', function (assert) { + assert.expect(2); return nspaceRunner( (adapter, serializer, client) => { const request = client.body.bind(client); diff --git a/ui/packages/consul-ui/tests/integration/adapters/topology-test.js b/ui/packages/consul-ui/tests/integration/adapters/topology-test.js index 0a9ea05d7e..f20df73ab3 100644 --- a/ui/packages/consul-ui/tests/integration/adapters/topology-test.js +++ b/ui/packages/consul-ui/tests/integration/adapters/topology-test.js @@ -31,6 +31,7 @@ module('Integration | Adapter | topology', function (hooks) { }); }); test('requestForQueryRecord returns the correct body', function (assert) { + assert.expect(2); return nspaceRunner( (adapter, serializer, client) => { const request = client.body.bind(client); diff --git a/ui/packages/consul-ui/tests/integration/components/auth-profile-test.js b/ui/packages/consul-ui/tests/integration/components/auth-profile-test.js index ebd6d51b02..0edd2152ca 100644 --- a/ui/packages/consul-ui/tests/integration/components/auth-profile-test.js +++ b/ui/packages/consul-ui/tests/integration/components/auth-profile-test.js @@ -12,13 +12,13 @@ module('Integration | Component | auth-profile', function (hooks) { await render(hbs``); - assert.ok(this.element.textContent.indexOf('AccessorID') !== -1); + assert.notStrictEqual(this.element.textContent.indexOf('AccessorID'), -1); // Template block usage: await render(hbs` `); - assert.ok(this.element.textContent.indexOf('AccessorID') !== -1); + assert.notStrictEqual(this.element.textContent.indexOf('AccessorID'), -1); }); }); diff --git a/ui/packages/consul-ui/tests/integration/serializers/auth-method-test.js b/ui/packages/consul-ui/tests/integration/serializers/auth-method-test.js index 9f8eeef009..f08462c857 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/auth-method-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/auth-method-test.js @@ -16,6 +16,7 @@ module('Integration | Serializer | auth-method', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:auth-method'); const request = { url: `/v1/acl/auth-methods?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ @@ -53,6 +54,7 @@ module('Integration | Serializer | auth-method', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:auth-method'); const request = { url: `/v1/acl/auth-method/${id}?dc=${dc}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/binding-rule-test.js b/ui/packages/consul-ui/tests/integration/serializers/binding-rule-test.js index 37323696d8..d840138e97 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/binding-rule-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/binding-rule-test.js @@ -9,6 +9,7 @@ module('Integration | Serializer | binding-rule', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:binding-rule'); const request = { url: `/v1/acl/binding-rules?dc=${dc}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/coordinate-test.js b/ui/packages/consul-ui/tests/integration/serializers/coordinate-test.js index 75e934b253..7f48bd2a1d 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/coordinate-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/coordinate-test.js @@ -12,6 +12,7 @@ module('Integration | Serializer | coordinate', function (hooks) { const nspace = 'default'; const partition = 'default'; test('respondForQuery returns the correct data for list endpoint', function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:coordinate'); const request = { url: `/v1/coordinate/nodes?dc=${dc}`, diff --git a/ui/packages/consul-ui/tests/integration/serializers/discovery-chain-test.js b/ui/packages/consul-ui/tests/integration/serializers/discovery-chain-test.js index b16906f950..dabbde3b7e 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/discovery-chain-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/discovery-chain-test.js @@ -12,6 +12,7 @@ import { module('Integration | Serializer | discovery-chain', function (hooks) { setupTest(hooks); test('respondForQueryRecord returns the correct data for item endpoint', function (assert) { + assert.expect(2); const serializer = this.owner.lookup('serializer:discovery-chain'); const dc = 'dc-1'; const id = 'slug'; diff --git a/ui/packages/consul-ui/tests/integration/serializers/intention-test.js b/ui/packages/consul-ui/tests/integration/serializers/intention-test.js index 96ee7860c5..76e2114ab6 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/intention-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/intention-test.js @@ -14,6 +14,7 @@ module('Integration | Serializer | intention', function (hooks) { const nspace = 'default'; const partition = 'default'; test('respondForQuery returns the correct data for list endpoint', function (assert) { + assert.expect(4); const serializer = this.owner.lookup('serializer:intention'); const request = { url: `/v1/connect/intentions?dc=${dc}`, @@ -53,6 +54,7 @@ module('Integration | Serializer | intention', function (hooks) { }); }); test('respondForQueryRecord returns the correct data for item endpoint', function (assert) { + assert.expect(4); const serializer = this.owner.lookup('serializer:intention'); const request = { url: `/v1/connect/intentions/${id}?dc=${dc}`, diff --git a/ui/packages/consul-ui/tests/integration/serializers/kv-test.js b/ui/packages/consul-ui/tests/integration/serializers/kv-test.js index 1d78c15f16..59bda030cc 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/kv-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/kv-test.js @@ -16,6 +16,7 @@ module('Integration | Serializer | kv', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:kv'); const request = { url: `/v1/kv/${id}?keys&dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ @@ -61,6 +62,7 @@ module('Integration | Serializer | kv', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:kv'); const request = { url: `/v1/kv/${id}?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/node-test.js b/ui/packages/consul-ui/tests/integration/serializers/node-test.js index 03896a4b39..9275e29219 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/node-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/node-test.js @@ -12,6 +12,7 @@ module('Integration | Serializer | node', function (hooks) { const nspace = 'default'; const partition = 'default'; test('respondForQuery returns the correct data for list endpoint', function (assert) { + assert.expect(4); const store = this.owner.lookup('service:store'); const serializer = this.owner.lookup('serializer:node'); serializer.store = store; @@ -46,6 +47,7 @@ module('Integration | Serializer | node', function (hooks) { }); }); test('respondForQueryRecord returns the correct data for item endpoint', function (assert) { + assert.expect(4); const store = this.owner.lookup('service:store'); const serializer = this.owner.lookup('serializer:node'); serializer.store = store; @@ -81,6 +83,8 @@ module('Integration | Serializer | node', function (hooks) { }); }); test('respondForQueryLeader returns the correct data', function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:node'); const dc = 'dc-1'; const request = { diff --git a/ui/packages/consul-ui/tests/integration/serializers/nspace-test.js b/ui/packages/consul-ui/tests/integration/serializers/nspace-test.js index 59fe72c934..a71df3d264 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/nspace-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/nspace-test.js @@ -13,6 +13,7 @@ module('Integration | Serializer | nspace', function (hooks) { const undefinedPartition = 'default'; const partition = 'default'; test('respondForQuery returns the correct data for list endpoint', function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:nspace'); const request = { url: `/v1/namespaces?dc=${dc}${ @@ -44,6 +45,7 @@ module('Integration | Serializer | nspace', function (hooks) { }); }); test('respondForQueryRecord returns the correct data for item endpoint', function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:nspace'); const id = 'slug'; const request = { diff --git a/ui/packages/consul-ui/tests/integration/serializers/oidc-provider-test.js b/ui/packages/consul-ui/tests/integration/serializers/oidc-provider-test.js index 05ebb82000..768c2c695d 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/oidc-provider-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/oidc-provider-test.js @@ -17,6 +17,8 @@ module('Integration | Serializer | oidc-provider', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when the nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:oidc-provider'); const request = { url: `/v1/internal/ui/oidc-auth-methods?dc=${dc}`, @@ -50,6 +52,8 @@ module('Integration | Serializer | oidc-provider', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when the nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:oidc-provider'); const dc = 'dc-1'; const id = 'slug'; diff --git a/ui/packages/consul-ui/tests/integration/serializers/partition-test.js b/ui/packages/consul-ui/tests/integration/serializers/partition-test.js index ecb446db8c..f2499eb2eb 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/partition-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/partition-test.js @@ -7,6 +7,8 @@ import { HEADERS_SYMBOL as META } from 'consul-ui/utils/http/consul'; module('Integration | Serializer | partition', function (hooks) { setupTest(hooks); test('respondForQuery returns the correct data for list endpoint', function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:partition'); const dc = 'dc-1'; const request = { diff --git a/ui/packages/consul-ui/tests/integration/serializers/policy-test.js b/ui/packages/consul-ui/tests/integration/serializers/policy-test.js index 680ad2522d..feeecda8e1 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/policy-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/policy-test.js @@ -16,6 +16,8 @@ module('Integration | Serializer | policy', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:policy'); const request = { url: `/v1/acl/policies?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ @@ -52,6 +54,8 @@ module('Integration | Serializer | policy', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:policy'); const request = { url: `/v1/acl/policy/${id}?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/role-test.js b/ui/packages/consul-ui/tests/integration/serializers/role-test.js index 345d4b8a72..41904dc67e 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/role-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/role-test.js @@ -18,6 +18,8 @@ module('Integration | Serializer | role', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:role'); const request = { url: `/v1/acl/roles?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ @@ -56,6 +58,8 @@ module('Integration | Serializer | role', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:role'); const request = { url: `/v1/acl/role/${id}?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/service-instance-test.js b/ui/packages/consul-ui/tests/integration/serializers/service-instance-test.js index 66032c3052..6191f201f1 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/service-instance-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/service-instance-test.js @@ -15,6 +15,8 @@ module('Integration | Serializer | service-instance', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:service-instance'); const id = 'service-name'; const node = 'node-0'; diff --git a/ui/packages/consul-ui/tests/integration/serializers/service-test.js b/ui/packages/consul-ui/tests/integration/serializers/service-test.js index 115b50dd8b..2602fc075b 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/service-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/service-test.js @@ -14,6 +14,7 @@ module('Integration | Serializer | service', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(4); const serializer = this.owner.lookup('serializer:service'); const request = { url: `/v1/internal/ui/services?dc=${dc}${ @@ -54,6 +55,8 @@ module('Integration | Serializer | service', function (hooks) { }); }); test(`respondForQuery returns the correct data for list endpoint when gateway is set when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:service'); const gateway = 'gateway'; const request = { diff --git a/ui/packages/consul-ui/tests/integration/serializers/session-test.js b/ui/packages/consul-ui/tests/integration/serializers/session-test.js index b519c6ee6c..d0b840f2e9 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/session-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/session-test.js @@ -16,6 +16,8 @@ module('Integration | Serializer | session | response', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); + const serializer = this.owner.lookup('serializer:session'); const node = 'node-id'; const request = { @@ -54,6 +56,7 @@ module('Integration | Serializer | session | response', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:session'); const request = { url: `/v1/session/info/${id}?dc=${dc}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/token-test.js b/ui/packages/consul-ui/tests/integration/serializers/token-test.js index d38507a2c0..a6581efe8e 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/token-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/token-test.js @@ -19,6 +19,7 @@ module('Integration | Serializer | token', function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`respondForQuery returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:token'); const request = { url: `/v1/acl/tokens?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ @@ -57,6 +58,7 @@ module('Integration | Serializer | token', function (hooks) { }); }); test(`respondForQueryRecord returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(1); const serializer = this.owner.lookup('serializer:token'); const request = { url: `/v1/acl/token/${id}?dc=${dc}${typeof nspace !== 'undefined' ? `&ns=${nspace}` : ``}${ diff --git a/ui/packages/consul-ui/tests/integration/serializers/topology-test.js b/ui/packages/consul-ui/tests/integration/serializers/topology-test.js index 47bf5f417c..80da039783 100644 --- a/ui/packages/consul-ui/tests/integration/serializers/topology-test.js +++ b/ui/packages/consul-ui/tests/integration/serializers/topology-test.js @@ -12,6 +12,8 @@ import { module('Integration | Serializer | topology', function (hooks) { setupTest(hooks); test('respondForQueryRecord returns the correct data for item endpoint', function (assert) { + assert.expect(2); + const serializer = this.owner.lookup('serializer:topology'); const dc = 'dc-1'; const id = 'slug'; diff --git a/ui/packages/consul-ui/tests/integration/services/repository/coordinate-test.js b/ui/packages/consul-ui/tests/integration/services/repository/coordinate-test.js index cf6634ae87..2f3d1b4c7d 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/coordinate-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/coordinate-test.js @@ -10,6 +10,8 @@ module(`Integration | Service | coordinate`, function (hooks) { setupTest(hooks); test('findAllByDatacenter returns the correct data for list endpoint', function (assert) { + assert.expect(1); + const subject = this.owner.lookup('service:repository/coordinate'); subject.store.serializerFor('coordinate').timestamp = function () { @@ -53,6 +55,7 @@ module(`Integration | Service | coordinate`, function (hooks) { }); test('findAllByNode calls findAllByDatacenter with the correct arguments', function (assert) { assert.expect(3); + const datacenter = 'dc-1'; const conf = { cursor: 1, diff --git a/ui/packages/consul-ui/tests/integration/services/repository/discovery-chain-test.js b/ui/packages/consul-ui/tests/integration/services/repository/discovery-chain-test.js index fd9749f5ef..20ea9e9a74 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/discovery-chain-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/discovery-chain-test.js @@ -7,6 +7,8 @@ module('Integration | Service | discovery-chain', function (hooks) { const dc = 'dc-1'; const id = 'slug'; test('findBySlug returns the correct data for item endpoint', function (assert) { + assert.expect(2); + return repo( 'Service', 'findBySlug', diff --git a/ui/packages/consul-ui/tests/integration/services/repository/kv-test.js b/ui/packages/consul-ui/tests/integration/services/repository/kv-test.js index 59a786fe59..6991e060e9 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/kv-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/kv-test.js @@ -13,6 +13,8 @@ module(`Integration | Service | kv`, function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`findAllBySlug returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(2); + const subject = this.owner.lookup('service:repository/kv'); subject.store.serializerFor('kv').timestamp = function () { @@ -58,6 +60,8 @@ module(`Integration | Service | kv`, function (hooks) { ); }); test(`findBySlug returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(2); + const subject = this.owner.lookup('service:repository/kv'); return repo( diff --git a/ui/packages/consul-ui/tests/integration/services/repository/node-test.js b/ui/packages/consul-ui/tests/integration/services/repository/node-test.js index b613fb311f..70b370f88a 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/node-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/node-test.js @@ -11,6 +11,8 @@ module(`Integration | Service | node`, function (hooks) { setupTest(hooks); test('findByDatacenter returns the correct data for list endpoint', function (assert) { + assert.expect(200); + const subject = this.owner.lookup('service:repository/node'); subject.store.serializerFor('node').timestamp = function () { return now; @@ -41,6 +43,8 @@ module(`Integration | Service | node`, function (hooks) { ); }); test('findBySlug returns the correct data for item endpoint', function (assert) { + assert.expect(2); + const subject = this.owner.lookup('service:repository/node'); return repo( diff --git a/ui/packages/consul-ui/tests/integration/services/repository/policy-test.js b/ui/packages/consul-ui/tests/integration/services/repository/policy-test.js index e7a367ecab..776886fd8d 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/policy-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/policy-test.js @@ -60,6 +60,7 @@ module(`Integration | Service | policy`, function (hooks) { ); }); test(`findBySlug returns the correct data for item endpoint when the nspace is ${nspace}`, function (assert) { + assert.expect(2); const subject = this.owner.lookup('service:repository/policy'); return repo( 'Policy', diff --git a/ui/packages/consul-ui/tests/integration/services/repository/service-test.js b/ui/packages/consul-ui/tests/integration/services/repository/service-test.js index d6d44b0e97..8c02e31147 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/service-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/service-test.js @@ -11,6 +11,8 @@ module(`Integration | Service | service`, function (hooks) { const partition = 'default'; [undefinedNspace, 'team-1', undefined].forEach((nspace) => { test(`findGatewayBySlug returns the correct data for list endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(5); + const subject = this.owner.lookup('service:repository/service'); subject.store.serializerFor('service').timestamp = function () { return now; diff --git a/ui/packages/consul-ui/tests/integration/services/repository/token-test.js b/ui/packages/consul-ui/tests/integration/services/repository/token-test.js index d3654029cd..c3b5732406 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/token-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/token-test.js @@ -57,6 +57,8 @@ module(`Integration | Service | token`, function (hooks) { ); }); test(`findBySlug returns the correct data for item endpoint when nspace is ${nspace}`, function (assert) { + assert.expect(3); + const subject = this.owner.lookup('service:repository/token'); return repo( 'Token', diff --git a/ui/packages/consul-ui/tests/integration/services/repository/topology-test.js b/ui/packages/consul-ui/tests/integration/services/repository/topology-test.js index b06ed4fa13..9728a45e23 100644 --- a/ui/packages/consul-ui/tests/integration/services/repository/topology-test.js +++ b/ui/packages/consul-ui/tests/integration/services/repository/topology-test.js @@ -8,6 +8,8 @@ module('Integration | Service | topology', function (hooks) { const id = 'slug'; const kind = ''; test('findBySlug returns the correct data for item endpoint', function (assert) { + assert.expect(2); + return repo( 'Service', 'findBySlug', diff --git a/ui/packages/consul-ui/tests/unit/abilities/-test.js b/ui/packages/consul-ui/tests/unit/abilities/-test.js index 08715acf74..b0a7d4925f 100644 --- a/ui/packages/consul-ui/tests/unit/abilities/-test.js +++ b/ui/packages/consul-ui/tests/unit/abilities/-test.js @@ -7,6 +7,8 @@ module('Unit | Ability | *', function (hooks) { // Replace this with your real tests. test('it exists', function (assert) { + assert.expect(228); + const abilities = Object.keys(requirejs.entries) .filter((key) => key.indexOf('/abilities/') !== -1) .map((key) => key.split('/').pop()) @@ -55,7 +57,8 @@ module('Unit | Ability | *', function (hooks) { break; case 'kv': // TODO: We currently hardcode KVs to always be true - assert.equal(true, ability[`can${perm}`], `Expected ${item}.can${perm} to be true`); + assert.true(ability[`can${perm}`], `Expected ${item}.can${perm} to be true`); + // eslint-disable-next-line qunit/no-early-return return; case 'license': case 'zone': @@ -63,6 +66,7 @@ module('Unit | Ability | *', function (hooks) { // License permissions also depend on NSPACES_ENABLED; // behavior works as expected when verified manually but test // fails due to this dependency. -@evrowe 2022-04-18 + // eslint-disable-next-line qunit/no-early-return return; } assert.equal( diff --git a/ui/packages/consul-ui/tests/unit/components/consul/discovery-chain/get-resolvers-test.js b/ui/packages/consul-ui/tests/unit/components/consul/discovery-chain/get-resolvers-test.js index a5d660d3c8..c299338071 100644 --- a/ui/packages/consul-ui/tests/unit/components/consul/discovery-chain/get-resolvers-test.js +++ b/ui/packages/consul-ui/tests/unit/components/consul/discovery-chain/get-resolvers-test.js @@ -10,6 +10,8 @@ const request = { }; module('Unit | Component | consul/discovery-chain/get-resolvers', function () { test('it assigns Subsets correctly', function (assert) { + assert.expect(3); + return get(request.url, { headers: { cookie: { @@ -24,12 +26,14 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { const childId = Object.keys(Chain.Targets)[1]; const target = Chain.Targets[`${childId}`]; const firstChild = actual[0].Children[0]; - assert.equal(firstChild.Subset, true); + assert.true(firstChild.Subset); assert.equal(firstChild.ID, target.ID); assert.equal(firstChild.Name, target.ServiceSubset); }); }); test('it assigns Redirects correctly', function (assert) { + assert.expect(2); + return get(request.url, { headers: { cookie: { @@ -49,6 +53,8 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { }); }); test('it assigns Failovers to Subsets correctly', function (assert) { + assert.expect(4); + return Promise.all( ['Datacenter', 'Namespace'].map(function (failoverType) { return get(request.url, { @@ -64,13 +70,15 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { }).then(function ({ Chain }) { const actual = getResolvers(dc, partition, nspace, Chain.Targets, Chain.Nodes); const actualSubset = actual[0].Children[0]; - assert.equal(actualSubset.Subset, true); + assert.true(actualSubset.Subset); assert.equal(actualSubset.Failover.Type, failoverType); }); }) ); }); test('it assigns Failovers correctly', function (assert) { + assert.expect(6); + return Promise.all( ['Datacenter', 'Partition', 'Namespace'].map(function (failoverType, i) { return get(request.url, { @@ -96,6 +104,8 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { ); }); test('it finds subsets with failovers correctly', function (assert) { + assert.expect(1); + return Promise.resolve({ Chain: { ServiceName: 'service-name', @@ -162,6 +172,8 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { }); }); test('it finds services with failovers correctly', function (assert) { + assert.expect(1); + return Promise.resolve({ Chain: { ServiceName: 'service-name', @@ -206,6 +218,8 @@ module('Unit | Component | consul/discovery-chain/get-resolvers', function () { }); }); test('it finds services with redirects with failovers correctly', function (assert) { + assert.expect(1); + return Promise.resolve({ Chain: { ServiceName: 'service-name', diff --git a/ui/packages/consul-ui/tests/unit/components/search-bar/filters-test.js b/ui/packages/consul-ui/tests/unit/components/search-bar/filters-test.js index 6327820f9d..c3a05afa69 100644 --- a/ui/packages/consul-ui/tests/unit/components/search-bar/filters-test.js +++ b/ui/packages/consul-ui/tests/unit/components/search-bar/filters-test.js @@ -3,6 +3,7 @@ import { module, test } from 'qunit'; module('Unit | Component | search-bar/filters', function () { test('it correctly reshapes the filter data', function (assert) { + assert.expect(5); [ // basic filter, returns a single filter button when clicked // resets selected/queryparam to empty diff --git a/ui/packages/consul-ui/tests/unit/helpers/document-attrs-test.js b/ui/packages/consul-ui/tests/unit/helpers/document-attrs-test.js index 6ab970c0fd..9db69d9112 100644 --- a/ui/packages/consul-ui/tests/unit/helpers/document-attrs-test.js +++ b/ui/packages/consul-ui/tests/unit/helpers/document-attrs-test.js @@ -30,8 +30,9 @@ module('Unit | Helper | document-attrs', function () { assert.deepEqual(actual, ['a', 'b'], 'keys are removed, leaving keys that need to remain'); // remove first helper a.synchronize(root); - assert.ok( - typeof attrs.get('class') === 'undefined', + assert.strictEqual( + typeof attrs.get('class'), + 'undefined', 'property is completely removed once its empty' ); assert.throws(() => { diff --git a/ui/packages/consul-ui/tests/unit/helpers/token/is-legacy-test.js b/ui/packages/consul-ui/tests/unit/helpers/token/is-legacy-test.js index b998c6b55e..006b13196e 100644 --- a/ui/packages/consul-ui/tests/unit/helpers/token/is-legacy-test.js +++ b/ui/packages/consul-ui/tests/unit/helpers/token/is-legacy-test.js @@ -27,11 +27,11 @@ module('Unit | Helper | token/is-legacy', function () { const actual = isLegacy([[{}, {}]]); assert.notOk(actual); }); - test('it returns true if the token has a Legacy=true', function (assert) { + test('it returns true if one token has Legacy=true', function (assert) { const actual = isLegacy([[{}, { Legacy: true }]]); assert.ok(actual); }); - test('it returns false if the token has a Legacy=false', function (assert) { + test('it returns false if one token as Legacy=false', function (assert) { const actual = isLegacy([[{}, { Legacy: false }]]); assert.notOk(actual); }); diff --git a/ui/packages/consul-ui/tests/unit/mixins/with-blocking-actions-test.js b/ui/packages/consul-ui/tests/unit/mixins/with-blocking-actions-test.js index 0bd124f2eb..bd06672339 100644 --- a/ui/packages/consul-ui/tests/unit/mixins/with-blocking-actions-test.js +++ b/ui/packages/consul-ui/tests/unit/mixins/with-blocking-actions-test.js @@ -57,6 +57,8 @@ module('Unit | Mixin | with blocking actions', function (hooks) { assert.ok(refresh.calledOnce); }); test('the error hooks return type', function (assert) { + assert.expect(3); + const subject = this.subject(); const expected = 'success'; ['errorCreate', 'errorUpdate', 'errorDelete'].forEach(function (item) { diff --git a/ui/packages/consul-ui/tests/unit/search/predicates/intention-test.js b/ui/packages/consul-ui/tests/unit/search/predicates/intention-test.js index 83abc88104..55843d323b 100644 --- a/ui/packages/consul-ui/tests/unit/search/predicates/intention-test.js +++ b/ui/packages/consul-ui/tests/unit/search/predicates/intention-test.js @@ -59,6 +59,8 @@ module('Unit | Search | Predicate | intention', function () { assert.equal(actual.length, 2); }); test("* items are found by searching anything in 'All Services (*)'", function (assert) { + assert.expect(6); + const actual = new ExactSearch( [ { diff --git a/ui/packages/consul-ui/tests/unit/serializers/kv-test.js b/ui/packages/consul-ui/tests/unit/serializers/kv-test.js index b83bd4629a..e435609ce6 100644 --- a/ui/packages/consul-ui/tests/unit/serializers/kv-test.js +++ b/ui/packages/consul-ui/tests/unit/serializers/kv-test.js @@ -27,6 +27,8 @@ module('Unit | Serializer | kv', function (hooks) { 'what should respondForCreate/UpdateRecord return when createRecord is called with a `false` payload' ); test('respondForCreate/UpdateRecord returns a KV uid object when receiving a `true` payload', function (assert) { + assert.expect(2); + const uid = 'key/name'; const dc = 'dc1'; const nspace = 'default'; @@ -61,6 +63,8 @@ module('Unit | Serializer | kv', function (hooks) { }); }); test("respondForCreate/UpdateRecord returns the original object if it's not a Boolean", function (assert) { + assert.expect(1); + const uid = 'key/name'; const dc = 'dc1'; const nspace = 'default'; diff --git a/ui/packages/consul-ui/tests/unit/services/state-test.js b/ui/packages/consul-ui/tests/unit/services/state-test.js index c67c6526c7..38d0cb7da1 100644 --- a/ui/packages/consul-ui/tests/unit/services/state-test.js +++ b/ui/packages/consul-ui/tests/unit/services/state-test.js @@ -14,14 +14,14 @@ module('Unit | Service | state', function (hooks) { test('.matches performs a match correctly', function (assert) { const service = this.owner.lookup('service:state'); const state = service.state((id) => id === 'idle'); - assert.equal(service.matches(state, 'idle'), true); - assert.equal(service.matches(state, 'loading'), false); + assert.true(service.matches(state, 'idle')); + assert.false(service.matches(state, 'loading')); }); test('.matches performs a match correctly when passed an array', function (assert) { const service = this.owner.lookup('service:state'); const state = service.state((id) => id === 'idle'); - assert.equal(service.matches(state, ['idle']), true); - assert.equal(service.matches(state, ['loading', 'idle']), true); - assert.equal(service.matches(state, ['loading', 'deleting']), false); + assert.true(service.matches(state, ['idle'])); + assert.true(service.matches(state, ['loading', 'idle'])); + assert.false(service.matches(state, ['loading', 'deleting'])); }); }); diff --git a/ui/packages/consul-ui/tests/unit/utils/atob-test.js b/ui/packages/consul-ui/tests/unit/utils/atob-test.js index 4a61f3e427..9ca4d19961 100644 --- a/ui/packages/consul-ui/tests/unit/utils/atob-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/atob-test.js @@ -42,6 +42,7 @@ module('Unit | Utils | atob', function () { }); }); test('it decodes strings properly', function (assert) { + assert.expect(2); [ { test: '', @@ -57,6 +58,8 @@ module('Unit | Utils | atob', function () { }); }); test('throws when passed the wrong value', function (assert) { + assert.expect(4); + [{}, ['MTIz', 'NA=='], new Number(), 'hi'].forEach(function (item) { assert.throws(function () { atob(item); diff --git a/ui/packages/consul-ui/tests/unit/utils/btoa-test.js b/ui/packages/consul-ui/tests/unit/utils/btoa-test.js index 8b3c9c32f4..f4fd57d0b7 100644 --- a/ui/packages/consul-ui/tests/unit/utils/btoa-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/btoa-test.js @@ -3,6 +3,7 @@ import btoa from 'consul-ui/utils/btoa'; module('Unit | Utils | btoa', function () { test('it encodes strings properly', function (assert) { + assert.expect(2); [ { test: '', diff --git a/ui/packages/consul-ui/tests/unit/utils/create-fingerprinter-test.js b/ui/packages/consul-ui/tests/unit/utils/create-fingerprinter-test.js index d8a3c88084..e624aa2e5b 100644 --- a/ui/packages/consul-ui/tests/unit/utils/create-fingerprinter-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/create-fingerprinter-test.js @@ -34,6 +34,8 @@ module('Unit | Utility | create fingerprinter', function () { assert.deepEqual(actual, expected); }); test("fingerprint throws an error if it can't find a foreignKey", function (assert) { + assert.expect(2); + const fingerprint = createFingerprinter('Datacenter', 'Namespace', 'Partition'); [undefined, null].forEach(function (item) { assert.throws(function () { @@ -42,6 +44,7 @@ module('Unit | Utility | create fingerprinter', function () { }); }); test("fingerprint throws an error if it can't find a slug", function (assert) { + assert.expect(2); const fingerprint = createFingerprinter('Datacenter', 'Namespace', 'Partition'); [ {}, diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/click-first-anchor-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/click-first-anchor-test.js index dec08a0fe7..8bc66dcfaa 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/click-first-anchor-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/click-first-anchor-test.js @@ -3,6 +3,8 @@ import { module, test } from 'qunit'; module('Unit | Utility | dom/click first anchor', function () { test('it does nothing if the clicked element is generally a clickable thing', function (assert) { + assert.expect(4); + const closest = function () { return { querySelector: function () { diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/create-listeners-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/create-listeners-test.js index 3ecdbd1558..1a24c173ab 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/create-listeners-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/create-listeners-test.js @@ -5,8 +5,8 @@ import sinon from 'sinon'; module('Unit | Utility | dom/create listeners', function () { test('it has add and remove methods', function (assert) { const listeners = createListeners(); - assert.ok(typeof listeners.add === 'function'); - assert.ok(typeof listeners.remove === 'function'); + assert.strictEqual(typeof listeners.add, 'function'); + assert.strictEqual(typeof listeners.remove, 'function'); }); test('add returns a remove function', function (assert) { const listeners = createListeners(); @@ -16,7 +16,7 @@ module('Unit | Utility | dom/create listeners', function () { }, 'click' ); - assert.ok(typeof remove === 'function'); + assert.strictEqual(typeof remove, 'function'); }); test('remove returns an array of removed handlers (the return of a saved remove)', function (assert) { // just use true here to prove that it's what gets returned diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/blocking-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/blocking-test.js index 72bcf0df5c..aaa2e3064a 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/blocking-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/blocking-test.js @@ -46,6 +46,8 @@ module('Unit | Utility | dom/event-source/blocking', function () { assert.ok(source instanceof EventSource); }); test("the 5xx backoff continues to throw when it's not a 5xx", function (assert) { + assert.expect(11); + const backoff = createErrorBackoff(); [ undefined, @@ -66,6 +68,8 @@ module('Unit | Utility | dom/event-source/blocking', function () { }); }); test('the 5xx backoff returns a resolve promise on a 5xx (apart from 500)', function (assert) { + assert.expect(18); + [ { statusCode: 501 }, { errors: [{ status: 501 }] }, @@ -85,12 +89,16 @@ module('Unit | Utility | dom/event-source/blocking', function () { }); }); test("the cursor validation always returns undefined if the cursor can't be parsed to an integer", function (assert) { + assert.expect(4); + ['null', null, '', undefined].forEach((item) => { const actual = validateCursor(item); assert.equal(actual, undefined); }); }); test('the cursor validation always returns a cursor greater than zero', function (assert) { + assert.expect(5); + [ { cursor: 0, @@ -118,6 +126,8 @@ module('Unit | Utility | dom/event-source/blocking', function () { }); }); test('the cursor validation resets to 1 if its less than the previous cursor', function (assert) { + assert.expect(4); + [ { previous: 100, diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/cache-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/cache-test.js index d9ae92c6ef..4bcb098654 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/cache-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/cache-test.js @@ -47,7 +47,7 @@ module('Unit | Utility | dom/event-source/cache', function () { const Promise = createPromise(); const getCache = domEventSourceCache(function () {}, EventSource, Promise); - assert.ok(typeof getCache === 'function'); + assert.strictEqual(typeof getCache, 'function'); }); test('getCache returns a function', function (assert) { const EventSource = createEventSource(); @@ -56,7 +56,7 @@ module('Unit | Utility | dom/event-source/cache', function () { const getCache = domEventSourceCache(function () {}, EventSource, Promise); const obj = {}; const cache = getCache(obj); - assert.ok(typeof cache === 'function'); + assert.strictEqual(typeof cache, 'function'); }); test('cache creates the default EventSource and keeps it open when there is a cursor', function (assert) { const EventSource = createEventSource(); @@ -89,7 +89,9 @@ module('Unit | Utility | dom/event-source/cache', function () { assert.ok(source.calledTwice, 'promisifying source called once'); assert.ok(retrievedEventSource instanceof Promise, 'source returns a Promise'); }); - test('cache creates the default EventSource and keeps it open when there is a cursor', function (assert) { + test('cache creates the default EventSource and keeps it open when there is a cursor 2', function (assert) { + assert.expect(4); + const EventSource = createEventSource(); const stub = { close: sinon.stub(), @@ -118,6 +120,8 @@ module('Unit | Utility | dom/event-source/cache', function () { }); }); test("cache creates the default EventSource and closes it when there isn't a cursor", function (assert) { + assert.expect(4); + const EventSource = createEventSource(); const stub = { close: sinon.stub(), diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/callable-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/callable-test.js index 50ba271f68..ea55c875bd 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/callable-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/callable-test.js @@ -53,7 +53,7 @@ module('Unit | Utility | dom/event-source/callable', function () { dispatchEvent: sinon.stub(), }; defaultRunner(target, configuration, isClosed); - assert.ok(then.callCount == 10); + assert.equal(then.callCount, 10); assert.ok(target.dispatchEvent.calledOnce); }); test('it calls the defaultRunner', function (assert) { diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/index-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/index-test.js index 14cd4302a7..d82c523384 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/event-source/index-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/event-source/index-test.js @@ -14,15 +14,15 @@ module('Unit | Utility | dom/event source/index', function () { // Replace this with your real tests. test('it works', function (assert) { // All The EventSource - assert.ok(typeof CallableEventSource === 'function'); - assert.ok(typeof OpenableEventSource === 'function'); - assert.ok(typeof BlockingEventSource === 'function'); - assert.ok(typeof StorageEventSource === 'function'); + assert.strictEqual(typeof CallableEventSource, 'function'); + assert.strictEqual(typeof OpenableEventSource, 'function'); + assert.strictEqual(typeof BlockingEventSource, 'function'); + assert.strictEqual(typeof StorageEventSource, 'function'); // Utils - assert.ok(typeof source === 'function'); - assert.ok(typeof proxy === 'function'); - assert.ok(typeof cache === 'function'); - assert.ok(typeof resolve === 'function'); + assert.strictEqual(typeof source, 'function'); + assert.strictEqual(typeof proxy, 'function'); + assert.strictEqual(typeof cache, 'function'); + assert.strictEqual(typeof resolve, 'function'); }); }); diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/event-target/rsvp-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/event-target/rsvp-test.js index ce21deae38..72a9ebcc2e 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/event-target/rsvp-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/event-target/rsvp-test.js @@ -4,6 +4,8 @@ import { module, test } from 'qunit'; module('Unit | Utility | dom/event-target/rsvp', function () { // Replace this with your real tests. test('it has EventTarget methods', function (assert) { + assert.expect(4); + const result = domEventTargetRsvp; assert.equal(typeof result, 'function'); ['addEventListener', 'removeEventListener', 'dispatchEvent'].forEach(function (item) { diff --git a/ui/packages/consul-ui/tests/unit/utils/dom/is-outside-test.js b/ui/packages/consul-ui/tests/unit/utils/dom/is-outside-test.js index b83304a67e..1f2ee13fbc 100644 --- a/ui/packages/consul-ui/tests/unit/utils/dom/is-outside-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/dom/is-outside-test.js @@ -53,7 +53,7 @@ module('Unit | Utility | dom/is-outside', function () { const result = domIsOutside(el, target, doc); assert.notOk(result); }); - test('it is not outside when its in the document but in the element', function (assert) { + test('it is not outside when its in the document but not in the element', function (assert) { // is in the document const doc = { contains: function (el) { diff --git a/ui/packages/consul-ui/tests/unit/utils/get-environment-test.js b/ui/packages/consul-ui/tests/unit/utils/get-environment-test.js index 208c1e070e..26f37fb0a1 100644 --- a/ui/packages/consul-ui/tests/unit/utils/get-environment-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/get-environment-test.js @@ -45,7 +45,7 @@ module('Unit | Utility | getEnvironment', function () { test('it returns a function', function (assert) { const config = {}; const env = getEnvironment(config, win, doc); - assert.ok(typeof env === 'function'); + assert.strictEqual(typeof env, 'function'); }); test('it returns the correct operator value', function (assert) { const config = {}; diff --git a/ui/packages/consul-ui/tests/unit/utils/http/request-test.js b/ui/packages/consul-ui/tests/unit/utils/http/request-test.js index e5e3ce2da9..18ede42338 100644 --- a/ui/packages/consul-ui/tests/unit/utils/http/request-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/http/request-test.js @@ -5,6 +5,6 @@ module('Unit | Utility | http/request', function () { // Replace this with your real tests. test('it works', function (assert) { const actual = httpRequest; - assert.ok(typeof actual === 'function'); + assert.strictEqual(typeof actual, 'function'); }); }); diff --git a/ui/packages/consul-ui/tests/unit/utils/isFolder-test.js b/ui/packages/consul-ui/tests/unit/utils/isFolder-test.js index e98f72a249..b4cdcc33ff 100644 --- a/ui/packages/consul-ui/tests/unit/utils/isFolder-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/isFolder-test.js @@ -3,6 +3,8 @@ import isFolder from 'consul-ui/utils/isFolder'; module('Unit | Utils | isFolder', function () { test('it detects if a string ends in a slash', function (assert) { + assert.expect(5); + [ { test: 'hello/world', diff --git a/ui/packages/consul-ui/tests/unit/utils/keyToArray-test.js b/ui/packages/consul-ui/tests/unit/utils/keyToArray-test.js index 1614bcf858..0272e5b345 100644 --- a/ui/packages/consul-ui/tests/unit/utils/keyToArray-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/keyToArray-test.js @@ -3,6 +3,8 @@ import keyToArray from 'consul-ui/utils/keyToArray'; module('Unit | Utils | keyToArray', function () { test('it splits a string by a separator, unless the string is the separator', function (assert) { + assert.expect(4); + [ { test: '/', diff --git a/ui/packages/consul-ui/tests/unit/utils/left-trim-test.js b/ui/packages/consul-ui/tests/unit/utils/left-trim-test.js index d476dd3c70..674dcebbcb 100644 --- a/ui/packages/consul-ui/tests/unit/utils/left-trim-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/left-trim-test.js @@ -3,6 +3,8 @@ import leftTrim from 'consul-ui/utils/left-trim'; module('Unit | Utility | left trim', function () { test('it trims characters from the left hand side', function (assert) { + assert.expect(8); + [ { args: ['/a/folder/here', '/'], diff --git a/ui/packages/consul-ui/tests/unit/utils/merge-checks-test.js b/ui/packages/consul-ui/tests/unit/utils/merge-checks-test.js index c489cb8361..63ab724bb7 100644 --- a/ui/packages/consul-ui/tests/unit/utils/merge-checks-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/merge-checks-test.js @@ -3,6 +3,7 @@ import { module, test } from 'qunit'; module('Unit | Utility | merge-checks', function () { test('it works', function (assert) { + assert.expect(4); [ { desc: 'One list of checks, not exposed', diff --git a/ui/packages/consul-ui/tests/unit/utils/path/resolve-test.js b/ui/packages/consul-ui/tests/unit/utils/path/resolve-test.js index 9eee80f622..31ce37daa2 100644 --- a/ui/packages/consul-ui/tests/unit/utils/path/resolve-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/path/resolve-test.js @@ -3,6 +3,7 @@ import { module, test } from 'qunit'; module('Unit | Utility | path/resolve', function () { test('it resolves paths', function (assert) { + assert.expect(9); [ { from: 'dc/intentions/create', diff --git a/ui/packages/consul-ui/tests/unit/utils/promisedTimeout-test.js b/ui/packages/consul-ui/tests/unit/utils/promisedTimeout-test.js index ecbaed1bd8..b7c502f121 100644 --- a/ui/packages/consul-ui/tests/unit/utils/promisedTimeout-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/promisedTimeout-test.js @@ -3,6 +3,8 @@ import promisedTimeout from 'consul-ui/utils/promisedTimeout'; module('Unit | Utils | promisedTimeout', function () { test('it calls setTimeout with the correct milliseconds', function (assert) { + assert.expect(2); + const expected = 1000; const P = function (cb) { cb(function (milliseconds) { diff --git a/ui/packages/consul-ui/tests/unit/utils/right-trim-test.js b/ui/packages/consul-ui/tests/unit/utils/right-trim-test.js index 27fea9c44b..3f2db90526 100644 --- a/ui/packages/consul-ui/tests/unit/utils/right-trim-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/right-trim-test.js @@ -3,6 +3,8 @@ import rightTrim from 'consul-ui/utils/right-trim'; module('Unit | Utility | right trim', function () { test('it trims characters from the right hand side', function (assert) { + assert.expect(12); + [ { args: ['/a/folder/here/', '/'], diff --git a/ui/packages/consul-ui/tests/unit/utils/ucfirst-test.js b/ui/packages/consul-ui/tests/unit/utils/ucfirst-test.js index 6832af2155..b07b511b5f 100644 --- a/ui/packages/consul-ui/tests/unit/utils/ucfirst-test.js +++ b/ui/packages/consul-ui/tests/unit/utils/ucfirst-test.js @@ -3,6 +3,8 @@ import ucfirst from 'consul-ui/utils/ucfirst'; module('Unit | Utils | ucfirst', function () { test('it returns the first letter in uppercase', function (assert) { + assert.expect(4); + [ { test: 'hello world', diff --git a/ui/yarn.lock b/ui/yarn.lock index 0d7746cc15..96953879f6 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -53,6 +53,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== +"@babel/compat-data@^7.20.0": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" + integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== + "@babel/core@^7.0.0", "@babel/core@^7.1.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.2.2", "@babel/core@^7.3.4", "@babel/core@^7.7.5": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" @@ -75,7 +80,28 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.12.9", "@babel/core@^7.16.7": +"@babel/core@^7.13.8": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" + integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.2" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-module-transforms" "^7.20.2" + "@babel/helpers" "^7.20.1" + "@babel/parser" "^7.20.2" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/core@^7.16.7": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== @@ -123,6 +149,15 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.20.1", "@babel/generator@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.2.tgz#c2e89e22613a039285c1e7b749e2cd0b30b9a481" + integrity sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q== + dependencies: + "@babel/types" "^7.20.2" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" @@ -206,6 +241,16 @@ browserslist "^4.20.2" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== + dependencies: + "@babel/compat-data" "^7.20.0" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.8.3": version "7.13.11" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" @@ -366,6 +411,14 @@ "@babel/template" "^7.18.6" "@babel/types" "^7.18.9" +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" @@ -487,6 +540,20 @@ "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" +"@babel/helper-module-transforms@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" + integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" @@ -604,6 +671,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" @@ -651,6 +725,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" @@ -666,6 +745,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== +"@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" @@ -729,6 +813,15 @@ "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" +"@babel/helpers@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" + integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.0" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" @@ -771,6 +864,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== +"@babel/parser@^7.20.1", "@babel/parser@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.2.tgz#9aeb9b92f64412b5f81064d46f6a1ac0881337f4" + integrity sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -2134,7 +2232,7 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.12.0": +"@babel/preset-env@^7.10.2": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.10.tgz#b5cde31d5fe77ab2a6ab3d453b59041a1b3a5252" integrity sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ== @@ -2479,6 +2577,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" + integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.1" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.1" + "@babel/types" "^7.20.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.1.6", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" @@ -2505,6 +2619,15 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" +"@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" + integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -2582,63 +2705,63 @@ unist-util-find "^1.0.2" unist-util-visit "^2.0.2" -"@ember-data/adapter@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.24.2.tgz#dd0b0f4f3c6e83dcba8c1a65d799a4c737f5eeec" - integrity sha512-3NmgrGNOUYKseJjUHcre3IOhLlpPMg7o9o8ZNRyi7r2M1n9flsXuKzJPMiteAic3U7bhODk44gorYjQ6goCzHw== +"@ember-data/adapter@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.27.1.tgz#4258b138ae43f1329995b8fce54e866d0b9b79a3" + integrity sha512-g9JPXn2QvV47xFWbY7xRiVp4LEbE4vkVo/qu3NtrvD+MLHNmfWn6VHhx2+v5mQB0pBe8lK8nPZGoS8PM/3CMuA== dependencies: - "@ember-data/private-build-infra" "3.24.2" - "@ember-data/store" "3.24.2" + "@ember-data/private-build-infra" "3.27.1" + "@ember-data/store" "3.27.1" "@ember/edition-utils" "^1.2.0" "@ember/string" "^1.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" -"@ember-data/canary-features@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.24.2.tgz#bd91beda313fc4d7ef3d8fc5dc709d53350c246c" - integrity sha512-duCgl99T6QQ4HuXNMI1l1vA8g7cvi7Ol/loVFOtkJn+MOlcQOzXNATuNqC/LPjTiHpPdQTL18+fq2wIZEDnq0w== +"@ember-data/canary-features@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.27.1.tgz#fa589ff8a37f6dcc607f874303be024a4f7a186a" + integrity sha512-7RLYG1W1woBu116h4bE3zfEHCV+EVVzNZcgRD3tUH9cg/EvOfXfn3naAFNnoA7TIEl2ZShRPgNNi2SjkYYy52Q== dependencies: - ember-cli-babel "^7.18.0" - ember-cli-typescript "^3.1.3" + ember-cli-babel "^7.26.6" + ember-cli-typescript "^4.1.0" -"@ember-data/debug@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.24.2.tgz#6b96fb9cd0914071efb9ac3c6befc1a3a55f5d38" - integrity sha512-RPTGoSFPGjhB7ZVbv3eGFL6NeZKCtWv9BrZwrZH7ZvHWN1Vc7vYG3NAsLAafpjbkfSo4KG2OKHZGftpXCIl2Og== +"@ember-data/debug@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.27.1.tgz#76ec39fd981ad9e97d140a30dfae6e3258144c0e" + integrity sha512-VWAzZFqKiheMc7Qx5yIekpdfamSBWURjNF5NKCQGGLRv7SsQe1eOjbW5iaq+gsnNr/gk4U95yLd225kUf6ubEQ== dependencies: - "@ember-data/private-build-infra" "3.24.2" + "@ember-data/private-build-infra" "3.27.1" "@ember/edition-utils" "^1.2.0" "@ember/string" "^1.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" -"@ember-data/model@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.24.2.tgz#8d718b8151eb2489328c5957d9ffc367b5b9a512" - integrity sha512-vKBYlWZYk0uh+7TiEYADQakUpJLbZ+ahU9ez2WEMtsdl4cDHpEBwyFH76Zmh3dp2Pz/aq5UwOtEHz/ggpUo7fQ== +"@ember-data/model@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.27.1.tgz#e35730da811c21e85f2bd334eb4a741f5368ce50" + integrity sha512-GC5bf2wAad6ePCoreOj4JknJaJ62FBwR9q+/zFxADU1Ns68kyVm/Xg7KD1sDvcXEwLJebH09j9sN7LkwZaN3Og== dependencies: - "@ember-data/canary-features" "3.24.2" - "@ember-data/private-build-infra" "3.24.2" - "@ember-data/store" "3.24.2" + "@ember-data/canary-features" "3.27.1" + "@ember-data/private-build-infra" "3.27.1" + "@ember-data/store" "3.27.1" "@ember/edition-utils" "^1.2.0" "@ember/string" "^1.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-string-utils "^1.1.0" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" ember-compatibility-helpers "^1.2.0" inflection "1.12.0" -"@ember-data/private-build-infra@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.24.2.tgz#2b77fb4490a6c657d9f82ce8c54fe22157e03963" - integrity sha512-uYv9BOGaNxsSacE0jFRFhrs/Xg6f8Rma2Ap/mVjwouBvu+DV2cl5E2zIMalygu/ngIiGhiNUeUp2RpjSpR054w== +"@ember-data/private-build-infra@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.27.1.tgz#040a9f646a1ca2764e67bf1108dc489d2008e7d5" + integrity sha512-Cox/CRovg1gFGuO2zn64JSAezbbO1XHP+tLWDXRIiB2Oqlk3CtNxEs9K02DxMCojK4C8itFDOVpBKLYCB5MbYQ== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.24.2" + "@ember-data/canary-features" "3.27.1" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" @@ -2650,7 +2773,7 @@ broccoli-rollup "^4.1.1" calculate-cache-key-for-tree "^2.0.0" chalk "^4.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-path-utils "^1.0.0" ember-cli-string-utils "^1.1.0" ember-cli-typescript "^3.1.3" @@ -2664,47 +2787,48 @@ semver "^7.1.3" silent-error "^1.1.1" -"@ember-data/record-data@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.24.2.tgz#cf07dd13c74d02046af2dc4a9102f9f6cb897184" - integrity sha512-vdsWiPp29lwgMeyf4O1sXZ8xJf/zPCIEfksYeGaJ9VhiTKOucqiRxIFeI2cdyqxkM0frtCyNwYEntpy871Os2Q== +"@ember-data/record-data@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.27.1.tgz#2d9e35e36404790adebc24890ca0eb8ee1ecfb65" + integrity sha512-QSY7vJIbfCCpVNhAXkGc73UiXqX7UyELq0Mc3URoVCKRYZJOCSnydPYARLgN/NM99HV0Mw1aa+KP8Nco8Z/gFg== dependencies: - "@ember-data/canary-features" "3.24.2" - "@ember-data/private-build-infra" "3.24.2" - "@ember-data/store" "3.24.2" + "@ember-data/canary-features" "3.27.1" + "@ember-data/private-build-infra" "3.27.1" + "@ember-data/store" "3.27.1" "@ember/edition-utils" "^1.2.0" "@ember/ordered-set" "^4.0.0" - ember-cli-babel "^7.18.0" + ember-cli-babel "^7.26.6" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" "@ember-data/rfc395-data@^0.0.4": version "0.0.4" resolved "https://registry.yarnpkg.com/@ember-data/rfc395-data/-/rfc395-data-0.0.4.tgz#ecb86efdf5d7733a76ff14ea651a1b0ed1f8a843" integrity sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ== -"@ember-data/serializer@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.24.2.tgz#d95816f4af4b9d3031bdd198cd10e6bde3fa8b17" - integrity sha512-so/NkQgtecXqPdFMjUHkXQ73n9TFVMigZeCFuippkP3lQu2HquJ9u/e+WRcgLzziU7q+eBTnt2Lar9uLkXMNyw== +"@ember-data/serializer@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.27.1.tgz#17301698281e9d888f6c38b59c4b460c9ab27fd7" + integrity sha512-kJE+kiisk1d9KQYRcRK4BFQhhsZ3n7ADlyK5eCsaNEwJm4YsfvKgjUgaC16MJddX4LG9d7QORHNJT9rWcCL9fg== dependencies: - "@ember-data/private-build-infra" "3.24.2" - "@ember-data/store" "3.24.2" - ember-cli-babel "^7.18.0" + "@ember-data/private-build-infra" "3.27.1" + "@ember-data/store" "3.27.1" + ember-cli-babel "^7.26.6" ember-cli-test-info "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" -"@ember-data/store@3.24.2": - version "3.24.2" - resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.24.2.tgz#2583e03f8c51c5b049a29bbed304ae78085e8b9b" - integrity sha512-FJVZIrCwFDebh/s3Gy4YC+PK7BRaDIudor53coia236hpAW9eO/itO/ZbOGt9eFumWzX6eUFxJixD0o9FvGybA== +"@ember-data/store@3.27.1": + version "3.27.1" + resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.27.1.tgz#2026adbeee893d3a71417b82095b4921fdd590fb" + integrity sha512-RL9OkNBB9DtT5nkYTmGuk46hbVs2avuvSggiPJU3iuQYD3dJ8jC2XGGs3Z4FHEzAVWwlCnFiwVT03GfYbuIbUw== dependencies: - "@ember-data/canary-features" "3.24.2" - "@ember-data/private-build-infra" "3.24.2" + "@ember-data/canary-features" "3.27.1" + "@ember-data/private-build-infra" "3.27.1" "@ember/string" "^1.0.0" - ember-cli-babel "^7.18.0" + "@glimmer/tracking" "^1.0.4" + ember-cli-babel "^7.26.6" ember-cli-path-utils "^1.0.0" - ember-cli-typescript "^3.1.3" + ember-cli-typescript "^4.0.0" heimdalljs "^0.3.0" "@ember-decorators/component@^6.1.1": @@ -2779,7 +2903,7 @@ dependencies: ember-cli-babel "^7.4.0" -"@ember/test-helpers@^2.1.4": +"@ember/test-helpers@^2.2.5": version "2.8.1" resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-2.8.1.tgz#20f2e30d48172c2ff713e1db7fbec5352f918d4e" integrity sha512-jbsYwWyAdhL/pdPu7Gb3SG1gvIXY70FWMtC/Us0Kmvk82Y+5YUQ1SOC0io75qmOGYQmH7eQrd/bquEVd+4XtdQ== @@ -2919,7 +3043,7 @@ resolve "^1.8.1" semver "^7.3.2" -"@embroider/macros@0.41.0": +"@embroider/macros@0.41.0", "@embroider/macros@^0.41.0": version "0.41.0" resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.41.0.tgz#3e78b6f388d7229906abf4c75edfff8bb0208aca" integrity sha512-QISzwEEfLsskZeL0jyZDs1RoQSotwBWj+4upTogNHuxQP5j/9H3IMG/3QB1gh8GEpbudATb/cS4NDYK3UBxufw== @@ -2958,6 +3082,18 @@ resolve "^1.20.0" semver "^7.3.2" +"@embroider/macros@^0.42.3": + version "0.42.3" + resolved "https://registry.yarnpkg.com/@embroider/macros/-/macros-0.42.3.tgz#eb4dc35c43f1cb1d14298219ba037f8cead06081" + integrity sha512-4I+Sde8FU7QMwNQ3gYtj8fdBTqUeoPDn61XuV4Xng7p9LszQksGDXtyEhWrf9KWU3G+NtrZotY5LICd5P+E3tw== + dependencies: + "@embroider/shared-internals" "0.42.3" + assert-never "^1.2.1" + ember-cli-babel "^7.26.6" + lodash "^4.17.21" + resolve "^1.20.0" + semver "^7.3.2" + "@embroider/shared-internals@0.41.0": version "0.41.0" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-0.41.0.tgz#2553f026d4f48ea1fd11235501feb63bf49fa306" @@ -2971,6 +3107,19 @@ semver "^7.3.2" typescript-memoize "^1.0.0-alpha.3" +"@embroider/shared-internals@0.42.3": + version "0.42.3" + resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-0.42.3.tgz#65224fe86c55790417078b267add8f54148b59e3" + integrity sha512-AIFRumaGxzhzzSswtk97Z0ttu0dyRhXoDuOi6kPYHoprUdtt7biRAksrsbutWWdFapve7vKHFZdYVuiG8IbX0A== + dependencies: + ember-rfc176-data "^0.3.17" + fs-extra "^9.1.0" + lodash "^4.17.21" + pkg-up "^3.1.0" + resolve-package-path "^4.0.1" + semver "^7.3.5" + typescript-memoize "^1.0.1" + "@embroider/shared-internals@0.47.2": version "0.47.2" resolved "https://registry.yarnpkg.com/@embroider/shared-internals/-/shared-internals-0.47.2.tgz#24e9fa0dd9c529d5c996ee1325729ea08d1fa19f" @@ -3067,26 +3216,6 @@ ember-cli-version-checker "^3.1.3" ember-compatibility-helpers "^1.1.2" -"@glimmer/component@^1.0.3": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.1.2.tgz#892ec0c9f0b6b3e41c112be502fde073cf24d17c" - integrity sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A== - dependencies: - "@glimmer/di" "^0.1.9" - "@glimmer/env" "^0.1.7" - "@glimmer/util" "^0.44.0" - broccoli-file-creator "^2.1.1" - broccoli-merge-trees "^3.0.2" - ember-cli-babel "^7.7.3" - ember-cli-get-component-path-option "^1.0.0" - ember-cli-is-package-missing "^1.0.0" - ember-cli-normalize-entity-name "^1.0.0" - ember-cli-path-utils "^1.0.0" - ember-cli-string-utils "^1.1.0" - ember-cli-typescript "3.0.0" - ember-cli-version-checker "^3.1.3" - ember-compatibility-helpers "^1.1.2" - "@glimmer/di@^0.1.9": version "0.1.11" resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.1.11.tgz#a6878c07a13a2c2c76fcde598a5c97637bfc4280" @@ -3197,14 +3326,6 @@ "@glimmer/env" "^0.1.7" "@glimmer/validator" "^0.44.0" -"@glimmer/tracking@^1.0.3": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@glimmer/tracking/-/tracking-1.1.2.tgz#74e71be07b0a7066518d24044d2665d0cf8281eb" - integrity sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA== - dependencies: - "@glimmer/env" "^0.1.7" - "@glimmer/validator" "^0.44.0" - "@glimmer/util@0.65.2": version "0.65.2" resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.65.2.tgz#da9c6fa68a117ac1cb74fc79dad3eaa40d9cd4cb" @@ -3237,6 +3358,13 @@ resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.44.0.tgz#03d127097dc9cb23052cdb7fcae59d0a9dca53e1" integrity sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw== +"@glimmer/vm-babel-plugins@0.78.2": + version "0.78.2" + resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.78.2.tgz#b530a19f54da385c7099a22cf348e9062d186838" + integrity sha512-GSEf16h6OCtKx7PsSvD21cLXZuVc6swW2rSOAvfLeZco1DEWMRgYTwkCkColydKZcQ3gvwbPBeYwTC2K6tlnjg== + 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" @@ -4875,7 +5003,7 @@ babel-plugin-module-resolver@^3.2.0: reselect "^3.0.1" resolve "^1.4.0" -babel-plugin-module-resolver@^4.0.0: +babel-plugin-module-resolver@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== @@ -5651,6 +5779,23 @@ broccoli-concat@^4.2.2, broccoli-concat@^4.2.4: lodash.omit "^4.1.0" lodash.uniq "^4.2.0" +broccoli-concat@^4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-4.2.5.tgz#d578f00094048b5fc87195e82fbdbde20d838d29" + integrity sha512-dFB5ATPwOyV8S2I7a07HxCoutoq23oY//LhM6Mou86cWUTB174rND5aQLR7Fu8FjFFLxoTbkk7y0VPITJ1IQrw== + dependencies: + broccoli-debug "^0.6.5" + broccoli-kitchen-sink-helpers "^0.3.1" + broccoli-plugin "^4.0.2" + ensure-posix-path "^1.0.2" + fast-sourcemap-concat "^2.1.0" + find-index "^1.1.0" + fs-extra "^8.1.0" + fs-tree-diff "^2.0.1" + lodash.merge "^4.6.2" + lodash.omit "^4.1.0" + lodash.uniq "^4.2.0" + broccoli-config-loader@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/broccoli-config-loader/-/broccoli-config-loader-1.0.1.tgz#d10aaf8ebc0cb45c1da5baa82720e1d88d28c80a" @@ -6185,7 +6330,7 @@ broccoli-terser-sourcemap@^4.1.0: walk-sync "^2.2.0" workerpool "^6.0.0" -broccoli@^3.5.0: +broccoli@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.5.2.tgz#60921167d57b43fb5bad527420d62fe532595ef4" integrity sha512-sWi3b3fTUSVPDsz5KsQ5eCQNVAtLgkIE/HYFkEZXR/07clqmd4E/gFiuwSaqa9b+QTXc1Uemfb7TVWbEIURWDg== @@ -7181,7 +7326,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -7582,6 +7727,11 @@ diff@^4.0.2: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -7807,7 +7957,7 @@ ember-auto-import@^1.10.1, ember-auto-import@^1.11.3: walk-sync "^0.3.3" webpack "^4.43.0" -ember-auto-import@^1.5.2, ember-auto-import@^1.5.3, ember-auto-import@^1.6.0: +ember-auto-import@^1.5.3, ember-auto-import@^1.6.0: version "1.10.1" resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.10.1.tgz#6c93a875e494aa0a58b759867d3f20adfd514ae3" integrity sha512-7bOWzPELlVwdWDOkB+phDIjg8BNW+/2RiLLQ+Xa/eIvCLT4ABYhHV5wqW5gs5BnXTDVLfE4ddKZdllnGuPGGDQ== @@ -7904,40 +8054,35 @@ ember-can@^4.2.0: ember-cli-htmlbars "^6.0.0" ember-inflector "^4.0.2" -ember-changeset-conditional-validations@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/ember-changeset-conditional-validations/-/ember-changeset-conditional-validations-0.6.0.tgz#78369ad3af0aea338e00a9bdf1b622fb512d9a00" - integrity sha512-U9TZFhhLC+5XRqcI5sNfJwGVcVZvXJxwrRQrrTYLImHe/+tcgP/TagE0f0DBrgWV2u3lsztGHGwGUs86uc65rg== +ember-changeset-validations@~3.15.2: + version "3.15.2" + resolved "https://registry.yarnpkg.com/ember-changeset-validations/-/ember-changeset-validations-3.15.2.tgz#c19a65661446c64088fd5daf4f95f0819ccc95af" + integrity sha512-jPcX4aXRY9SLivHHRkrUZovL1xeEchAyoDR7lyOpverfjVJFr3p0qEp4L8pwKBeCQHnV0JcLM9r1DqpRoGLmkw== dependencies: - ember-cli-babel "^6.16.0" + ember-changeset "^3.14.1" + ember-cli-babel "^7.26.6" + ember-cli-htmlbars "^5.7.1" + ember-get-config "^0.3.0" + ember-validators "~4.0.0" + validated-changeset "~1.0.0" -ember-changeset-validations@~3.9.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/ember-changeset-validations/-/ember-changeset-validations-3.9.1.tgz#5f44f56ca9a55ac079f667f8cbead1dfeb85a21d" - integrity sha512-aTufViqh4zx8WNjiuxuQNSfYaDLDdXl7mQ6g18z2Wma55kEmGymxaltM3lrGgXK+IlWoJvINrNBd6i6AYRxaYA== - dependencies: - ember-changeset "^3.9.1" - ember-cli-babel "^7.8.0" - ember-cli-htmlbars "^4.0.5" - ember-get-config "^0.2.4" - ember-validators "^2.0.0" - -ember-changeset@3.10.1, ember-changeset@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/ember-changeset/-/ember-changeset-3.10.1.tgz#d6f06bc55f867a2c1ac7c5fd780776bd1e5a9b60" - integrity sha512-4FoGKRcKxixSr+NBQ+ZoiwwbJE0/fuZRULUp9M1RIHejYhst+U8/ni47SsphrMhoRAcZCeyl+JqlBMlwR7v50g== +ember-changeset@^3.14.1: + version "3.15.0" + resolved "https://registry.yarnpkg.com/ember-changeset/-/ember-changeset-3.15.0.tgz#402bbb9b51dc44596415c1c7b0e3a4923b1d3e81" + integrity sha512-yLyU3quV96EFjYzYUjIK4je5nnemZdbElYLFnXYJ5StXquCRjdFvL79gst/vs6ZjVFbkRKnLjsVP8YMkED0P2g== dependencies: + "@embroider/macros" "^0.42.3" "@glimmer/tracking" "^1.0.1" - ember-auto-import "^1.5.2" - ember-cli-babel "^7.19.0" - validated-changeset "~0.10.0" + ember-auto-import "^1.11.3" + ember-cli-babel "^7.26.6" + validated-changeset "1.0.0" -ember-cli-app-version@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-4.0.0.tgz#033057ec5fe4d3ecdf5ac5380d442e2dc9f7526a" - integrity sha512-YRH1r4vjA9ZIgTVJ38zWxhtt4SCzIHb0ppEsO/z+JV0ZTQlS3+2dT5RhJWz7O3dyw5FWnlIng+gPRoQEz1umHA== +ember-cli-app-version@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-5.0.0.tgz#adad17c6f706f419b223707eec66dd1cd28530c3" + integrity sha512-afhx/CXDOMNXzoe4NDPy5WUfxWmYYHUzMCiTyvPBxCDBXYcMrtxNWxvgaSaeqcoHVEmqzeyBj8V82tzmT1dcyw== dependencies: - ember-cli-babel "^7.22.1" + ember-cli-babel "^7.23.1" git-repo-info "^2.1.1" ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, ember-cli-babel-plugin-helpers@^1.1.1: @@ -7945,40 +8090,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== -ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.17.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.7.3, ember-cli-babel@^7.8.0: - version "7.26.1" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.1.tgz#d3f06bd9aec8aac9197c5ff4d0b87ff1e4f0d62a" - integrity sha512-WEWP3hJSe9CWL22gEWQ+Y3uKMGk1vLoIREUQfJNKrgUUh3l49bnfAamh3ywcAQz31IgzvkLPO8ZTXO4rxnuP4Q== - dependencies: - "@babel/core" "^7.12.0" - "@babel/helper-compilation-targets" "^7.12.0" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.13.5" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-runtime" "^7.13.9" - "@babel/plugin-transform-typescript" "^7.13.0" - "@babel/polyfill" "^7.11.5" - "@babel/preset-env" "^7.12.0" - "@babel/runtime" "7.12.18" - amd-name-resolver "^1.3.1" - babel-plugin-debug-macros "^0.3.4" - babel-plugin-ember-data-packages-polyfill "^0.1.2" - babel-plugin-ember-modules-api-polyfill "^3.5.0" - babel-plugin-module-resolver "^3.2.0" - broccoli-babel-transpiler "^7.8.0" - broccoli-debug "^0.6.4" - broccoli-funnel "^2.0.2" - broccoli-source "^2.1.2" - clone "^2.1.2" - ember-cli-babel-plugin-helpers "^1.1.1" - ember-cli-version-checker "^4.1.0" - ensure-posix-path "^1.0.2" - fixturify-project "^1.10.0" - resolve-package-path "^3.1.0" - rimraf "^3.0.1" - semver "^5.5.0" - -ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.11.0, ember-cli-babel@^6.16.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.0, ember-cli-babel@^6.9.2: +ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2, ember-cli-babel@^6.9.0: version "6.18.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957" integrity sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA== @@ -7997,7 +8109,7 @@ ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.11.0, ember-cli-version-checker "^2.1.2" semver "^5.5.0" -ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.26.1, ember-cli-babel@^7.26.10, ember-cli-babel@^7.26.11, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.5, ember-cli-babel@^7.4.0: +ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.17.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.1, ember-cli-babel@^7.26.10, ember-cli-babel@^7.26.11, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.5, ember-cli-babel@^7.26.6, ember-cli-babel@^7.4.0, ember-cli-babel@^7.7.3: version "7.26.11" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.11.tgz#50da0fe4dcd99aada499843940fec75076249a9f" integrity sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA== @@ -8033,39 +8145,6 @@ ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.26.1, ember rimraf "^3.0.1" semver "^5.5.0" -ember-cli-babel@^7.26.6: - version "7.26.6" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.6.tgz#322fbbd3baad9dd99e3276ff05bc6faef5e54b39" - integrity sha512-040svtfj2RC35j/WMwdWJFusZaXmNoytLAMyBDGLMSlRvznudTxZjGlPV6UupmtTBApy58cEF8Fq4a+COWoEmQ== - dependencies: - "@babel/core" "^7.12.0" - "@babel/helper-compilation-targets" "^7.12.0" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.13.5" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-runtime" "^7.13.9" - "@babel/plugin-transform-typescript" "^7.13.0" - "@babel/polyfill" "^7.11.5" - "@babel/preset-env" "^7.12.0" - "@babel/runtime" "7.12.18" - amd-name-resolver "^1.3.1" - babel-plugin-debug-macros "^0.3.4" - babel-plugin-ember-data-packages-polyfill "^0.1.2" - babel-plugin-ember-modules-api-polyfill "^3.5.0" - babel-plugin-module-resolver "^3.2.0" - broccoli-babel-transpiler "^7.8.0" - broccoli-debug "^0.6.4" - broccoli-funnel "^2.0.2" - broccoli-source "^2.1.2" - clone "^2.1.2" - ember-cli-babel-plugin-helpers "^1.1.1" - ember-cli-version-checker "^4.1.0" - ensure-posix-path "^1.0.2" - fixturify-project "^1.10.0" - resolve-package-path "^3.1.0" - rimraf "^3.0.1" - semver "^5.5.0" - ember-cli-code-coverage@^1.0.0-beta.4: version "1.0.2" resolved "https://registry.yarnpkg.com/ember-cli-code-coverage/-/ember-cli-code-coverage-1.0.2.tgz#615fc7af8bc7d9388a28371c2825c224a936d73f" @@ -8126,7 +8205,7 @@ ember-cli-htmlbars@^3.0.1: json-stable-stringify "^1.0.1" strip-bom "^3.0.0" -ember-cli-htmlbars@^4.0.5, ember-cli-htmlbars@^4.2.3, ember-cli-htmlbars@^4.3.1: +ember-cli-htmlbars@^4.2.3, ember-cli-htmlbars@^4.3.1: version "4.5.0" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-4.5.0.tgz#d299e4f7eba6f30dc723ee086906cc550beb252e" integrity sha512-bYJpK1pqFu9AadDAGTw05g2LMNzY8xTCIqQm7dMJmKEoUpLRFbPf4SfHXrktzDh7Q5iggl6Skzf1M0bPlIxARw== @@ -8168,7 +8247,7 @@ ember-cli-htmlbars@^5.0.0, ember-cli-htmlbars@^5.1.0, ember-cli-htmlbars@^5.1.2, strip-bom "^4.0.0" walk-sync "^2.2.0" -ember-cli-htmlbars@^5.3.2, ember-cli-htmlbars@^5.7.1: +ember-cli-htmlbars@^5.3.2, ember-cli-htmlbars@^5.7.1, ember-cli-htmlbars@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-5.7.2.tgz#e0cd2fb3c20d85fe4c3e228e6f0590ee1c645ba8" integrity sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg== @@ -8268,10 +8347,10 @@ ember-cli-normalize-entity-name@^1.0.0: dependencies: silent-error "^1.0.0" -ember-cli-page-object@^1.17.10: - version "1.17.10" - resolved "https://registry.yarnpkg.com/ember-cli-page-object/-/ember-cli-page-object-1.17.10.tgz#a3145c7b0341e6180dab28e10c858f8b6535e66a" - integrity sha512-J7OQZ4IWftHLunsCicFbaVb/GrI+/DMWMPO5EAca9+0x9K+rxml351Tl1Z/Fpr8UmHg1q/KGwqGx9xGodrRxbg== +ember-cli-page-object@^1.17.11: + version "1.17.11" + resolved "https://registry.yarnpkg.com/ember-cli-page-object/-/ember-cli-page-object-1.17.11.tgz#e5972484525d0f0da9b4b715843c830b49b9c662" + integrity sha512-k1VagZdUHHkPGW5l+vZnKNVW1dPRpWm4Hqy75o1dF3oVHF+NFUmEI/ZDV3m2dS0YindReGfbojeox9vGgKYlcQ== dependencies: broccoli-file-creator "^2.1.1" broccoli-merge-trees "^2.0.0" @@ -8355,7 +8434,7 @@ ember-cli-template-lint@^2.0.1: strip-ansi "^6.0.0" walk-sync "^2.0.2" -ember-cli-terser@^4.0.1: +ember-cli-terser@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/ember-cli-terser/-/ember-cli-terser-4.0.2.tgz#c436a9e4159f76a615b051cba0584844652b7dcd" integrity sha512-Ej77K+YhCZImotoi/CU2cfsoZaswoPlGaM5TB3LvjvPDlVPRhxUHO2RsaUVC5lsGeRLRiHCOxVtoJ6GyqexzFA== @@ -8526,22 +8605,22 @@ ember-cli-yadda@^0.7.0: qunit "^2.16.0" yadda "*" -ember-cli@~3.24.0: - version "3.24.0" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.24.0.tgz#dbda4938e74fdafe4da1c42b49356f9d14c10697" - integrity sha512-dLurYpluRcE+XjCHy/JzUBcW4dBKhjmXH3zUjyof89gFjj+8EFjB0b2tqyS6buKqBasinVaX8lZZVIXYCdFtNA== +ember-cli@~3.27.0: + version "3.27.0" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.27.0.tgz#8ccf9db51d7b462f86210b853d086a4543605c34" + integrity sha512-vFLPFkplXn5v005fattHdOcs5AbSp7RG4w1wpHDWHzOSYpl2Dr+5zzZtqLS7V5IVaLf3XK4l24XwhSW9HpMfsQ== dependencies: - "@babel/core" "^7.12.9" + "@babel/core" "^7.13.8" "@babel/plugin-transform-modules-amd" "^7.12.1" amd-name-resolver "^1.3.1" - babel-plugin-module-resolver "^4.0.0" + babel-plugin-module-resolver "^4.1.0" bower-config "^1.4.3" bower-endpoint-parser "0.2.2" - broccoli "^3.5.0" + broccoli "^3.5.1" broccoli-amd-funnel "^2.0.1" broccoli-babel-transpiler "^7.8.0" broccoli-builder "^0.18.14" - broccoli-concat "^4.2.4" + broccoli-concat "^4.2.5" broccoli-config-loader "^1.0.1" broccoli-config-replace "^1.1.2" broccoli-debug "^0.6.5" @@ -8562,7 +8641,7 @@ ember-cli@~3.24.0: console-ui "^3.1.2" core-object "^3.1.5" dag-map "^2.0.2" - diff "^4.0.2" + diff "^5.0.0" ember-cli-is-package-missing "^1.0.0" ember-cli-lodash-subset "^2.0.1" ember-cli-normalize-entity-name "^1.0.0" @@ -8570,14 +8649,14 @@ ember-cli@~3.24.0: ember-cli-string-utils "^1.1.0" ember-source-channel-url "^3.0.0" ensure-posix-path "^1.1.1" - execa "^4.1.0" + execa "^5.0.0" exit "^0.1.2" express "^4.17.1" filesize "^6.1.0" find-up "^5.0.0" find-yarn-workspace-root "^2.0.0" - fixturify-project "^2.1.0" - fs-extra "^9.0.1" + fixturify-project "^2.1.1" + fs-extra "^9.1.0" fs-tree-diff "^2.0.1" get-caller-file "^2.0.5" git-repo-info "^2.1.1" @@ -8595,21 +8674,21 @@ ember-cli@~3.24.0: json-stable-stringify "^1.0.1" leek "0.0.24" lodash.template "^4.5.0" - markdown-it "^12.0.2" + markdown-it "^12.0.4" markdown-it-terminal "0.2.1" minimatch "^3.0.4" morgan "^1.10.0" nopt "^3.0.6" - npm-package-arg "^8.1.0" + npm-package-arg "^8.1.1" p-defer "^3.0.0" portfinder "^1.0.28" promise-map-series "^0.3.0" promise.hash.helper "^1.0.7" quick-temp "^0.1.8" - resolve "^1.19.0" + resolve "^1.20.0" resolve-package-path "^3.1.0" sane "^4.1.0" - semver "^7.3.2" + semver "^7.3.4" silent-error "^1.1.1" sort-package-json "^1.48.0" symlink-or-copy "^1.3.1" @@ -8617,13 +8696,13 @@ ember-cli@~3.24.0: testem "^3.2.0" tiny-lr "^2.0.0" tree-sync "^2.1.0" - uuid "^8.3.1" + uuid "^8.3.2" walk-sync "^2.2.0" watch-detector "^1.0.0" workerpool "^6.0.3" yam "^1.0.0" -ember-collection@^1.0.0-alpha.9: +ember-collection@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-collection/-/ember-collection-1.0.0.tgz#2ec570a49b70098ab68fbaaca940f9302b39af98" integrity sha512-Yb7ZoPBc9rdDv1m72PDQeqbKzKVejAetkqRWUEXRa6tV75ud46ozGhX/1kyVJz2tNYL5XlgnqP8hg5UA9YNR0w== @@ -8682,47 +8761,47 @@ ember-concurrency-decorators@^2.0.0: ember-compatibility-helpers "^1.2.0" ember-destroyable-polyfill "^2.0.2" -ember-copy@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-copy/-/ember-copy-1.0.0.tgz#426554ba6cf65920f31d24d0a3ca2cb1be16e4aa" - integrity sha512-aiZNAvOmdemHdvZNn0b5b/0d9g3JFpcOsrDgfhYEbfd7SzE0b69YiaVK2y3wjqfjuuiA54vOllGN4pjSzECNSw== +ember-copy@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ember-copy/-/ember-copy-2.0.1.tgz#13192b12a250324bb4a8b4547a680b113f4e3041" + integrity sha512-N/XFvZszrzyyX4IcNoeK4mJvIItNuONumhPLqi64T8NDjJkxBj4Pq61rvMkJx/9eZ8alzE4I8vYKOLxT0FvRuQ== dependencies: - ember-cli-babel "^6.6.0" + ember-cli-babel "^7.22.1" -ember-data-model-fragments@5.0.0-beta.0: - version "5.0.0-beta.0" - resolved "https://registry.yarnpkg.com/ember-data-model-fragments/-/ember-data-model-fragments-5.0.0-beta.0.tgz#da90799970317ca852f96b2ea1548ca70094a5bb" - integrity sha512-vjApz3ZWSiLyUUU2IRi/ArKVBJe+iW+BvKkiQ6an/e7ln4Jt06P9xXm1Fu3hfqkQOQlfn7QkUnlzm4XxRtlMfg== +ember-data-model-fragments@5.0.0-beta.8: + version "5.0.0-beta.8" + resolved "https://registry.yarnpkg.com/ember-data-model-fragments/-/ember-data-model-fragments-5.0.0-beta.8.tgz#d29e0f59a8ba0157fd9d616d50b3faec731bbeac" + integrity sha512-vOt2UXyhsWoZXCB9XAUqAobdRLr3ydUG6L36Rd7Qsg/1kj0jApQIEJS4qfA+xlBgirKEJ322PZqlBOv8zQSS8w== dependencies: broccoli-file-creator "^2.1.1" broccoli-merge-trees "^3.0.0" calculate-cache-key-for-tree "^1.1.0" - ember-cli-babel "7" + ember-cli-babel "^7.23.0" ember-compatibility-helpers "^1.2.1" - ember-copy "1.0.0" - git-repo-info "^2.0.0" + ember-copy "2.0.1" + git-repo-info "^2.1.1" npm-git-info "^1.0.3" -ember-data@~3.24.0: - version "3.24.2" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.24.2.tgz#34d72b0bc83fce1791bf09a8391425717b9c3f55" - integrity sha512-dfpLagJn09eEcoVqU4NfMs3J+750jJU7rLZA7uFY2/+0M0a4iGhjbm1dVVZQTkrfNiYHXvOOItr1bOT9sMC8Hg== +ember-data@~3.27.1: + version "3.27.1" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.27.1.tgz#02d6b76c1d5de0f50d24274147b8711f6ca4f28d" + integrity sha512-36P8+7B6Z5ZjyITFbf2Wcub/fdE2DTsLoPPZK7It488fub5s90o85XC0WlwUQPvff39us2N4pzjwmCZ8Jj/gjg== dependencies: - "@ember-data/adapter" "3.24.2" - "@ember-data/debug" "3.24.2" - "@ember-data/model" "3.24.2" - "@ember-data/private-build-infra" "3.24.2" - "@ember-data/record-data" "3.24.2" - "@ember-data/serializer" "3.24.2" - "@ember-data/store" "3.24.2" + "@ember-data/adapter" "3.27.1" + "@ember-data/debug" "3.27.1" + "@ember-data/model" "3.27.1" + "@ember-data/private-build-infra" "3.27.1" + "@ember-data/record-data" "3.27.1" + "@ember-data/serializer" "3.27.1" + "@ember-data/store" "3.27.1" "@ember/edition-utils" "^1.2.0" "@ember/ordered-set" "^4.0.0" "@ember/string" "^1.0.0" "@glimmer/env" "^0.1.7" broccoli-merge-trees "^4.2.0" - ember-cli-babel "^7.18.0" - ember-cli-typescript "^3.1.3" - ember-inflector "^3.0.1" + ember-cli-babel "^7.26.6" + ember-cli-typescript "^4.1.0" + ember-inflector "^4.0.1" ember-decorators@^6.1.1: version "6.1.1" @@ -8783,14 +8862,6 @@ ember-factory-for-polyfill@^1.3.1: dependencies: ember-cli-version-checker "^2.1.0" -ember-get-config@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-0.2.4.tgz#118492a2a03d73e46004ed777928942021fe1ecd" - integrity sha1-EYSSoqA9c+RgBO13eSiUICH+Hs0= - dependencies: - broccoli-file-creator "^1.1.1" - ember-cli-babel "^6.3.0" - ember-get-config@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-0.3.0.tgz#a73a1a87b48d9dde4c66a0e52ed5260b8a48cfbd" @@ -8829,13 +8900,6 @@ ember-in-viewport@^3.8.1: intersection-observer-admin "~0.2.13" raf-pool "~0.1.4" -ember-inflector@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-3.0.1.tgz#04be6df4d7e4000f6d6bd70787cdc995f77be4ab" - integrity sha512-fngrwMsnhkBt51KZgwNwQYxgURwV4lxtoHdjxf7RueGZ5zM7frJLevhHw7pbQNGqXZ3N+MRkhfNOLkdDK9kFdA== - dependencies: - ember-cli-babel "^6.6.0" - ember-inflector@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-4.0.1.tgz#e0aa9e39119156a278c80bb8cdec8462ecb8e6ab" @@ -9000,12 +9064,12 @@ ember-on-resize-modifier@^0.3.0: ember-modifier "^2.1.0" ember-resize-observer-service "^0.3.0" -ember-page-title@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.2.1.tgz#aa2d539fab8eddb618289cdba91adf699debf7da" - integrity sha512-cfBDuP14KBJCdz/AeBQJFGnJbUHd2gmenG+i0ilR2kYX0G0zHAsseFZFuTNVZDNiQ8BnMdrdjRnfjx9Vdi/dag== +ember-page-title@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.2.2.tgz#980838c44e96cba1d00f42435d707936af627324" + integrity sha512-YTXA+cylZrh9zO0zwjlaAGReT2MVOxAMnVO1OOygFrs1JBs4D6CKV3tImoilg3AvIXFBeJfFNNUbJOdRd9IGGg== dependencies: - ember-cli-babel "^7.22.1" + ember-cli-babel "^7.23.1" ember-power-select-with-create@^0.8.0: version "0.8.0" @@ -9033,7 +9097,7 @@ ember-power-select@^4.0.0, ember-power-select@^4.0.5: ember-text-measurer "^0.6.0" ember-truth-helpers "^2.1.0 || ^3.0.0" -ember-qunit@^5.1.1: +ember-qunit@^5.1.4: version "5.1.5" resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-5.1.5.tgz#24a7850f052be24189ff597dfc31b923e684c444" integrity sha512-2cFA4oMygh43RtVcMaBrr086Tpdhgbn3fVZ2awLkzF/rnSN0D0PSRpd7hAD7OdBPerC/ZYRwzVyGXLoW/Zes4A== @@ -9072,13 +9136,6 @@ ember-render-helpers@^0.2.0: ember-cli-babel "^7.23.0" ember-cli-typescript "^4.0.0" -ember-require-module@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ember-require-module/-/ember-require-module-0.3.0.tgz#65aff7908b5b846467e4526594d33cfe0c23456b" - integrity sha512-rYN4YoWbR9VlJISSmx0ZcYZOgMcXZLGR7kdvp3zDerjIvYmHm/3p+K56fEAYmJILA6W4F+cBe41Tq2HuQAZizA== - dependencies: - ember-cli-babel "^6.9.2" - ember-resize-observer-service@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/ember-resize-observer-service/-/ember-resize-observer-service-0.3.0.tgz#69b6e29bd6d742001ebe0ec70249f20f46fedc4a" @@ -9170,19 +9227,21 @@ ember-source-channel-url@^3.0.0: dependencies: node-fetch "^2.6.0" -ember-source@~3.24.0: - version "3.24.6" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.6.tgz#cf185b93fb16ad8475e98ebc47e6fb50b7de2556" - integrity sha512-F/CNQQLeF0QFKz7ahJ0JQQBbbvL8sx5XhsNJ9GnfjLA9ozGE1/nFfgkIOrcFszIVjMZKmEvq6RdsbbhOptfeNg== +ember-source@~3.27.2: + version "3.27.5" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.27.5.tgz#8e9ce24c17e7a16dc3c2b128d3d3e24ea79e6726" + integrity sha512-oSGM9mD6BuOcGilYqU+F2MtCferQhKWO3REX1P9qgN1Wzfa5kXjbjBBdPNWfBtg7bZLGM27H8JgiV6+t3uGegA== 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" + "@glimmer/vm-babel-plugins" "0.78.2" babel-plugin-debug-macros "^0.3.3" 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" @@ -9195,9 +9254,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-stargate@^0.2.0: @@ -9293,13 +9352,14 @@ ember-tracked-storage-polyfill@^1.0.0: dependencies: ember-cli-babel "^7.22.1" -ember-validators@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ember-validators/-/ember-validators-2.0.0.tgz#4100e17feb9c3a6cf4072732010697bbd674f8cb" - integrity sha512-OhXGN2UbFQY+lhkWOdW347NZsIWGj/fpTJbOfNxjyMQW/c3fvPEIvrhlvWf1JwHGKQTJDHpMQJgA/Luq39GDgQ== +ember-validators@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ember-validators/-/ember-validators-4.0.1.tgz#13beefdf185b00efd1b60e51b21380686d8994ba" + integrity sha512-QVHzzYQn17Ikz8EZVxEtjKRyr6fmwSUbjYpxjcuoZKN5Ub1jjU2LzPOXT6FJQet691UlBs35e6EjPkBOb+xOuA== dependencies: - ember-cli-babel "^6.9.2" - ember-require-module "^0.3.0" + "@embroider/macros" "^0.41.0" + ember-cli-babel "^7.26.3" + ember-cli-htmlbars "^5.7.1" "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" @@ -9532,12 +9592,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" - integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== +eslint-config-prettier@^8.3.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== -eslint-plugin-ember@^10.1.1: +eslint-plugin-ember@^10.4.2: version "10.6.1" resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-10.6.1.tgz#04ea84cc82307f64a2faa4f2855b30e5ebf9f722" integrity sha512-R+TN3jwhYQ2ytZCA1VkfJDZSGgHFOHjsHU1DrBlRXYRepThe56PpuGxywAyDvQ7inhoAz3e6G6M60PzpvjzmNg== @@ -9571,13 +9631,21 @@ eslint-plugin-node@^11.0.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^3.3.1: +eslint-plugin-prettier@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-qunit@^6.1.1: + 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@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -9618,7 +9686,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.17.0: +eslint@^7.27.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== @@ -9814,6 +9882,21 @@ execa@^4.0.0, execa@^4.0.3, execa@^4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + exists-sync@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" @@ -10264,7 +10347,7 @@ fixturify-project@^1.10.0: fixturify "^1.2.0" tmp "^0.0.33" -fixturify-project@^2.1.0: +fixturify-project@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fixturify-project/-/fixturify-project-2.1.1.tgz#a511dd26700c6b64ac271ef4393e7124f153c81f" integrity sha512-sP0gGMTr4iQ8Kdq5Ez0CVJOZOGWqzP5dv/veOTdFNywioKjkNWCHBi1q65DMpcNGUGeoOUWehyji274Q2wRgxA== @@ -10651,6 +10734,11 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -10676,7 +10764,7 @@ git-hooks-list@1.0.3: resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" integrity sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ== -git-repo-info@^2.0.0, git-repo-info@^2.1.1: +git-repo-info@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== @@ -11218,6 +11306,11 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + husky@^4.2.5: version "4.3.8" resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" @@ -11956,11 +12049,16 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jquery@^3.4.1, jquery@^3.5.0: +jquery@^3.4.1: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== +jquery@^3.5.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.1.tgz#fab0408f8b45fc19f956205773b62b292c147a16" + integrity sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw== + js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -12711,7 +12809,7 @@ markdown-it-terminal@0.2.1: lodash.merge "^4.6.2" markdown-it "^8.3.1" -markdown-it@^12.0.2: +markdown-it@^12.0.4: version "12.3.2" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== @@ -13538,7 +13636,7 @@ npm-normalize-package-bin@^1.0.0: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^8.1.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" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -13576,7 +13674,7 @@ npm-run-path@^3.0.0: dependencies: path-key "^3.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -13725,7 +13823,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -14335,7 +14433,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.2.1: +prettier@^2.3.0: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -14539,7 +14637,16 @@ qunit-dom@^1.6.0: ember-cli-babel "^7.23.0" ember-cli-version-checker "^5.1.1" -qunit@^2.13.0, qunit@^2.16.0: +qunit@^2.15.0: + version "2.19.3" + resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.19.3.tgz#bcf81a2e8d176dc19fe8dd358c4cbd08619af03a" + integrity sha512-vEnspSZ37u2oR01OA/IZ1Td5V7BvQYFECdKPv86JaBplDNa5IHg0v7jFSPoP5L5o78Dbi8sl7/ATtpRDAKlSdw== + dependencies: + commander "7.2.0" + node-watch "0.7.3" + tiny-glob "0.2.9" + +qunit@^2.16.0: version "2.19.1" resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.19.1.tgz#eb1afd188da9e47f07c13aa70461a1d9c4505490" integrity sha512-gSGuw0vErE/rNjnlBW/JmE7NNubBlGrDPQvsug32ejYhcVFuZec9yoU0+C30+UgeCGwq6Ap89K65dMGo+kDGZQ== @@ -15168,7 +15275,7 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12 is-core-module "^2.2.0" path-parse "^1.0.6" -resolve@^1.19.0, resolve@^1.22.1: +resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -15600,7 +15707,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -16644,12 +16751,13 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -torii@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/torii/-/torii-0.10.1.tgz#caad0a81e82189fc0483b65e68ee28041ad3590f" - integrity sha512-csUz/coeSumt9FjyIXLpRj0ii7TfH3fUm3x9rdf+XXnJ0tVTKqwCRynwY0HKuNkGzACyR84hog3B9a8BQefBHA== +torii@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/torii/-/torii-1.0.0-beta.1.tgz#77e23e9f2eb76a98ec76db8517f8f54f1ef2f62b" + integrity sha512-MtR0QB5YbcADa2eM2eQaWKAUTQuHgr9Biu9yJV0sQOXRMW9X0cdTPWhxYM3PSnSBRg28BAeMKjbsr2uPdayS+g== dependencies: - ember-cli-babel "^6.11.0" + ember-cli-babel "^7.26.10" + ember-cli-htmlbars "^5.7.2" tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" @@ -17192,7 +17300,7 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.1, uuid@^8.3.2: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -17225,10 +17333,10 @@ validate-peer-dependencies@^1.2.0: resolve-package-path "^3.1.0" semver "^7.3.2" -validated-changeset@0.10.0, validated-changeset@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/validated-changeset/-/validated-changeset-0.10.0.tgz#2e8188c089ab282c1b51fba3c289073f6bd14c8b" - integrity sha512-n8NB3ol6Tbi0O7bnq1wz81m5Wd1gfHw0HUcH4MatOfqO3DyXzWZV+bUaNq6wThXn20rMFB82C8pTNFSWbgXJLA== +validated-changeset@1.0.0, validated-changeset@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/validated-changeset/-/validated-changeset-1.0.0.tgz#a961b4a87953b6b12858b0477436360332493f4d" + integrity sha512-HeHGkC2BlmWTwtq5DTUMmFX18PAunuLbIs8A4CWoLc58QGKRF4jtR+F5XzP/19xysQXkMApazT2OphqJ+lKVwQ== vary@^1, vary@~1.1.2: version "1.1.2"