From 2dfda037feb186f3980de9fdd12edfca73fb2e1a Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 31 May 2021 09:18:54 -0700 Subject: [PATCH 01/12] First iteration of connect dialog component --- addons/api/addon/models/session.js | 2 + .../app/components/dialog-detail/index.hbs | 145 ++++++++++++++++++ .../routes/scopes/scope/projects/targets.js | 11 +- ui/desktop/app/styles/app.scss | 66 ++++++++ ui/desktop/app/templates/application.hbs | 34 +--- .../scopes/scope/projects/targets.hbs | 52 +++++++ .../components/dialog-detail-test.js | 26 ++++ 7 files changed, 298 insertions(+), 38 deletions(-) create mode 100644 ui/desktop/app/components/dialog-detail/index.hbs create mode 100644 ui/desktop/tests/integration/components/dialog-detail-test.js diff --git a/addons/api/addon/models/session.js b/addons/api/addon/models/session.js index 15fd0b4dd..b6ceadd4d 100644 --- a/addons/api/addon/models/session.js +++ b/addons/api/addon/models/session.js @@ -6,6 +6,8 @@ import { attr } from '@ember-data/model'; export default class SessionModel extends GeneratedSessionModel { // =attributes + @attr('boolean', { readOnly: true }) acknowledged; + @attr('boolean', { readOnly: true }) started_desktop_client; @attr('string', { readOnly: true }) proxy_address; @attr('number', { readOnly: true }) proxy_port; diff --git a/ui/desktop/app/components/dialog-detail/index.hbs b/ui/desktop/app/components/dialog-detail/index.hbs new file mode 100644 index 000000000..cd6f8f309 --- /dev/null +++ b/ui/desktop/app/components/dialog-detail/index.hbs @@ -0,0 +1,145 @@ + + + + {{!-- + {{t + 'states.connection.success.description' + port=session.proxy_port + address=session.proxy_address + protocol='tcp' + }} + + +
Succesfully connected
+ +

Proxy URL

+
+

www.verylongurl.com/section1/subsection2/how-to-tell-the-world-this-is-a-very-long-url-example

+ +
+ + +

Credentials

+
+
+
Credentials
+
+ + Credential library details + +
+
+ + + +
+ + + + Key + Value + + + + + Foo +   + + + ttl +   + + + +
+ + +
+ +
+
+
Credentials
+
+ + Credential library details + +
+
+ + + +
+ + + + Key + Value + + + + + Foo +   + + + ttl +   + + + +
+ + +
--}} +
+ +
+ + {{t 'actions.ok'}} + +
+
+ + View on Session page + +
+
+
\ No newline at end of file diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index dca07f657..a12d0a7cf 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -81,6 +81,11 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { // =actions + @action + acknowledge(session) { + session.acknowledged = true; + } + /** * Establish a session to current target. * @param {TargetModel} model @@ -119,17 +124,13 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { id: session_id, type: 'session', attributes: { + started_desktop_client: true, proxy_address: address, proxy_port: port } } }); }, 150); - - // Show the user a modal with basic connection info. - // We don't await because this modal is purely informational. - this.confirm.confirm(connectionDetails, { isConnectSuccess: true }); - } catch(e) { this.confirm.confirm(e.message, { isConnectError: true }) // Retry diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index d6654da5b..485e9c824 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -325,3 +325,69 @@ margin: sizing.rems(l) 0 0 0; text-align: center; } + +// Dialog Detail +// These styles are a Work In Progress. Expect changes (lots of them) +.connection-dialog { + .connection-dialog-successfully { + // background: green; + } + + .proxy-url { + display: flex; + + p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + + .credentials-card { + display: flex; + flex-direction: column; + margin-bottom: 12px; + + &:last-child { margin-bottom: 0; } + + .credentials-card-header { + display: flex; + flex-direction: row; + + div { + display: flex; + width: 50%; + + &:last-child { + justify-content: flex-end; + } + } + // border-bottom: 1px solid grey; + } + + .credentials-card-body { + // background: yellow; + } + + .credentials-card-footer { + // background: pink; + } + } +} + +.rose-dialog-footer { + align-items: center; + display: flex; + + div:nth-child(1) { + display: flex; + justify-content: flex-start; + width: 50%; + } + + div:nth-child(2) { + display: flex; + justify-content: flex-end; + width: 50%; + } +} diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index 262aefcb2..50c65b475 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -103,39 +103,7 @@ - {{#if confirmation.options.isConnectSuccess}} - - - - - {{t - 'states.connection.success.description' - port=confirmation.text.port - address=confirmation.text.address - protocol=confirmation.text.protocol - }} - - - - - - {{t 'actions.ok'}} - - - - {{else if confirmation.options.isConnectError}} + {{#if confirmation.options.isConnectError}} + + + + {{t + 'states.connection.success.description' + port=session.proxy_port + address=session.proxy_address + protocol='tcp' + }} + + + + + + {{t 'actions.ok'}} + + + + {{!-- + --}} + {{/unless}} + {{/if}} + {{/each}} +{{/each}} + {{outlet}} \ No newline at end of file diff --git a/ui/desktop/tests/integration/components/dialog-detail-test.js b/ui/desktop/tests/integration/components/dialog-detail-test.js new file mode 100644 index 000000000..0b2d276ef --- /dev/null +++ b/ui/desktop/tests/integration/components/dialog-detail-test.js @@ -0,0 +1,26 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; + +module('Integration | Component | dialog-detail', function (hooks) { + setupRenderingTest(hooks); + + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); + + await render(hbs``); + + assert.equal(this.element.textContent.trim(), ''); + + // Template block usage: + await render(hbs` + + template block text + + `); + + assert.equal(this.element.textContent.trim(), 'template block text'); + }); +}); From ecda08164a2deb6ee1753f9108c642488f095c0b Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 31 May 2021 10:43:55 -0700 Subject: [PATCH 02/12] Ignore test and add changes to pass prettier --- ui/desktop/app/components/dialog-detail/index.hbs | 4 ++-- ui/desktop/tests/integration/components/dialog-detail-test.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/desktop/app/components/dialog-detail/index.hbs b/ui/desktop/app/components/dialog-detail/index.hbs index cd6f8f309..e7394f141 100644 --- a/ui/desktop/app/components/dialog-detail/index.hbs +++ b/ui/desktop/app/components/dialog-detail/index.hbs @@ -127,7 +127,7 @@
{{t 'actions.ok'}} @@ -138,7 +138,7 @@ @style='inline-link-action' @iconRight='chevron-right' > - View on Session page + {{@value}}
diff --git a/ui/desktop/tests/integration/components/dialog-detail-test.js b/ui/desktop/tests/integration/components/dialog-detail-test.js index 0b2d276ef..b4c7c7ffc 100644 --- a/ui/desktop/tests/integration/components/dialog-detail-test.js +++ b/ui/desktop/tests/integration/components/dialog-detail-test.js @@ -6,7 +6,7 @@ import { hbs } from 'ember-cli-htmlbars'; module('Integration | Component | dialog-detail', function (hooks) { setupRenderingTest(hooks); - test('it renders', async function (assert) { + test.skip('it renders', async function (assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); From 50c7bfc65916e2f800f768a71e2c3d01101fb306 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Wed, 2 Jun 2021 09:26:13 -0700 Subject: [PATCH 03/12] Stop using a bare dialog and start using the Dialog Detail component --- addons/core/translations/actions/en-us.yaml | 1 + .../app/components/dialog-detail/index.hbs | 54 +++------- ui/desktop/app/styles/app.scss | 102 +++++++++--------- .../scopes/scope/projects/targets.hbs | 60 ++++++----- yarn.lock | 18 ++++ 5 files changed, 114 insertions(+), 121 deletions(-) diff --git a/addons/core/translations/actions/en-us.yaml b/addons/core/translations/actions/en-us.yaml index 2c501df04..dd00b107b 100644 --- a/addons/core/translations/actions/en-us.yaml +++ b/addons/core/translations/actions/en-us.yaml @@ -32,3 +32,4 @@ change-password: Change Password edit-form: Edit Form change-origin: Change Origin URL change-state: Change State +close: Close diff --git a/ui/desktop/app/components/dialog-detail/index.hbs b/ui/desktop/app/components/dialog-detail/index.hbs index e7394f141..df3ca1b50 100644 --- a/ui/desktop/app/components/dialog-detail/index.hbs +++ b/ui/desktop/app/components/dialog-detail/index.hbs @@ -8,29 +8,15 @@ @modal={{true}} as |dialog| > + {{yield (hash + notification=(component 'rose/notification' class='connection-dialog-notification') + )}} + - - {{!-- - {{t - 'states.connection.success.description' - port=session.proxy_port - address=session.proxy_address - protocol='tcp' - }} - - -
Succesfully connected
- -

Proxy URL

-
-

www.verylongurl.com/section1/subsection2/how-to-tell-the-world-this-is-a-very-long-url-example

- -
- + {{yield (hash + body=(component 'rose/anonymous') + )}} + {{!--

Credentials

@@ -121,25 +107,11 @@
Code
- --}} -
+ --}} + -
- - {{t 'actions.ok'}} - -
-
- - {{@value}} - -
+ {{yield (hash + footer=(component 'rose/anonymous') + )}}
\ No newline at end of file diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index 485e9c824..e742bc718 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -213,7 +213,6 @@ .copyable-button { margin: 0; padding: 0 sizing.rems(xxs); - position: relative; top: -2px; } @@ -326,68 +325,63 @@ text-align: center; } + // Dialog Detail // These styles are a Work In Progress. Expect changes (lots of them) .connection-dialog { - .connection-dialog-successfully { - // background: green; + .rose-notification { + border-left: 0; + border-right: 0; + border-top: 0; + box-shadow: none; + margin-bottom: 0; } - .proxy-url { + .rose-dialog-footer { + align-items: center; display: flex; - - p { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - } - - .credentials-card { - display: flex; - flex-direction: column; - margin-bottom: 12px; - - &:last-child { margin-bottom: 0; } - - .credentials-card-header { + + div:nth-child(1) { display: flex; - flex-direction: row; + justify-content: flex-start; + width: 50%; + } + + div:nth-child(2) { + display: flex; + justify-content: flex-end; + width: 50%; + } + } - div { - display: flex; - width: 50%; + // .credentials-card { + // display: flex; + // flex-direction: column; + // margin-bottom: 12px; + + // &:last-child { margin-bottom: 0; } + + // .credentials-card-header { + // display: flex; + // flex-direction: row; + + // div { + // display: flex; + // width: 50%; - &:last-child { - justify-content: flex-end; - } - } - // border-bottom: 1px solid grey; - } + // &:last-child { + // justify-content: flex-end; + // } + // } + // // border-bottom: 1px solid grey; + // } - .credentials-card-body { - // background: yellow; - } + // .credentials-card-body { + // // background: yellow; + // } - .credentials-card-footer { - // background: pink; - } - } -} - -.rose-dialog-footer { - align-items: center; - display: flex; - - div:nth-child(1) { - display: flex; - justify-content: flex-start; - width: 50%; - } - - div:nth-child(2) { - display: flex; - justify-content: flex-end; - width: 50%; - } + // .credentials-card-footer { + // // background: pink; + // } + // } } diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs index 2e147f1f3..af84c6adf 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs @@ -4,17 +4,19 @@ {{#each target.sessions as |session|}} {{#if session.started_desktop_client}} {{#unless session.acknowledged}} - - + + +

Proxy URL

-
- - + +

Credentials

+ + + +
+ + {{t 'actions.close'}} + +
+
+ {{! - {{t 'actions.ok'}} - - - - {{!-- - --}} + + }} +
+
+
{{/unless}} {{/if}} {{/each}} diff --git a/yarn.lock b/yarn.lock index 18d3e1c74..2ae88ecc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7617,7 +7617,25 @@ 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" +<<<<<<< HEAD debuglog@^1.0.1: +======= +<<<<<<< HEAD +debuglog@*, debuglog@^1.0.1: +======= +<<<<<<< HEAD +======= +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +>>>>>>> aee23f84 (Stop using a bare dialog and start using the Dialog Detail component) +debuglog@^1.0.1: +>>>>>>> e9b16588 (Stop using a bare dialog and start using the Dialog Detail component) +>>>>>>> 842918fe (Stop using a bare dialog and start using the Dialog Detail component) version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= From cf9166fe4ad32a73f0abbbe756200cca852a1d18 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Thu, 3 Jun 2021 13:47:37 -0700 Subject: [PATCH 04/12] Use translation helper in targets and delete the port change in yarn start command. --- addons/core/translations/resources/en-us.yaml | 5 +++++ .../app/templates/scopes/scope/projects/targets.hbs | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 53f8090a2..d05456072 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -233,6 +233,7 @@ target: none: title: No Targets Available description: No Targets to display yet. Contact your Boundary admin if you don't see a Target you expect access to. + connection-success: Successfully connected actions: create: New Target delete: Delete Target @@ -250,3 +251,7 @@ target: add: title: Add Host Sets description: Select host sets to assign to this target. + detail: + title: Target connection details + proxy_url: Proxy URL + credentials: Credentials diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs index af84c6adf..43ef98abf 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs @@ -5,18 +5,18 @@ {{#if session.started_desktop_client}} {{#unless session.acknowledged}} -

Proxy URL

+

{{t 'resources.target.host-set.detail.proxy_url'}}

-

Credentials

+

{{t 'resources.target.host-set.detail.credentials'}}

@@ -50,7 +50,7 @@ @style='inline-link-action' @iconRight='chevron-right' > - + }} From 2bb9db6a674cdba347796bb6d4734309548cef6b Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Thu, 3 Jun 2021 13:50:12 -0700 Subject: [PATCH 05/12] Fix rebase mess with yarn.lock --- yarn.lock | 236 +++++++++++++++++++++++------------------------------- 1 file changed, 98 insertions(+), 138 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2ae88ecc3..77dcf436a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1834,15 +1834,15 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" - integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -1856,10 +1856,10 @@ dependencies: tslib "^2.1.0" -"@formatjs/ecma402-abstract@1.9.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.9.2.tgz#90618ec54701e6a8ee38688df8fc2436b9953d23" - integrity sha512-sZ4GHcitIBz837RSatMDr/6GkYT8hUDffvW+bo2N5lRrBmLk37i0IGSmsxZ6QcxLu2GuymN/4gATEyL/50z3Bg== +"@formatjs/ecma402-abstract@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.9.3.tgz#00892014c805935b5b1345d238246e9bf3a2de50" + integrity sha512-DBrRUL65m4SVtfq+T4Qltd8+upAzfb9K1MX0UZ0hqQ0wpBY0PSIti9XJe0ZQ/j2v/KxpwQ0Jw5NLumKVezJFQg== dependencies: tslib "^2.1.0" @@ -1868,21 +1868,21 @@ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.1.1.tgz#3006b58aca1e39a98aca213356b42da5d173f26b" integrity sha512-mIqBr5uigIlx13eZTOPSEh2buDiy3BCdMYUtewICREQjbb4xarDiVWoXSnrERM7NanZ+0TAHNXSqDe6HpEFQUg== -"@formatjs/icu-messageformat-parser@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.5.tgz#bf72328862de61bf237e5b2eb340a1cefc02fbdb" - integrity sha512-SYJBga4onwv7D1/33PVk+inSrs5AWzbW968odRYPtlEIiyUJDQu+hBoQCdKMI7BpryftNUK9hlQIiRxKmrFiTw== +"@formatjs/icu-messageformat-parser@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.6.tgz#7471c2116982f07b3d9b80e4572a870f20adbaf6" + integrity sha512-dgOZ2kq3sbjjC4P0IIghXFUiGY+x9yyypBJF9YFACjw8gPq/OSPmOzdMGvjY9hl4EeeIhhsDd4LIAN/3zHG99A== dependencies: - "@formatjs/ecma402-abstract" "1.9.2" - "@formatjs/icu-skeleton-parser" "1.2.6" + "@formatjs/ecma402-abstract" "1.9.3" + "@formatjs/icu-skeleton-parser" "1.2.7" tslib "^2.1.0" -"@formatjs/icu-skeleton-parser@1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.6.tgz#19cc85c1f91bc43f2cc5ded479ca57e8241d3737" - integrity sha512-j7pnLpWYCW370crnefZBd7z/2j/CRffjBaQ1wR+EpE6+HkeeAGwgaW7XHe3uInZ5Glb2/vnamPALmwFGTVwKvw== +"@formatjs/icu-skeleton-parser@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.7.tgz#a74954695c37470efdeff828799654088e567c34" + integrity sha512-xm1rJMOz4fwVfWH98VKtbTpZvyQ45plHilkCF16Nm6bAgosYC/IcMmgJisGr6uHqb5TvJRXE07+EvnkIIQjsdA== dependencies: - "@formatjs/ecma402-abstract" "1.9.2" + "@formatjs/ecma402-abstract" "1.9.3" tslib "^2.1.0" "@glimmer/component@^1.0.3": @@ -3193,14 +3193,14 @@ form-data "^3.0.0" "@types/node@*", "@types/node@>=10.0.0": - version "15.12.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2" - integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw== + version "15.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" + integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== "@types/node@^14.0.10": - version "14.17.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.2.tgz#1e94476db57ec93a372c7f7d29aa5707cfb92339" - integrity sha512-sld7b/xmFum66AAKuz/rp/CUO8+98fMpyQ3SBfzzBNGMd/1iHBTAg9oyAvcYlAj46bpc74r91jSw2iFdnx29nw== + version "14.17.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" + integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== "@types/node@^9.6.0": version "9.6.61" @@ -3380,30 +3380,30 @@ dependencies: "@types/node" "*" -"@typescript-eslint/types@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.0.tgz#7c6732c0414f0a69595f4f846ebe12616243d546" - integrity sha512-rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A== +"@typescript-eslint/types@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.1.tgz#9e7c523f73c34b04a765e4167ca5650436ef1d38" + integrity sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg== "@typescript-eslint/typescript-estree@^4.24.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.0.tgz#aea17a40e62dc31c63d5b1bbe9a75783f2ce7109" - integrity sha512-GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg== + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz#b2ce2e789233d62283fae2c16baabd4f1dbc9633" + integrity sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg== dependencies: - "@typescript-eslint/types" "4.26.0" - "@typescript-eslint/visitor-keys" "4.26.0" + "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/visitor-keys" "4.26.1" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.0.tgz#26d2583169222815be4dcd1da4fe5459bc3bcc23" - integrity sha512-cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg== +"@typescript-eslint/visitor-keys@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz#0d55ea735cb0d8903b198017d6d4f518fdaac546" + integrity sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw== dependencies: - "@typescript-eslint/types" "4.26.0" + "@typescript-eslint/types" "4.26.1" eslint-visitor-keys "^2.0.0" "@ungap/promise-all-settled@1.1.2": @@ -3766,9 +3766,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" - integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -6360,9 +6360,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.30001219: - version "1.0.30001234" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001234.tgz#8fc2e709e3b0679d7af7f073a1c661155c39b975" - integrity sha512-a3gjUVKkmwLdNysa1xkUAwN2VfJUJyVW47rsi3aCbkRCtbHAfo+rOsCqVw29G6coQ8gzAPb5XBXwiGHwme3isA== + version "1.0.30001235" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" + integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== capture-exit@^2.0.0: version "2.0.0" @@ -6463,15 +6463,15 @@ charm@^1.0.0: inherits "^2.0.1" cheerio-select@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.4.0.tgz#3a16f21e37a2ef0f211d6d1aa4eff054bb22cdc9" - integrity sha512-sobR3Yqz27L553Qa7cK6rtJlMDbiKPdNywtR95Sj/YgfpLfy0u6CGJuaBKe5YE/vTc23SCRKxWSdlon/w6I/Ew== + version "1.5.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" + integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== dependencies: - css-select "^4.1.2" - css-what "^5.0.0" + css-select "^4.1.3" + css-what "^5.0.1" domelementtype "^2.2.0" domhandler "^4.2.0" - domutils "^2.6.0" + domutils "^2.7.0" cheerio@^1.0.0-rc.2, cheerio@^1.0.0-rc.9: version "1.0.0-rc.9" @@ -7165,17 +7165,17 @@ copy-to-clipboard@^3.3.1: toggle-selection "^1.0.6" core-js-compat@^3.8.1, core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.1.tgz#05444caa8f153be0c67db03cf8adb8ec0964e58e" - integrity sha512-mdrcxc0WznfRd8ZicEZh1qVeJ2mu6bwQFh8YVUK48friy/FOwFV5EJj9/dlh+nMQ74YusdVfBFDuomKgUspxWQ== + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" + integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== dependencies: browserslist "^4.16.6" semver "7.0.0" core-js-pure@^3.8.2: - version "3.13.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.13.1.tgz#5d139d346780f015f67225f45ee2362a6bed6ba1" - integrity sha512-wVlh0IAi2t1iOEh16y4u1TRk6ubd4KvLE8dlMi+3QUI6SfKphQUh7tAwihGGSQ8affxEXpVIPpOdf9kjR4v4Pw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.14.0.tgz#72bcfacba74a65ffce04bf94ae91d966e80ee553" + integrity sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: version "2.6.12" @@ -7183,9 +7183,9 @@ core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: - version "3.13.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.13.1.tgz#30303fabd53638892062d8b4e802cac7599e9fb7" - integrity sha512-JqveUc4igkqwStL2RTRn/EPFGBOfEZHxJl/8ej1mXJR75V3go2mFF4bmUYkEIT1rveHKnkUlcJX/c+f1TyIovQ== + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" + integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== core-object@^3.1.5: version "3.1.5" @@ -7419,10 +7419,10 @@ css-select@^2.0.0, css-select@^2.0.2: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.2.tgz#8b52b6714ed3a80d8221ec971c543f3b12653286" - integrity sha512-nu5ye2Hg/4ISq4XqdLY2bEatAcLIdt3OYGFc9Tm9n7VSlFBcfRv0gBNksHRgSdUDQGtN3XrZ94ztW+NfzkFSUw== +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== dependencies: boolbase "^1.0.0" css-what "^5.0.0" @@ -7617,25 +7617,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" -<<<<<<< HEAD debuglog@^1.0.1: -======= -<<<<<<< HEAD -debuglog@*, debuglog@^1.0.1: -======= -<<<<<<< HEAD -======= -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - ->>>>>>> aee23f84 (Stop using a bare dialog and start using the Dialog Detail component) -debuglog@^1.0.1: ->>>>>>> e9b16588 (Stop using a bare dialog and start using the Dialog Detail component) ->>>>>>> 842918fe (Stop using a bare dialog and start using the Dialog Detail component) version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -8017,7 +7999,7 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.0.0: +domutils@^2.0.0, domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== @@ -8026,15 +8008,6 @@ domutils@^2.0.0: domelementtype "^2.2.0" domhandler "^4.2.0" -domutils@^2.5.2, domutils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" - integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -8219,9 +8192,9 @@ electron-rebuild@^2.0.3: yargs "^16.0.0" electron-to-chromium@^1.3.723: - version "1.3.748" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.748.tgz#16638a8130f407ae5bf2fc168f2173574deb36c5" - integrity sha512-fmIKfYALVeEybk/L2ucdgt7jN3JsbGtg3K9pmF/MRWgkeADBI1VSAa5IzdG2gZwTxsnsrFtdMpOTSM5mrBRKVQ== + version "1.3.749" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a" + integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A== element-resize-detector@^1.2.2: version "1.2.2" @@ -9886,12 +9859,12 @@ eslint@^2.7.0: user-home "^2.0.0" eslint@^7.17.0, eslint@^7.27.0: - version "7.27.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7" - integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA== + version "7.28.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" + integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.1" + "@eslint/eslintrc" "^0.4.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -9908,7 +9881,7 @@ eslint@^7.17.0, eslint@^7.27.0: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -11347,7 +11320,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -11499,14 +11472,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0: +globals@^13.6.0, globals@^13.9.0: version "13.9.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== @@ -12549,12 +12515,12 @@ intl-messageformat-parser@^6.0.5: tslib "^2.1.0" intl-messageformat@^9.3.6: - version "9.6.17" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.6.17.tgz#9ac33466102f445f9269c7fdb30a89f7f490e1ae" - integrity sha512-1mSNTINYSrh4rm0YBHe9GO2JmjTXzyXv8Q/y2G/JxA9wRYvl/6LPDeE9IOGd0pXo6BNgA1DwSbXXurGriIl7RA== + version "9.6.18" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.6.18.tgz#785cc0c44a1a288fbbda63308907c3eab4eebe9f" + integrity sha512-phG2EtMS/J6C4pcbErPkTSoqJ+T6qNfPVWTv5cDnI/nuCDKRUHPLDp4QpMdxIWPSUYPj7Lq69vMEIqg91x+H1Q== dependencies: "@formatjs/fast-memoize" "1.1.1" - "@formatjs/icu-messageformat-parser" "2.0.5" + "@formatjs/icu-messageformat-parser" "2.0.6" tslib "^2.1.0" into-stream@^3.1.0: @@ -13315,11 +13281,6 @@ jquery@^3.4.1, jquery@^3.5.0: resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== -js-reporters@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-reporters/-/js-reporters-2.0.0.tgz#62ad6a512f1740d3ab4686b0059dd9f57cc0708b" - integrity sha512-VJd/86niT7GzsaVc+Yxrs8QPrYl1orzv8bYZPuSOtxU6rk/pv8aOXTcIa7HaANvtvdLMTsZspAiucNQ6T2QFHw== - js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -15554,9 +15515,9 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== node-uuid@~1.4.7: version "1.4.8" @@ -16204,9 +16165,9 @@ ora@^3.4.0: wcwidth "^1.0.1" ora@^5.0.0, ora@^5.1.0, ora@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.0.tgz#42eda4855835b9cd14d33864c97a3c95a3f56bf4" - integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg== + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" chalk "^4.1.0" @@ -17075,9 +17036,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.2.1, prettier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" - integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== + version "2.3.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" + integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== prettier@~2.2.1: version "2.2.1" @@ -17454,12 +17415,11 @@ qunit-dom@^1.6.0: ember-cli-version-checker "^5.1.1" qunit@^2.13.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.15.0.tgz#8ba3a3c5d13369ab1740337680600a98a7f8b591" - integrity sha512-9ZoOILeyRZzrdvy2m7M4S76bneGD75Bh4B2aot3uKRKZuoEvA9gevvzU339L805Ys0AN2C7cnAV9nIBD5t72IQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.16.0.tgz#b8ed63d512e5d4eaada5afc0c6c9e8b844181ba1" + integrity sha512-88x9t+rRMbB6IrCIUZvYU4pJy7NiBEv7SX8jD4LZAsIj+dV+kwGnFStOmPNvqa6HM96VZMD8CIIFKH2+3qvluA== dependencies: commander "7.1.0" - js-reporters "2.0.0" node-watch "0.7.1" tiny-glob "0.2.8" @@ -20658,9 +20618,9 @@ uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.13.8" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.8.tgz#7c2f9f2553f611f3ff592bdc19c6fb208dc60afb" - integrity sha512-PvFLMFIQHfIjFFlvAch69U2IvIxK9TNzNWt1SxZGp9JZ/v70yvqIQuiJeVPPtUMOzoNt+aNRDk4wgxb34wvEqA== + version "3.13.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b" + integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g== uid-number@0.0.6: version "0.0.6" @@ -21332,9 +21292,9 @@ warning@^4.0.2, warning@^4.0.3: loose-envify "^1.0.0" watch-detector@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/watch-detector/-/watch-detector-1.0.0.tgz#c7b722d8695fee9ab6071e0f38f258e6adb22609" - integrity sha512-siywMl3fXK30Tlpu/dUBHhlpxhQmHdguZ8OIb813eU9lrVmmsJa9k0+n1HtJ+7p3SzFCPq2XbmR3GUYpPC3TBA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/watch-detector/-/watch-detector-1.0.1.tgz#3106a6b489284ec2ecaef0e65cf1b8ec9117296e" + integrity sha512-8sJ8rvNfg2ciqCa5IxIdmdxU/vuUe9V/jw+thXbdreELSv3+Cq6k8K42cLEL86W2td1PMmfNCWZuAhrZ/sD4mw== dependencies: heimdalljs-logger "^0.1.10" semver "^6.3.0" From c2b4c0ad8b10ac3cd28c7d70ecfe42804317c806 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Fri, 4 Jun 2021 11:31:29 -0700 Subject: [PATCH 06/12] Change model attributes to tracked --- addons/api/addon/models/session.js | 5 +++-- ui/desktop/app/routes/scopes/scope/projects/targets.js | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/api/addon/models/session.js b/addons/api/addon/models/session.js index b6ceadd4d..f85593958 100644 --- a/addons/api/addon/models/session.js +++ b/addons/api/addon/models/session.js @@ -2,12 +2,13 @@ import GeneratedSessionModel from '../generated/models/session'; import { computed } from '@ember/object'; import { equal } from '@ember/object/computed'; import { attr } from '@ember-data/model'; +import { tracked } from '@glimmer/tracking'; export default class SessionModel extends GeneratedSessionModel { // =attributes - @attr('boolean', { readOnly: true }) acknowledged; - @attr('boolean', { readOnly: true }) started_desktop_client; + @tracked acknowledged; + @tracked started_desktop_client; @attr('string', { readOnly: true }) proxy_address; @attr('number', { readOnly: true }) proxy_port; diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index a12d0a7cf..3b847e020 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -111,7 +111,9 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { // Associate the connection details with the session const { session_id, address, port } = connectionDetails; - await this.store.findRecord('session', session_id); + const session = await this.store.findRecord('session', session_id); + // Flag the session has been open in the desktop client + session.started_desktop_client = true; // Update the session record with proxy information from the CLI // This is read-only information that shouldn't dirty the session, @@ -124,7 +126,6 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { id: session_id, type: 'session', attributes: { - started_desktop_client: true, proxy_address: address, proxy_port: port } From f14346d3a47fb9ca07e72af74d287dccfabe75fe Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Fri, 4 Jun 2021 13:38:24 -0700 Subject: [PATCH 07/12] Add uni test for dialog detail and fix lint errors --- .../app/components/dialog-detail/index.hbs | 20 ++++++++-------- .../scopes/scope/projects/targets.hbs | 10 +++++--- .../components/dialog-detail-test.js | 24 +++++++++++-------- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/ui/desktop/app/components/dialog-detail/index.hbs b/ui/desktop/app/components/dialog-detail/index.hbs index df3ca1b50..a37cc4273 100644 --- a/ui/desktop/app/components/dialog-detail/index.hbs +++ b/ui/desktop/app/components/dialog-detail/index.hbs @@ -8,14 +8,16 @@ @modal={{true}} as |dialog| > - {{yield (hash - notification=(component 'rose/notification' class='connection-dialog-notification') - )}} + {{yield + (hash + notification=(component + 'rose/notification' class='connection-dialog-notification' + ) + ) + }} - {{yield (hash - body=(component 'rose/anonymous') - )}} + {{yield (hash body=(component 'rose/anonymous'))}} {{!--

Credentials

@@ -108,10 +110,8 @@
Code
--}} -
+ - {{yield (hash - footer=(component 'rose/anonymous') - )}} + {{yield (hash footer=(component 'rose/anonymous'))}} \ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs index 43ef98abf..a38ea78ee 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs @@ -5,7 +5,11 @@ {{#if session.started_desktop_client}} {{#unless session.acknowledged}} + />

{{t 'resources.target.host-set.detail.proxy_url'}}

@@ -45,7 +49,7 @@
- {{! `); + assert.ok(find('.connection-dialog')); + }); - assert.equal(this.element.textContent.trim(), ''); - - // Template block usage: + test('it renders with content', async function (assert) { await render(hbs` - template block text + + +

Test

+
+
`); - assert.equal(this.element.textContent.trim(), 'template block text'); + assert.ok(find('.connection-dialog')); + assert.ok(find('.rose-dialog-header')); + assert.ok(find('.rose-dialog-body')); + assert.ok(find('.rose-dialog-footer')); }); }); From db2a40b58fe8de4540e2f79769e152284d187feb Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Mon, 7 Jun 2021 08:28:10 -0700 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Modify=20test=20to?= =?UTF-8?q?=20fit=20latest=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modify tests to fit the latest changes within the confirmation/success dialog and the brand new conection dialog --- ui/desktop/tests/acceptance/projects/targets-test.js | 4 ++-- .../tests/acceptance/projects/targets/hosts-test.js | 6 +++--- .../tests/acceptance/projects/targets/sessions-test.js | 8 ++++---- ui/desktop/tests/acceptance/scopes-test.js | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ui/desktop/tests/acceptance/projects/targets-test.js b/ui/desktop/tests/acceptance/projects/targets-test.js index ebda82cc1..70574f123 100644 --- a/ui/desktop/tests/acceptance/projects/targets-test.js +++ b/ui/desktop/tests/acceptance/projects/targets-test.js @@ -227,11 +227,11 @@ module('Acceptance | projects | targets', function (hooks) { 'tbody tr:first-child td:last-child button', 'Activate connect mode' ); - assert.ok(find('.rose-dialog-success'), 'Success dialog'); + assert.ok(find('.connection-dialog'), 'Success dialog'); assert.equal(findAll('.rose-dialog-footer button').length, 1); assert.equal( find('.rose-dialog-footer button').textContent.trim(), - 'OK', + 'Close', 'Cannot retry' ); assert.equal( diff --git a/ui/desktop/tests/acceptance/projects/targets/hosts-test.js b/ui/desktop/tests/acceptance/projects/targets/hosts-test.js index de1d7162c..326832ff6 100644 --- a/ui/desktop/tests/acceptance/projects/targets/hosts-test.js +++ b/ui/desktop/tests/acceptance/projects/targets/hosts-test.js @@ -219,10 +219,10 @@ module('Acceptance | projects | targets | hosts', function (hooks) { 'tbody tr:first-child td:last-child button', 'Activate connect mode' ); - assert.ok(find('.rose-dialog-success'), 'Success dialog'); + assert.ok(find('.connection-dialog'), 'Success dialog'); assert.equal( - find('.rose-dialog-footer .rose-button-primary').textContent.trim(), - 'OK', + find('.rose-dialog-footer .rose-button-secondary').textContent.trim(), + 'Close', 'Cannot retry' ); assert.equal( diff --git a/ui/desktop/tests/acceptance/projects/targets/sessions-test.js b/ui/desktop/tests/acceptance/projects/targets/sessions-test.js index e6031ab88..a4704307b 100644 --- a/ui/desktop/tests/acceptance/projects/targets/sessions-test.js +++ b/ui/desktop/tests/acceptance/projects/targets/sessions-test.js @@ -295,10 +295,10 @@ module('Acceptance | projects | targets | sessions', function (hooks) { later(async () => { run.cancelTimers(); await click('.rose-layout-page-actions button', 'Activate connect mode'); - assert.ok(find('.rose-dialog-success'), 'Success dialog'); + assert.ok(find('.connection-dialog'), 'Success dialog'); assert.equal( - find('.rose-dialog-footer .rose-button-primary').textContent.trim(), - 'OK', + find('.rose-dialog-footer .rose-button-secondary').textContent.trim(), + 'Close', 'Cannot retry' ); assert.equal( @@ -325,7 +325,7 @@ module('Acceptance | projects | targets | sessions', function (hooks) { run.cancelTimers(); instances.session.update('status', 'active'); await click('.rose-layout-page-actions button', 'Activate connect mode'); - assert.ok(find('.rose-dialog-success'), 'Success dialog'); + assert.ok(find('.connection-dialog'), 'Success dialog'); await click('.rose-dialog-dismiss'); assert.equal( find( diff --git a/ui/desktop/tests/acceptance/scopes-test.js b/ui/desktop/tests/acceptance/scopes-test.js index cb15c0af9..646bf9f67 100644 --- a/ui/desktop/tests/acceptance/scopes-test.js +++ b/ui/desktop/tests/acceptance/scopes-test.js @@ -292,11 +292,11 @@ module('Acceptance | scopes', function (hooks) { 'tbody tr:first-child td:last-child button', 'Activate connect mode' ); - assert.ok(find('.rose-dialog-success'), 'Success dialog'); + assert.ok(find('.connection-dialog'), 'Success dialog'); assert.equal(findAll('.rose-dialog-footer button').length, 1); assert.equal( find('.rose-dialog-footer button').textContent.trim(), - 'OK', + 'Close', 'Cannot retry' ); }, 750); From dbf2a8e43fce172ca7f172f19ab77b1a0930211c Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Tue, 8 Jun 2021 10:25:44 -0700 Subject: [PATCH 09/12] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Replace=20confirma?= =?UTF-8?q?tion=20dialog=20with=20this=20new=20one?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leave this new dialog exactly as the confirmation dialog. We want to use this one as a replacament and slowly add more fields and information --- ui/desktop/app/components/dialog-detail/index.hbs | 8 ++++---- ui/desktop/app/styles/app.scss | 6 +++--- .../app/templates/scopes/scope/projects/targets.hbs | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ui/desktop/app/components/dialog-detail/index.hbs b/ui/desktop/app/components/dialog-detail/index.hbs index a37cc4273..92cfbbb1b 100644 --- a/ui/desktop/app/components/dialog-detail/index.hbs +++ b/ui/desktop/app/components/dialog-detail/index.hbs @@ -37,7 +37,7 @@
- +
@@ -58,7 +58,7 @@
- + - +
@@ -103,7 +103,7 @@
- + --}} - {{yield (hash footer=(component 'rose/anonymous'))}} + {{yield to='footer'}} \ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs index bb75c19ab..3fee051d6 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets.hbs @@ -10,20 +10,18 @@ ': ' target.id }} + @notificationStyle='success' + @notification={{t + 'resources.target.messages.connection-success.title' + }} @dismiss={{route-action 'acknowledge' session}} @dismissButtonText={{t 'actions.ok'}} - as |dialog| > - - - + <:body>

{{t 'resources.target.messages.proxy_url.title'}} ({{t 'resources.target.types.tcp'}})

@@ -34,8 +32,8 @@

Credentials

}} -
- + + <:footer>
}}
-
+
{{/unless}} {{/if}} From 75bb34f738fb76bf4d5a262aabc2791e49c02cdb Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 14 Jun 2021 17:08:48 -0400 Subject: [PATCH 12/12] =?UTF-8?q?chore:=20=F0=9F=A4=96=20use=20tracked=20p?= =?UTF-8?q?roperties=20instead=20of=20attributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/addon/models/session.js | 5 ++-- .../routes/scopes/scope/projects/targets.js | 23 ++++--------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/addons/api/addon/models/session.js b/addons/api/addon/models/session.js index f85593958..8c81b8a5a 100644 --- a/addons/api/addon/models/session.js +++ b/addons/api/addon/models/session.js @@ -1,7 +1,6 @@ import GeneratedSessionModel from '../generated/models/session'; import { computed } from '@ember/object'; import { equal } from '@ember/object/computed'; -import { attr } from '@ember-data/model'; import { tracked } from '@glimmer/tracking'; export default class SessionModel extends GeneratedSessionModel { @@ -9,8 +8,8 @@ export default class SessionModel extends GeneratedSessionModel { @tracked acknowledged; @tracked started_desktop_client; - @attr('string', { readOnly: true }) proxy_address; - @attr('number', { readOnly: true }) proxy_port; + @tracked proxy_address; + @tracked proxy_port; @equal('status', 'active') isActive; @equal('status', 'pending') isPending; diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index 3b847e020..87773dc2b 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -2,7 +2,6 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; import { task, timeout } from 'ember-concurrency'; -import { later } from '@ember/runloop'; import config from '../../../../config/environment'; const POLL_TIMEOUT_SECONDS = config.sessionPollingTimeoutSeconds; @@ -112,26 +111,14 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { // Associate the connection details with the session const { session_id, address, port } = connectionDetails; const session = await this.store.findRecord('session', session_id); + // Flag the session has been open in the desktop client session.started_desktop_client = true; - // Update the session record with proxy information from the CLI - // This is read-only information that shouldn't dirty the session, - // so we use store.push here. In the future, it may make sense to push - // this off to the API so that we don't have to manually persist the - // proxy details. - later(() => { - this.store.push({ - data: { - id: session_id, - type: 'session', - attributes: { - proxy_address: address, - proxy_port: port - } - } - }); - }, 150); + // In the future, it may make sense to push this off to the API so that + // we don't have to manually persist the proxy details. + session.proxy_address = address; + session.proxy_port = port; } catch(e) { this.confirm.confirm(e.message, { isConnectError: true }) // Retry