From 4d7c269d627136b3200b29d5463be776801a68f1 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Corvo Date: Thu, 21 Oct 2021 17:01:41 -0700 Subject: [PATCH 01/12] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20storybook/com?= =?UTF-8?q?ponents=20unmet=20peer=20dependency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix storybook/components unmet peer dependency --- addons/rose/package.json | 1 + yarn.lock | 42 ++++++++++++++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/addons/rose/package.json b/addons/rose/package.json index 7e167be63..7cb043175 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -50,6 +50,7 @@ "@storybook/addons": "^6.3.9", "@storybook/api": "^6.3.12", "@storybook/cli": "^6.3.10", + "@storybook/components": "^6.3.12", "@storybook/ember": "^6.3.8", "@storybook/ember-cli-storybook": "^0.4.0", "babel-eslint": "^10.1.0", diff --git a/yarn.lock b/yarn.lock index d9cd99d55..cabf52ea1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3514,6 +3514,36 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" +"@storybook/components@^6.3.12": + version "6.3.12" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.3.12.tgz#0c7967c60354c84afa20dfab4753105e49b1927d" + integrity sha512-kdQt8toUjynYAxDLrJzuG7YSNL6as1wJoyzNUaCfG06YPhvIAlKo7le9tS2mThVFN5e9nbKrW3N1V1sp6ypZXQ== + dependencies: + "@popperjs/core" "^2.6.0" + "@storybook/client-logger" "6.3.12" + "@storybook/csf" "0.0.1" + "@storybook/theming" "6.3.12" + "@types/color-convert" "^2.0.0" + "@types/overlayscrollbars" "^1.12.0" + "@types/react-syntax-highlighter" "11.0.5" + color-convert "^2.0.1" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.20" + markdown-to-jsx "^7.1.3" + memoizerific "^1.11.3" + overlayscrollbars "^1.13.1" + polished "^4.0.5" + prop-types "^15.7.2" + react-colorful "^5.1.2" + react-popper-tooltip "^3.1.1" + react-syntax-highlighter "^13.5.3" + react-textarea-autosize "^8.3.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + "@storybook/core-client@6.3.8": version "6.3.8" resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.3.8.tgz#9223b9f22ab86d205dac605bcef15ba0f0068e15" @@ -7514,9 +7544,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001265: - version "1.0.30001267" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001267.tgz#b1cf2937175afc0570e4615fc2d2f9069fa0ed30" - integrity sha512-r1mjTzAuJ9W8cPBGbbus8E0SKcUP7gn03R14Wk8FlAlqhH9hroy9nLqmpuXlfKEw/oILW+FGz47ipXV2O7x8lg== + version "1.0.30001270" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" + integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== capture-exit@^2.0.0: version "2.0.0" @@ -7774,9 +7804,9 @@ clean-css-promise@^0.1.0: pinkie-promise "^2.0.0" clean-css@^3.4.5, clean-css@^4.1.11, clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" From dbadbff1b9d4b6fee68694e48b69c8f9b00ba0f0 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Corvo Date: Fri, 22 Oct 2021 08:43:03 -0700 Subject: [PATCH 02/12] Add login test helper. Use the new login test helper in targets test --- ui/desktop/tests/end2end/targets.spec.js | 29 ++++++++---------------- ui/desktop/tests/end2end/test-helpers.js | 29 ++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/ui/desktop/tests/end2end/targets.spec.js b/ui/desktop/tests/end2end/targets.spec.js index e71211cf1..9bb4d0b31 100644 --- a/ui/desktop/tests/end2end/targets.spec.js +++ b/ui/desktop/tests/end2end/targets.spec.js @@ -25,33 +25,22 @@ test.afterEach(async () => { electronApp = null; // Not sure we should do this. }); -test.describe('Targets end to end test suite', async () => { +test.describe.only('Targets end to end test suite', async () => { test('Connects to a target', async () => { const boundaryWindow = await electronApp.firstWindow(); // The window that contains the app. + // Override local storage origin await boundaryWindow.evaluate(() => window.localStorage.setItem('desktop:origin', null) ); - const originValue = 'http://localhost:9200'; - const authLoginNameValue = 'admin'; - const authLoginPasswordValue = 'password'; - - // Fill the origin input - await boundaryWindow.waitForSelector('[name=host]'); - await boundaryWindow.fill('[name=host]', originValue); - - // Click the submit button - await boundaryWindow.waitForSelector('button[type="submit"]'); - await helpers.click(boundaryWindow, 'button[type="submit"]'); - - // Fill user & password - await boundaryWindow.fill('[name="identification"]', authLoginNameValue); - await boundaryWindow.fill('[name="password"]', authLoginPasswordValue); - - // Click submit - await boundaryWindow.waitForSelector('button[type="submit"]'); - await helpers.click(boundaryWindow, 'button[type="submit"]'); + // Perform the login + await helpers.login( + boundaryWindow, + 'http://localhost:9200', + 'admin', + 'password' + ); // Check we are in Targets await boundaryWindow.waitForURL('**/#/scopes/global/projects/targets'); diff --git a/ui/desktop/tests/end2end/test-helpers.js b/ui/desktop/tests/end2end/test-helpers.js index ba7e739fd..da35f237e 100644 --- a/ui/desktop/tests/end2end/test-helpers.js +++ b/ui/desktop/tests/end2end/test-helpers.js @@ -46,9 +46,34 @@ exports.returnExecutablePath = (platform, arch) => { /** * Performs a click with a workarouind due to an error with plain playwright click. * More info about the issue here: https://github.com/microsoft/playwright/issues/1808 - * @param {*} appWindow The current electron window. - * @param {*} selector The DOM element selector. + * @param {object} appWindow The electron window to perform the action. + * @param {string} selector The DOM element selector. */ exports.click = async (appWindow, selector) => { await appWindow.$eval(selector, (element) => element.click()); }; + +/** + * Performs login on the app window provided with the credentials provided. + * @param {object} appWindow The electron window to perform the action. + * @param {string} origin URL origin to set. + * @param {string} username Username to login. + * @param {string} password Password to login. + */ +exports.login = async (appWindow, origin, username, password) => { + // Fill the origin input + await appWindow.waitForSelector('[name=host]'); + await appWindow.fill('[name=host]', origin); + + // Click the set origin submit button + await appWindow.waitForSelector('button[type="submit"]'); + await this.click(appWindow, 'button[type="submit"]'); + + // Fill user & password + await appWindow.fill('[name="identification"]', username); + await appWindow.fill('[name="password"]', password); + + // Click submit + await appWindow.waitForSelector('button[type="submit"]'); + await this.click(appWindow, 'button[type="submit"]'); +}; From fd13808cc95e224d0eac8403c25059665c04784e Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Corvo Date: Fri, 22 Oct 2021 09:11:10 -0700 Subject: [PATCH 03/12] =?UTF-8?q?test:=20=F0=9F=92=8D=20Add=20login=20test?= =?UTF-8?q?=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add login test helper and use such helper in the tests --- .../tests/end2end/authentication.spec.js | 68 ++++++------------- ui/desktop/tests/end2end/targets.spec.js | 15 ++-- 2 files changed, 32 insertions(+), 51 deletions(-) diff --git a/ui/desktop/tests/end2end/authentication.spec.js b/ui/desktop/tests/end2end/authentication.spec.js index 93540c0f7..3ba899d13 100644 --- a/ui/desktop/tests/end2end/authentication.spec.js +++ b/ui/desktop/tests/end2end/authentication.spec.js @@ -4,12 +4,19 @@ const { _electron: electron } = require('playwright'); const helpers = require('./test-helpers'); let electronApp = null; +// Subdirectory within tests/end2end/screenshots where the screenshots of this test suite will be stored. const screenshotsDirectory = 'authentication/'; +// Path where the Boundary Desktop client binary is generated const executablePath = helpers.returnExecutablePath( process.platform, process.arch ); +// Set login variables +const originValue = 'http://localhost:9200'; +const loginUsername = 'admin'; +const loginPassword = 'password'; + test.beforeEach(async () => { electronApp = await electron.launch({ executablePath: executablePath, @@ -34,29 +41,15 @@ test.describe('Authentication end to end test suite', async () => { await boundaryWindow.evaluate(() => window.localStorage.setItem('desktop:origin', null) ); - const originValue = 'http://localhost:9200'; - const authLoginNameValue = 'admin'; - const authLoginPasswordValue = 'password'; - // Fill the origin input - await boundaryWindow.waitForSelector('[name=host]'); - await boundaryWindow.fill('[name=host]', originValue); - // Take screenshot - await boundaryWindow.screenshot({ - path: helpers.generateScreenshotPath( - screenshotsDirectory, - 'fillOrigin' - ), - fullPage: true, - }); + // Perform login + await helpers.login( + boundaryWindow, + originValue, + loginUsername, + loginPassword + ); - // Click the submit button - await boundaryWindow.waitForSelector('button[type="submit"]'); - await helpers.click(boundaryWindow, 'button[type="submit"]'); - - // Fill user & password - await boundaryWindow.fill('[name="identification"]', authLoginNameValue); - await boundaryWindow.fill('[name="password"]', authLoginPasswordValue); // Take screenshot await boundaryWindow.screenshot({ path: helpers.generateScreenshotPath( @@ -126,32 +119,13 @@ test.describe('Authentication end to end test suite', async () => { await boundaryWindow.evaluate(() => window.localStorage.setItem('desktop:origin', null) ); - const originValue = 'http://localhost:9200'; - const authLoginNameValue = 'admin'; - const authLoginPasswordValue = '123456'; - - // Fill the origin input - await boundaryWindow.fill('[name=host]', originValue); - // Take screenshot - await boundaryWindow.screenshot({ - path: helpers.generateScreenshotPath( - screenshotsDirectory, - 'fillOrigin' - ), - fullPage: true, - }); - - // Click the submit button - await boundaryWindow.waitForSelector('button[type="submit"]'); - await helpers.click(boundaryWindow, 'button[type="submit"]'); - - // Fill user & password - await boundaryWindow.fill('[name="identification"]', authLoginNameValue); - await boundaryWindow.fill('[name="password"]', authLoginPasswordValue); - - // Click submit - await boundaryWindow.waitForSelector('button[type="submit"]'); - await helpers.click(boundaryWindow, 'button[type="submit"]'); + // Perform login + await helpers.login( + boundaryWindow, + originValue, + loginUsername, + '123456789' + ); // Wait for the notification await boundaryWindow.waitForSelector('.rose-notification-body'); diff --git a/ui/desktop/tests/end2end/targets.spec.js b/ui/desktop/tests/end2end/targets.spec.js index 9bb4d0b31..3baa15199 100644 --- a/ui/desktop/tests/end2end/targets.spec.js +++ b/ui/desktop/tests/end2end/targets.spec.js @@ -4,12 +4,19 @@ const { _electron: electron } = require('playwright'); const helpers = require('./test-helpers'); let electronApp = null; +// Subdirectory within tests/end2end/screenshots where the screenshots of this test suite will be stored. const screenshotsDirectory = 'targets/'; +// Path where the Boundary Desktop client binary is generated const executablePath = helpers.returnExecutablePath( process.platform, process.arch ); +// Set login variables +const originValue = 'http://localhost:9200'; +const loginUsername = 'admin'; +const loginPassword = 'password'; + test.beforeEach(async () => { electronApp = await electron.launch({ executablePath: executablePath, @@ -25,7 +32,7 @@ test.afterEach(async () => { electronApp = null; // Not sure we should do this. }); -test.describe.only('Targets end to end test suite', async () => { +test.describe('Targets end to end test suite', async () => { test('Connects to a target', async () => { const boundaryWindow = await electronApp.firstWindow(); // The window that contains the app. @@ -37,9 +44,9 @@ test.describe.only('Targets end to end test suite', async () => { // Perform the login await helpers.login( boundaryWindow, - 'http://localhost:9200', - 'admin', - 'password' + originValue, + loginUsername, + loginPassword ); // Check we are in Targets From 6397acb103cb143ddd7ae71a6d1056c8584e7b70 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 22 Oct 2021 18:06:32 -0400 Subject: [PATCH 04/12] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20pass=20@onChan?= =?UTF-8?q?ge=20to=20checkbox=20components?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this enables contextual usage --- addons/rose/addon/components/rose/form/checkbox/index.hbs | 1 + ui/admin/app/components/form/auth-method/oidc/index.hbs | 2 +- ui/admin/app/components/form/credential-store/index.hbs | 2 +- ui/admin/app/components/form/group/add-members/index.hbs | 2 +- ui/admin/app/components/form/host-set/add-hosts/index.hbs | 2 +- ui/admin/app/components/form/role/add-principals/index.hbs | 2 +- .../components/form/target/add-credential-libraries/index.hbs | 2 +- ui/admin/app/components/form/target/add-host-sets/index.hbs | 2 +- ui/admin/app/components/form/user/add-accounts/index.hbs | 2 +- 9 files changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/rose/addon/components/rose/form/checkbox/index.hbs b/addons/rose/addon/components/rose/form/checkbox/index.hbs index d9b655458..c8f759924 100644 --- a/addons/rose/addon/components/rose/form/checkbox/index.hbs +++ b/addons/rose/addon/components/rose/form/checkbox/index.hbs @@ -6,6 +6,7 @@ id={{this.id}} name={{@name}} disabled={{@disabled}} + onChange={{@onChange}} @type="checkbox" @checked={{if @checked true false}} aria-describedby="{{if @helperText (concat 'helper-text-' this.id)}} {{if @error (concat 'errors-' this.id)}}" /> diff --git a/ui/admin/app/components/form/auth-method/oidc/index.hbs b/ui/admin/app/components/form/auth-method/oidc/index.hbs index 75f421880..1e5cf26d8 100644 --- a/ui/admin/app/components/form/auth-method/oidc/index.hbs +++ b/ui/admin/app/components/form/auth-method/oidc/index.hbs @@ -81,7 +81,7 @@ @label={{t 'form.disable_discovered_config_validation.label'}} @helperText={{t 'form.disable_discovered_config_validation.help'}} @checked={{@model.attributes.disable_discovered_config_validation}} - onChange={{fn + @onChange={{fn (mut @model.attributes.disable_discovered_config_validation) (if @model.attributes.disable_discovered_config_validation false true) }} diff --git a/ui/admin/app/components/form/credential-store/index.hbs b/ui/admin/app/components/form/credential-store/index.hbs index 4da5e3ad3..8f8850784 100644 --- a/ui/admin/app/components/form/credential-store/index.hbs +++ b/ui/admin/app/components/form/credential-store/index.hbs @@ -145,7 +145,7 @@ @label={{t 'resources.credential-store.form.tls_skip_verify.label'}} @helperText={{t 'resources.credential-store.form.tls_skip_verify.help'}} @checked={{@model.attributes.tls_skip_verify}} - onChange={{fn + @onChange={{fn (mut @model.attributes.tls_skip_verify) (if @model.attributes.tls_skip_verify false true) }} diff --git a/ui/admin/app/components/form/group/add-members/index.hbs b/ui/admin/app/components/form/group/add-members/index.hbs index 9a2767a7c..49d5233cb 100644 --- a/ui/admin/app/components/form/group/add-members/index.hbs +++ b/ui/admin/app/components/form/group/add-members/index.hbs @@ -27,7 +27,7 @@ {{#if user.accountName}} {{! diff --git a/ui/admin/app/components/form/host-set/add-hosts/index.hbs b/ui/admin/app/components/form/host-set/add-hosts/index.hbs index 9f5a0fcd1..9eaa01c32 100644 --- a/ui/admin/app/components/form/host-set/add-hosts/index.hbs +++ b/ui/admin/app/components/form/host-set/add-hosts/index.hbs @@ -28,7 +28,7 @@ {{host.name}} diff --git a/ui/admin/app/components/form/role/add-principals/index.hbs b/ui/admin/app/components/form/role/add-principals/index.hbs index af5e73e3d..403de7679 100644 --- a/ui/admin/app/components/form/role/add-principals/index.hbs +++ b/ui/admin/app/components/form/role/add-principals/index.hbs @@ -28,7 +28,7 @@ {{#if principal.accountName}} {{! diff --git a/ui/admin/app/components/form/target/add-credential-libraries/index.hbs b/ui/admin/app/components/form/target/add-credential-libraries/index.hbs index d07c27884..ce0c51912 100644 --- a/ui/admin/app/components/form/target/add-credential-libraries/index.hbs +++ b/ui/admin/app/components/form/target/add-credential-libraries/index.hbs @@ -27,7 +27,7 @@ {{credentialLibrary.name}} diff --git a/ui/admin/app/components/form/target/add-host-sets/index.hbs b/ui/admin/app/components/form/target/add-host-sets/index.hbs index 1885700fd..ca5c7a3e4 100644 --- a/ui/admin/app/components/form/target/add-host-sets/index.hbs +++ b/ui/admin/app/components/form/target/add-host-sets/index.hbs @@ -29,7 +29,7 @@ {{hostSet.name}} diff --git a/ui/admin/app/components/form/user/add-accounts/index.hbs b/ui/admin/app/components/form/user/add-accounts/index.hbs index 03f00ded9..1e9dd1380 100644 --- a/ui/admin/app/components/form/user/add-accounts/index.hbs +++ b/ui/admin/app/components/form/user/add-accounts/index.hbs @@ -29,7 +29,7 @@ {{account.accountName}} From 22c5140dce7423dedef738bf72533de7ad616ec5 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Sat, 23 Oct 2021 10:44:46 -0400 Subject: [PATCH 05/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20remove=20ember-cl?= =?UTF-8?q?i-update=20deps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/package.json | 1 - addons/auth/package.json | 1 - addons/rose/package.json | 1 - ui/admin/package.json | 1 - yarn.lock | 382 ++------------------------------------- 5 files changed, 18 insertions(+), 368 deletions(-) diff --git a/addons/api/package.json b/addons/api/package.json index 1012dd943..9ed30927e 100644 --- a/addons/api/package.json +++ b/addons/api/package.json @@ -48,7 +48,6 @@ "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-cli-update": "^0.54.6", "ember-copy": "^2.0.1", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", diff --git a/addons/auth/package.json b/addons/auth/package.json index d47105134..462c1a970 100644 --- a/addons/auth/package.json +++ b/addons/auth/package.json @@ -41,7 +41,6 @@ "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-cli-update": "^0.54.6", "ember-cookies": "^0.5.2", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", diff --git a/addons/rose/package.json b/addons/rose/package.json index 7e167be63..7c654b351 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -63,7 +63,6 @@ "ember-cli-sass": "^10.0.1", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-cli-update": "^0.54.6", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", "ember-inline-svg": "^1.0.0", diff --git a/ui/admin/package.json b/ui/admin/package.json index 215991910..9ff71681b 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -63,7 +63,6 @@ "ember-cli-sri": "^2.1.1", "ember-cli-template-lint": "^2.0.2", "ember-cli-terser": "^4.0.2", - "ember-cli-update": "^0.54.6", "ember-concurrency": "^1.3.0", "ember-exam": "^6.1.0", "ember-export-application-global": "^2.0.1", diff --git a/yarn.lock b/yarn.lock index d9cd99d55..462c131b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6324,28 +6324,6 @@ body@^5.1.0: raw-body "~1.1.0" safe-json-parse "~1.0.1" -boilerplate-update@0.37.4: - version "0.37.4" - resolved "https://registry.yarnpkg.com/boilerplate-update/-/boilerplate-update-0.37.4.tgz#51993eccd468fab69457dff799c29b632faf942e" - integrity sha512-BMUFsxjugQAsRXHT3QPWckpiB+0jp7YU7U7cGSDbL7IATMfJJDCE7/LGppaIzN97/3iLemkbCeRpmjZWRHYdMA== - dependencies: - cpr "^3.0.1" - debug "^4.1.1" - execa "^3.0.0" - git-diff-apply "0.22.7" - https-proxy-agent "^3.0.0" - inquirer "^7.0.0" - merge-package.json "^3.1.8" - npm-package-arg "^7.0.0" - npx "^10.2.0" - open "^7.0.0" - p-reduce "^2.0.0" - pacote "10.2.1" - rimraf "^3.0.0" - semver "^6.0.0" - tmp "0.1.0" - which "^2.0.1" - boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -7286,30 +7264,6 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== - dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" - fs-minipass "^2.0.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" - promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" - unique-filename "^1.1.1" - cacache@^15.0.5: version "15.2.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" @@ -7689,7 +7643,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3, chownr@^1.1.4: +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -7897,15 +7851,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -7915,15 +7860,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -8401,16 +8337,6 @@ cp-file@^7.0.0: nested-error-stacks "^2.0.0" p-event "^4.1.0" -cpr@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" - integrity sha1-uaVQOLfNgaNcF7l2GJW9hJau8eU= - dependencies: - graceful-fs "^4.1.5" - minimist "^1.2.0" - mkdirp "~0.5.1" - rimraf "^2.5.4" - cpy@^8.1.1: version "8.1.2" resolved "https://registry.yarnpkg.com/cpy/-/cpy-8.1.2.tgz#e339ea54797ad23f8e3919a5cffd37bfc3f25935" @@ -9895,23 +9821,6 @@ ember-cli-typescript@^4.0.0, ember-cli-typescript@^4.1.0, ember-cli-typescript@^ stagehand "^1.0.0" walk-sync "^2.2.0" -ember-cli-update@^0.54.6: - version "0.54.6" - resolved "https://registry.yarnpkg.com/ember-cli-update/-/ember-cli-update-0.54.6.tgz#e9f405b4737558e53874025731568ae7c005a48c" - integrity sha512-0YWkfACDrITm9sl3UNrP8BMYXbRt+iPbAUUv/tY3JWveat8j3aHBR1SI4MqESt3ELkLeLbftTQfU42Tx4Bl/Kg== - dependencies: - boilerplate-update "0.37.4" - debug "^4.1.1" - execa "^3.4.0" - fs-extra "^8.0.0" - inquirer "^7.0.0" - npm-package-arg "^7.0.0" - resolve "^1.10.0" - semver "^6.0.0" - tmp "0.1.0" - update-notifier "^4.0.0" - yargs "^15.1.0" - ember-cli-version-checker@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72" @@ -11334,7 +11243,7 @@ execa@^2.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^3.0.0, execa@^3.4.0: +execa@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== @@ -11962,7 +11871,7 @@ fixturify-project@^2.1.1: tmp "^0.0.33" type-fest "^0.11.0" -fixturify@^1.0.0, fixturify@^1.2.0: +fixturify@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-1.3.0.tgz#163c468093c7c4d90b70cde39fd6325f6528b25d" integrity sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ== @@ -12538,18 +12447,6 @@ git-cz@^4.3.1: resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.6.tgz#1250c486f01724e801a630b848fd8786f7e67e90" integrity sha512-WtQEXqetJSi9LKPI77bMdSQWvLGjE93egVbR0zjXd1KFKrFvo/YE/UuGNcMeBDiwzxfQBhjyV7Hn0YUZ8Q0BcQ== -git-diff-apply@0.22.7: - version "0.22.7" - resolved "https://registry.yarnpkg.com/git-diff-apply/-/git-diff-apply-0.22.7.tgz#25989575c025f45f066579233894ba8a4afb7e28" - integrity sha512-tYExAfjrgh/ImXuOmHYnL4dC5spf3e4+mJSYUoaQTZkys3krEX303yFxhVxMTzljsWScgrWj0iGL3Lb0yROhtQ== - dependencies: - debug "^4.0.0" - fixturify "^1.0.0" - fs-extra "^8.0.0" - tmp "0.1.0" - uuid "^3.1.0" - yargs "^15.0.0" - git-fetch-pack@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/git-fetch-pack/-/git-fetch-pack-0.1.1.tgz#7703a32cf0db80f060d2766a34ac00d02cebcdf5" @@ -12706,13 +12603,6 @@ global-dirs@^0.1.0, global-dirs@^0.1.1: dependencies: ini "^1.3.4" -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - global-dirs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" @@ -12969,7 +12859,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -13323,7 +13213,7 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.9, hosted-git-info@^3.0.2, hosted-git-info@^3.0.8, hosted-git-info@^4.0.1: +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.9, hosted-git-info@^3.0.8, hosted-git-info@^4.0.1: version "3.0.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== @@ -13520,14 +13410,6 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" - integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - https-proxy-agent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" @@ -13712,11 +13594,6 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -13795,7 +13672,7 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^7.0.0, inquirer@^7.3.3: +inquirer@^7.3.3: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -13870,11 +13747,6 @@ invert-kv@^1.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -14150,14 +14022,6 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - is-installed-globally@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -14212,11 +14076,6 @@ is-npm@^1.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" @@ -14263,7 +14122,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-path-inside@^3.0.1, is-path-inside@^3.0.2: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -15056,7 +14915,7 @@ latest-version@^3.0.0: dependencies: package-json "^4.0.0" -latest-version@^5.0.0, latest-version@^5.1.0: +latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== @@ -15086,13 +14945,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - leek@0.0.24: version "0.0.24" resolved "https://registry.yarnpkg.com/leek/-/leek-0.0.24.tgz#e400e57f0e60d8ef2bd4d068dc428a54345dbcda" @@ -15243,20 +15095,6 @@ libnpmteam@^1.0.2: get-stream "^4.0.0" npm-registry-fetch "^4.0.0" -libnpx@10.2.2: - version "10.2.2" - resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.2.tgz#5a4171b9b92dd031463ef66a4af9f5cbd6b09572" - integrity sha512-ujaYToga1SAX5r7FU5ShMFi88CWpY75meNZtr6RtEyv4l2ZK3+Wgvxq2IqlwWBiDZOqhumdeiocPS1aKrCMe3A== - dependencies: - dotenv "^5.0.1" - npm-package-arg "^6.0.0" - rimraf "^2.6.2" - safe-buffer "^5.1.0" - update-notifier "^2.3.0" - which "^1.3.0" - y18n "^4.0.0" - yargs "^11.0.0" - libnpx@^10.2.4: version "10.2.4" resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.4.tgz#ef0e3258e29aef2ec7ee3276115e20e67f67d4ee" @@ -16299,14 +16137,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-package.json@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/merge-package.json/-/merge-package.json-3.1.8.tgz#2da5ee453c3745565b2fea3bf31dc6ef81e712d7" - integrity sha512-3/xqeMFcGqMpX79qNs3SDAsNNZ1Q31nqeH0ma4ilB++4SqDnkzmHcbDNEVy67RWIy+pdAdw6XnY31dircVG5lQ== - dependencies: - rfc6902-ordered "^4.0.5" - three-way-merger "0.6.3" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -16499,17 +16329,6 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz#63f5af868a38746ca7b33b03393ddf8c291244fe" - integrity sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" @@ -16558,7 +16377,7 @@ minipass@^2.2.0, minipass@^2.3.5: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== @@ -17136,16 +16955,6 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5" - integrity sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g== - dependencies: - hosted-git-info "^3.0.2" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - npm-package-arg@^8.0.0, npm-package-arg@^8.1.1: version "8.1.5" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" @@ -17155,7 +16964,7 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.1.1: semver "^7.3.4" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.6, npm-packlist@^1.4.8: +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -17173,15 +16982,6 @@ npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-pick-manifest@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-4.0.0.tgz#5e1b392a2a6310378b9bab32332597030ca073ce" - integrity sha512-SsYReLe/16UgSL6GKX6GO4o3RVBthVy1uuHq6kZ9mkPeQXpOHbrLZoV13i8fr3LQtET+pLPSfD13e4RIYfkX5Q== - dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^7.0.0" - semver "^5.4.1" - npm-profile@^4.0.2, npm-profile@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz#28ee94390e936df6d084263ee2061336a6a1581b" @@ -17191,7 +16991,7 @@ npm-profile@^4.0.2, npm-profile@^4.0.4: figgy-pudding "^3.4.1" npm-registry-fetch "^4.0.0" -npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.7, npm-registry-fetch@^5.0.1, npm-registry-fetch@~8.1.1: +npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.7, npm-registry-fetch@~8.1.1: version "8.1.5" resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz#33270c6722030c2d158a970d1327dcd9a149b5c5" integrity sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg== @@ -17246,7 +17046,7 @@ npm-user-validate@^1.0.1: resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== -npm@5.1.0, npm@~6.14.6: +npm@~6.14.6: version "6.14.15" resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.15.tgz#97dd51af5b5d6225b611b40c5cb4d31da1d467fe" integrity sha512-dkcQc4n+DiJAMYG2haNAMyJbmuvevjXz+WC9dCUzodw8EovwTIc6CATSsTEplCY6c0jG4OshxFGFJsrnKJguWA== @@ -17377,14 +17177,6 @@ npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -npx@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/npx/-/npx-10.2.2.tgz#de4be1b76e6bcbf750486925b34a07eed1db01b4" - integrity sha512-eImmySusyeWphzs5iNh791XbZnZG0FSNvM4KSah34pdQQIDsdTDhIwg1sjN3AIVcjGLpbQ/YcfqHPshKZQK1fA== - dependencies: - libnpx "10.2.2" - npm "5.1.0" - nth-check@^1.0.2, nth-check@^2.0.0, nth-check@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -17563,7 +17355,7 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.1: +open@^7.0.2, open@^7.0.3, open@^7.2.1: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -17655,15 +17447,6 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -17823,11 +17606,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-reduce@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" - integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== - p-timeout@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" @@ -17872,31 +17650,6 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -pacote@10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-10.2.1.tgz#4107f72eeaaacb47eb68952ed31c050bab9d3f94" - integrity sha512-sPHVOF7uKY8yDivKYimb5l3D8BvNNjR+9FmzkThOTtftkddGY/C6uENVkgc3HQtOpCX8R2qztkSAOI369bgLEA== - dependencies: - cacache "^13.0.1" - chownr "^1.1.3" - fs-minipass "^2.0.0" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.1" - minipass-fetch "^1.2.1" - npm-package-arg "^7.0.0" - npm-packlist "^1.4.6" - npm-pick-manifest "^4.0.0" - npm-registry-fetch "^5.0.1" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - read-package-json-fast "^1.0.3" - semver "^6.3.0" - ssri "^7.1.0" - tar "^5.0.5" - which "^2.0.1" - pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: version "9.5.12" resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" @@ -18828,7 +18581,7 @@ punycode@^1.2.4, punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -pupa@^2.0.1, pupa@^2.1.1: +pupa@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== @@ -19250,14 +19003,6 @@ read-installed@~4.0.3: optionalDependencies: graceful-fs "^4.1.2" -read-package-json-fast@^1.0.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz#fba77b0b0d66b1ab344e214cb0876577e749c423" - integrity sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ== - dependencies: - json-parse-even-better-errors "^2.3.0" - npm-normalize-package-bin "^1.0.1" - "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13, read-package-json@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" @@ -20051,19 +19796,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfc6902-ordered@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/rfc6902-ordered/-/rfc6902-ordered-4.0.5.tgz#054a23984401ad276aa668def89e010038e4dd95" - integrity sha512-OsdXZ7FP8DPXd+p+qRxAYi2yFsgAzTp4+ZuvhJri6lLyZYsm3zvGGq5qrmN/jmmv06IV/KVDT062owHUc2Ec+A== - dependencies: - debug "^4.0.0" - rfc6902 "^3.0.1" - -rfc6902@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-3.1.1.tgz#24fc3b2568496100ac507c2e27e61ec5a1c134dd" - integrity sha512-aHiEm2S4mQSyyIaK7NVotfmVkgOOn1K9iuuSCIKJ8eIAte/8o06Vp06Z2NcLrmMahDmA+2F6oHx33P4NOQ1JnQ== - rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.1, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -20973,14 +20705,6 @@ ssri@^6.0.0, ssri@^6.0.1, ssri@^6.0.2: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0, ssri@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.1.tgz#33e44f896a967158e3c63468e47ec46613b95b5f" - integrity sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw== - dependencies: - figgy-pudding "^3.5.1" - minipass "^3.1.1" - ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" @@ -21583,7 +21307,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.19, tar@^5.0.5, tar@^6.0.2, tar@^6.0.5, tar@^6.1.0, tar@^6.1.9: +tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.19, tar@^6.0.2, tar@^6.0.5, tar@^6.1.0, tar@^6.1.9: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -21743,13 +21467,6 @@ text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== -three-way-merger@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/three-way-merger/-/three-way-merger-0.6.3.tgz#ad4d9cd889f0c81ab2e820301a4663ee5def0334" - integrity sha512-sjXsAqIiluhRBvbXfri1dBI5NSqfl/fe8R3QypAR15qeMRrsBodrGeROBtve2BQnxB9Ub6Fs0e/H1OZdaELD7A== - dependencies: - semver "^6.0.0" - throttle-debounce@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" @@ -21863,7 +21580,7 @@ tmp@0.0.33, tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@0.1.0, tmp@^0.1.0: +tmp@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== @@ -22510,25 +22227,6 @@ update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" -update-notifier@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - update-notifier@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -22717,7 +22415,7 @@ uuid-browser@^3.1.0: resolved "https://registry.yarnpkg.com/uuid-browser/-/uuid-browser-3.1.0.tgz#0f05a40aef74f9e5951e20efbf44b11871e56410" integrity sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA= -uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -23202,15 +22900,6 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -23366,7 +23055,7 @@ yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.4, yargs-parser@^15.0.1, yargs-parser@^18.1.2, yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^7.0.0, yargs-parser@^9.0.2, yargs-parser@~20.2.7: +yargs-parser@20.2.4, yargs-parser@^15.0.1, yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^7.0.0, yargs-parser@~20.2.7: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -23394,24 +23083,6 @@ yargs@16.2.0, yargs@^16.0.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" - integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - yargs@^14.2.3: version "14.2.3" resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" @@ -23429,23 +23100,6 @@ yargs@^14.2.3: y18n "^4.0.0" yargs-parser "^15.0.1" -yargs@^15.0.0, yargs@^15.1.0: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" From 0879a0430db1475b2ec1d970eb455147a3592701 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Sat, 23 Oct 2021 11:48:10 -0400 Subject: [PATCH 06/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20upgrade=20deps=20?= =?UTF-8?q?for=20ember=203.28=20and=20fix=20qunit=20lint=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/.editorconfig | 3 - addons/api/.eslintrc.js | 5 + addons/api/package.json | 3 +- addons/api/tests/unit/models/base-test.js | 18 +-- .../api/tests/unit/services/storage-test.js | 2 +- addons/auth/.editorconfig | 3 - addons/auth/.eslintrc.js | 5 + addons/auth/package.json | 3 +- addons/core/.editorconfig | 3 - addons/core/.eslintrc.js | 5 + addons/core/package.json | 3 +- addons/rose/.editorconfig | 3 - addons/rose/.eslintrc.js | 5 + addons/rose/package.json | 3 +- .../integration/components/rose/badge-test.js | 1 + .../components/rose/button-test.js | 2 +- .../components/rose/dropdown/button-test.js | 2 +- .../components/rose/form/checkbox-test.js | 8 +- .../components/rose/form/radio/group-test.js | 24 ++-- .../components/rose/form/radio/radio-test.js | 12 +- .../modifiers/on-click-outside-test.js | 1 + package.json | 2 +- ui/admin/.editorconfig | 3 - ui/admin/.eslintrc.js | 5 + ui/admin/package.json | 5 +- .../tests/acceptance/accounts/create-test.js | 6 +- .../tests/acceptance/accounts/delete-test.js | 4 +- .../acceptance/accounts/set-password-test.js | 14 +-- .../tests/acceptance/accounts/update-test.js | 10 +- .../acceptance/auth-methods/delete-test.js | 4 +- .../acceptance/auth-methods/oidc-test.js | 68 ++++++------ .../acceptance/auth-methods/update-test.js | 44 +------- .../tests/acceptance/authentication-test.js | 36 +++--- .../tests/acceptance/groups/create-test.js | 6 +- .../tests/acceptance/groups/delete-test.js | 4 +- .../tests/acceptance/groups/update-test.js | 6 +- .../tests/acceptance/roles/delete-test.js | 4 +- .../tests/acceptance/roles/update-test.js | 6 +- .../tests/acceptance/users/create-test.js | 6 +- .../tests/acceptance/users/delete-test.js | 4 +- .../tests/acceptance/users/update-test.js | 6 +- ui/desktop/.editorconfig | 3 - ui/desktop/.eslintrc.js | 5 + ui/desktop/package.json | 5 +- ui/desktop/tests/unit/services/ipc-test.js | 2 +- yarn.lock | 105 ++++++++++++++++++ 46 files changed, 282 insertions(+), 195 deletions(-) diff --git a/addons/api/.editorconfig b/addons/api/.editorconfig index c35a00240..41302d1b0 100644 --- a/addons/api/.editorconfig +++ b/addons/api/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/addons/api/.eslintrc.js b/addons/api/.eslintrc.js index 49fb14100..114c6817f 100644 --- a/addons/api/.eslintrc.js +++ b/addons/api/.eslintrc.js @@ -56,5 +56,10 @@ module.exports = { plugins: ['node'], extends: ['plugin:node/recommended'], }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/addons/api/package.json b/addons/api/package.json index 9ed30927e..17434703b 100644 --- a/addons/api/package.json +++ b/addons/api/package.json @@ -66,6 +66,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", "prettier": "^2.4.0", @@ -73,7 +74,7 @@ "qunit-dom": "^2.0.0" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/addons/api/tests/unit/models/base-test.js b/addons/api/tests/unit/models/base-test.js index 228f47782..8e320cfdf 100644 --- a/addons/api/tests/unit/models/base-test.js +++ b/addons/api/tests/unit/models/base-test.js @@ -47,7 +47,7 @@ module('Unit | Model | base', function (hooks) { assert.notEqual(model.scopeID, scope.id); model.scopeModel = scope; assert.equal(model.scopeID, scope.id); - assert.equal(model.scope.isOrg, true); + assert.true(model.scope.isOrg); }); test('it has a displayName attribute', function (assert) { @@ -78,18 +78,18 @@ module('Unit | Model | base', function (hooks) { }, }); const model = store.peekRecord('user', '1'); - assert.equal(model.canSave, false); - assert.equal(model.cannotSave, true); + assert.false(model.canSave); + assert.true(model.cannotSave); // Should be able to save if dirty model.name = 'User'; - assert.equal(model.hasDirtyAttributes, true); - assert.equal(model.canSave, true); - assert.equal(model.cannotSave, false); + assert.true(model.hasDirtyAttributes); + assert.true(model.canSave); + assert.false(model.cannotSave); // Should not be able to save while currently saving model.transitionTo('updated.inFlight'); - assert.equal(model.isSaving, true); - assert.equal(model.canSave, false); - assert.equal(model.cannotSave, true); + assert.true(model.isSaving); + assert.false(model.canSave); + assert.true(model.cannotSave); model.transitionTo('loaded'); }); diff --git a/addons/api/tests/unit/services/storage-test.js b/addons/api/tests/unit/services/storage-test.js index 61702c765..5b955dc21 100644 --- a/addons/api/tests/unit/services/storage-test.js +++ b/addons/api/tests/unit/services/storage-test.js @@ -30,7 +30,7 @@ module('Unit | Service | storage', function (hooks) { assert.equal(service.getItem('foo'), 'bar'); }); - test("it's in-memory storage is implicitly refreshed for every test case", function (assert) { + test("it's in-memory storage is implicitly refreshed for every test case, and thus values from previous runs are not present", function (assert) { assert.expect(1); const service = this.owner.lookup('service:storage'); assert.notOk(service.getItem('foo')); diff --git a/addons/auth/.editorconfig b/addons/auth/.editorconfig index c35a00240..41302d1b0 100644 --- a/addons/auth/.editorconfig +++ b/addons/auth/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/addons/auth/.eslintrc.js b/addons/auth/.eslintrc.js index 49fb14100..114c6817f 100644 --- a/addons/auth/.eslintrc.js +++ b/addons/auth/.eslintrc.js @@ -56,5 +56,10 @@ module.exports = { plugins: ['node'], extends: ['plugin:node/recommended'], }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/addons/auth/package.json b/addons/auth/package.json index 462c1a970..531137952 100644 --- a/addons/auth/package.json +++ b/addons/auth/package.json @@ -58,6 +58,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", "prettier": "^2.4.0", @@ -65,7 +66,7 @@ "qunit-dom": "^2.0.0" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/addons/core/.editorconfig b/addons/core/.editorconfig index c35a00240..41302d1b0 100644 --- a/addons/core/.editorconfig +++ b/addons/core/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/addons/core/.eslintrc.js b/addons/core/.eslintrc.js index 49fb14100..114c6817f 100644 --- a/addons/core/.eslintrc.js +++ b/addons/core/.eslintrc.js @@ -56,5 +56,10 @@ module.exports = { plugins: ['node'], extends: ['plugin:node/recommended'], }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/addons/core/package.json b/addons/core/package.json index 199973f38..03c494d89 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -72,6 +72,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "faker": "^5.5.3", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", @@ -80,7 +81,7 @@ "qunit-dom": "^2.0.0" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/addons/rose/.editorconfig b/addons/rose/.editorconfig index c35a00240..41302d1b0 100644 --- a/addons/rose/.editorconfig +++ b/addons/rose/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/addons/rose/.eslintrc.js b/addons/rose/.eslintrc.js index bdb867ae9..46de42474 100644 --- a/addons/rose/.eslintrc.js +++ b/addons/rose/.eslintrc.js @@ -58,5 +58,10 @@ module.exports = { plugins: ['node'], extends: ['plugin:node/recommended'], }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/addons/rose/package.json b/addons/rose/package.json index 7c654b351..b84a76425 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -81,6 +81,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", "prettier": "^2.4.0", @@ -92,7 +93,7 @@ "sass-lint": "^1.13.1" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/addons/rose/tests/integration/components/rose/badge-test.js b/addons/rose/tests/integration/components/rose/badge-test.js index 56810d21b..96ff69f08 100644 --- a/addons/rose/tests/integration/components/rose/badge-test.js +++ b/addons/rose/tests/integration/components/rose/badge-test.js @@ -22,6 +22,7 @@ module('Integration | Component | rose/badge', function (hooks) { }); test('it styles content using @style', async function (assert) { + assert.expect(14); let styles = [ 'outline', 'dark', diff --git a/addons/rose/tests/integration/components/rose/button-test.js b/addons/rose/tests/integration/components/rose/button-test.js index 90cc10589..e5a685be5 100644 --- a/addons/rose/tests/integration/components/rose/button-test.js +++ b/addons/rose/tests/integration/components/rose/button-test.js @@ -23,7 +23,7 @@ module('Integration | Component | rose/button', function (hooks) { test('it is disabled when @disabled={{true}}', async function (assert) { await render(hbs``); - assert.equal(find('button').disabled, true); + assert.true(find('button').disabled); }); test('it adds a style class', async function (assert) { diff --git a/addons/rose/tests/integration/components/rose/dropdown/button-test.js b/addons/rose/tests/integration/components/rose/dropdown/button-test.js index b0bd48eb5..92129e5a7 100644 --- a/addons/rose/tests/integration/components/rose/dropdown/button-test.js +++ b/addons/rose/tests/integration/components/rose/dropdown/button-test.js @@ -23,7 +23,7 @@ module('Integration | Component | rose/dropdown/button', function (hooks) { test('it is disabled when @disabled={{true}}', async function (assert) { await render(hbs``); - assert.equal(find('button').disabled, true); + assert.true(find('button').disabled); }); test('it adds a style class', async function (assert) { diff --git a/addons/rose/tests/integration/components/rose/form/checkbox-test.js b/addons/rose/tests/integration/components/rose/form/checkbox-test.js index 594704918..cd131f0b1 100644 --- a/addons/rose/tests/integration/components/rose/form/checkbox-test.js +++ b/addons/rose/tests/integration/components/rose/form/checkbox-test.js @@ -60,17 +60,17 @@ module('Integration | Component | rose/form/checkbox', function (hooks) { test('it is not checked by default', async function (assert) { await render(hbs``); - assert.equal(find('input').checked, false); + assert.false(find('input').checked); }); test('it is not disabled by default', async function (assert) { await render(hbs``); - assert.equal(find('input').disabled, false); + assert.false(find('input').disabled); }); test('it is checked when @checked={{true}}', async function (assert) { await render(hbs``); - assert.equal(find('input').checked, true); + assert.true(find('input').checked); }); test('it marks error when @error={{true}}', async function (assert) { @@ -80,6 +80,6 @@ module('Integration | Component | rose/form/checkbox', function (hooks) { test('it is disabled when @disabled={{true}}', async function (assert) { await render(hbs``); - assert.equal(find('input').disabled, true); + assert.true(find('input').disabled); }); }); diff --git a/addons/rose/tests/integration/components/rose/form/radio/group-test.js b/addons/rose/tests/integration/components/rose/form/radio/group-test.js index dfd2e4bce..4354004e7 100644 --- a/addons/rose/tests/integration/components/rose/form/radio/group-test.js +++ b/addons/rose/tests/integration/components/rose/form/radio/group-test.js @@ -43,13 +43,13 @@ module('Integration | Component | rose/form/radio/group', function (hooks) { `); - assert.equal(findAll('[type="radio"]')[0].checked, false); - assert.equal(findAll('[type="radio"]')[1].checked, true); + assert.false(findAll('[type="radio"]')[0].checked); + assert.true(findAll('[type="radio"]')[1].checked); await click(findAll('[type="radio"]')[0]); - assert.equal(findAll('[type="radio"]')[0].checked, true); - assert.equal(findAll('[type="radio"]')[1].checked, false); + assert.true(findAll('[type="radio"]')[0].checked); + assert.false(findAll('[type="radio"]')[1].checked); }); test('it reflects active radiofield value in @selectedValue and triggers a @changed function', async function (assert) { @@ -100,19 +100,19 @@ module('Integration | Component | rose/form/radio/group', function (hooks) { `); - assert.equal(findAll('[type="radio"]')[0].checked, false); - assert.equal(findAll('[type="radio"]')[1].checked, false); + assert.false(findAll('[type="radio"]')[0].checked); + assert.false(findAll('[type="radio"]')[1].checked); this.set('selectedValue', 'flamingo'); - assert.equal(findAll('[type="radio"]')[0].checked, false); - assert.equal(findAll('[type="radio"]')[1].checked, true); + assert.false(findAll('[type="radio"]')[0].checked); + assert.true(findAll('[type="radio"]')[1].checked); this.set('selectedValue', 'pegion'); - assert.equal(findAll('[type="radio"]')[0].checked, true); - assert.equal(findAll('[type="radio"]')[1].checked, false); + assert.true(findAll('[type="radio"]')[0].checked); + assert.false(findAll('[type="radio"]')[1].checked); this.set('selectedValue', 'dog'); - assert.equal(findAll('[type="radio"]')[0].checked, false); - assert.equal(findAll('[type="radio"]')[1].checked, false); + assert.false(findAll('[type="radio"]')[0].checked); + assert.false(findAll('[type="radio"]')[1].checked); }); }); diff --git a/addons/rose/tests/integration/components/rose/form/radio/radio-test.js b/addons/rose/tests/integration/components/rose/form/radio/radio-test.js index 56c8caebc..af0be8d54 100644 --- a/addons/rose/tests/integration/components/rose/form/radio/radio-test.js +++ b/addons/rose/tests/integration/components/rose/form/radio/radio-test.js @@ -28,25 +28,25 @@ module('Integration | Component | rose/form/radio/radio', function (hooks) { await render( hbs`` ); - assert.equal(await find('input').checked, true); + assert.true(await find('input').checked); }); test('it is not checked when @value and @selectedValue values are different', async function (assert) { await render(hbs``); - assert.equal(await find('input').checked, false); + assert.false(await find('input').checked); await render(hbs``); - assert.equal(await find('input').checked, false); + assert.false(await find('input').checked); await render( hbs`` ); - assert.equal(await find('input').checked, false); + assert.false(await find('input').checked); }); test('it is not disabled by default', async function (assert) { await render(hbs``); - assert.equal(await find('input').disabled, false); + assert.false(await find('input').disabled); }); test('it is not in error state by default', async function (assert) { @@ -56,7 +56,7 @@ module('Integration | Component | rose/form/radio/radio', function (hooks) { test('it is disabled when @disabled={{true}}', async function (assert) { await render(hbs``); - assert.equal(await find('input').disabled, true); + assert.true(await find('input').disabled); }); test('it is in error state when @error={{true}}', async function (assert) { diff --git a/addons/rose/tests/integration/modifiers/on-click-outside-test.js b/addons/rose/tests/integration/modifiers/on-click-outside-test.js index 7318ef423..294134263 100644 --- a/addons/rose/tests/integration/modifiers/on-click-outside-test.js +++ b/addons/rose/tests/integration/modifiers/on-click-outside-test.js @@ -7,6 +7,7 @@ module('Integration | Modifier | on-click-outside', function (hooks) { setupRenderingTest(hooks); test('it fires event when an outside element is clicked', async function (assert) { + assert.expect(2); this.set('clickedOutside', (element, event) => { assert.ok(element); assert.equal(event.target.id, 'outside'); diff --git a/package.json b/package.json index cef044455..275cf5d0a 100755 --- a/package.json +++ b/package.json @@ -89,6 +89,6 @@ } }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" } } diff --git a/ui/admin/.editorconfig b/ui/admin/.editorconfig index c35a00240..41302d1b0 100644 --- a/ui/admin/.editorconfig +++ b/ui/admin/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/ui/admin/.eslintrc.js b/ui/admin/.eslintrc.js index 5062441ff..c926d2400 100644 --- a/ui/admin/.eslintrc.js +++ b/ui/admin/.eslintrc.js @@ -55,5 +55,10 @@ module.exports = { 'node/no-unpublished-require': 'off', }, }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/ui/admin/package.json b/ui/admin/package.json index 9ff71681b..61d9ff33c 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -51,7 +51,7 @@ "ember-a11y-testing": "^4.2.0", "ember-auto-import": "^1.12.0", "ember-breadcrumbs": "^0.2.3", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-app-version": "^5.0.0", "ember-cli-babel": "^7.26.6", "ember-cli-code-coverage": "^1.0.3", @@ -82,6 +82,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "faker": "^5.5.3", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", @@ -94,7 +95,7 @@ "sinon": "^11.1.2" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/ui/admin/tests/acceptance/accounts/create-test.js b/ui/admin/tests/acceptance/accounts/create-test.js index e68e69695..e852a5b64 100644 --- a/ui/admin/tests/acceptance/accounts/create-test.js +++ b/ui/admin/tests/acceptance/accounts/create-test.js @@ -150,12 +150,12 @@ module('Acceptance | accounts | create', function (hooks) { await fillIn('[name="name"]', 'new account'); await click('form [type="submit"]'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/accounts/delete-test.js b/ui/admin/tests/acceptance/accounts/delete-test.js index 8b78b1834..da71a395a 100644 --- a/ui/admin/tests/acceptance/accounts/delete-test.js +++ b/ui/admin/tests/acceptance/accounts/delete-test.js @@ -93,8 +93,8 @@ module('Acceptance | accounts | delete', function (hooks) { await visit(urls.account); await click('.rose-layout-page-actions .rose-dropdown-button-danger'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); diff --git a/ui/admin/tests/acceptance/accounts/set-password-test.js b/ui/admin/tests/acceptance/accounts/set-password-test.js index 89f9ce3e7..67939ab83 100644 --- a/ui/admin/tests/acceptance/accounts/set-password-test.js +++ b/ui/admin/tests/acceptance/accounts/set-password-test.js @@ -100,13 +100,13 @@ module('Acceptance | accounts | set password', function (hooks) { // NOTE: since set password is a tabbed route with easy navigation away // from the form, and the form does not directly operate on a model instance, // a "cancel" flow doesn't make much sense. Disabling for now. - // test('can cancel setting new password', async function (assert) { - // assert.expect(1); - // await visit(urls.setPassword); - // await fillIn('[name="password"]', 'update password'); - // await click('form button:not([type="submit"])'); - // assert.notOk(find('[name="password"]').textContent.trim()); - // }); + test.skip('can cancel setting new password', async function (assert) { + assert.expect(1); + await visit(urls.setPassword); + await fillIn('[name="password"]', 'update password'); + await click('form button:not([type="submit"])'); + assert.notOk(find('[name="password"]').textContent.trim()); + }); test('errors are displayed when setting password fails', async function (assert) { assert.expect(1); diff --git a/ui/admin/tests/acceptance/accounts/update-test.js b/ui/admin/tests/acceptance/accounts/update-test.js index 163b7ac9e..139beeccf 100644 --- a/ui/admin/tests/acceptance/accounts/update-test.js +++ b/ui/admin/tests/acceptance/accounts/update-test.js @@ -103,8 +103,8 @@ module('Acceptance | accounts | update', function (hooks) { await fillIn('[name="name"]', 'save account'); await click('form [type="submit"]'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); @@ -136,12 +136,12 @@ module('Acceptance | accounts | update', function (hooks) { await fillIn('[name="name"]', 'existing account'); await click('form [type="submit"]'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/auth-methods/delete-test.js b/ui/admin/tests/acceptance/auth-methods/delete-test.js index f80721f37..d2f32c18e 100644 --- a/ui/admin/tests/acceptance/auth-methods/delete-test.js +++ b/ui/admin/tests/acceptance/auth-methods/delete-test.js @@ -72,8 +72,8 @@ module('Acceptance | auth methods | delete', function (hooks) { await visit(urls.authMethod); await click('.rose-layout-page-actions .rose-dropdown-button-danger'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); diff --git a/ui/admin/tests/acceptance/auth-methods/oidc-test.js b/ui/admin/tests/acceptance/auth-methods/oidc-test.js index 3bc1f226b..ab37b1d62 100644 --- a/ui/admin/tests/acceptance/auth-methods/oidc-test.js +++ b/ui/admin/tests/acceptance/auth-methods/oidc-test.js @@ -102,38 +102,38 @@ module('Acceptance | auth methods | oidc', function (hooks) { }); // FIXME: How to mock just one request routed to /auth-methods and let everything else passthrough? - // test('errors are displayed when state update fails', async function (assert) { - // assert.expect(2); - // this.server.post('/auth-methods/:idMethod', (_, request) => { - // // Only respond to state update with error - // if (request.params.idMethod.match(/(change-state)/i)) { - // return new Response( - // 400, - // {}, - // { - // status: 400, - // code: 'error', - // message: 'Sorry!', - // } - // ); - // } - // return request; - // }); - // const newState = 'inactive'; - // await visit(urls.authMethod); - // await click('.rose-layout-page-actions .rose-dropdown-trigger'); - // await click(`.rose-dropdown[open] input[value="${newState}"]`); - // // debugger; - // const authMethod = this.server.db.authMethods.find(instances.authMethod.id); - // assert.notEqual( - // newState, - // authMethod.attributes.state, - // 'Auth method state is not be updated.' - // ); - // assert.ok( - // find('[role="alert"]').textContent.trim(), - // 'Sorry!', - // 'Displays error message.' - // ); - // }); + test.skip('errors are displayed when state update fails', async function (assert) { + assert.expect(2); + this.server.post('/auth-methods/:idMethod', (_, request) => { + // Only respond to state update with error + if (request.params.idMethod.match(/(change-state)/i)) { + return new Response( + 400, + {}, + { + status: 400, + code: 'error', + message: 'Sorry!', + } + ); + } + return request; + }); + const newState = 'inactive'; + await visit(urls.authMethod); + await click('.rose-layout-page-actions .rose-dropdown-trigger'); + await click(`.rose-dropdown[open] input[value="${newState}"]`); + // debugger; + const authMethod = this.server.db.authMethods.find(instances.authMethod.id); + assert.notEqual( + newState, + authMethod.attributes.state, + 'Auth method state is not be updated.' + ); + assert.ok( + find('.rose-notification-body').textContent.trim(), + 'Sorry!', + 'Displays error message.' + ); + }); }); diff --git a/ui/admin/tests/acceptance/auth-methods/update-test.js b/ui/admin/tests/acceptance/auth-methods/update-test.js index 8060e4382..859b0ae57 100644 --- a/ui/admin/tests/acceptance/auth-methods/update-test.js +++ b/ui/admin/tests/acceptance/auth-methods/update-test.js @@ -102,50 +102,12 @@ module('Acceptance | auth methods | update', function (hooks) { await fillIn('[name="name"]', 'existing auth method'); await click('form [type="submit"]'); await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( - find('.rose-form-error-message').textContent.trim(), - 'Name is required.', - 'Displays field-level errors.' - ); - }); - - test('saving an existing auth method with invalid fields displays error messages', async function (assert) { - assert.expect(2); - this.server.patch('/auth-methods/:id', () => { - return new Response( - 400, - {}, - { - status: 400, - code: 'invalid_argument', - message: 'The request was invalid.', - details: { - request_fields: [ - { - name: 'name', - description: 'Name is required.', - }, - ], - }, - } - ); - }); - await visit(urls.authMethod); - await click('form [type="button"]', 'Activate edit mode'); - await fillIn('[name="name"]', 'existing auth method'); - await click('form [type="submit"]'); - await a11yAudit(); - assert.ok( - find('[role="alert"]').textContent.trim(), - 'The request was invalid.', - 'Displays primary error message.' - ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/authentication-test.js b/ui/admin/tests/acceptance/authentication-test.js index f42540f4f..3c1cedd48 100644 --- a/ui/admin/tests/acceptance/authentication-test.js +++ b/ui/admin/tests/acceptance/authentication-test.js @@ -5,7 +5,7 @@ import { fillIn, click, find, - //findAll, + findAll, getRootElement, //setupOnerror, } from '@ember/test-helpers'; @@ -300,23 +300,23 @@ module('Acceptance | authentication', function (hooks) { // This test is disabled because it is no longer relevant. On deauth, // the page is reloaded. If the user was viewing a route requiring // authentication, they will be redirected accordingly. - // test('deauthentication redirects to first global authenticate method', async function (assert) { - // assert.expect(3); - // await visit(authMethodAuthenticateURL); - // await fillIn('[name="identification"]', 'test'); - // await fillIn('[name="password"]', 'test'); - // await click('[type="submit"]'); - // assert.ok(currentSession().isAuthenticated); - // // Open header utilities dropdown - // await click('.rose-header-utilities .rose-dropdown summary'); - // // Find and click on last element in dropdown - should be deauthenticate button - // const menu = findAll( - // '.rose-header-utilities .rose-dropdown .rose-dropdown-content button' - // ); - // await click(menu[menu.length - 1]); - // assert.notOk(currentSession().isAuthenticated); - // assert.equal(currentURL(), authMethodGlobalAuthenticateURL); - // }); + test.skip('deauthentication redirects to first global authenticate method', async function (assert) { + assert.expect(3); + await visit(authMethodAuthenticateURL); + await fillIn('[name="identification"]', 'test'); + await fillIn('[name="password"]', 'test'); + await click('[type="submit"]'); + assert.ok(currentSession().isAuthenticated); + // Open header utilities dropdown + await click('.rose-header-utilities .rose-dropdown summary'); + // Find and click on last element in dropdown - should be deauthenticate button + const menu = findAll( + '.rose-header-utilities .rose-dropdown .rose-dropdown-content button' + ); + await click(menu[menu.length - 1]); + assert.notOk(currentSession().isAuthenticated); + assert.equal(currentURL(), authMethodGlobalAuthenticateURL); + }); test('401 responses result in deauthentication', async function (assert) { assert.expect(2); diff --git a/ui/admin/tests/acceptance/groups/create-test.js b/ui/admin/tests/acceptance/groups/create-test.js index 815e4a760..d3cc5fffb 100644 --- a/ui/admin/tests/acceptance/groups/create-test.js +++ b/ui/admin/tests/acceptance/groups/create-test.js @@ -109,12 +109,12 @@ module('Acceptance | groups | create', function (hooks) { await visit(urls.newGroup); await fillIn('[name="name"]', 'group name'); await click('[type="submit"]'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/groups/delete-test.js b/ui/admin/tests/acceptance/groups/delete-test.js index c1dec7fdb..58f7498b1 100644 --- a/ui/admin/tests/acceptance/groups/delete-test.js +++ b/ui/admin/tests/acceptance/groups/delete-test.js @@ -76,8 +76,8 @@ module('Acceptance | groups | delete', function (hooks) { }); await visit(urls.group); await click('.rose-layout-page-actions .rose-dropdown-button-danger'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); diff --git a/ui/admin/tests/acceptance/groups/update-test.js b/ui/admin/tests/acceptance/groups/update-test.js index 6d39cefbe..696a88e48 100644 --- a/ui/admin/tests/acceptance/groups/update-test.js +++ b/ui/admin/tests/acceptance/groups/update-test.js @@ -95,12 +95,12 @@ module('Acceptance | groups | update', function (hooks) { await click('form [type="button"]', 'Activate edit mode'); await fillIn('[name="name"]', 'random string'); await click('[type="submit"]'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/roles/delete-test.js b/ui/admin/tests/acceptance/roles/delete-test.js index a965ff63a..ba0363e1d 100644 --- a/ui/admin/tests/acceptance/roles/delete-test.js +++ b/ui/admin/tests/acceptance/roles/delete-test.js @@ -88,8 +88,8 @@ module('Acceptance | roles | delete', function (hooks) { }); await visit(urls.role); await click('.rose-layout-page-actions .rose-dropdown-button-danger'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); diff --git a/ui/admin/tests/acceptance/roles/update-test.js b/ui/admin/tests/acceptance/roles/update-test.js index 21737c705..aca161a54 100644 --- a/ui/admin/tests/acceptance/roles/update-test.js +++ b/ui/admin/tests/acceptance/roles/update-test.js @@ -107,12 +107,12 @@ module('Acceptance | roles | update', function (hooks) { await click('form [type="button"]', 'Activate edit mode'); await fillIn('[name="name"]', 'random string'); await click('[type="submit"]'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/users/create-test.js b/ui/admin/tests/acceptance/users/create-test.js index b69a1f3df..12261e9f5 100644 --- a/ui/admin/tests/acceptance/users/create-test.js +++ b/ui/admin/tests/acceptance/users/create-test.js @@ -97,12 +97,12 @@ module('Acceptance | users | create', function (hooks) { await visit(newUserURL); await fillIn('[name="name"]', 'User name'); await click('[type="submit"]'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/admin/tests/acceptance/users/delete-test.js b/ui/admin/tests/acceptance/users/delete-test.js index 14b5371fc..2146278f6 100644 --- a/ui/admin/tests/acceptance/users/delete-test.js +++ b/ui/admin/tests/acceptance/users/delete-test.js @@ -77,8 +77,8 @@ module('Acceptance | users | delete', function (hooks) { }); await visit(userURL); await click('.rose-layout-page-actions .rose-dropdown-button-danger'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'Oops.', 'Displays primary error message.' ); diff --git a/ui/admin/tests/acceptance/users/update-test.js b/ui/admin/tests/acceptance/users/update-test.js index 931a58641..f7f448156 100644 --- a/ui/admin/tests/acceptance/users/update-test.js +++ b/ui/admin/tests/acceptance/users/update-test.js @@ -96,12 +96,12 @@ module('Acceptance | users | update', function (hooks) { await click('form [type="button"]', 'Activate edit mode'); await fillIn('[name="name"]', 'User name'); await click('[type="submit"]'); - assert.ok( - find('[role="alert"]').textContent.trim(), + assert.equal( + find('.rose-notification-body').textContent.trim(), 'The request was invalid.', 'Displays primary error message.' ); - assert.ok( + assert.equal( find('.rose-form-error-message').textContent.trim(), 'Name is required.', 'Displays field-level errors.' diff --git a/ui/desktop/.editorconfig b/ui/desktop/.editorconfig index c35a00240..41302d1b0 100644 --- a/ui/desktop/.editorconfig +++ b/ui/desktop/.editorconfig @@ -12,8 +12,5 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.hbs] -insert_final_newline = false - [*.{diff,md}] trim_trailing_whitespace = false diff --git a/ui/desktop/.eslintrc.js b/ui/desktop/.eslintrc.js index 6d20176b1..44c31c752 100644 --- a/ui/desktop/.eslintrc.js +++ b/ui/desktop/.eslintrc.js @@ -56,5 +56,10 @@ module.exports = { 'node/no-unpublished-require': 'off', }, }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, ], }; diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 590e92035..c3980a942 100755 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -72,7 +72,7 @@ "ember-a11y-testing": "^4.2.0", "ember-auto-import": "^1.12.0", "ember-autofocus-modifier": "^2.0.0", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-app-version": "^5.0.0", "ember-cli-babel": "^7.26.6", "ember-cli-code-coverage": "^1.0.3", @@ -103,6 +103,7 @@ "eslint-plugin-ember": "^10.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-qunit": "^6.2.0", "faker": "^5.5.3", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", @@ -117,7 +118,7 @@ "stylelint-config-sass-guidelines": "^8.0.0" }, "engines": { - "node": ">=10 <=15" + "node": ">=12 <=17" }, "ember": { "edition": "octane" diff --git a/ui/desktop/tests/unit/services/ipc-test.js b/ui/desktop/tests/unit/services/ipc-test.js index d193074c5..2e3ab6ae3 100644 --- a/ui/desktop/tests/unit/services/ipc-test.js +++ b/ui/desktop/tests/unit/services/ipc-test.js @@ -73,7 +73,7 @@ module('Unit | Service | ipc', function (hooks) { }); }); - test('IPCRequests reject if receiving an Error instance, where the rejection value is the parsed JSON Error message', async (assert) => { + test('IPCRequests reject if receiving an Error instance, where the rejection value is the parsed JSON Error message', async function (assert) { assert.expect(1); const stringifiedPayload = JSON.stringify({ foo: 'bar', diff --git a/yarn.lock b/yarn.lock index 462c131b0..660c765b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9959,6 +9959,103 @@ ember-cli@~3.28.0: workerpool "^6.1.4" yam "^1.0.0" +ember-cli@~3.28.3: + version "3.28.3" + resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.3.tgz#3384c3fb018b58111e30efed15a2f6a9b66b84c3" + integrity sha512-DddAQAddbyaOU4NAjTt8g+FoCCK/F00kbj9pcHO1lfAUpIUS9JPBoWxxZ3qO08mUNXi50pdQSPVVRWzN7mNz2g== + dependencies: + "@babel/core" "^7.13.8" + "@babel/plugin-transform-modules-amd" "^7.12.1" + amd-name-resolver "^1.3.1" + babel-plugin-module-resolver "^4.1.0" + bower-config "^1.4.3" + bower-endpoint-parser "0.2.2" + 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.5" + broccoli-config-loader "^1.0.1" + broccoli-config-replace "^1.1.2" + broccoli-debug "^0.6.5" + broccoli-funnel "^3.0.5" + broccoli-funnel-reducer "^1.0.0" + broccoli-merge-trees "^3.0.2" + broccoli-middleware "^2.1.1" + broccoli-slow-trees "^3.1.0" + broccoli-source "^3.0.0" + broccoli-stew "^3.0.0" + calculate-cache-key-for-tree "^2.0.0" + capture-exit "^2.0.0" + chalk "^4.1.0" + ci-info "^2.0.0" + clean-base-url "^1.0.0" + compression "^1.7.4" + configstore "^5.0.1" + console-ui "^3.1.2" + core-object "^3.1.5" + dag-map "^2.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" + ember-cli-preprocess-registry "^3.3.0" + ember-cli-string-utils "^1.1.0" + ember-source-channel-url "^3.0.0" + ensure-posix-path "^1.1.1" + 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.1" + fs-extra "^9.1.0" + fs-tree-diff "^2.0.1" + get-caller-file "^2.0.5" + git-repo-info "^2.1.1" + glob "^7.1.6" + heimdalljs "^0.2.6" + heimdalljs-fs-monitor "^1.1.0" + heimdalljs-graph "^1.0.0" + heimdalljs-logger "^0.1.10" + http-proxy "^1.18.1" + inflection "^1.12.0" + is-git-url "^1.0.0" + is-language-code "^2.0.0" + isbinaryfile "^4.0.6" + js-yaml "^3.14.0" + json-stable-stringify "^1.0.1" + leek "0.0.24" + lodash.template "^4.5.0" + 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.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.20.0" + resolve-package-path "^3.1.0" + sane "^4.1.0" + semver "^7.3.4" + silent-error "^1.1.1" + sort-package-json "^1.49.0" + symlink-or-copy "^1.3.1" + temp "0.9.4" + testem "^3.2.0" + tiny-lr "^2.0.0" + tree-sync "^2.1.0" + uuid "^8.3.2" + walk-sync "^2.2.0" + watch-detector "^1.0.0" + workerpool "^6.1.4" + yam "^1.0.0" + ember-compatibility-helpers@^1.1.1, ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0, ember-compatibility-helpers@^1.2.1, ember-compatibility-helpers@^1.2.4: version "1.2.5" resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.5.tgz#b8363b1d5b8725afa9a4fe2b2986ac28626c6f23" @@ -10965,6 +11062,14 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-qunit@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-qunit/-/eslint-plugin-qunit-6.2.0.tgz#f4efda29da99523e560848d9592c39c0590c308d" + integrity sha512-KvPmkIC2MHpfRxs/r8WUeeGkG6y+3qwSi2AZIBtjcM/YG6Z3k0GxW5Hbu3l7X0TDhljVCeBb9Q5puUkHzl83Mw== + dependencies: + eslint-utils "^3.0.0" + requireindex "^1.2.0" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" From 682ec89ddc816bd9f09c7fc99b2d0931a7764436 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Sat, 23 Oct 2021 12:55:23 -0400 Subject: [PATCH 07/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20upgrade=20to=20em?= =?UTF-8?q?ber=20source=203.28?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/mirage/config.js | 7 +- addons/api/mirage/scenarios/ipc.js | 5 +- addons/api/package.json | 4 +- addons/auth/package.json | 4 +- addons/core/package.json | 4 +- .../components/rose/dropdown/link/index.hbs | 60 ++++++--- addons/rose/package.json | 4 +- ui/admin/package.json | 2 +- ui/desktop/package.json | 2 +- .../components/dialog-detail-test.js | 2 +- yarn.lock | 122 +++--------------- 11 files changed, 78 insertions(+), 138 deletions(-) diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index b1481adf9..213f71d33 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -1,4 +1,3 @@ -import Ember from 'ember'; import config from '../config/environment'; import { authHandler, deauthHandler } from './route-handlers/auth'; import { pickRandomStatusString } from './factories/session'; @@ -6,6 +5,8 @@ import { Response } from 'miragejs'; import initializeMockIPC from './scenarios/ipc'; import makeBooleanFilter from './helpers/bexpr-filter'; +const isTesting = config.environment === 'test'; + export default function () { initializeMockIPC(this); @@ -417,7 +418,7 @@ export default function () { // update alternate sessions to auth user. // But only if not in testing mode. // In tests, we need deterministic statuses. - if (!Ember.testing) { + if (!isTesting) { sessions.all().models.forEach((session) => { session.update({ status: pickRandomStatusString(), @@ -446,7 +447,7 @@ export default function () { ); this.get('/sessions/:id', function ({ sessions }, { params: { id } }) { const session = sessions.find(id); - if (!Ember.testing) { + if (!isTesting) { session.update({ status: pickRandomStatusString(), }); diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index 6e44988e4..0c01a656e 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; import config from 'ember-get-config'; import { datatype } from 'faker'; +const isTesting = config.environment === 'test'; + export default function initializeMockIPC(server) { /** * We strive to make this application runnable in a regular web browser, since @@ -149,7 +150,7 @@ export default function initializeMockIPC(server) { * * Initializes mock IPC only in a non-Electron non-testing context. */ - if (!config.isElectron && !Ember.testing) { + if (!config.isElectron && !isTesting) { const mockIPC = new MockIPC(); window.addEventListener('message', async function (event) { if (event.origin !== window.location.origin) return; diff --git a/addons/api/package.json b/addons/api/package.json index 17434703b..2fcc5ae78 100644 --- a/addons/api/package.json +++ b/addons/api/package.json @@ -43,7 +43,7 @@ "broccoli-asset-rev": "^3.0.0", "doctoc": "^2.0.1", "ember-auto-import": "^1.12.0", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", @@ -57,7 +57,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-source-channel-url": "^3.0.0", "ember-template-lint": "^3.7.0", "ember-try": "^1.4.0", diff --git a/addons/auth/package.json b/addons/auth/package.json index 531137952..bc19d30ec 100644 --- a/addons/auth/package.json +++ b/addons/auth/package.json @@ -36,7 +36,7 @@ "core": "*", "doctoc": "^2.0.1", "ember-auto-import": "^1.12.0", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", @@ -49,7 +49,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-source-channel-url": "^3.0.0", "ember-template-lint": "^3.7.0", "ember-try": "^1.4.0", diff --git a/addons/core/package.json b/addons/core/package.json index 03c494d89..c12f03dcd 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -50,7 +50,7 @@ "broccoli-asset-rev": "^3.0.0", "doctoc": "^2.0.1", "ember-auto-import": "^1.12.0", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", @@ -63,7 +63,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-source-channel-url": "^3.0.0", "ember-template-lint": "^3.7.0", "ember-try": "^1.4.0", diff --git a/addons/rose/addon/components/rose/dropdown/link/index.hbs b/addons/rose/addon/components/rose/dropdown/link/index.hbs index f4c2623f8..a7593fe8d 100644 --- a/addons/rose/addon/components/rose/dropdown/link/index.hbs +++ b/addons/rose/addon/components/rose/dropdown/link/index.hbs @@ -1,20 +1,46 @@ +{{! + Ember's LinkTo component won't accept nullish @query or @model, so we have to + overcompensate by duplicating it four times, one for every combination. + This is really unpleasant. +}} {{#if @model}} - - {{yield}} - + {{#if @query}} + + {{yield}} + + {{else}} + + {{yield}} + + {{/if}} {{else}} - - {{yield}} - + {{#if @query}} + + {{yield}} + + {{else}} + + {{yield}} + + {{/if}} {{/if}} diff --git a/addons/rose/package.json b/addons/rose/package.json index b84a76425..0d0118526 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -57,7 +57,7 @@ "broccoli-asset-rev": "^3.0.0", "doctoc": "^2.0.1", "ember-auto-import": "^1.12.0", - "ember-cli": "~3.28.0", + "ember-cli": "~3.28.3", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sass": "^10.0.1", @@ -72,7 +72,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-source-channel-url": "^3.0.0", "ember-template-lint": "^3.7.0", "ember-try": "^1.4.0", diff --git a/ui/admin/package.json b/ui/admin/package.json index 61d9ff33c..8351cc0e5 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -74,7 +74,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-template-lint": "^3.7.0", "ember-template-lint-plugin-prettier": "^2.0.0", "eslint": "^7.32.0", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index c3980a942..bc9420931 100755 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -95,7 +95,7 @@ "ember-page-title": "^6.2.2", "ember-qunit": "^5.1.4", "ember-resolver": "^8.0.3", - "ember-source": "~3.24.0", + "ember-source": "~3.28.4", "ember-template-lint": "^3.7.0", "ember-template-lint-plugin-prettier": "^2.0.0", "eslint": "^7.32.0", diff --git a/ui/desktop/tests/integration/components/dialog-detail-test.js b/ui/desktop/tests/integration/components/dialog-detail-test.js index e3e483325..18156fb76 100644 --- a/ui/desktop/tests/integration/components/dialog-detail-test.js +++ b/ui/desktop/tests/integration/components/dialog-detail-test.js @@ -13,7 +13,7 @@ module('Integration | Component | dialog-detail', function (hooks) { test('it renders with content', async function (assert) { await render(hbs` - +

Test

diff --git a/yarn.lock b/yarn.lock index 660c765b2..bc5537d8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2613,6 +2613,13 @@ resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.44.0.tgz#03d127097dc9cb23052cdb7fcae59d0a9dca53e1" integrity sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw== +"@glimmer/vm-babel-plugins@0.80.3": + version "0.80.3" + resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.80.3.tgz#434b62172318cac43830d3ac29818cf2c5f111c1" + integrity sha512-9ej6xlm5MzHBJ5am2l0dbbn8Z0wJoYoMpM8FcrGMlUP6SPMLWxvxpMsApgQo8u6dvZRCjR3/bw3fdf7GOy0AFw== + dependencies: + babel-plugin-debug-macros "^0.3.4" + "@glimmer/vm@^0.42.2": version "0.42.2" resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.42.2.tgz#492a4f05eac587c3a37371b3c62593f20bef553d" @@ -9862,103 +9869,6 @@ ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1, ember-cli-ve semver "^7.3.4" silent-error "^1.1.1" -ember-cli@~3.28.0: - version "3.28.0" - resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.0.tgz#0a0374c9a1d08386ddf56e8098a38b71dd4453bc" - integrity sha512-CrMs5edFQ2ingO2xfT33T4nUEl8SlvBQ7q+XO9L/GFTvFU07slHxYSvGur0cwgQfOiLnkSTnIaVF1oqBnEmfPQ== - dependencies: - "@babel/core" "^7.13.8" - "@babel/plugin-transform-modules-amd" "^7.12.1" - amd-name-resolver "^1.3.1" - babel-plugin-module-resolver "^4.1.0" - bower-config "^1.4.3" - bower-endpoint-parser "0.2.2" - 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.5" - broccoli-config-loader "^1.0.1" - broccoli-config-replace "^1.1.2" - broccoli-debug "^0.6.5" - broccoli-funnel "^3.0.5" - broccoli-funnel-reducer "^1.0.0" - broccoli-merge-trees "^3.0.2" - broccoli-middleware "^2.1.1" - broccoli-slow-trees "^3.1.0" - broccoli-source "^3.0.0" - broccoli-stew "^3.0.0" - calculate-cache-key-for-tree "^2.0.0" - capture-exit "^2.0.0" - chalk "^4.1.0" - ci-info "^2.0.0" - clean-base-url "^1.0.0" - compression "^1.7.4" - configstore "^5.0.1" - console-ui "^3.1.2" - core-object "^3.1.5" - dag-map "^2.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" - ember-cli-preprocess-registry "^3.3.0" - ember-cli-string-utils "^1.1.0" - ember-source-channel-url "^3.0.0" - ensure-posix-path "^1.1.1" - 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.1" - fs-extra "^9.1.0" - fs-tree-diff "^2.0.1" - get-caller-file "^2.0.5" - git-repo-info "^2.1.1" - glob "^7.1.6" - heimdalljs "^0.2.6" - heimdalljs-fs-monitor "^1.1.0" - heimdalljs-graph "^1.0.0" - heimdalljs-logger "^0.1.10" - http-proxy "^1.18.1" - inflection "^1.12.0" - is-git-url "^1.0.0" - is-language-code "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - json-stable-stringify "^1.0.1" - leek "0.0.24" - lodash.template "^4.5.0" - 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.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.20.0" - resolve-package-path "^3.1.0" - sane "^4.1.0" - semver "^7.3.4" - silent-error "^1.1.1" - sort-package-json "^1.49.0" - symlink-or-copy "^1.3.1" - temp "0.9.4" - testem "^3.2.0" - tiny-lr "^2.0.0" - tree-sync "^2.1.0" - uuid "^8.3.2" - walk-sync "^2.2.0" - watch-detector "^1.0.0" - workerpool "^6.1.4" - yam "^1.0.0" - ember-cli@~3.28.3: version "3.28.3" resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.3.tgz#3384c3fb018b58111e30efed15a2f6a9b66b84c3" @@ -10504,19 +10414,21 @@ ember-source-channel-url@^3.0.0: dependencies: node-fetch "^2.6.0" -ember-source@~3.24.0: - version "3.24.5" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.5.tgz#7e1da13286f7d1ac63b3d3a547aaeb40bc18a696" - integrity sha512-j39L7C+q9o9qkwrwNtRN1AVGzE8TlxHm0c6xMzFZFaWMyQt3E7ov72fz3oIn17h8H7zZ1i7dl471Rbqx1GZsLw== +ember-source@~3.28.4: + version "3.28.4" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.28.4.tgz#b6ac2b1e369ef533d05164c65078b4ceafdb6390" + integrity sha512-s7kVy0E08erAHUTI/8SZZvXt3an/xb2g5K+m4Rybvo8Tr/noMk3lIdtyQkSvmgMZ/BbvoW8spS630sO0/JN4Eg== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" "@babel/plugin-transform-object-assign" "^7.8.3" "@ember/edition-utils" "^1.2.0" - babel-plugin-debug-macros "^0.3.3" + "@glimmer/vm-babel-plugins" "0.80.3" + babel-plugin-debug-macros "^0.3.4" babel-plugin-filter-imports "^4.0.0" broccoli-concat "^4.2.4" broccoli-debug "^0.6.4" + broccoli-file-creator "^2.1.1" broccoli-funnel "^2.0.2" broccoli-merge-trees "^4.2.0" chalk "^4.0.0" @@ -10529,9 +10441,9 @@ ember-source@~3.24.0: ember-cli-version-checker "^5.1.1" ember-router-generator "^2.0.0" inflection "^1.12.0" - jquery "^3.5.0" + jquery "^3.5.1" resolve "^1.17.0" - semver "^6.1.1" + semver "^7.3.4" silent-error "^1.1.1" ember-template-lint-plugin-prettier@^2.0.0: @@ -14638,7 +14550,7 @@ jpeg-js@^0.4.2: resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== -jquery@^3.5.0: +jquery@^3.5.1: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== From 449cdfe190f5981bb7a46d15ff40a7e9eda7ffe0 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 25 Oct 2021 15:06:51 -0400 Subject: [PATCH 08/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20change=20let=20to?= =?UTF-8?q?=20const?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/rose/tests/integration/components/rose/badge-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/rose/tests/integration/components/rose/badge-test.js b/addons/rose/tests/integration/components/rose/badge-test.js index 96ff69f08..f006308ee 100644 --- a/addons/rose/tests/integration/components/rose/badge-test.js +++ b/addons/rose/tests/integration/components/rose/badge-test.js @@ -23,7 +23,7 @@ module('Integration | Component | rose/badge', function (hooks) { test('it styles content using @style', async function (assert) { assert.expect(14); - let styles = [ + const styles = [ 'outline', 'dark', 'informational', From 051add8e7d270c0a265a19ef381e1fc3f95f63a4 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Corvo Date: Fri, 22 Oct 2021 12:33:54 -0700 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20rose=20webpac?= =?UTF-8?q?k=20unmet=20peer=20dep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix Rose webpack unmet peer dependency --- addons/rose/package.json | 3 +- yarn.lock | 297 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 282 insertions(+), 18 deletions(-) diff --git a/addons/rose/package.json b/addons/rose/package.json index 8d9f8b7d8..f96577dce 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -91,7 +91,8 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "sass": "^1.41.0", - "sass-lint": "^1.13.1" + "sass-lint": "^1.13.1", + "webpack": "^5.59.1" }, "engines": { "node": ">=12 <=17" diff --git a/yarn.lock b/yarn.lock index 9e8fd65eb..196c15c1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4179,6 +4179,22 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/eslint-scope@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.28.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.2.tgz#0ff2947cdd305897c52d5372294e8c76f351db68" + integrity sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + "@types/eslint@^7.2.13": version "7.28.0" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" @@ -4187,7 +4203,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^0.0.50": version "0.0.50" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== @@ -4578,6 +4594,14 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -4587,16 +4611,31 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" @@ -4621,11 +4660,35 @@ dependencies: "@webassemblyjs/ast" "1.9.0" +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -4636,6 +4699,13 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -4643,6 +4713,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -4650,11 +4727,30 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -4669,6 +4765,17 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -4680,6 +4787,16 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -4690,6 +4807,18 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -4714,6 +4843,14 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -4784,6 +4921,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -4826,6 +4968,11 @@ acorn@^8.2.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.4.1: + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -7185,7 +7332,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.14.2, browserslist@^3.2.6, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.5, browserslist@^4.16.6, browserslist@^4.16.7, browserslist@^4.17.3: +browserslist@4.14.2, browserslist@^3.2.6, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.5, browserslist@^4.16.6, browserslist@^4.16.7, browserslist@^4.17.3: version "4.17.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== @@ -7505,9 +7652,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001265: - version "1.0.30001270" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" - integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== + version "1.0.30001271" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz#0dda0c9bcae2cf5407cd34cac304186616cc83e8" + integrity sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA== capture-exit@^2.0.0: version "2.0.0" @@ -10681,6 +10828,14 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -10804,6 +10959,11 @@ es-get-iterator@^1.0.2: is-string "^1.0.5" isarray "^2.0.5" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -11012,6 +11172,14 @@ eslint-plugin-qunit@^6.2.0: 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" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -11020,14 +11188,6 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.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" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -11231,7 +11391,7 @@ events-to-array@^1.0.1: resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" integrity sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= -events@^3.0.0: +events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -12583,6 +12743,11 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -14566,6 +14731,15 @@ jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^27.0.6: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" + integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + joi@^12.0.0: version "12.0.0" resolved "https://registry.yarnpkg.com/joi/-/joi-12.0.0.tgz#46f55e68f4d9628f01bbb695902c8b307ad8d33a" @@ -15259,6 +15433,11 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + loader-utils@2.0.0, loader-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" @@ -16667,7 +16846,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -20104,7 +20283,7 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: +schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -20199,6 +20378,13 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + serve-favicon@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" @@ -20580,6 +20766,14 @@ source-map-support@^0.5.13, source-map-support@^0.5.16, source-map-support@~0.5. buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.20: + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" @@ -21211,7 +21405,7 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -supports-color@8.1.1: +supports-color@8.1.1, supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -21354,6 +21548,11 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.19, tar@^6.0.2, tar@^6.0.5, tar@^6.1.0, tar@^6.1.9: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -21442,6 +21641,18 @@ terser-webpack-plugin@^4.2.3: terser "^5.3.4" webpack-sources "^1.4.3" +terser-webpack-plugin@^5.1.3: + version "5.2.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" + integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA== + dependencies: + jest-worker "^27.0.6" + p-limit "^3.1.0" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + terser@^4.1.2, terser@^4.6.3: version "4.8.0" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" @@ -21460,6 +21671,15 @@ terser@^5.3.0, terser@^5.3.4: source-map "~0.7.2" source-map-support "~0.5.19" +terser@^5.7.2: + version "5.9.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" + integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -22672,6 +22892,14 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -22736,6 +22964,11 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" + integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== + webpack-virtual-modules@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" @@ -22772,6 +23005,36 @@ webpack@4, webpack@^4.43.0: watchpack "^1.7.4" webpack-sources "^1.4.1" +webpack@^5.59.1: + version "5.59.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.1.tgz#60c77e9aad796252153d4d7ab6b2d4c11f0e548c" + integrity sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" From f3a3c245420b6745ee5aca05066e5ed9c110fb33 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 25 Oct 2021 16:56:16 -0400 Subject: [PATCH 10/12] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20implement=20checkb?= =?UTF-8?q?ox=20group=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rose/form/checkbox/group/index.hbs | 12 ++ .../rose/form/checkbox/group/index.js | 37 +++++ .../form/checkbox/group/index.stories.mdx | 54 +++++++ .../components/rose/form/checkbox/group.js | 1 + addons/rose/package.json | 1 + .../rose/tests/dummy/app/controllers/index.js | 24 ++- .../rose/tests/dummy/app/templates/index.hbs | 25 +++ .../rose/form/checkbox/group-test.js | 100 ++++++++++++ yarn.lock | 143 ++++++++++++------ 9 files changed, 348 insertions(+), 49 deletions(-) create mode 100644 addons/rose/addon/components/rose/form/checkbox/group/index.hbs create mode 100644 addons/rose/addon/components/rose/form/checkbox/group/index.js create mode 100644 addons/rose/addon/components/rose/form/checkbox/group/index.stories.mdx create mode 100644 addons/rose/app/components/rose/form/checkbox/group.js create mode 100644 addons/rose/tests/integration/components/rose/form/checkbox/group-test.js diff --git a/addons/rose/addon/components/rose/form/checkbox/group/index.hbs b/addons/rose/addon/components/rose/form/checkbox/group/index.hbs new file mode 100644 index 000000000..795df326d --- /dev/null +++ b/addons/rose/addon/components/rose/form/checkbox/group/index.hbs @@ -0,0 +1,12 @@ +{{#each @items as |item|}} + {{yield (hash + item=item + checkbox=(component 'rose/form/checkbox' + name=@name + disabled=@disabled + inline=@inline + checked=(includes item @selectedItems) + onChange=(fn this.toggleItem item) + ) + )}} +{{/each}} diff --git a/addons/rose/addon/components/rose/form/checkbox/group/index.js b/addons/rose/addon/components/rose/form/checkbox/group/index.js new file mode 100644 index 000000000..bd240645a --- /dev/null +++ b/addons/rose/addon/components/rose/form/checkbox/group/index.js @@ -0,0 +1,37 @@ +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { action } from '@ember/object'; + +/** + * A checkbox group represents an array of arbitrary items, which differs from + * single checkboxes which represent boolean values. When checkboxes within a + * checkbox are toggled, their associated item is toggled within the group's + * array value. + * + * The term "item" is used to disambiguate it from "value", which has an + * existing meaning in the context of form fields. However, items + * are just arbitrary values. + */ +export default class RoseFormCheckboxGroupComponent extends Component { + // =actions + + /** + * Returns a new copy of the @selectedItems array where the given item is: + * - removed from the array, if it was already present + * - or added to the array, if it was not already present + */ + @action + toggleItem(item) { + const selectedItems = this.args.selectedItems || []; + const currentItems = [...selectedItems]; + + if (currentItems.includes(item)) { + const i = currentItems.indexOf(item); + currentItems.splice(i, 1); + } else { + currentItems.push(item); + } + + if (this.args.onChange) this.args.onChange(currentItems); + } +} diff --git a/addons/rose/addon/components/rose/form/checkbox/group/index.stories.mdx b/addons/rose/addon/components/rose/form/checkbox/group/index.stories.mdx new file mode 100644 index 000000000..e5a87308d --- /dev/null +++ b/addons/rose/addon/components/rose/form/checkbox/group/index.stories.mdx @@ -0,0 +1,54 @@ +import { Meta, Story, Preview } from '@storybook/addon-docs/blocks'; +import { hbs } from 'ember-cli-htmlbars'; +import { action } from '@storybook/addon-actions'; +import { text, boolean, select, object } from '@storybook/addon-knobs'; + + + +# Form checkboxfield group + +Renders a form checkboxfield group. + +```htmlbars + + + +``` + + {{ + template: hbs` + + + + `, + context: { + inline: boolean('inline', true), + disabled: boolean('disabled', false), + items: object('items', [ + { id: 1, name: 'Foo' }, + { id: 2, name: 'Bar' }, + { id: 3, name: 'Baz' }, + ]), + selectedItems: object('selectedItems', []), + onChange: action('changed'), + } + }} + diff --git a/addons/rose/app/components/rose/form/checkbox/group.js b/addons/rose/app/components/rose/form/checkbox/group.js new file mode 100644 index 000000000..4986bf171 --- /dev/null +++ b/addons/rose/app/components/rose/form/checkbox/group.js @@ -0,0 +1 @@ +export { default } from 'rose/components/rose/form/checkbox/group'; diff --git a/addons/rose/package.json b/addons/rose/package.json index 8d9f8b7d8..bc048b236 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -64,6 +64,7 @@ "ember-cli-sass": "^10.0.1", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", + "ember-composable-helpers": "^4.5.0", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", "ember-inline-svg": "^1.0.0", diff --git a/addons/rose/tests/dummy/app/controllers/index.js b/addons/rose/tests/dummy/app/controllers/index.js index 45faa7e5a..08fa2b4f1 100644 --- a/addons/rose/tests/dummy/app/controllers/index.js +++ b/addons/rose/tests/dummy/app/controllers/index.js @@ -1,12 +1,28 @@ import Controller from '@ember/controller'; +import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; +const possibleItems = [ + { id: 1, name: 'foo' }, + { id: 2, name: 'bar' }, + { id: 3, name: 'baz' }, +]; + export default class IndexController extends Controller { - color = 'green'; + // =attributes + + @tracked items = [...possibleItems]; + @tracked selectedItems = [possibleItems[2]]; + + // =actions @action - actionHandler(/*value*/) { - // eslint-disable-next-line no-console - //console.log('action handled'); + checkboxGroupChanged(selected) { + this.selectedItems = [...selected]; + } + + @action + clearSelected() { + this.selectedItems = []; } } diff --git a/addons/rose/tests/dummy/app/templates/index.hbs b/addons/rose/tests/dummy/app/templates/index.hbs index ed8345c31..812e1ef45 100644 --- a/addons/rose/tests/dummy/app/templates/index.hbs +++ b/addons/rose/tests/dummy/app/templates/index.hbs @@ -1,3 +1,28 @@ +

Checkbox Group

+ + + + +

+ Items selected: + {{#each this.selectedItems as |selected|}} + {{selected.id}}, + {{/each}} +

+ + + Clear Selected Items + + + +

KeyValue Dropdown

+ + + `); + assert.equal(findAll('input').length, 3); + }); + + test('it checks checkboxes for items present in a selectedItems array', async function (assert) { + assert.expect(1); + this.items = items; + this.selectedItems = selectedItems; + await render(hbs` + + + + `); + assert.equal(findAll(':checked').length, 1); + }); + + test('it fires onChange when items are checked, passing an array of selected items', async function (assert) { + assert.expect(2); + this.items = items; + this.selectedItems = selectedItems; + this.onChange = (newlySelectedItems) => { + assert.equal(selectedItems.length, 1); + assert.equal(newlySelectedItems.length, 2); + }; + await render(hbs` + + + + `); + await click('.rose-form-checkbox:first-child input'); + }); + + test('it fires onChange when items are unchecked, passing an array of selected items', async function (assert) { + assert.expect(2); + this.items = items; + this.selectedItems = selectedItems; + this.onChange = (newlySelectedItems) => { + assert.equal(selectedItems.length, 1); + assert.equal(newlySelectedItems.length, 0); + }; + await render(hbs` + + + + `); + await click('.rose-form-checkbox:last-child input'); + }); +}); diff --git a/yarn.lock b/yarn.lock index 9e8fd65eb..8fc69c860 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,6 +78,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.0.0", "@babel/core@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" + integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== + dependencies: + "@babel/code-frame" "^7.15.8" + "@babel/generator" "^7.15.8" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.8" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.8" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.6" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/core@^7.14.8", "@babel/core@^7.15.5": version "7.15.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" @@ -99,27 +120,6 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" - integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== - dependencies: - "@babel/code-frame" "^7.15.8" - "@babel/generator" "^7.15.8" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.8" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.8" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - "@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" @@ -6685,6 +6685,25 @@ broccoli-funnel-reducer@^1.0.0: resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea" integrity sha1-ETZbKnha7JsXlyo234fu8kxcwOo= +broccoli-funnel@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-2.0.1.tgz#6823c73b675ef78fffa7ab800f083e768b51d449" + integrity sha512-C8Lnp9TVsSSiZMGEF16C0dCiNg2oJqUKwuZ1K4kVC6qRPG/2Cj/rtB5kRCC9qEbwqhX71bDbfHROx0L3J7zXQg== + dependencies: + array-equal "^1.0.0" + blank-object "^1.0.1" + broccoli-plugin "^1.3.0" + debug "^2.2.0" + fast-ordered-set "^1.0.0" + fs-tree-diff "^0.5.3" + heimdalljs "^0.2.0" + minimatch "^3.0.0" + mkdirp "^0.5.0" + path-posix "^1.0.0" + rimraf "^2.4.3" + symlink-or-copy "^1.0.0" + walk-sync "^0.3.1" + broccoli-funnel@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296" @@ -7186,14 +7205,14 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@4.14.2, browserslist@^3.2.6, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.5, browserslist@^4.16.6, browserslist@^4.16.7, browserslist@^4.17.3: - version "4.17.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" - integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== + version "4.17.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.5.tgz#c827bbe172a4c22b123f5e337533ceebadfdd559" + integrity sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA== dependencies: - caniuse-lite "^1.0.30001265" - electron-to-chromium "^1.3.867" + caniuse-lite "^1.0.30001271" + electron-to-chromium "^1.3.878" escalade "^3.1.1" - node-releases "^2.0.0" + node-releases "^2.0.1" picocolors "^1.0.0" bser@2.1.1: @@ -7504,10 +7523,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001265: - version "1.0.30001270" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" - integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001271: + version "1.0.30001271" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz#0dda0c9bcae2cf5407cd34cac304186616cc83e8" + integrity sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA== capture-exit@^2.0.0: version "2.0.0" @@ -8763,7 +8782,7 @@ debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -9344,10 +9363,10 @@ electron-rebuild@^2.0.3: tar "^6.0.5" yargs "^16.0.0" -electron-to-chromium@^1.3.867: - version "1.3.868" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.868.tgz#ed835023b57ecf0ba63dfe7d50e16b53758ab1da" - integrity sha512-kZYCHqwJ1ctGrYDlOcWQH+/AftAm/KD4lEnLDNwS0kKwx1x6dU4zv+GuDjsPPOGn/2TjnKBaZjDyjXaoix0q/A== +electron-to-chromium@^1.3.878: + version "1.3.878" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.878.tgz#baa9fb5c24b9b580f08fb245cbb52a22f8fc8fa8" + integrity sha512-O6yxWCN9ph2AdspAIszBnd9v8s11hQx8ub9w4UGApzmNRnoKhbulOWqbO8THEQec/aEHtvy+donHZMlh6l1rbA== element-resize-detector@^1.2.2: version "1.2.3" @@ -10006,6 +10025,16 @@ ember-compatibility-helpers@^1.1.1, ember-compatibility-helpers@^1.1.2, ember-co fs-extra "^9.1.0" semver "^5.4.1" +ember-composable-helpers@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/ember-composable-helpers/-/ember-composable-helpers-4.5.0.tgz#94febbdf4348e64f45f7a6f993f326e32540a61e" + integrity sha512-XjpDLyVPsLCy6kd5dIxZonOECCO6AA5sY5Hr6tYUbJg3s5ghFAiFWaNcYraYC+fL2yPJQAswwpfwGlQORUJZkw== + dependencies: + "@babel/core" "^7.0.0" + broccoli-funnel "2.0.1" + ember-cli-babel "^7.26.3" + resolve "^1.10.0" + ember-concurrency@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-0.10.1.tgz#aae4528540391a7278e2c193a146b5474cad5ec2" @@ -13576,7 +13605,7 @@ import-lazy@^4.0.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -15364,6 +15393,11 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -15372,11 +15406,16 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@^3.0.0: +lodash._bindcallback@*, lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -15386,12 +15425,19 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= @@ -15609,7 +15655,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= @@ -16424,13 +16470,20 @@ minipass@^2.2.0, minipass@^2.3.5: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@^3.0.0, minipass@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" +minipass@^3.1.0, minipass@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732" + integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw== + dependencies: + yallist "^4.0.0" + minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -16844,10 +16897,10 @@ node-pre-gyp@^0.11.0: semver "^5.3.0" tar "^4" -node-releases@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.0.tgz#67dc74903100a7deb044037b8a2e5f453bb05400" - integrity sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA== +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== node-uuid@~1.4.7: version "1.4.8" From 544531a3250535b60f324990090aef462dbc2ff6 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 26 Oct 2021 09:02:33 -0400 Subject: [PATCH 11/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20silence=20depreca?= =?UTF-8?q?tion=20warnings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/addon/initializers/deprecations.js | 17 ++++++++++ addons/core/app/initializers/deprecations.js | 1 + .../unit/initializers/deprecations-test.js | 34 +++++++++++++++++++ addons/rose/package.json | 1 + .../dummy/app/initializers/deprecations.js | 17 ++++++++++ 5 files changed, 70 insertions(+) create mode 100644 addons/core/addon/initializers/deprecations.js create mode 100644 addons/core/app/initializers/deprecations.js create mode 100644 addons/core/tests/unit/initializers/deprecations-test.js create mode 100644 addons/rose/tests/dummy/app/initializers/deprecations.js diff --git a/addons/core/addon/initializers/deprecations.js b/addons/core/addon/initializers/deprecations.js new file mode 100644 index 000000000..c955b7e4b --- /dev/null +++ b/addons/core/addon/initializers/deprecations.js @@ -0,0 +1,17 @@ +import { registerDeprecationHandler } from '@ember/debug'; +import config from 'ember-get-config'; + +const isTesting = config.environment === 'test'; + +export function initialize(/* application */) { + if (isTesting) { + // Disable all deprecations for now in tests. + registerDeprecationHandler((/*message, options, next*/) => { + return; + }); + } +} + +export default { + initialize, +}; diff --git a/addons/core/app/initializers/deprecations.js b/addons/core/app/initializers/deprecations.js new file mode 100644 index 000000000..ba37e6e59 --- /dev/null +++ b/addons/core/app/initializers/deprecations.js @@ -0,0 +1 @@ +export { default, initialize } from 'core/initializers/deprecations'; diff --git a/addons/core/tests/unit/initializers/deprecations-test.js b/addons/core/tests/unit/initializers/deprecations-test.js new file mode 100644 index 000000000..8bcde847b --- /dev/null +++ b/addons/core/tests/unit/initializers/deprecations-test.js @@ -0,0 +1,34 @@ +import Application from '@ember/application'; + +import config from 'dummy/config/environment'; +import { initialize } from 'dummy/initializers/deprecations'; +import { module, test } from 'qunit'; +import Resolver from 'ember-resolver'; +import { run } from '@ember/runloop'; + +module('Unit | Initializer | deprecations', function (hooks) { + hooks.beforeEach(function () { + this.TestApplication = class TestApplication extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; + }; + this.TestApplication.initializer({ + name: 'initializer under test', + initialize, + }); + + this.application = this.TestApplication.create({ autoboot: false }); + }); + + hooks.afterEach(function () { + run(this.application, 'destroy'); + }); + + // TODO: Replace this with your real tests. + test('it works', async function (assert) { + await this.application.boot(); + + assert.ok(true); + }); +}); diff --git a/addons/rose/package.json b/addons/rose/package.json index f96577dce..d4ade2f5b 100644 --- a/addons/rose/package.json +++ b/addons/rose/package.json @@ -38,6 +38,7 @@ "emberx-select": "github:adopted-ember-addons/emberx-select#bc5f774" }, "devDependencies": { + "ember-get-config": "^0.3.0", "@babel/core": "^7.15.5", "@ember/optional-features": "^2.0.0", "@ember/test-helpers": "^2.4.2", diff --git a/addons/rose/tests/dummy/app/initializers/deprecations.js b/addons/rose/tests/dummy/app/initializers/deprecations.js new file mode 100644 index 000000000..c955b7e4b --- /dev/null +++ b/addons/rose/tests/dummy/app/initializers/deprecations.js @@ -0,0 +1,17 @@ +import { registerDeprecationHandler } from '@ember/debug'; +import config from 'ember-get-config'; + +const isTesting = config.environment === 'test'; + +export function initialize(/* application */) { + if (isTesting) { + // Disable all deprecations for now in tests. + registerDeprecationHandler((/*message, options, next*/) => { + return; + }); + } +} + +export default { + initialize, +}; From 03b6d1aa9b1ca36b68355ae961e84c5ecdc49ed3 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 26 Oct 2021 10:42:46 -0400 Subject: [PATCH 12/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20update=20yarn=20l?= =?UTF-8?q?ock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yarn.lock | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/yarn.lock b/yarn.lock index e6ee6425f..c3824f22a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7356,10 +7356,10 @@ browserslist@4.14.2, browserslist@^3.2.6, browserslist@^4.0.0, browserslist@^4.1 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== dependencies: - caniuse-lite "^1.0.30001271" - electron-to-chromium "^1.3.878" + caniuse-lite "^1.0.30001265" + electron-to-chromium "^1.3.867" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.0" picocolors "^1.0.0" bser@2.1.1: @@ -8929,7 +8929,7 @@ debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -13770,7 +13770,7 @@ import-lazy@^4.0.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -15572,11 +15572,6 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -15585,16 +15580,11 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*, lodash._bindcallback@^3.0.0: +lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= - lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -15604,19 +15594,12 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@*, lodash._getnative@^3.0.0: +lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= @@ -15834,7 +15817,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@*, lodash.restparam@^3.0.0: +lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=