From 267cd271281b793c53d8eda7ce998493c2a56d4b Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 4 Jan 2021 14:50:54 -0500 Subject: [PATCH 001/106] style: Use core addon logos in desktop header --- ui/desktop/app/styles/app.scss | 7 - ui/desktop/public/app-icons/global.svg | 3 - ui/desktop/public/app-icons/org.svg | 3 - ui/desktop/public/logo-app.svg | 71 --- yarn.lock | 759 +++++++++++++------------ 5 files changed, 388 insertions(+), 455 deletions(-) delete mode 100644 ui/desktop/public/app-icons/global.svg delete mode 100644 ui/desktop/public/app-icons/org.svg delete mode 100644 ui/desktop/public/logo-app.svg diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index 2cf419a4f..be7722d0b 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -100,15 +100,8 @@ } .rose-header { - -webkit-app-region: drag; - min-height: sizing.rems(l) * 2; - padding-left: sizing.rems(l) * 3; position: relative; - .rose-header-brand { - display: none; - } - .logotype { display: none; } diff --git a/ui/desktop/public/app-icons/global.svg b/ui/desktop/public/app-icons/global.svg deleted file mode 100644 index 0e5b84d47..000000000 --- a/ui/desktop/public/app-icons/global.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ui/desktop/public/app-icons/org.svg b/ui/desktop/public/app-icons/org.svg deleted file mode 100644 index 238cc8435..000000000 --- a/ui/desktop/public/app-icons/org.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ui/desktop/public/logo-app.svg b/ui/desktop/public/logo-app.svg deleted file mode 100644 index 3e65e7870..000000000 --- a/ui/desktop/public/logo-app.svg +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yarn.lock b/yarn.lock index b75da818b..a528e0d0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,10 +9,10 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11", "@babel/code-frame@^7.5.5": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" @@ -64,12 +64,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.5": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.10.tgz#2b188fc329fb8e4f762181703beffc0fe6df3460" - integrity sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww== +"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.12.5": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== dependencies: - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.11" jsesc "^2.5.1" source-map "^0.5.0" @@ -88,23 +88,6 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx-experimental@^7.12.10", "@babel/helper-builder-react-jsx-experimental@^7.12.4": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.10.tgz#a58cb96a793dc0fcd5c9ed3bb36d62fdc60534c2" - integrity sha512-3Kcr2LGpL7CTRDTTYm1bzeor9qZbxbvU2AxsLA6mUG9gYarSfIKMK0UlU+azLWI+s0+BH768bwyaziWB2NOJlQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.10" - "@babel/helper-module-imports" "^7.12.5" - "@babel/types" "^7.12.10" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - "@babel/helper-compilation-targets@^7.10.2", "@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" @@ -150,16 +133,16 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== +"@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" -"@babel/helper-get-function-arity@^7.10.4": +"@babel/helper-get-function-arity@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== @@ -173,7 +156,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.12.1": +"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== @@ -202,7 +185,7 @@ "@babel/types" "^7.12.1" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.10.4": +"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== @@ -224,14 +207,14 @@ "@babel/types" "^7.12.1" "@babel/helper-replace-supers@^7.12.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" - integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.1" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.12.5" - "@babel/types" "^7.12.5" + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" "@babel/helper-simple-access@^7.12.1": version "7.12.1" @@ -247,22 +230,22 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.11" -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-validator-option@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" - integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" + integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== "@babel/helper-wrap-function@^7.10.4": version "7.12.3" @@ -292,15 +275,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.10", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81" - integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA== +"@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== "@babel/plugin-proposal-async-generator-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" - integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" + integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-remap-async-to-generator" "^7.12.1" @@ -315,9 +298,9 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-decorators@^7.10.1", "@babel/plugin-proposal-decorators@^7.10.5", "@babel/plugin-proposal-decorators@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" - integrity sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.12.tgz#067a6d3d6ca86d54cf56bb183239199c20daeafe" + integrity sha512-fhkE9lJYpw2mjHelBpM2zCbaA11aov2GJs7q4cFaXNrWx0H3bW58H9Esy2rdtYOghFBEYUDRIpvlgi+ZD+AvvQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" @@ -556,10 +539,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.8.3": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" - integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.12.11", "@babel/plugin-transform-block-scoping@^7.8.3": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" + integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -732,23 +715,22 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-jsx-development@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz#4c2a647de79c7e2b16bfe4540677ba3121e82a08" - integrity sha512-Rs3ETtMtR3VLXFeYRChle5SsP/P9Jp/6dsewBQfokDSzKJThlsuFcnzLTDRALiUmTC48ej19YD9uN1mupEeEDg== + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz#bccca33108fe99d95d7f9e82046bfe762e71f4e7" + integrity sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.12.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.12" -"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.10.tgz#a7af3097c73479123594c8c8fe39545abebd44e3" - integrity sha512-MM7/BC8QdHXM7Qc1wdnuk73R4gbuOpfrSUgfV/nODGc86sPY1tgmY2M9E9uAnf2e4DOIp8aKGWqgZfQxnTNGuw== +"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.12.10", "@babel/plugin-transform-react-jsx@^7.12.12": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e" + integrity sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw== dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.12.10" + "@babel/helper-annotate-as-pure" "^7.12.10" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.12.1" + "@babel/types" "^7.12.12" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" @@ -876,15 +858,15 @@ regenerator-runtime "^0.13.4" "@babel/preset-env@^7.10.2", "@babel/preset-env@^7.12.0", "@babel/preset-env@^7.12.1": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.10.tgz#ca981b95f641f2610531bd71948656306905e6ab" - integrity sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA== + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" + integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== dependencies: "@babel/compat-data" "^7.12.7" "@babel/helper-compilation-targets" "^7.12.5" "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" + "@babel/helper-validator-option" "^7.12.11" "@babel/plugin-proposal-async-generator-functions" "^7.12.1" "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-dynamic-import" "^7.12.1" @@ -913,7 +895,7 @@ "@babel/plugin-transform-arrow-functions" "^7.12.1" "@babel/plugin-transform-async-to-generator" "^7.12.1" "@babel/plugin-transform-block-scoped-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.11" "@babel/plugin-transform-classes" "^7.12.1" "@babel/plugin-transform-computed-properties" "^7.12.1" "@babel/plugin-transform-destructuring" "^7.12.1" @@ -943,7 +925,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.1" "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.11" core-js-compat "^3.8.0" semver "^5.5.0" @@ -1006,26 +988,26 @@ "@babel/types" "^7.12.7" "@babel/traverse@^7.1.6", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" - integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.10" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.10" - "@babel/types" "^7.12.10" + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.1.6", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260" - integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw== +"@babel/types@^7.1.6", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" to-fast-properties "^2.0.0" @@ -2004,18 +1986,18 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.4" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -2023,11 +2005,11 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" "@npmcli/ci-detect@^1.0.0": @@ -2043,9 +2025,9 @@ mkdirp "^1.0.4" "@popperjs/core@^2.5.4": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.4.tgz#de25b5da9f727985a3757fd59b5d028aba75841a" - integrity sha512-ZpKr+WTb8zsajqgDkvCEWgp6d5eJT6Q63Ng2neTbzBO76Lbe91vX/iVIW9dikq+Fs3yEo+ls4cxeXABD2LtcbQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f" + integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw== "@reach/router@^1.3.3": version "1.3.4" @@ -2611,9 +2593,9 @@ defer-to-connect "^2.0.0" "@textlint/ast-node-types@^4.0.3": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz#f6596c45c32c85dc06915c3077bb7686033efd32" - integrity sha512-Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg== + version "4.3.5" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz#4fb2f81450c9135191b464c3955ebd3a3a95b4a6" + integrity sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA== "@textlint/markdown-to-ast@~6.0.9": version "6.0.9" @@ -2698,9 +2680,9 @@ integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== "@types/express-serve-static-core@*": - version "4.17.15" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz#7c3d37829a991da9a507c1efd44d97532e8909e3" - integrity sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ== + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" + integrity sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2853,9 +2835,9 @@ form-data "^3.0.0" "@types/node@*": - version "14.14.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.13.tgz#9e425079799322113ae8477297ae6ef51b8e0cdf" - integrity sha512-vbxr0VZ8exFMMAjCW8rJwaya0dMCDyYW2ZRdTyjtrCvJoENMpdUHOT/eTzvgyA5ZnqRZ/sI0NwqAxNHKYokLJQ== + version "14.14.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4" + integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== "@types/node@^9.6.0": version "9.6.61" @@ -3022,14 +3004,14 @@ source-map "^0.6.0" "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== "@types/yargs@^15.0.0": - version "15.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.11.tgz#361d7579ecdac1527687bcebf9946621c12ab78c" - integrity sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA== + version "15.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.12.tgz#6234ce3e3e3fa32c5db301a170f96a599c960d74" + integrity sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw== dependencies: "@types/yargs-parser" "*" @@ -3389,6 +3371,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + amd-name-resolver@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-1.2.0.tgz#fc41b3848824b557313897d71f8d5a0184fbe679" @@ -3773,11 +3765,6 @@ ast-types@0.13.3: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7" integrity sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA== -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -4323,9 +4310,9 @@ babel-plugin-module-resolver@^3.1.1: resolve "^1.4.0" babel-plugin-module-resolver@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.0.0.tgz#8f3a3d9d48287dc1d3b0d5595113adabd36a847f" - integrity sha512-3pdEq3PXALilSJ6dnC4wMWr0AZixHRM4utpdpBR9g5QG7B7JwWyukQv7a9hVxkbGFl+nQbrHDqqQOIBtTXTP/Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" + integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== dependencies: find-babel-config "^1.2.0" glob "^7.1.6" @@ -4918,7 +4905,7 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@~1.0.0, bl@~1.2.3: +bl@^4.0.3, bl@~1.0.0, bl@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== @@ -5834,7 +5821,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.15.0: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0: version "4.16.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" integrity sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ== @@ -6197,9 +6184,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001165: - version "1.0.30001166" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001166.tgz#ca73e8747acfd16a4fd6c4b784f1b995f9698cf8" - integrity sha512-nCL4LzYK7F4mL0TjEMeYavafOGnBa98vTudH5c8lW9izUjnB99InG6pmC1ElAI1p0GlyZajv4ltUdFXvOHIl1A== + version "1.0.30001173" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" + integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== capture-exit@^2.0.0: version "2.0.0" @@ -6299,17 +6286,29 @@ charm@^1.0.0: dependencies: inherits "^2.0.1" -cheerio@^1.0.0-rc.2: - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" - integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== +cheerio-select-tmp@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz#55bbef02a4771710195ad736d5e346763ca4e646" + integrity sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.1" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash "^4.15.0" - parse5 "^3.0.1" + css-select "^3.1.2" + css-what "^4.0.0" + domelementtype "^2.1.0" + domhandler "^4.0.0" + domutils "^2.4.4" + +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.5.tgz#88907e1828674e8f9fee375188b27dadd4f0fa2f" + integrity sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== + dependencies: + cheerio-select-tmp "^0.1.0" + dom-serializer "~1.2.0" + domhandler "^4.0.0" + entities "~2.1.0" + htmlparser2 "^6.0.0" + parse5 "^6.0.0" + parse5-htmlparser2-tree-adapter "^6.0.0" "chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: version "3.4.3" @@ -6495,7 +6494,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.0.0, cli-spinners@^2.4.0: +cli-spinners@^2.0.0, cli-spinners@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== @@ -6986,17 +6985,17 @@ copy-to-clipboard@^3.0.8: toggle-selection "^1.0.6" core-js-compat@^3.8.0: - version "3.8.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.1.tgz#8d1ddd341d660ba6194cbe0ce60f4c794c87a36e" - integrity sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ== + version "3.8.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c" + integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ== dependencies: - browserslist "^4.15.0" + browserslist "^4.16.0" semver "7.0.0" core-js-pure@^3.0.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.1.tgz#23f84048f366fdfcf52d3fd1c68fec349177d119" - integrity sha512-Se+LaxqXlVXGvmexKGPvnUIYC1jwXu1H6Pkyb3uBM5d8/NELMYCHs/4/roD7721NxrTLyv7e5nXd5/QLBO+10g== + version "3.8.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.2.tgz#286f885c0dac1cdcd6d78397392abc25ddeca225" + integrity sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: version "2.6.12" @@ -7004,9 +7003,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.1, core-js@^3.0.4, core-js@^3.6.5: - version "3.8.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47" - integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg== + version "3.8.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044" + integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A== core-object@^3.1.5: version "3.1.5" @@ -7229,17 +7228,7 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.1.0, css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: +css-select@^2.0.0, css-select@^2.0.2: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== @@ -7249,6 +7238,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-tree@1.0.0-alpha.28: version "1.0.0-alpha.28" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" @@ -7270,16 +7270,16 @@ css-url-regex@^1.1.0: resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - css-what@^3.2.1: version "3.4.2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -7721,13 +7721,14 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -dom-serializer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== +dom-serializer@^1.0.1, dom-serializer@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" dom-walk@^0.1.0: version "0.1.2" @@ -7744,7 +7745,7 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== @@ -7763,13 +7764,12 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.1.0" domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" @@ -7779,6 +7779,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.3, domutils@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" + integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -7836,9 +7845,9 @@ dotenv@^8.0.0: integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== downshift@^6.0.6: - version "6.0.7" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.7.tgz#05ef58b991e4467cdb8cd36e7a87a011d0bada5c" - integrity sha512-+rqgx3JTSs8b4V9q++hsLvaP8mhMOdX7u+jy5S2etg7+Y7uFLVzZaI0S7Xo2yEnNDmTcNnYZZ/vFjdWuJ2kZdg== + version "6.0.10" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.10.tgz#c0fdc353b286c0b5f8d93af80a2bce57d90854d5" + integrity sha512-TuUh448snXiOXrstL1q6s13xev2kWEHAuNlwzEHXRMhG7NbPgvzFvjYelwkaOSZ1dFNJjzRnpK6cbvUO7oHlMQ== dependencies: "@babel/runtime" "^7.12.5" compute-scroll-into-view "^1.0.16" @@ -7970,9 +7979,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.621: - version "1.3.625" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.625.tgz#a7bd18da4dc732c180b2e95e0e296c0bf22f3bd6" - integrity sha512-CsLk/r0C9dAzVPa9QF74HIXduxaucsaRfqiOYvIv2PRhvyC6EOqc/KbpgToQuDVgPf3sNAFZi3iBu4vpGOwGag== + version "1.3.633" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" + integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== element-resize-detector@^1.2.1: version "1.2.1" @@ -8014,9 +8023,9 @@ ember-assign-polyfill@^2.6.0: ember-cli-version-checker "^2.0.0" ember-auto-import@^1.2.15, ember-auto-import@^1.2.19, ember-auto-import@^1.5.3, ember-auto-import@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.9.0.tgz#0521f2ce3db11674146587f583837599cd42f1d0" - integrity sha512-wvOlAJCR1296C63ttIFl6/hw9NT28uutyO80xOdJCx7Tx3FldKrle5stftp849BPQPb2obU5hFo3ju4qV7KYfA== + version "1.10.1" + resolved "https://registry.yarnpkg.com/ember-auto-import/-/ember-auto-import-1.10.1.tgz#6c93a875e494aa0a58b759867d3f20adfd514ae3" + integrity sha512-7bOWzPELlVwdWDOkB+phDIjg8BNW+/2RiLLQ+Xa/eIvCLT4ABYhHV5wqW5gs5BnXTDVLfE4ddKZdllnGuPGGDQ== dependencies: "@babel/core" "^7.1.6" "@babel/preset-env" "^7.10.2" @@ -8026,7 +8035,6 @@ ember-auto-import@^1.2.15, ember-auto-import@^1.2.19, ember-auto-import@^1.5.3, babel-core "^6.26.3" babel-loader "^8.0.6" babel-plugin-syntax-dynamic-import "^6.18.0" - babel-template "^6.26.0" babylon "^6.18.0" broccoli-debug "^0.6.4" broccoli-node-api "^1.7.0" @@ -8847,9 +8855,9 @@ ember-inline-svg@^1.0.0: walk-sync "~2.0.2" ember-intl@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.5.1.tgz#a6c951ae1a87791bca9f0028d20521d2cb583ccf" - integrity sha512-RK8HuJmwZFMduZB2kSYqwB41NBgNJP8bwtiEVVXI0YyWLZ33R+jpHtjwP1YJZ6fTXtJaEcOptXoEGt5IjKfJvg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.6.0.tgz#66837865f330a0c6057202904e0b11d449fb7b64" + integrity sha512-eyeijdGvUiZE6VAH22vuGAbG1OELvO9ZiuONANEETGvG7oSLzKfUkF88dZ2Ljkg1Geyct4EMO6xTi22oSvamTg== dependencies: broccoli-caching-writer "^3.0.3" broccoli-funnel "^3.0.3" @@ -9284,7 +9292,7 @@ entities@^1.1.1, entities@^1.1.2, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0: +entities@^2.0.0, entities@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== @@ -9310,9 +9318,9 @@ errlop@^2.0.0: integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" @@ -9347,7 +9355,7 @@ es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: +es-abstract@^1.18.0-next.1: version "1.18.0-next.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== @@ -9642,9 +9650,9 @@ eslint@^2.7.0: user-home "^2.0.0" eslint@^7.5.0: - version "7.15.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.15.0.tgz#eb155fb8ed0865fcf5d903f76be2e5b6cd7e0bc7" - integrity sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA== + version "7.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" + integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.2.2" @@ -9680,7 +9688,7 @@ eslint@^7.5.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^5.2.3" + table "^6.0.4" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -10107,9 +10115,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" - integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== + version "1.10.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" + integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== dependencies: reusify "^1.0.4" @@ -10795,9 +10803,9 @@ functional-red-black-tree@^1.0.1: integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= functions-have-names@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" - integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== fuse.js@^3.6.1: version "3.6.1" @@ -10885,10 +10893,10 @@ get-installed-path@^2.0.3: dependencies: global-modules "1.0.0" -get-intrinsic@^1.0.0, get-intrinsic@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" - integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== +get-intrinsic@^1.0.0, get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" + integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -11139,11 +11147,11 @@ global-dirs@^0.1.0, global-dirs@^0.1.1: ini "^1.3.4" global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + 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.5" + ini "1.3.7" global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" @@ -11705,10 +11713,10 @@ heimdalljs@^0.3.0: dependencies: rsvp "~3.2.1" -highlight.js@^10.1.1, highlight.js@~10.4.0: - version "10.4.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.4.1.tgz#d48fbcf4a9971c4361b3f95f302747afe19dbad0" - integrity sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg== +highlight.js@^10.1.1, highlight.js@~10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" + integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== hmac-drbg@^1.0.0: version "1.0.1" @@ -11776,9 +11784,9 @@ html-encoding-sniffer@^2.0.1: whatwg-encoding "^1.0.5" html-entities@^1.2.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.3.tgz#3dca638a43ee7de316fc23067398491152ad4736" - integrity sha512-/VulV3SYni1taM7a4RMdceqzJWR39gpZHjBwUnsCFKWV/GJkD14CJ5F7eWcZozmHJK0/f/H5U3b3SiPkuvxMgg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== html-escaper@^2.0.0: version "2.0.2" @@ -11809,21 +11817,21 @@ html-void-elements@^1.0.0: integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== html-webpack-plugin@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" - integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== + version "4.5.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" + integrity sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg== dependencies: "@types/html-minifier-terser" "^5.0.0" "@types/tapable" "^1.0.5" "@types/webpack" "^4.41.8" html-minifier-terser "^5.0.1" loader-utils "^1.2.3" - lodash "^4.17.15" + lodash "^4.17.20" pretty-error "^2.1.1" tapable "^1.1.3" util.promisify "1.0.0" -htmlparser2@^3.10.0, htmlparser2@^3.3.0, htmlparser2@^3.9.1: +htmlparser2@^3.10.0, htmlparser2@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -11835,6 +11843,16 @@ htmlparser2@^3.10.0, htmlparser2@^3.3.0, htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^3.1.1" +htmlparser2@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" + integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.4.4" + entities "^2.0.0" + htmlparser2@~3.9.2: version "3.9.2" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" @@ -11890,9 +11908,9 @@ http-errors@~1.7.2: toidentifier "1.0.0" http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== http-proxy-agent@^2.1.0: version "2.1.0" @@ -12062,9 +12080,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" - integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -12156,6 +12174,11 @@ 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@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -12286,21 +12309,21 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -intl-messageformat-parser@6.0.18, intl-messageformat-parser@^6.0.5: - version "6.0.18" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.18.tgz#bf2855b82b0749e1f34e452f0a15d08d3277c8c7" - integrity sha512-vLjACEunfi5uSUCWFLOR4PXQ9DGLpED3tM7o9zsYsOvjl0VIheoxyG0WZXnsnhn+S+Zu158M6CkuHXeNZfKRRg== +intl-messageformat-parser@6.1.2, intl-messageformat-parser@^6.0.5: + version "6.1.2" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz#28c65f3689f538e66c7cf628881548d6a82ff3c2" + integrity sha512-4GQDEPhl/ZMNDKwMsLqyw1LG2IAWjmLJXdmnRcHKeLQzpgtNYZI6lVw1279pqIkRk2MfKb9aDsVFzm565azK5A== dependencies: "@formatjs/ecma402-abstract" "1.5.0" tslib "^2.0.1" intl-messageformat@^9.3.6: - version "9.3.20" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.20.tgz#87ec7e5f7a0f5d13157dc8bed88fe37b4c57b2a1" - integrity sha512-jmpjYHE076J/0CIofrPhtUC4LfmsAhuv4JMQxytl2KJd2bim+3+gQJh+Z1vyHUzcj4fIHdt388ZGchb8f0NwOA== + version "9.4.2" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.2.tgz#4ac2290d9d2dd6d76e60a2b355eeb8d8bc310c9c" + integrity sha512-34XevT4ADM/DCwtHIgXcL+LNtAnqPM6LSYUx7itlqm+9b2zMv8hUPlj4Ct94cl6qWymWAq5UiHbj85XAdwvq1A== dependencies: fast-memoize "^2.5.2" - intl-messageformat-parser "6.0.18" + intl-messageformat-parser "6.1.2" tslib "^2.0.1" into-stream@^3.1.0: @@ -13175,6 +13198,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -13739,9 +13767,9 @@ lockfile@^1.0.4: signal-exit "^3.0.2" lodash-es@^4.17.11, lodash-es@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.20.tgz#29f6332eefc60e849f869c264bc71126ad61e8f7" + integrity sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA== lodash._baseassign@^3.0.0: version "3.2.0" @@ -14059,7 +14087,7 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@~4.17.10: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -14126,12 +14154,12 @@ lowercase-keys@^2.0.0: integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lowlight@^1.14.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.17.0.tgz#a1143b2fba8239df8cd5893f9fe97aaf8465af4a" - integrity sha512-vmtBgYKD+QVNy7tIa7ulz5d//Il9R4MooOVh4nkOf9R9Cb/Dk5TXMSTieg/vDulkBkIWj59/BIlyFQxT9X1oAQ== + version "1.18.0" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.18.0.tgz#cfff11cfb125ca66f1c12cb43d27fff68cbeafa9" + integrity sha512-Zlc3GqclU71HRw5fTOy00zz5EOlqAdKMYhOFIO8ay4SQEDQgFuhR8JNwDIzAGMLoqTsWxe0elUNmq5o2USRAzw== dependencies: fault "^1.0.0" - highlight.js "~10.4.0" + highlight.js "~10.5.0" lru-cache@^4.0.1: version "4.1.5" @@ -14425,9 +14453,9 @@ mdast-util-to-hast@10.0.1: unist-util-visit "^2.0.0" mdast-util-to-markdown@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.1.tgz#0e07d3f871e056bffc38a0cf50c7298b56d9e0d6" - integrity sha512-4qJtZ0qdyYeexAXoOZiU0uHIFVncJAmCkHkSluAsvDaVWODtPyNEo9I1ns0T4ulxu2EHRH5u/bt1cV0pdHCX+A== + version "0.6.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz#8fe6f42a2683c43c5609dfb40407c095409c85b4" + integrity sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg== dependencies: "@types/unist" "^2.0.0" longest-streak "^2.0.0" @@ -14544,9 +14572,9 @@ meow@^3.1.0: trim-newlines "^1.0.0" meow@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.0.0.tgz#1aa10ee61046719e334ffdc038bb5069250ec99a" - integrity sha512-nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg== + version "8.1.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.0.tgz#0fcaa267e35e4d58584b8205923df6021ddcc7ba" + integrity sha512-fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" @@ -14661,22 +14689,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -"mime-db@>= 1.43.0 < 2": +mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": version "1.45.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== mime-types@^2.1.11, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.7: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: - mime-db "1.44.0" + mime-db "1.45.0" mime@1.6.0: version "1.6.0" @@ -14684,9 +14707,9 @@ mime@1.6.0: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + version "2.4.7" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74" + integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA== mimic-fn@^1.0.0: version "1.2.0" @@ -15207,9 +15230,9 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.52, node-releases@^1.1.67: - version "1.1.67" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" - integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== + version "1.1.68" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.68.tgz#06046ae7ceb33d96e8cd1e8b83bb62fdf2f5e9c5" + integrity sha512-7R8W00OWB5mjUpVFIN6lybhHwsAJVoipjo8MaFtIGRhZ2KeE01VD5ap4RVjLtYEnPKeX0PH14p1OhQVOFTikDQ== node-uuid@~1.4.7: version "1.4.8" @@ -15484,9 +15507,9 @@ npm-user-validate@^1.0.1: integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== npm@5.1.0, npm@~6.14.6: - version "6.14.9" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.9.tgz#d2b4237562bfd95689249e2c2874700ed952ed82" - integrity sha512-yHi1+i9LyAZF1gAmgyYtVk+HdABlLy94PMIDoK1TRKWvmFQAt5z3bodqVwKvzY0s6dLqQPVsRLiwhJfNtiHeCg== + version "6.14.10" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.10.tgz#f45c8e4244294ba793770f2ab0e9ce2d0b93fd29" + integrity sha512-FT23Qy/JMA+qxEYReMOr1MY7642fKn8Onn+72LASPi872Owvmw0svm+/DXTHOC3yO9CheEO+EslyXEpdBdRtIA== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -15563,7 +15586,7 @@ npm@5.1.0, npm@~6.14.6: npm-user-validate "^1.0.1" npmlog "~4.1.2" once "~1.4.0" - opener "^1.5.1" + opener "^1.5.2" osenv "^0.1.5" pacote "^9.5.12" path-is-inside "~1.0.2" @@ -15622,13 +15645,20 @@ npx@^10.2.0: libnpx "10.2.2" npm "5.1.0" -nth-check@^1.0.2, nth-check@~1.0.1: +nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + nugget@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" @@ -15691,7 +15721,7 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.8.0: +object-inspect@^1.8.0, object-inspect@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== @@ -15815,7 +15845,7 @@ open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.0: is-docker "^2.0.0" is-wsl "^2.1.1" -opener@^1.5.1: +opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== @@ -15857,16 +15887,16 @@ ora@^3.4.0: wcwidth "^1.0.1" ora@^5.0.0, ora@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" - integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== + version "5.2.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" + integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== dependencies: + bl "^4.0.3" chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.4.0" + cli-spinners "^2.5.0" is-interactive "^1.0.0" log-symbols "^4.0.0" - mute-stream "0.0.8" strip-ansi "^6.0.0" wcwidth "^1.0.1" @@ -15912,9 +15942,9 @@ osenv@^0.1.3, osenv@^0.1.4, osenv@^0.1.5: os-tmpdir "^1.0.0" overlayscrollbars@^1.10.2: - version "1.13.0" - resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.0.tgz#1edb436328133b94877b558f77966d5497ca36a7" - integrity sha512-p8oHrMeRAKxXDMPI/EBNITj/zTVHKNnAnM59Im+xnoZUlV07FyTg46wom2286jJlXGGfcPFG/ba5NUiCwWNd4w== + version "1.13.1" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" + integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== p-all@^2.1.0: version "2.1.0" @@ -16278,19 +16308,19 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + parse5@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" - integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== - dependencies: - "@types/node" "*" - -parse5@^6.0.0: +parse5@^6.0.0, parse5@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== @@ -16795,7 +16825,7 @@ printf@^0.5.1: resolved "https://registry.yarnpkg.com/printf/-/printf-0.5.3.tgz#8b7eec278d886833312238b2bf42b2b6f250880a" integrity sha512-t3lYN6vPU5PZXDiEZZqoyXvN8wCsBfi8gPoxTKo2e5hhV673t/KUh+mfO8P8lCOCDC/BWcOGIxKyebxc5FuqLA== -prismjs@^1.21.0, prismjs@~1.21.0, prismjs@~1.22.0: +prismjs@^1.21.0, prismjs@~1.21.0, prismjs@~1.23.0: version "1.21.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== @@ -17039,9 +17069,9 @@ query-string@^5.0.1: strict-uri-encode "^1.0.0" query-string@^6.8.2: - version "6.13.7" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.7.tgz#af53802ff6ed56f3345f92d40a056f93681026ee" - integrity sha512-CsGs8ZYb39zu0WLkeOhe0NMePqgYdAuCqxOYKDR5LVCytDZYMGx3Bb+xypvQvPHVPijRXB0HZNFllCzHRe4gEA== + version "6.13.8" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.8.tgz#8cf231759c85484da3cf05a851810d8e825c1159" + integrity sha512-jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" @@ -17624,13 +17654,13 @@ redeyed@~1.0.0: esprima "~3.0.0" refractor@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.2.0.tgz#bc46f7cfbb6adbf45cd304e8e299b7fa854804e0" - integrity sha512-hSo+EyMIZTLBvNNgIU5lW4yjCzNYMZ4dcEhBq/3nReGfqzd2JfVhdlPDfU9rEsgcAyWx+OimIIUoL4ZU7NtYHQ== + version "3.3.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.0.tgz#42a7d58f14a1d1bcda52a8c66123601a71e5d47d" + integrity sha512-c/jEhQjk1NDyTF3hMgtu8PigaqkWUv+c5+mBffZCTnjyrNSJkG+0eoTOJV/u0XCTuPfaFzJyj6MM4HnF0Wr27Q== dependencies: hastscript "^6.0.0" parse-entities "^2.0.0" - prismjs "~1.22.0" + prismjs "~1.23.0" regenerate-unicode-properties@^8.2.0: version "8.2.0" @@ -17914,13 +17944,13 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c" - integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g== + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== dependencies: - css-select "^1.1.0" + css-select "^2.0.2" dom-converter "^0.2" - htmlparser2 "^3.3.0" + htmlparser2 "^3.10.1" lodash "^4.17.20" strip-ansi "^3.0.0" @@ -17993,6 +18023,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -18399,9 +18434,9 @@ sass-lint@^1.13.1: util "^0.10.3" sass@^1.26.5, sass@^1.29.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.30.0.tgz#60bbbbaf76ba10117e61c6c24f00161c3d60610e" - integrity sha512-26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw== + version "1.32.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.0.tgz#10101a026c13080b14e2b374d4e15ee24400a4d3" + integrity sha512-fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -18651,12 +18686,13 @@ shellwords@^0.1.1: integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== side-channel@^1.0.2, side-channel@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" - integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - es-abstract "^1.18.0-next.0" - object-inspect "^1.8.0" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" @@ -18715,15 +18751,6 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -18889,9 +18916,9 @@ sort-object-keys@^1.1.3: integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== sort-package-json@^1.44.0: - version "1.48.0" - resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.48.0.tgz#476043cdde65346900296d5035a0b20560c954e5" - integrity sha512-VAC5THvyGFQFeVLbKcGNPzny5u/heOwks9tzTTLvL8nX9v7zZjpx36/itcJtqp8gI+r57Rw1RVYT6Ecy+3N6+Q== + version "1.48.1" + resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.48.1.tgz#58629823da53a3ccccc049cb7e7300bc23072b33" + integrity sha512-YvDm1iBzhphfXtctTS0XIBlIW/2N1DZNHx3YMcZnptpZhchqH4zazUOuEWmjfNXndwamITMt9hFPliqwx1SHvQ== dependencies: detect-indent "^6.0.0" detect-newline "3.1.0" @@ -19690,22 +19717,12 @@ table@^3.7.8: slice-ansi "0.0.4" string-width "^2.0.0" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.3, table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -table@^6.0.3: - version "6.0.4" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d" - integrity sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw== - dependencies: - ajv "^6.12.4" + ajv "^7.0.2" lodash "^4.17.20" slice-ansi "^4.0.0" string-width "^4.2.0" @@ -20337,9 +20354,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.12.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.1.tgz#78307f539f7b9ca5557babb186ea78ad30cc0375" - integrity sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ== + version "3.12.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.4.tgz#93de48bb76bb3ec0fc36563f871ba46e2ee5c7ee" + integrity sha512-L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A== uid-number@0.0.6: version "0.0.6" @@ -20722,9 +20739,9 @@ use-composed-ref@^1.0.0: ts-essentials "^2.0.3" use-isomorphic-layout-effect@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.0.tgz#4db2111e0d53ca694187ea5fd5cb2ba610286fe0" - integrity sha512-kady5Z1O1qx5RitodCCKbpJSVEtECXYcnBnb5Q48Bz5V6gBmTu85ZcGdVwVFs8+DaOurNb/L5VdGHoQRMknghw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" + integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== use-latest@^1.0.0: version "1.2.0" @@ -21046,9 +21063,9 @@ webidl-conversions@^6.1.0: integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== webpack-dev-middleware@^3.7.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -21335,9 +21352,9 @@ write@^0.2.1: mkdirp "^0.5.1" ws@^7.1.2, ws@^7.2.3: - version "7.4.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" - integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== ws@~6.1.0: version "6.1.4" From 0daa8a9820b94c4e6eaf9ddeb45c9f33b2815633 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 4 Jan 2021 16:38:29 -0500 Subject: [PATCH 002/106] feat: Add sidebar layout to desktop scope route --- ui/admin/app/routes/scopes/scope.js | 2 +- ui/desktop/app/templates/scopes.hbs | 6 +--- ui/desktop/app/templates/scopes/index.hbs | 37 +---------------------- ui/desktop/app/templates/scopes/scope.hbs | 19 +++++++++++- 4 files changed, 21 insertions(+), 43 deletions(-) diff --git a/ui/admin/app/routes/scopes/scope.js b/ui/admin/app/routes/scopes/scope.js index 705c8d168..49d37a648 100644 --- a/ui/admin/app/routes/scopes/scope.js +++ b/ui/admin/app/routes/scopes/scope.js @@ -80,7 +80,7 @@ export default class ScopesScopeRoute extends Route { } /** - * Renders the scope-specific sidebar template. + * Renders the scope-specific header template. * @override * @param {object} controller * @param {object} model diff --git a/ui/desktop/app/templates/scopes.hbs b/ui/desktop/app/templates/scopes.hbs index b4e41b01b..c24cd6895 100644 --- a/ui/desktop/app/templates/scopes.hbs +++ b/ui/desktop/app/templates/scopes.hbs @@ -1,5 +1 @@ -{{page-title (t 'resources.scope.title_plural')}} - -
- {{outlet}} -
+{{outlet}} diff --git a/ui/desktop/app/templates/scopes/index.hbs b/ui/desktop/app/templates/scopes/index.hbs index c9da99ae5..c24cd6895 100644 --- a/ui/desktop/app/templates/scopes/index.hbs +++ b/ui/desktop/app/templates/scopes/index.hbs @@ -1,36 +1 @@ - - - -

- {{t "resources.scope.title_plural"}} -

-
- - - - - - {{t 'resources.scope.title'}} - - - - {{#each @model as |scope|}} - - - - {{scope.name}} - - - - {{scope.id}} - - - {{/each}} - - - - -
+{{outlet}} diff --git a/ui/desktop/app/templates/scopes/scope.hbs b/ui/desktop/app/templates/scopes/scope.hbs index c24cd6895..763b790a7 100644 --- a/ui/desktop/app/templates/scopes/scope.hbs +++ b/ui/desktop/app/templates/scopes/scope.hbs @@ -1 +1,18 @@ -{{outlet}} + + + + + + {{t "resources.target.title_plural"}} + + + + + +
+ {{outlet}} +
+
+
From 0d6a60d0809d7be180e9e20c30b76ee7d82e05a7 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 7 Jan 2021 17:41:03 -0500 Subject: [PATCH 003/106] feat: Basic sessions view --- addons/api/mirage/factories/auth-method.js | 5 +- addons/api/mirage/factories/session.js | 23 +++++++ addons/api/mirage/scenarios/default.js | 5 +- ui/desktop/app/router.js | 1 + .../routes/scopes/scope/projects/sessions.js | 66 +++++++++++++++++++ .../scopes/scope/projects/sessions/index.js | 4 ++ ui/desktop/app/templates/scopes/scope.hbs | 7 ++ .../scopes/scope/projects/sessions.hbs | 1 + .../scopes/scope/projects/sessions/index.hbs | 58 ++++++++++++++++ .../scopes/scope/projects/sessions-test.js | 11 ++++ .../scope/projects/sessions/index-test.js | 11 ++++ 11 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 ui/desktop/app/routes/scopes/scope/projects/sessions.js create mode 100644 ui/desktop/app/routes/scopes/scope/projects/sessions/index.js create mode 100644 ui/desktop/app/templates/scopes/scope/projects/sessions.hbs create mode 100644 ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs create mode 100644 ui/desktop/tests/unit/routes/scopes/scope/projects/sessions-test.js create mode 100644 ui/desktop/tests/unit/routes/scopes/scope/projects/sessions/index-test.js diff --git a/addons/api/mirage/factories/auth-method.js b/addons/api/mirage/factories/auth-method.js index 61d29726b..1d0b29df8 100644 --- a/addons/api/mirage/factories/auth-method.js +++ b/addons/api/mirage/factories/auth-method.js @@ -10,7 +10,10 @@ export default factory.extend({ withAccountsAndUsers: trait({ afterCreate(authMethod, server) { const { scope } = authMethod; - server.createList('user', 5, { scope }).map(user => { + const users = server.createList('user', 5, { scope }); + // Create authorized user: user123 + users.push(server.create('user', { scope, id: 'user123' })); + users.map(user => { const { id } = server.create('account', { scope, authMethod }); user.update({ accountIds: [id] }); }); diff --git a/addons/api/mirage/factories/session.js b/addons/api/mirage/factories/session.js index 0100a4b75..1292d3e10 100644 --- a/addons/api/mirage/factories/session.js +++ b/addons/api/mirage/factories/session.js @@ -41,6 +41,29 @@ export default factory.extend({ } } } + }), + + /** + * Sessions generated with this trait will automatically form + * associations to target, host set, and host (if available) within + * the current scope and for specified user. + */ + withUserAssociations: trait({ + afterCreate(record, server) { + const scopeId = record.scopeId; + const user = record.user; + record.update({ user }); + const target = server.schema.targets.where({ scopeId }).models[0]; + if (target) { + record.update({ target }); + const hostSet = target.hostSets.models[0]; + if (hostSet) { + record.update({ hostSet }); + const host = hostSet.hosts.models[0]; + if (host) record.update({ host }); + } + } + } }) }); diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index cc821e6dd..9961b7010 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -29,6 +29,9 @@ export default function(server) { server.createList('host-catalog', 2, { scope }, 'withChildren'); server.createList('target', 2, { scope }, 'withRandomHostSets'); server.createList('session', 4, { scope }, 'withAssociations'); + // Create sessions for all users + server.schema.users.where({ scopeId: scope.scope.id }).models.forEach(user => + server.createList('session', 4, { scope, user }, 'withUserAssociations') + ); }); - } diff --git a/ui/desktop/app/router.js b/ui/desktop/app/router.js index 9480e547d..bcf4938e5 100644 --- a/ui/desktop/app/router.js +++ b/ui/desktop/app/router.js @@ -14,6 +14,7 @@ Router.map(function () { }); this.route('projects', function () { this.route('targets', function () {}); + this.route('sessions', function() {}); }); }); }); diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/sessions.js new file mode 100644 index 000000000..7430c7764 --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions.js @@ -0,0 +1,66 @@ +import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; +import { all, hash } from 'rsvp'; +import { A } from '@ember/array'; + +export default class ScopesScopeProjectsSessionsRoute extends Route { + + // =services + + @service session; + + // =methods + + /** + * If arriving here unauthenticated, redirect to index for further processing. + */ + beforeModel() { + if (!this.session.isAuthenticated) this.transitionTo('index'); + } + + /** + * Loads all sessions under the current scope and encapsulates them into + * an array of objects filtering to current user + * @return {Promise{[{session: SessionModel, target: TargetModel}]}} + */ + async model() { + const projects = this.modelFor('scopes.scope.projects'); + const userId = this.session.data.authenticated.user_id; + let projectSessions = await all( + projects.map(({ id: scope_id }) => + this.store.query('session', { scope_id }) + ) + ); + + // Filter sessions to current user + let sessions = projectSessions.map(sessions => { + return sessions.filter(session => { + console.log(session.user_id, userId) + return session.user_id === userId + }); + }).flat(); + + const sessionAggregates = await all( + sessions.map(session => hash({ + session, + target: session.target_id + ? ( + this.store.peekRecord('target', session.target_id) || + this.store.findRecord('target', session.target_id) + ) + : null, + })) + ); + + // Sort sessions by time created... + let sortedSessionAggregates = + A(sessionAggregates).sortBy('session.created_time').reverse(); + // Then move active sessions to the top... + sortedSessionAggregates = [ + ...sortedSessionAggregates.filter((aggregate) => aggregate.session.status === 'active'), + ...sortedSessionAggregates.filter((aggregate) => aggregate.session.status !== 'active'), + ]; + + return sortedSessionAggregates; + } +} diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions/index.js b/ui/desktop/app/routes/scopes/scope/projects/sessions/index.js new file mode 100644 index 000000000..85b153379 --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions/index.js @@ -0,0 +1,4 @@ +import Route from '@ember/routing/route'; + +export default class ScopesScopeProjectsSessionsIndexRoute extends Route { +} diff --git a/ui/desktop/app/templates/scopes/scope.hbs b/ui/desktop/app/templates/scopes/scope.hbs index 763b790a7..6a8cd0d89 100644 --- a/ui/desktop/app/templates/scopes/scope.hbs +++ b/ui/desktop/app/templates/scopes/scope.hbs @@ -7,6 +7,13 @@ @size="medium" /> {{t "resources.target.title_plural"}} + + + + {{t "resources.session.title_plural"}} + diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions.hbs new file mode 100644 index 000000000..e2147cab0 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs new file mode 100644 index 000000000..d0847dbb3 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -0,0 +1,58 @@ + + + +

{{t "resources.session.title_plural"}}

+
+ + + + {{#if @model}} + + + + + {{t "form.id.label"}} + {{t "resources.target.title"}} + {{t "form.started.label"}} + {{t "form.status.label"}} + + + + {{#each @model as |sessionAggregate|}} + + + + {{sessionAggregate.session.id}} + + {{sessionAggregate.target.displayName}} + + + + + {{sessionAggregate.session.status}} + + + {{/each}} + + + + {{else}} + + + + + {{t "resources.session.messages.none.description"}} + + + + + {{/if}} + + + +
diff --git a/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions-test.js b/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions-test.js new file mode 100644 index 000000000..358be9959 --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/projects/sessions', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:scopes/scope/projects/sessions'); + assert.ok(route); + }); +}); diff --git a/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions/index-test.js b/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions/index-test.js new file mode 100644 index 000000000..5c63b65eb --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/projects/sessions/index-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/projects/sessions/index', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:scopes/scope/projects/sessions/index'); + assert.ok(route); + }); +}); From ccca65b9bef7eb3455abb41d4a7bebb5ac5c7656 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 7 Jan 2021 17:45:12 -0500 Subject: [PATCH 004/106] fix: Desktop: Move sidebar into projects template --- .../routes/scopes/scope/projects/sessions.js | 11 ++++---- ui/desktop/app/templates/scopes/scope.hbs | 26 +------------------ .../app/templates/scopes/scope/projects.hbs | 26 ++++++++++++++++++- 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/sessions.js index 7430c7764..3c34044f7 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions.js @@ -33,12 +33,11 @@ export default class ScopesScopeProjectsSessionsRoute extends Route { ); // Filter sessions to current user - let sessions = projectSessions.map(sessions => { - return sessions.filter(session => { - console.log(session.user_id, userId) - return session.user_id === userId - }); - }).flat(); + let sessions = projectSessions.map( + sessions => sessions.filter( + session => session.user_id === userId + ) + ).flat(); const sessionAggregates = await all( sessions.map(session => hash({ diff --git a/ui/desktop/app/templates/scopes/scope.hbs b/ui/desktop/app/templates/scopes/scope.hbs index 6a8cd0d89..e2147cab0 100644 --- a/ui/desktop/app/templates/scopes/scope.hbs +++ b/ui/desktop/app/templates/scopes/scope.hbs @@ -1,25 +1 @@ - - - - - - {{t "resources.target.title_plural"}} - - - - - {{t "resources.session.title_plural"}} - - - - - -
- {{outlet}} -
-
-
+{{outlet}} \ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects.hbs b/ui/desktop/app/templates/scopes/scope/projects.hbs index c24cd6895..6a8cd0d89 100644 --- a/ui/desktop/app/templates/scopes/scope/projects.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects.hbs @@ -1 +1,25 @@ -{{outlet}} + + + + + + {{t "resources.target.title_plural"}} + + + + + {{t "resources.session.title_plural"}} + + + + + +
+ {{outlet}} +
+
+
From abe6eb9a703ba7ae701fac37b65ded8215be5af5 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 7 Jan 2021 18:13:03 -0500 Subject: [PATCH 005/106] feat: desktop: add polling to sessions view Mostly extracted from admin's sessions view --- .../routes/scopes/scope/projects/sessions.js | 37 ++ ui/desktop/config/environment.js | 1 + ui/desktop/package.json | 1 + yarn.lock | 471 +++++++++--------- 4 files changed, 265 insertions(+), 245 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/sessions.js index 3c34044f7..83baf114b 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions.js @@ -1,7 +1,11 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { all, hash } from 'rsvp'; +import { task, timeout } from 'ember-concurrency'; import { A } from '@ember/array'; +import config from '../../../../config/environment'; + +const POLL_TIMEOUT_SECONDS = config.sessionPollingTimeoutSeconds; export default class ScopesScopeProjectsSessionsRoute extends Route { @@ -9,6 +13,25 @@ export default class ScopesScopeProjectsSessionsRoute extends Route { @service session; + // =attributes + + /** + * A simple Ember Concurrency-based polling task that refreshes the route + * every POLL_TIMEOUT_SECONDS seconds. This is necessary to display changes + * to session `status` that may occur. + * + * NOTE: tasks are sort of attributes and sort of methods, but they are not + * language-level constructs. Thus we annotate this task as if it + * is an attribute. + * @type {Task} + */ + @task(function * () { + while(true) { + yield timeout(POLL_TIMEOUT_SECONDS * 1000); + yield this.refresh(); + } + }).drop() poller; + // =methods /** @@ -62,4 +85,18 @@ export default class ScopesScopeProjectsSessionsRoute extends Route { return sortedSessionAggregates; } + + /** + * When this route is activated (entered), begin polling for changes. + */ + activate() { + this.poller.perform(); + } + + /** + * When this route is deactivated (exited), stop polling for changes. + */ + deactivate() { + this.poller.cancelAll(); + } } diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index 0ef3f3a3b..8326bd07f 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -42,6 +42,7 @@ module.exports = function (environment) { appName: APP_NAME, notifyTimeout: 4000, + sessionPollingTimeoutSeconds: 2.5, }; if (environment === 'development') { diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 68fe7e495..e6689756b 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -51,6 +51,7 @@ "ember-cli-sri": "^2.1.1", "ember-cli-template-lint": "^2.0.2", "ember-cli-uglify": "^3.0.0", + "ember-concurrency": "^1.3.0", "ember-electron": "https://github.com/adopted-ember-addons/ember-electron#v3.0.0-beta.4", "ember-exam": "^6.0.1", "ember-export-application-global": "^2.0.1", diff --git a/yarn.lock b/yarn.lock index a528e0d0b..30694bb92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1276,46 +1276,49 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@ember-data/adapter@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.23.0.tgz#5df65ec0c935213e990893a2fd90c7c1c325d037" - integrity sha512-bk2UoaAUukZelnXvkwIZ4d7V55UtRJZQWw2eYld/Eeu5erDLKA6+28bOBv96aXovmeEooI1Qi5tfAmQGZD8BNA== +"@ember-data/adapter@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/adapter/-/adapter-3.24.0.tgz#995c19bc6fb95c94cbb83b8c3c7bc08253346cba" + integrity sha512-vdDvvHF2QyAfLLvJPeREAVUr3M5LsjaZDJJ6Ernf8gJDZBwYvTcYGQEk39GeCzd1Qhw8F7tUTz1DGZXQQRDCrw== dependencies: - "@ember-data/private-build-infra" "3.23.0" - "@ember-data/store" "3.23.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember-data/store" "3.24.0" "@ember/edition-utils" "^1.2.0" + "@ember/string" "^1.0.0" ember-cli-babel "^7.18.0" ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/canary-features@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.23.0.tgz#631ffce7748f92ee70277ca679225296b6024bdc" - integrity sha512-vATwZTAtHTu7LRulI6vNj2DLjeUsJlNpdCtIq1KnX41Ho/sJirpod4y9roExi9xQQgttnvpxl+yBa0Bpnp6wqA== +"@ember-data/canary-features@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/canary-features/-/canary-features-3.24.0.tgz#7ac1f03cf6dd0f8629f71bb34d3ab79d7db3f865" + integrity sha512-49vhKL0pCfgK1maZofrZqKu1L0JGwDK/cjX5Z6NgY6495OFUuTUxIY8nobHRJRtVE3olLMh3YBQg0i7Iv1dKgw== dependencies: ember-cli-babel "^7.18.0" ember-cli-typescript "^3.1.3" -"@ember-data/debug@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.23.0.tgz#aa987774db87dfd3e5c6cdc594eb7382cd39cdf3" - integrity sha512-wU9rnYQIfPihHIUYk8Jy/RuzsO9UVM4N0iEkTsIYeoyYuCXWM+LEY8q6SyX27G/Mxd8AXzqYsLlQWnwzOhL3wQ== +"@ember-data/debug@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/debug/-/debug-3.24.0.tgz#c65fef5c3a5aab70d250c83743f729c3ccc52782" + integrity sha512-+3YZkr7NBRs7mgi6XayCIpjv+EmfmGwuvBQ96cMBzKSGRPyI1swhM59WVP1fobLECAnCNb1pX0Mx484rT5L2kw== dependencies: - "@ember-data/private-build-infra" "3.23.0" + "@ember-data/private-build-infra" "3.24.0" "@ember/edition-utils" "^1.2.0" + "@ember/string" "^1.0.0" ember-cli-babel "^7.18.0" ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/model@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.23.0.tgz#f5e533eb9fc5ba84fc40c55dd1be9f154dfe0a7a" - integrity sha512-hCww1CRZQRjIKWRBF+Ew8+9viwrrhXV2vaKlIPdoxbZ+c3AnSHMEpnrxbEcmgoHb4QonXml2NtjlHmjsswuZjA== +"@ember-data/model@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/model/-/model-3.24.0.tgz#e99efe459b2be06396320fc4e7e053256653e326" + integrity sha512-lW4+35TQj6cyPNh5MxVxHHQaauQIhaCuHQYgpMinw7hPCaVhVhm1RhW5Zem6YJA/iDB7+4ffNSJZamb3jBZ8aA== dependencies: - "@ember-data/canary-features" "3.23.0" - "@ember-data/private-build-infra" "3.23.0" - "@ember-data/store" "3.23.0" + "@ember-data/canary-features" "3.24.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember-data/store" "3.24.0" "@ember/edition-utils" "^1.2.0" + "@ember/string" "^1.0.0" ember-cli-babel "^7.18.0" ember-cli-string-utils "^1.1.0" ember-cli-test-info "^1.0.0" @@ -1323,13 +1326,13 @@ ember-compatibility-helpers "^1.2.0" inflection "1.12.0" -"@ember-data/private-build-infra@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.23.0.tgz#d30cda808dab9e52e416fb2d1fd0db6a13112f71" - integrity sha512-p8c2+N/P698J90/Zy+i9vklmqqnDrgcsmhAyGrWleLXD9TOyVNh9nH2ENNgrmBf7UY32nAAOC/VoDGngYLZZ7g== +"@ember-data/private-build-infra@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/private-build-infra/-/private-build-infra-3.24.0.tgz#ce5b56f2929d96cb004643866922ac5509bbd6c1" + integrity sha512-SEJ+hdjVK5y0NM6DpkSVKHqCxOvR2QXPQdJ0PXxbgFTxhyq4jGqT8N1Rl1zRKr9mg2WXFFwt4Lg9SBlYjqVHWg== dependencies: "@babel/plugin-transform-block-scoping" "^7.8.3" - "@ember-data/canary-features" "3.23.0" + "@ember-data/canary-features" "3.24.0" "@ember/edition-utils" "^1.2.0" babel-plugin-debug-macros "^0.3.3" babel-plugin-filter-imports "^4.0.0" @@ -1355,16 +1358,16 @@ semver "^7.1.3" silent-error "^1.1.1" -"@ember-data/record-data@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.23.0.tgz#95ca695e3c00e4cac5a939b8b0b6713ff50d3c46" - integrity sha512-8eLKTCUfwqfls0cqXgvetk0tVOS8wyvEeNQfTVJ3AlSgjqQl8XMUcr0jQ0T+ZD0r1bsUrCLRdSQud2mqbFuuaQ== +"@ember-data/record-data@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/record-data/-/record-data-3.24.0.tgz#87128fd92d387ad1e3904e05da28eba89e16b21e" + integrity sha512-hlk86tXo6v0h6JXg4B9OPl0lYWMHVNsoZ6i0qpmBHKuZKBI5cNmbmkPx9L2rs4lawy6Vf7NuYCm+QfuyG1IqCA== dependencies: - "@ember-data/canary-features" "3.23.0" - "@ember-data/private-build-infra" "3.23.0" - "@ember-data/store" "3.23.0" + "@ember-data/canary-features" "3.24.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember-data/store" "3.24.0" "@ember/edition-utils" "^1.2.0" - "@ember/ordered-set" "^2.0.3" + "@ember/ordered-set" "^4.0.0" ember-cli-babel "^7.18.0" ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" @@ -1374,24 +1377,25 @@ resolved "https://registry.yarnpkg.com/@ember-data/rfc395-data/-/rfc395-data-0.0.4.tgz#ecb86efdf5d7733a76ff14ea651a1b0ed1f8a843" integrity sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ== -"@ember-data/serializer@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.23.0.tgz#86b3d15ad8e7fc68f6b236943ea92bd88f76d678" - integrity sha512-WzEOx9J2B2cq2lSIXMuKc2rxZCL8zePS0h8b5WMahgjGut2M45HCNun+yPX9DNVr0jSvrK1N5kEsJ9sj+Nraqw== +"@ember-data/serializer@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/serializer/-/serializer-3.24.0.tgz#b2c40f334ea362dbe4467024f42ecb26ff130800" + integrity sha512-nUCVJzIlTFQPVKqiODEZA6i7daPlnsPlWHyOOqcNbYnARTUCgRe8cnjehGtijYSrjXhvfy4iA7cPbw08dmtOhQ== dependencies: - "@ember-data/private-build-infra" "3.23.0" - "@ember-data/store" "3.23.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember-data/store" "3.24.0" ember-cli-babel "^7.18.0" ember-cli-test-info "^1.0.0" ember-cli-typescript "^3.1.3" -"@ember-data/store@3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.23.0.tgz#7b8af0a1d4a22665227cc9a03f7a2b3bb47d4b9e" - integrity sha512-pshDJfh6BZNtOaCMJma8sOazDqatssrU8W5zGptDW3begfPzNmnrW0eeF+SBndtvyO04Ap72xFHOWE7YGXC0PQ== +"@ember-data/store@3.24.0": + version "3.24.0" + resolved "https://registry.yarnpkg.com/@ember-data/store/-/store-3.24.0.tgz#1eba52a7f06a4a6304af9495f8cf517be9e3d29e" + integrity sha512-eyzHvqBDcQ/iVhYL82rP6YDiXy6H6w/ULGCwU8dr0ZAIDSKrWm5Nu4O3pSuhzNgxRTTE3JDCmMRDnGyeCJKKUQ== dependencies: - "@ember-data/canary-features" "3.23.0" - "@ember-data/private-build-infra" "3.23.0" + "@ember-data/canary-features" "3.24.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember/string" "^1.0.0" ember-cli-babel "^7.18.0" ember-cli-path-utils "^1.0.0" ember-cli-typescript "^3.1.3" @@ -1415,12 +1419,12 @@ silent-error "^1.1.1" util.promisify "^1.0.0" -"@ember/ordered-set@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@ember/ordered-set/-/ordered-set-2.0.3.tgz#2ac1ca73b3bd116063cae814898832ef434a57f9" - integrity sha512-F4yfVk6WMc4AUHxeZsC3CaKyTvO0qSZJy7WWHCFTlVDQw6vubn+FvnGdhzpN1F00EiXMI4Tv1tJdSquHcCnYrA== +"@ember/ordered-set@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@ember/ordered-set/-/ordered-set-4.0.0.tgz#c5ec021ab8d4734c6db92708a81edd499d45fd31" + integrity sha512-cUCcme4R5H37HyK8w0qzdG5+lpb3XVr2RQHLyWEP4JsKI66Ob4tizoJOs8rb/XdHCv+F5WeA321hfPMi3DrZbg== dependencies: - ember-cli-babel "^6.16.0" + ember-cli-babel "^7.22.1" ember-compatibility-helpers "^1.1.1" "@ember/render-modifiers@^1.0.2": @@ -1431,6 +1435,13 @@ ember-cli-babel "^7.10.0" ember-modifier-manager-polyfill "^1.1.0" +"@ember/string@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@ember/string/-/string-1.0.0.tgz#3a2254caedacb95e09071204d36cad49e0f8b855" + integrity sha512-KZ+CcIXFdyIBMztxDMgza4SdLJgIeUgTjDAoHk6M50C2u1X/BK7KWUIN7MIK2LNTOMvbib9lWwEzKboxdI4lBw== + dependencies: + ember-cli-babel "^7.4.0" + "@ember/test-helpers@^1.7.0", "@ember/test-helpers@^1.7.1": version "1.7.2" resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-1.7.2.tgz#5b128dc5f6524c3850abf52668e6bd4fda401194" @@ -1665,10 +1676,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz#759c8f11ff45e96f8fb58741e7fbdb41096d5ddd" - integrity sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q== +"@formatjs/ecma402-abstract@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.1.tgz#629324d2bfdc570ed210fec7700ce20bbd872bed" + integrity sha512-io9XhgIpEbc6jSdn4QVnJeFaUzy6gS5fGiIRCUJ7QKqCNp69JS8EJPW8gCtvwz+JQtx2SJvhaMJbzz3rGkTXBA== dependencies: tslib "^2.0.1" @@ -2059,7 +2070,7 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== -"@sinonjs/commons@^1", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== @@ -2073,15 +2084,7 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/formatio@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-5.0.1.tgz#f13e713cb3313b1ab965901b01b0828ea6b77089" - integrity sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ== - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^5.0.2" - -"@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.3.0": +"@sinonjs/samsam@^5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz#1d2f0743dc54bf13fe9d508baefacdffa25d4329" integrity sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg== @@ -2835,9 +2838,9 @@ form-data "^3.0.0" "@types/node@*": - version "14.14.19" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4" - integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== + version "14.14.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" + integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== "@types/node@^9.6.0": version "9.6.61" @@ -3801,11 +3804,6 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async-promise-queue@^1.0.3, async-promise-queue@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.5.tgz#cb23bce9fce903a133946a700cc85f27f09ea49d" @@ -4800,11 +4798,6 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - base64-js@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.2.tgz#024f0f72afa25b75f9c0ee73cd4f55ec1bed9784" @@ -4852,13 +4845,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - better-opn@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" @@ -5822,15 +5808,15 @@ browserslist@^3.2.6: electron-to-chromium "^1.3.47" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0: - version "4.16.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" - integrity sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ== + version "4.16.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" + integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== dependencies: - caniuse-lite "^1.0.30001165" + caniuse-lite "^1.0.30001173" colorette "^1.2.1" - electron-to-chromium "^1.3.621" + electron-to-chromium "^1.3.634" escalade "^3.1.1" - node-releases "^1.1.67" + node-releases "^1.1.69" bser@2.1.1: version "2.1.1" @@ -6101,11 +6087,6 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -6183,7 +6164,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001165: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001173: version "1.0.30001173" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== @@ -6311,9 +6292,9 @@ cheerio@^1.0.0-rc.2: parse5-htmlparser2-tree-adapter "^6.0.0" "chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: - version "3.4.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" - integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + version "3.5.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz#458a4816a415e9d3b3caa4faec2b96a6935a9e65" + integrity sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -6323,7 +6304,7 @@ cheerio@^1.0.0-rc.2: normalize-path "~3.0.0" readdirp "~3.5.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.1" chokidar@^2.1.8: version "2.1.8" @@ -6945,16 +6926,16 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -7416,7 +7397,7 @@ debug@~4.1.0: 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= @@ -7845,9 +7826,9 @@ dotenv@^8.0.0: integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== downshift@^6.0.6: - version "6.0.10" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.10.tgz#c0fdc353b286c0b5f8d93af80a2bce57d90854d5" - integrity sha512-TuUh448snXiOXrstL1q6s13xev2kWEHAuNlwzEHXRMhG7NbPgvzFvjYelwkaOSZ1dFNJjzRnpK6cbvUO7oHlMQ== + version "6.0.11" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.11.tgz#3c4911efcad0b76dd1e2d2fbad18906dedd531ad" + integrity sha512-aNnI8qwiJ5m3vCNpBc97kQs3xAYIACFihTEk3jjn4CC0dlUDFBu1Zc3lhd0ZdkhbiqV9ZsMK5cCyZ7YD0agvyg== dependencies: "@babel/runtime" "^7.12.5" compute-scroll-into-view "^1.0.16" @@ -7978,10 +7959,10 @@ electron-rebuild@^2.0.0: tar "^6.0.5" yargs "^16.0.0" -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.621: - version "1.3.633" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" - integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634: + version "1.3.634" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz#82ea400f520f739c4f6ff00c1f7524827a917d25" + integrity sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw== element-resize-detector@^1.2.1: version "1.2.1" @@ -8096,7 +8077,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== -ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3: +ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3: version "7.23.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.0.tgz#ec580aa2c115d0810e454dd5c2fffce238284b92" integrity sha512-ix58DlRDAbGITtdJoRUPcAoQwKLYr/x/kIXjU9u1ATyhmuUjqb+0FDXghOWbkNihGiNOqBBR49+LBgK9AeBcNw== @@ -8689,19 +8670,20 @@ ember-data-model-fragments@5.0.0-beta.0: npm-git-info "^1.0.3" ember-data@^3.20.0: - version "3.23.0" - resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.23.0.tgz#249da15231a8c3c6fe5cefca3648ccaf05d1050b" - integrity sha512-LTrgs+So1ONJ/q0gbP3qhkoFsJ3upJojbrgcC6Zd/+AaUc1yCj8d4StIU5fUS4oOFZqfTkmFFV9HttUVKt7fGw== + version "3.24.0" + resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-3.24.0.tgz#c0eff9a94d141f31021bc4cbe5de18be3513e55f" + integrity sha512-DdoJ573ucwXBBx3mR3eYwSCBChDGv3cDWaCu4x6lGmvHjropvoOVJmuXDhCuxtI17Zly7ATlXarfPZdmPA95QQ== dependencies: - "@ember-data/adapter" "3.23.0" - "@ember-data/debug" "3.23.0" - "@ember-data/model" "3.23.0" - "@ember-data/private-build-infra" "3.23.0" - "@ember-data/record-data" "3.23.0" - "@ember-data/serializer" "3.23.0" - "@ember-data/store" "3.23.0" + "@ember-data/adapter" "3.24.0" + "@ember-data/debug" "3.24.0" + "@ember-data/model" "3.24.0" + "@ember-data/private-build-infra" "3.24.0" + "@ember-data/record-data" "3.24.0" + "@ember-data/serializer" "3.24.0" + "@ember-data/store" "3.24.0" "@ember/edition-utils" "^1.2.0" - "@ember/ordered-set" "^2.0.3" + "@ember/ordered-set" "^4.0.0" + "@ember/string" "^1.0.0" "@glimmer/env" "^0.1.7" broccoli-merge-trees "^4.2.0" ember-cli-babel "^7.18.0" @@ -9075,9 +9057,9 @@ ember-source@~3.20.2: silent-error "^1.1.1" ember-template-lint@^2.0.1, ember-template-lint@^2.14.0, ember-template-lint@^2.9.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.15.0.tgz#7a3b8dd97498bc777b4633f1a2a5ad63f63a6e77" - integrity sha512-hARl20XxqDbAPC68He1GBi0nDenJuy13Czo4NKaD72Vro+M3AxXOkKoSibeup1hxMAfuY/mWQYfqRij+bKWOhA== + version "2.16.0" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.16.0.tgz#a6d725e2c19ab7df43390357e085c66a00a751bb" + integrity sha512-RmQCFMHWPG3CDByAu0R4XP/edKhha6dl4oA9vqU6+kIuGt0WyHy3nHIJuXmVvLSosmK8KEHuWKgpWgNr//9ckg== dependencies: chalk "^4.0.0" ember-template-recast "^5.0.1" @@ -9226,10 +9208,10 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~3.4.0: - version "3.4.4" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.4.tgz#77d8003f502b0782dd792b073a4d2cf7ca5ab967" - integrity sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ== +engine.io-client@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7" + integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA== dependencies: component-emitter "~1.3.0" component-inherit "0.0.3" @@ -9239,7 +9221,7 @@ engine.io-client@~3.4.0: indexof "0.0.1" parseqs "0.0.6" parseuri "0.0.6" - ws "~6.1.0" + ws "~7.4.2" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" @@ -9254,17 +9236,17 @@ engine.io-parser@~2.2.0: blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" - integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== dependencies: accepts "~1.3.4" base64id "2.0.0" - cookie "0.3.1" + cookie "~0.4.1" debug "~4.1.0" engine.io-parser "~2.2.0" - ws "^7.1.2" + ws "~7.4.2" enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: version "4.3.0" @@ -9411,9 +9393,9 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: next-tick "~1.0.0" es5-shim@^4.5.13: - version "4.5.14" - resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.14.tgz#90009e1019d0ea327447cb523deaff8fe45697ef" - integrity sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg== + version "4.5.15" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.15.tgz#6a26869b261854a3b045273f5583c52d390217fe" + integrity sha512-FYpuxEjMeDvU4rulKqFdukQyZSTpzhg4ScQHrAosrlVpR6GFyaw14f74yn2+4BugniIS0Frpg7TvwZocU4ZMTw== es6-error@^4.1.1: version "4.1.1" @@ -10497,6 +10479,13 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -10772,15 +10761,10 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d" - integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA== - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@^2.1.2, fsevents@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== function-bind@^1.1.1: version "1.1.1" @@ -11264,9 +11248,9 @@ globby@8.0.2: slash "^1.0.0" globby@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -12104,7 +12088,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= @@ -12309,21 +12293,21 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -intl-messageformat-parser@6.1.2, intl-messageformat-parser@^6.0.5: - version "6.1.2" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz#28c65f3689f538e66c7cf628881548d6a82ff3c2" - integrity sha512-4GQDEPhl/ZMNDKwMsLqyw1LG2IAWjmLJXdmnRcHKeLQzpgtNYZI6lVw1279pqIkRk2MfKb9aDsVFzm565azK5A== +intl-messageformat-parser@6.1.3, intl-messageformat-parser@^6.0.5: + version "6.1.3" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.3.tgz#c333850f66d686eca5c9d87eff1ad46f8721b64d" + integrity sha512-rQTtrVTFy/Z6Lg0ieHkkhdFfi/47BKv1P9+wMWlKWaAxpdDP0FIsp2LRyLPpIVKTwUfL3xf26QT25d69cSkZgQ== dependencies: - "@formatjs/ecma402-abstract" "1.5.0" + "@formatjs/ecma402-abstract" "1.5.1" tslib "^2.0.1" intl-messageformat@^9.3.6: - version "9.4.2" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.2.tgz#4ac2290d9d2dd6d76e60a2b355eeb8d8bc310c9c" - integrity sha512-34XevT4ADM/DCwtHIgXcL+LNtAnqPM6LSYUx7itlqm+9b2zMv8hUPlj4Ct94cl6qWymWAq5UiHbj85XAdwvq1A== + version "9.4.3" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.3.tgz#c769923deced44b4c13ad35f84333a20c4f2bf38" + integrity sha512-vTn8gCY5EvHYCYha22QcX4zMSYxkIT8r+3vXeUtvb2udicb7Z+0Ev9p/8hHzcvyrMJk0HPADnkNLVsx8EUfRkg== dependencies: fast-memoize "^2.5.2" - intl-messageformat-parser "6.1.2" + intl-messageformat-parser "6.1.3" tslib "^2.0.1" into-stream@^3.1.0: @@ -12434,7 +12418,7 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.2: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== @@ -13792,6 +13776,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" @@ -13800,11 +13789,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" @@ -13814,12 +13808,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= @@ -14032,7 +14033,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= @@ -14572,9 +14573,9 @@ meow@^3.1.0: trim-newlines "^1.0.0" meow@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.0.tgz#0fcaa267e35e4d58584b8205923df6021ddcc7ba" - integrity sha512-fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA== + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" @@ -15040,9 +15041,9 @@ ncp@^2.0.0: integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= needle@^2.2.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a" - integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -15229,10 +15230,10 @@ node-pre-gyp@^0.11.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.52, node-releases@^1.1.67: - version "1.1.68" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.68.tgz#06046ae7ceb33d96e8cd1e8b83bb62fdf2f5e9c5" - integrity sha512-7R8W00OWB5mjUpVFIN6lybhHwsAJVoipjo8MaFtIGRhZ2KeE01VD5ap4RVjLtYEnPKeX0PH14p1OhQVOFTikDQ== +node-releases@^1.1.52, node-releases@^1.1.69: + version "1.1.69" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6" + integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA== node-uuid@~1.4.7: version "1.4.8" @@ -15702,11 +15703,6 @@ object-assign@^2.0.0: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -15773,7 +15769,7 @@ object.entries@^1.1.0: es-abstract "^1.18.0-next.1" has "^1.0.3" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== @@ -15838,9 +15834,9 @@ onetime@^5.1.0: mimic-fn "^2.1.0" open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" - integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== + version "7.3.1" + resolved "https://registry.yarnpkg.com/open/-/open-7.3.1.tgz#111119cb919ca1acd988f49685c4fdd0f4755356" + integrity sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A== dependencies: is-docker "^2.0.0" is-wsl "^2.1.1" @@ -16325,25 +16321,11 @@ parse5@^6.0.0, parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - parseuri@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" @@ -18434,9 +18416,9 @@ sass-lint@^1.13.1: util "^0.10.3" sass@^1.26.5, sass@^1.29.0: - version "1.32.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.0.tgz#10101a026c13080b14e2b374d4e15ee24400a4d3" - integrity sha512-fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng== + version "1.32.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.2.tgz#66dc0250bc86c15d19ddee7135e93d0cf3d3257b" + integrity sha512-u1pUuzqwz3SAgvHSWp1k0mRhX82b2DdlVnP6UIetQPZtYbuJUDaPQhZE12jyjB7vYeOScfz9WPsZJB6Rpk7heA== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -18719,13 +18701,12 @@ single-line-log@^1.1.2: string-width "^1.0.1" sinon@^9.2.1: - version "9.2.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.2.2.tgz#b83cf5d43838f99cfa3644453f4c7db23e7bd535" - integrity sha512-9Owi+RisvCZpB0bdOVFfL314I6I4YoRlz6Isi4+fr8q8YQsDPoCe5UnmNtKHRThX3negz2bXHWIuiPa42vM8EQ== + version "9.2.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.2.3.tgz#f68ce414e843e2fd638703043c97f260697caa52" + integrity sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw== dependencies: "@sinonjs/commons" "^1.8.1" "@sinonjs/fake-timers" "^6.0.1" - "@sinonjs/formatio" "^5.0.1" "@sinonjs/samsam" "^5.3.0" diff "^4.0.2" nise "^4.0.4" @@ -18820,23 +18801,20 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== +socket.io-client@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== dependencies: backo2 "1.0.2" - base64-arraybuffer "0.1.5" component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" has-binary2 "~1.0.2" - has-cors "1.1.0" indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" + parseqs "0.0.6" + parseuri "0.0.6" socket.io-parser "~3.3.0" to-array "0.1.4" @@ -18859,15 +18837,15 @@ socket.io-parser@~3.4.0: isarray "2.0.1" socket.io@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" + integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== dependencies: debug "~4.1.0" - engine.io "~3.4.0" + engine.io "~3.5.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" + socket.io-client "2.4.0" socket.io-parser "~3.4.0" socks-proxy-agent@^4.0.0: @@ -19767,9 +19745,9 @@ tar@^5.0.5: yallist "^4.0.0" tar@^6.0.2, tar@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -20243,9 +20221,9 @@ tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== tty-browserify@0.0.0: version "0.0.0" @@ -20805,7 +20783,17 @@ util.promisify@1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0, util.promisify@~1.0.0: +util.promisify@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.0.tgz#aa0a043eb73f5ff5cbb3ae44819cd0f3e7a5322f" + integrity sha512-KXdwUwahiTMGAA2NE3NVKSyabmckHljc99p1E9neqltHxT+7KsomX6yGGWSmbWRMf7wTpeG/CQMDgbLN8AahsQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + for-each "^0.3.3" + object.getownpropertydescriptors "^2.1.1" + +util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== @@ -21351,18 +21339,11 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@^7.1.2, ws@^7.2.3: +ws@^7.2.3, ws@~7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -21416,9 +21397,9 @@ xtend@~2.1.1: object-keys "~0.4.0" y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: version "4.0.1" From db3744246bd83a667c2fa9049e3221e1be02e544 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 8 Jan 2021 11:38:17 -0500 Subject: [PATCH 006/106] refactor: Use mirage created user in auth payload Using mirage created user in auth payload allows for sessions for authenticated user to be created. --- addons/api/mirage/factories/auth-method.js | 5 +--- addons/api/mirage/factories/session.js | 27 +++------------------- addons/api/mirage/route-handlers/auth.js | 5 ++-- addons/api/mirage/scenarios/default.js | 5 +--- 4 files changed, 8 insertions(+), 34 deletions(-) diff --git a/addons/api/mirage/factories/auth-method.js b/addons/api/mirage/factories/auth-method.js index 1d0b29df8..61d29726b 100644 --- a/addons/api/mirage/factories/auth-method.js +++ b/addons/api/mirage/factories/auth-method.js @@ -10,10 +10,7 @@ export default factory.extend({ withAccountsAndUsers: trait({ afterCreate(authMethod, server) { const { scope } = authMethod; - const users = server.createList('user', 5, { scope }); - // Create authorized user: user123 - users.push(server.create('user', { scope, id: 'user123' })); - users.map(user => { + server.createList('user', 5, { scope }).map(user => { const { id } = server.create('account', { scope, authMethod }); user.update({ accountIds: [id] }); }); diff --git a/addons/api/mirage/factories/session.js b/addons/api/mirage/factories/session.js index 1292d3e10..61c472056 100644 --- a/addons/api/mirage/factories/session.js +++ b/addons/api/mirage/factories/session.js @@ -26,8 +26,10 @@ export default factory.extend({ const scopeId = record.scopeId; if (record.scope.type === 'project') { const orgScopeId = record.scope?.scope.id; - const user = + const orgUser = server.schema.users.where({ scopeId: orgScopeId }).models[0]; + const authenticatedUser = server.schema.users.first(); + const user = random.arrayElement([orgUser, authenticatedUser]); if (user) record.update({ user }); } const target = server.schema.targets.where({ scopeId }).models[0]; @@ -41,29 +43,6 @@ export default factory.extend({ } } } - }), - - /** - * Sessions generated with this trait will automatically form - * associations to target, host set, and host (if available) within - * the current scope and for specified user. - */ - withUserAssociations: trait({ - afterCreate(record, server) { - const scopeId = record.scopeId; - const user = record.user; - record.update({ user }); - const target = server.schema.targets.where({ scopeId }).models[0]; - if (target) { - record.update({ target }); - const hostSet = target.hostSets.models[0]; - if (hostSet) { - record.update({ hostSet }); - const host = hostSet.hosts.models[0]; - if (host) record.update({ host }); - } - } - } }) }); diff --git a/addons/api/mirage/route-handlers/auth.js b/addons/api/mirage/route-handlers/auth.js index 96813a7d5..00867ca47 100644 --- a/addons/api/mirage/route-handlers/auth.js +++ b/addons/api/mirage/route-handlers/auth.js @@ -23,7 +23,7 @@ import { Response } from 'miragejs'; // } // } -export function authHandler({ scopes, authMethods }, request) { +export function authHandler({ scopes, authMethods, users }, request) { const payload = JSON.parse(request.requestBody); if (payload.credentials.login_name === 'error') { return new Response(400); @@ -33,12 +33,13 @@ export function authHandler({ scopes, authMethods }, request) { const scope = scopes.find(authMethod.scopeId); const scopeAttrs = this.serialize(scopes.find(scope.id)); + const user = users.first(); return new Response(200, {}, { scope: scopeAttrs, id: 'token123', token: 'thetokenstring', account_id: '1', - user_id: 'user123', + user_id: user.id, auth_method_id: 'authmethod123', created_time: '', updated_time: '', diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index 9961b7010..e2d941063 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -29,9 +29,6 @@ export default function(server) { server.createList('host-catalog', 2, { scope }, 'withChildren'); server.createList('target', 2, { scope }, 'withRandomHostSets'); server.createList('session', 4, { scope }, 'withAssociations'); - // Create sessions for all users - server.schema.users.where({ scopeId: scope.scope.id }).models.forEach(user => - server.createList('session', 4, { scope, user }, 'withUserAssociations') - ); + server.createList('session', 4, { scope }, 'withAssociations'); }); } From ff447981a15680740d1a15023783dbaea2cfb251 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 8 Jan 2021 13:22:13 -0500 Subject: [PATCH 007/106] fix: desktop: revert header padding & fix broken tests --- addons/core/tests/unit/authenticators/password-test.js | 1 + ui/admin/tests/acceptance/authentication-test.js | 1 + ui/desktop/app/styles/app.scss | 3 +++ ui/desktop/tests/unit/authenticators/password-test.js | 1 + 4 files changed, 6 insertions(+) diff --git a/addons/core/tests/unit/authenticators/password-test.js b/addons/core/tests/unit/authenticators/password-test.js index 35e872b48..a7580ef7d 100644 --- a/addons/core/tests/unit/authenticators/password-test.js +++ b/addons/core/tests/unit/authenticators/password-test.js @@ -44,6 +44,7 @@ module('Unit | Authenticator | password', function (hooks) { const authMethod = { id: 'paum_1234' }; this.server.create('scope', { id: 'global', type: 'global' }); this.server.create('auth-method', { id: authMethod.id, scopeId: 'global' }); + this.server.create('user', { scopeId: 'global' }); await authenticator.authenticate(creds, null, { scope, authMethod }); assert.equal( applicationAdapter.headers.Authorization, diff --git a/ui/admin/tests/acceptance/authentication-test.js b/ui/admin/tests/acceptance/authentication-test.js index f39c4d9bd..872d99d83 100644 --- a/ui/admin/tests/acceptance/authentication-test.js +++ b/ui/admin/tests/acceptance/authentication-test.js @@ -67,6 +67,7 @@ module('Acceptance | authentication', function (hooks) { globalAuthMethod = this.server.create('auth-method', { scope: globalScope, }); + this.server.create('user', { scope: globalScope }); authMethod = this.server.create('auth-method', { scope: orgScope }); orgScopeID = orgScope.id; globalAuthMethodID = globalAuthMethod.id; diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index be7722d0b..14d7233c2 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -100,6 +100,9 @@ } .rose-header { + -webkit-app-region: drag; + min-height: sizing.rems(l) * 2; + padding-left: sizing.rems(l) * 3; position: relative; .logotype { diff --git a/ui/desktop/tests/unit/authenticators/password-test.js b/ui/desktop/tests/unit/authenticators/password-test.js index 35e872b48..a7580ef7d 100644 --- a/ui/desktop/tests/unit/authenticators/password-test.js +++ b/ui/desktop/tests/unit/authenticators/password-test.js @@ -44,6 +44,7 @@ module('Unit | Authenticator | password', function (hooks) { const authMethod = { id: 'paum_1234' }; this.server.create('scope', { id: 'global', type: 'global' }); this.server.create('auth-method', { id: authMethod.id, scopeId: 'global' }); + this.server.create('user', { scopeId: 'global' }); await authenticator.authenticate(creds, null, { scope, authMethod }); assert.equal( applicationAdapter.headers.Authorization, From c1e5067de9ae86c84e6978f2e722e6ef86dd8647 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 8 Jan 2021 13:35:49 -0500 Subject: [PATCH 008/106] fix: Remove mirage sessions list duplication --- addons/api/mirage/scenarios/default.js | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index e2d941063..7d385dd96 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -29,6 +29,5 @@ export default function(server) { server.createList('host-catalog', 2, { scope }, 'withChildren'); server.createList('target', 2, { scope }, 'withRandomHostSets'); server.createList('session', 4, { scope }, 'withAssociations'); - server.createList('session', 4, { scope }, 'withAssociations'); }); } From b43efc3b368455827757d987132db00fe14537a5 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 21 Jan 2021 11:30:36 -0500 Subject: [PATCH 009/106] refactor: Authenticated user creation in mirage --- addons/api/mirage/factories/session.js | 4 ++-- addons/api/mirage/route-handlers/auth.js | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/api/mirage/factories/session.js b/addons/api/mirage/factories/session.js index 61c472056..6622d571d 100644 --- a/addons/api/mirage/factories/session.js +++ b/addons/api/mirage/factories/session.js @@ -28,8 +28,8 @@ export default factory.extend({ const orgScopeId = record.scope?.scope.id; const orgUser = server.schema.users.where({ scopeId: orgScopeId }).models[0]; - const authenticatedUser = server.schema.users.first(); - const user = random.arrayElement([orgUser, authenticatedUser]); + const mockedAuthPayloadUser = server.schema.users.findOrCreateBy({ description: 'authenticated-user' }); + const user = random.arrayElement([orgUser, mockedAuthPayloadUser]); if (user) record.update({ user }); } const target = server.schema.targets.where({ scopeId }).models[0]; diff --git a/addons/api/mirage/route-handlers/auth.js b/addons/api/mirage/route-handlers/auth.js index 00867ca47..65d24390a 100644 --- a/addons/api/mirage/route-handlers/auth.js +++ b/addons/api/mirage/route-handlers/auth.js @@ -33,7 +33,10 @@ export function authHandler({ scopes, authMethods, users }, request) { const scope = scopes.find(authMethod.scopeId); const scopeAttrs = this.serialize(scopes.find(scope.id)); - const user = users.first(); + // Create and tag an auth user to be used in auth payload. + const user = users.findOrCreateBy({ + description: 'authenticated-user' + }); return new Response(200, {}, { scope: scopeAttrs, id: 'token123', From d168f1d459ca0ea3ff7e9dce396ab91e6203ab3e Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 21 Jan 2021 16:43:11 -0500 Subject: [PATCH 010/106] refactor: Add mirage route handling for authed user sessions --- addons/api/mirage/config.js | 13 +- addons/api/mirage/factories/session.js | 7 +- addons/api/mirage/route-handlers/auth.js | 8 +- addons/api/mirage/scenarios/default.js | 2 + yarn.lock | 850 ++++++++++++----------- 5 files changed, 444 insertions(+), 436 deletions(-) diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index d2596e43f..bbd5b1637 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -325,14 +325,21 @@ export default function() { this.get('/sessions', function ({ sessions }, { queryParams: { scope_id } }) { // To simulate changes to `session.status` that may occur in the backend, // we quietly randomize the value of the field on GET. + // To populate sessions for logged in user, + // update alternate sessions to auth user. // But only if not in testing mode. // In tests, we need deterministic statuses. if (!Ember.testing) { sessions.where(session => session.scopeId === scope_id) .models - .forEach(session => session.update({ - status: pickRandomStatusString() - })); + .forEach(session => { + session.update({ + status: pickRandomStatusString() + }); + if(session.id.split('-').pop() % 2) session.update({ + userId: 'authenticateduser' + }); + }); } return sessions.where(session => session.scopeId === scope_id) }); diff --git a/addons/api/mirage/factories/session.js b/addons/api/mirage/factories/session.js index 6622d571d..f30301c5c 100644 --- a/addons/api/mirage/factories/session.js +++ b/addons/api/mirage/factories/session.js @@ -1,4 +1,4 @@ -import factory from '../generated/factories/target'; +import factory from '../generated/factories/session'; import { trait } from 'ember-cli-mirage'; import { random } from 'faker'; @@ -26,10 +26,7 @@ export default factory.extend({ const scopeId = record.scopeId; if (record.scope.type === 'project') { const orgScopeId = record.scope?.scope.id; - const orgUser = - server.schema.users.where({ scopeId: orgScopeId }).models[0]; - const mockedAuthPayloadUser = server.schema.users.findOrCreateBy({ description: 'authenticated-user' }); - const user = random.arrayElement([orgUser, mockedAuthPayloadUser]); + const user = server.schema.users.where({ scopeId: orgScopeId }).models[0]; if (user) record.update({ user }); } const target = server.schema.targets.where({ scopeId }).models[0]; diff --git a/addons/api/mirage/route-handlers/auth.js b/addons/api/mirage/route-handlers/auth.js index 65d24390a..5bac04839 100644 --- a/addons/api/mirage/route-handlers/auth.js +++ b/addons/api/mirage/route-handlers/auth.js @@ -23,7 +23,7 @@ import { Response } from 'miragejs'; // } // } -export function authHandler({ scopes, authMethods, users }, request) { +export function authHandler({ scopes, authMethods }, request) { const payload = JSON.parse(request.requestBody); if (payload.credentials.login_name === 'error') { return new Response(400); @@ -33,16 +33,12 @@ export function authHandler({ scopes, authMethods, users }, request) { const scope = scopes.find(authMethod.scopeId); const scopeAttrs = this.serialize(scopes.find(scope.id)); - // Create and tag an auth user to be used in auth payload. - const user = users.findOrCreateBy({ - description: 'authenticated-user' - }); return new Response(200, {}, { scope: scopeAttrs, id: 'token123', token: 'thetokenstring', account_id: '1', - user_id: user.id, + user_id: 'authenticateduser', auth_method_id: 'authmethod123', created_time: '', updated_time: '', diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index 7d385dd96..c1db90168 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -13,6 +13,8 @@ export default function(server) { scope: { id: globalScope.id, type: globalScope.type } }, 'withChildren')[0]; + server.create('user', { id: 'authenticateduser' }); + // Auth server.createList('auth-method', 1, { scope: globalScope }, 'withAccountsAndUsers'); server.createList('auth-method', 3, { scope: orgScope }, 'withAccountsAndUsers'); diff --git a/yarn.lock b/yarn.lock index 30694bb92..e47046999 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1261,16 +1261,17 @@ fs-extra "^9.0.1" "@electron/get@^1.6.0", "@electron/get@^1.9.0": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" - integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== + version "1.12.3" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.3.tgz#fa2723385c4b565a34c4c82f46087aa2a5fbf6d0" + integrity sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q== dependencies: debug "^4.1.1" env-paths "^2.2.0" + filenamify "^4.1.0" fs-extra "^8.1.0" got "^9.6.0" progress "^2.0.3" - sanitize-filename "^1.6.2" + semver "^6.2.0" sumchecker "^3.0.1" optionalDependencies: global-agent "^2.0.2" @@ -1660,10 +1661,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1672,7 +1673,7 @@ ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -2029,11 +2030,12 @@ integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== "@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" + integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== dependencies: mkdirp "^1.0.4" + rimraf "^2.7.1" "@popperjs/core@^2.5.4": version "2.6.0" @@ -2071,9 +2073,9 @@ integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" - integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== dependencies: type-detect "4.0.8" @@ -2085,9 +2087,9 @@ "@sinonjs/commons" "^1.7.0" "@sinonjs/samsam@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz#1d2f0743dc54bf13fe9d508baefacdffa25d4329" - integrity sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" + integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -2099,16 +2101,16 @@ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@storybook/addon-actions@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.11.tgz#73e91cc95c45ea477cfd4f3603f6b95f5829eab6" - integrity sha512-J44XLx2G732OG7Az79Cpk5UlI5SyXHeQqdykwT/4IEQXSBXAYWSTIJJjpJdcjR/D+zpklab1QDSiWxCrKbe81A== + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.14.tgz#20a173d781d99368a1af769ed75551a3784f3135" + integrity sha512-mXvrL8B34Rtq1WPxbQ1eUip8spqQP43HWGRH0ZmCO3Iwwcmxd6250LY3q+95QqJYsli0XJoOnS97VOLXABpaPg== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/api" "6.1.14" + "@storybook/client-api" "6.1.14" + "@storybook/components" "6.1.14" + "@storybook/core-events" "6.1.14" + "@storybook/theming" "6.1.14" core-js "^3.0.1" fast-deep-equal "^3.1.1" global "^4.3.2" @@ -2122,9 +2124,9 @@ uuid "^8.0.0" "@storybook/addon-docs@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.11.tgz#5c4c06a0e9d34bd41d993c682141c19fe4a6061a" - integrity sha512-dC6RpNWFvbEs68WDk30jrzmPncR0u7nn0SQl0Ao1wdLqCU81ptti/t6Yc7zanlo9hokMzGiom87ZMef0ad9nTQ== + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.14.tgz#fc1feac0e7e8b9c46efcd0b9c1f8ba2d306a9b3b" + integrity sha512-Skj9crqaEEISghobjtu3EKbSTwGVK2e0gTu94WqPL3GOugvGgk7b1VrCgf5fXKcdwbtZktm48CtdmeP5R5U9NQ== dependencies: "@babel/core" "^7.12.1" "@babel/generator" "^7.12.1" @@ -2135,18 +2137,18 @@ "@mdx-js/loader" "^1.6.19" "@mdx-js/mdx" "^1.6.19" "@mdx-js/react" "^1.6.19" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/api" "6.1.14" + "@storybook/client-api" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/components" "6.1.14" + "@storybook/core" "6.1.14" + "@storybook/core-events" "6.1.14" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.11" - "@storybook/postinstall" "6.1.11" - "@storybook/source-loader" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/node-logger" "6.1.14" + "@storybook/postinstall" "6.1.14" + "@storybook/source-loader" "6.1.14" + "@storybook/theming" "6.1.14" acorn "^7.1.0" acorn-jsx "^5.1.0" acorn-walk "^7.0.0" @@ -2168,17 +2170,17 @@ util-deprecate "^1.0.2" "@storybook/addon-knobs@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.11.tgz#bd0e33af886f00f359b8d2e83b63bde1bf97e8c7" - integrity sha512-5bVB7JbClyL/v8hJcifRL1Jetj1rDbVjmIOw2RputZHPbOJ2Dd18X3uOAfzNa7e2KJ0BmtA1ojZ3PuDfy9MAPw== + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.14.tgz#748a66eff822189c016e7024129637932020bf81" + integrity sha512-Zyd4hWbV8OpsC3Cllmz4kxrGgoSGR6fDjaN1rYTZplUDf0h3dVWPEd/RhI3iU7umE5FqrFuQyadunHwuGXh3OA== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/api" "6.1.14" + "@storybook/channels" "6.1.14" + "@storybook/client-api" "6.1.14" + "@storybook/components" "6.1.14" + "@storybook/core-events" "6.1.14" + "@storybook/theming" "6.1.14" copy-to-clipboard "^3.0.8" core-js "^3.0.1" escape-html "^1.0.3" @@ -2192,34 +2194,34 @@ react-select "^3.0.8" regenerator-runtime "^0.13.7" -"@storybook/addons@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.11.tgz#cb4578411ca00ccb206b484df5a171ccaca34719" - integrity sha512-OZXsdmn60dVe482l9zWxzOqqJApD2jggk/8QJKn3/Ub9posmqdqg712bW6v71BBe0UXXG/QfkZA7gcyiyEENbw== +"@storybook/addons@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.14.tgz#2b81304bbe696923df95cdcf85cfc592d10f4065" + integrity sha512-HlpmV7aejp/MeW8bo/WKME3i71gi0men9qcwoovjDjnSF6jXoNLT336a5udKXdHqYSZgzdyURlgLtilCWkWaJQ== dependencies: - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/router" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/api" "6.1.14" + "@storybook/channels" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/core-events" "6.1.14" + "@storybook/router" "6.1.14" + "@storybook/theming" "6.1.14" core-js "^3.0.1" global "^4.3.2" regenerator-runtime "^0.13.7" -"@storybook/api@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.11.tgz#1e0b798203df823ac21184386258cf8b5f17f440" - integrity sha512-/p4QW/p3uWO0AKVveNezX3I/CotyBKaJ5ui8PuvSPsl7yvqcsK41qI4evKOw7GMQn6oP+2enRbzHpGuCUgQSjA== +"@storybook/api@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.14.tgz#20035dd336aba1c5a0f8c83c8c14a2edaf4db891" + integrity sha512-gWcC/xEW8HL5DsocLujHBUdoNsl4YW1Zx1Y4SBbLCyrhj8v4JudJpylwJpOUBDe/GESXq1zqvNKvUPtI8DQNyw== dependencies: "@reach/router" "^1.3.3" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/channels" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/core-events" "6.1.14" "@storybook/csf" "0.0.1" - "@storybook/router" "6.1.11" + "@storybook/router" "6.1.14" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" + "@storybook/theming" "6.1.14" "@types/reach__router" "^1.3.5" core-js "^3.0.1" fast-deep-equal "^3.1.1" @@ -2232,38 +2234,38 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.11.tgz#62c1079f04870dd27925bd538a2020e7380daa2e" - integrity sha512-voW4Z2SUacDOxwN2q1NEBL//8OpgvL2C5CeoG1VQyEllKM8Vg9t1Nxo2FFTJBzv5LeEX7VIJKeBoB25DYvKyng== +"@storybook/channel-postmessage@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.14.tgz#41f3115895010dad9fb30f4ac381e4f904b1e50c" + integrity sha512-If83dXXW9mKIRuvuWhWa/zkEw/F0FDgikp33x8436J3rWCh3recp27kffFRrKG0YDMpFSk/Ci5G47E9zn9SCjw== dependencies: - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/channels" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/core-events" "6.1.14" core-js "^3.0.1" global "^4.3.2" qs "^6.6.0" telejson "^5.0.2" -"@storybook/channels@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.11.tgz#a93a83746ad78dd40e1c056029f6d93b17bb66bc" - integrity sha512-NvjWzQ95TSV1e18jaQBCOGoe+vptKH2NOKZ7QRQ7I0O5OoHKr47IXoh+MQ5C8CRD9FTdLE/xWdn1sVVEPRyHEw== +"@storybook/channels@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.14.tgz#c479190ebb853a603f3ed90fc470534a02eb46eb" + integrity sha512-vP19IB2FXj8SiFbQ9ETljEBienL+KRMLgMzz3Ta3nZj/OfjJJbIuj42ZfexQGV4mS0Bo+OW+qT7VMIY6fulnFw== dependencies: core-js "^3.0.1" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.11.tgz#d25aac484ca84a1acb01d450e756a62408f00c1a" - integrity sha512-DodJQzGCR+PYs26klvbquTjfBgkw5nvCZd3jpgWQtOrYaY/cMY1LLkVkKqrm2ENW8f7vf7tiw78RtxaXy7xeIQ== +"@storybook/client-api@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.14.tgz#6daf56743cc72e13f05fff3d2ac554897cc9f9fd" + integrity sha512-pIDSlS48bhJdtgNg7sXV1NmLJtB0ebRHJI9htIiqtL7EGQenb4+Bbwflhj1j51OEkuM+bQsAAZxq5deiUQEGVw== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/channel-postmessage" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/channel-postmessage" "6.1.14" + "@storybook/channels" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/core-events" "6.1.14" "@storybook/csf" "0.0.1" "@types/qs" "^6.9.0" "@types/webpack-env" "^1.15.3" @@ -2278,23 +2280,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.11.tgz#5dd092e4293e5f58f7e89ddbc6eb2511b7d60954" - integrity sha512-dSc+VKLW1UaiMPMhlZYRqhynrrHdHFiBEgU28+8LcmoZ1yhZBwLkcKdSD4YTT0CbMJAG1/+NUW5kRI8Geeg+rA== +"@storybook/client-logger@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.14.tgz#216b9c1332ffa3a3473dad837780a3b14f686bae" + integrity sha512-NSO8nVsp6o0eoQ1Drlu66KXpl6DPuq02Kj8AhttGzvqSYB50SV4CV+wceBcg77tIVu5QmQ+71hAEVXhx7sjRHA== dependencies: core-js "^3.0.1" global "^4.3.2" -"@storybook/components@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.11.tgz#edd5db7fe43f47b5a7ab515840795a89d931512e" - integrity sha512-DGDl76uONTkg0rpsa36TpVuXv4K7rFYe8GnQ/Q8n4By5tvldC4s9YXwcDRYHVrfnYybKzuZ/+jv2ZAp4/8ZaeA== +"@storybook/components@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.14.tgz#4ea47edfa0a3e4a26882aa5a1eb90c1ec86e6f71" + integrity sha512-Nxsp/9o1tqfY8s6RBWNHyM03A5D9k56Kr/4VNa++CbDrz1+TIxpYlDgS4sllUlXyvICLfk3sUtg3KS5CPl2iZA== dependencies: "@popperjs/core" "^2.5.4" - "@storybook/client-logger" "6.1.11" + "@storybook/client-logger" "6.1.14" "@storybook/csf" "0.0.1" - "@storybook/theming" "6.1.11" + "@storybook/theming" "6.1.14" "@types/overlayscrollbars" "^1.9.0" "@types/react-color" "^3.0.1" "@types/react-syntax-highlighter" "11.0.4" @@ -2312,17 +2314,17 @@ react-textarea-autosize "^8.1.1" ts-dedent "^2.0.0" -"@storybook/core-events@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.11.tgz#d50e8ec90490f9a7180a8c8a83afb6dcfe47ed66" - integrity sha512-hTib81W8PxepM7iXVvl3pBXSaGpChl5LTzaLCoIRO9sSB8dy0/x2DLAHzbQvShk/l1wqUc3TtOLIxq+eC9l3wg== +"@storybook/core-events@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.14.tgz#a3165e32cefd6be7326bbad4b8140653bdfa0426" + integrity sha512-tpM3VDvzqgRY7S17CRglgt1625rxNoyEwrLQiNcZkUPyO0rpaacPqVEbPCtcTmUeboI1bLdnSQIjT9B0/Y2Pww== dependencies: core-js "^3.0.1" -"@storybook/core@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.11.tgz#ed9d3b513794c604ab11180f6a014924b871179e" - integrity sha512-pYOOQwiNJ5myLRn6p6nnLUjjjISHK/N55vS4HFnETYSaRLA++h1coN1jk7Zwt89dOQTdF0EsTJn+6snYOC+lxQ== +"@storybook/core@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.14.tgz#17e724a5b94d6e1bb557e213b8176660d2d14762" + integrity sha512-lHKZmfLAo2VGtF/yrZkkWMYgmFRNKbzIDxYJGp8USyUQyTfEpz2qqJlBdoD6rxr1hFPM2954tIKwh8iPhT2PFQ== dependencies: "@babel/core" "^7.12.3" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2346,20 +2348,20 @@ "@babel/preset-react" "^7.12.1" "@babel/preset-typescript" "^7.12.1" "@babel/register" "^7.12.1" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channel-postmessage" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/api" "6.1.14" + "@storybook/channel-postmessage" "6.1.14" + "@storybook/channels" "6.1.14" + "@storybook/client-api" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/components" "6.1.14" + "@storybook/core-events" "6.1.14" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.11" - "@storybook/router" "6.1.11" + "@storybook/node-logger" "6.1.14" + "@storybook/router" "6.1.14" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" - "@storybook/ui" "6.1.11" + "@storybook/theming" "6.1.14" + "@storybook/ui" "6.1.14" "@types/glob-base" "^0.3.0" "@types/micromatch" "^4.0.1" "@types/node-fetch" "^2.5.4" @@ -2444,12 +2446,12 @@ ember-cli-babel "^7.1.2" "@storybook/ember@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.11.tgz#436e78194872f11c7e68adbab3a8dca9835038be" - integrity sha512-E4bOis6abHb+zxt4wH8FEJEIRTZYlTrkd3UgoZk+8iJUC9BceOxqi1ApJLmb8Tem3upIVqBCofSCDqAPa+LReA== + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.14.tgz#4675c256f4145799516be08892fa0bd391523ce4" + integrity sha512-X3aBMbbj0fECjo9mJrPQeoUPQ6oUKEg8n73gnDJyofuqbWzXkUHBQKgFfcpuXjpjhWwCtUl3jCMFPycUyU4FBg== dependencies: "@ember/test-helpers" "^1.7.0" - "@storybook/core" "6.1.11" + "@storybook/core" "6.1.14" core-js "^3.0.1" global "^4.3.2" react "16.13.1" @@ -2457,10 +2459,10 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/node-logger@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.11.tgz#8e0d058b4804f2fea03c9d7d331b8e2d02f3b7ff" - integrity sha512-MASonXDWpSMU9HF9mqbGOR1Ps/DTJ8AVmYD50+OnB9kXl4M42Dliobeq7JwKFMnZ42RelUCCSXdWW80hGrUKKA== +"@storybook/node-logger@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.14.tgz#e5294f986e3ec5c67b2738895b9d16c9a2b667fa" + integrity sha512-3jrw7coAwFXZu4qK1vm54bCPhNRvxjG+7jISbhhocDoNIv0nLWL3+tJyrC5/k/XHQiUlLkhEzpMaASADmkttNw== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.0.0" @@ -2468,17 +2470,17 @@ npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.11.tgz#4b13de88ee42bfa2d65f7d4cf4924884b9c0dc7e" - integrity sha512-ICW70RuOJOHD7PcKq62yr7hCmo04F7yRMuy5/MD/G+Neaw3YpfYTc6pQ228h5UrmXiKSKG1unPkjzuIAoIeN7w== +"@storybook/postinstall@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.14.tgz#ec931739d566bbd3b15b742c32be82701e4910b9" + integrity sha512-A2ytqaoNjZoxmK3kZ2FxeQki6gZugGdPnEMbs8q+EJq7IN3UEbxisdGj6vxKXf/rlyZ1G1t2jSQ4xmkBF8+fZg== dependencies: core-js "^3.0.1" -"@storybook/router@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.11.tgz#d58e0c8324d8b16d71e09c017a4e3c844b1a4139" - integrity sha512-YEYOoKMo/WI13MZCkdqI9X3H1G0Oj5OUxi7So4qd3khX3zcCjSr3LjiMDBcmIVZpFo5VAvzjhIY4KqpgvzTG0A== +"@storybook/router@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.14.tgz#f6aef8c9dabf19bf06dddd80907e66369261fdde" + integrity sha512-rMaUCYzgfVLwFWo3A1Q/weSv8FBqCLmHY+3+t6ao7OV6NYjR0XgLKRzHrXq1uYdbMxWeIKhN2tIt/LR43bmDjQ== dependencies: "@reach/router" "^1.3.3" "@types/reach__router" "^1.3.5" @@ -2495,13 +2497,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.11.tgz#26e0ba30d5b9d1828ed10ccb76eb38bf48aad304" - integrity sha512-pEMWGn3XwZYAXwIrtmd7ziH5d1zN8NCpJM8vNJssntZFW45rDo69xgGM/PrTLPDca6f/Mhv+vqzR99tdfarJSw== +"@storybook/source-loader@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.14.tgz#507ff52cc6627e4d996020de05bf023004230953" + integrity sha512-JY3hJGTJSNmohmDDE3BLE3vPW1rSAIRToq0vpo9ZhFTFUWHm3RlhcS8+5z8Mvn9+TLDuf5WnSib5lfGmCtLmJQ== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/client-logger" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/client-logger" "6.1.14" "@storybook/csf" "0.0.1" core-js "^3.0.1" estraverse "^4.2.0" @@ -2512,15 +2514,15 @@ regenerator-runtime "^0.13.7" source-map "^0.7.3" -"@storybook/theming@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.11.tgz#0e757e0562aedefc96bd1d12714d4c8e92823467" - integrity sha512-zRChacVgKoU2BmpvwK1ntiF3KIpc8QblJT7IGiKfP/BNpy9gNeXbLPLk3g/tkHszOvVYtkaZhEXni4Od8tqy1A== +"@storybook/theming@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.14.tgz#fecb66cab22d3b3218b4a98a9c210eb8a7be91e8" + integrity sha512-S+t30y4FqBTXWoVr+dtxVJ/ywiQGHBclBd9aUunbdCV4mMFra5InNo2CWn+RJlNEauLZ93gRIEzSFchIbzLk1A== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.23" - "@storybook/client-logger" "6.1.11" + "@storybook/client-logger" "6.1.14" core-js "^3.0.1" deep-object-diff "^1.1.0" emotion-theming "^10.0.19" @@ -2530,21 +2532,21 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.11.tgz#2e5a5df010f2bb75a09a0fd0439fc8e62f8c89e5" - integrity sha512-Qth2dxS5+VbKHcqgkiKpeD+xr/hRUuUIDUA/2Ierh/BaA8Up/krlso/mCLaQOa5E8Og9WJAdDFO0cUbt939c2Q== +"@storybook/ui@6.1.14": + version "6.1.14" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.14.tgz#766d696480ee6f6a5a0454ccb2f101c38a0eb9d2" + integrity sha512-DTW2TM05jTMKxh8LzUGk3g5a528PgJxrtgODFU6zzwSg2+LwdmSDtd1HAxopt2vpfTyQyX+6WN2H+lMNwfQTAQ== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/router" "6.1.11" + "@storybook/addons" "6.1.14" + "@storybook/api" "6.1.14" + "@storybook/channels" "6.1.14" + "@storybook/client-logger" "6.1.14" + "@storybook/components" "6.1.14" + "@storybook/core-events" "6.1.14" + "@storybook/router" "6.1.14" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" + "@storybook/theming" "6.1.14" "@types/markdown-to-jsx" "^6.11.0" copy-to-clipboard "^3.0.8" core-js "^3.0.1" @@ -2678,26 +2680,26 @@ "@types/node" "*" "@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== -"@types/express-serve-static-core@*": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" - integrity sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== +"@types/express-serve-static-core@^4.17.18": + version "4.17.18" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40" + integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@^4.17.2": - version "4.17.9" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" - integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" + integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "*" + "@types/express-serve-static-core" "^4.17.18" "@types/qs" "*" "@types/serve-static" "*" @@ -2782,9 +2784,9 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/keyv@*": version "3.1.1" @@ -2814,10 +2816,10 @@ dependencies: "@types/braces" "*" -"@types/mime@*": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" - integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" @@ -2830,17 +2832,17 @@ integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node-fetch@^2.5.4": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + version "2.5.8" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.8.tgz#e199c835d234c7eb0846f6618012e558544ee2fb" + integrity sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*": - version "14.14.20" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" - integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== "@types/node@^9.6.0": version "9.6.61" @@ -2946,11 +2948,11 @@ "@types/node" "*" "@types/serve-static@*": - version "1.13.8" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" - integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== + version "1.13.9" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" + integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== dependencies: - "@types/mime" "*" + "@types/mime" "^1" "@types/node" "*" "@types/source-list-map@*": @@ -2995,9 +2997,9 @@ source-map "^0.7.3" "@types/webpack@^4.41.8": - version "4.41.25" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" - integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -3199,9 +3201,9 @@ abbrev@1, abbrev@~1.1.1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abortcontroller-polyfill@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.5.0.tgz#2c562f530869abbcf88d949a2b60d1d402e87a7c" - integrity sha512-O6Xk757Jb4o0LMzMOMdWvxpHWrQzruYBaUruFaIOfAQRnWFxfdXYobw12jrVHGtoXk6WiiyYzc0QWN9aL62HQA== + version "1.7.1" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.1.tgz#27084bac87d78a7224c8ee78135d05df430c2d2f" + integrity sha512-yml9NiDEH4M4p0G4AcPkg8AAa4mF3nfYF28VQxaokpO67j9H7gWgmsVWJ/f1Rn+PzsnDYvzJzWIQzCqDKRvWlA== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -3675,7 +3677,7 @@ array.prototype.flatmap@^1.2.1: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -array.prototype.map@^1.0.1: +array.prototype.map@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.3.tgz#1609623618d3d84134a37d4a220030c2bd18420b" integrity sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA== @@ -4147,10 +4149,10 @@ babel-plugin-ember-modules-api-polyfill@^2.13.4, babel-plugin-ember-modules-api- dependencies: ember-rfc176-data "^0.3.13" -babel-plugin-ember-modules-api-polyfill@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.0.tgz#302cb58a3c0fa33d93ab5115f1e91d76c6ec766b" - integrity sha512-k5gyC1kUDyZDcdD8LMGTI7KA+cHdKainuWpmc7d5yv42WgZFO75njPi3hZchEGsFFXtSqm9jiahgvLBUV8E8mA== +babel-plugin-ember-modules-api-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.1.tgz#715252ffde309da36fb32cd6a9bad5c6b61edd33" + integrity sha512-7k4gM0VLAMjoWVxLBDqavH/Dn4mBfzqTuQmtGmZgsdQ4SYVEJ7dewUVeqWBVn5v3QspW4VSoeXh4rHPPlp/rPw== dependencies: ember-rfc176-data "^0.3.16" @@ -4875,9 +4877,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== "binaryextensions@1 || 2", binaryextensions@^2.1.2: version "2.3.0" @@ -5807,7 +5809,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1: version "4.16.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== @@ -6048,13 +6050,13 @@ calculate-cache-key-for-tree@^2.0.0: dependencies: json-stable-stringify "^1.0.1" -call-bind@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" - integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" - get-intrinsic "^1.0.0" + get-intrinsic "^1.0.2" call-limit@^1.1.1: version "1.1.1" @@ -6165,9 +6167,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001173: - version "1.0.30001173" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" - integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== + version "1.0.30001179" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz#b0803883b4471a6c62066fb1752756f8afc699c8" + integrity sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA== capture-exit@^2.0.0: version "2.0.0" @@ -6292,9 +6294,9 @@ cheerio@^1.0.0-rc.2: parse5-htmlparser2-tree-adapter "^6.0.0" "chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz#458a4816a415e9d3b3caa4faec2b96a6935a9e65" - integrity sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q== + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -6723,12 +6725,12 @@ commander@^6.2.0: integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commitizen@^4.0.3: - version "4.2.2" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.2.tgz#1a93dd07208521ea1ebbf832593542dac714cc79" - integrity sha512-uz+E6lGsDBDI2mYA4QfOxFeqdWUYwR1ky11YmLgg2BnEEP3YbeejpT4lxzGjkYqumnXr062qTOGavR9NtX/iwQ== + version "4.2.3" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.3.tgz#088d0ef72500240d331b11e02e288223667c1475" + integrity sha512-pYlYEng7XMV2TW4xtjDKBGqeJ0Teq2zyRSx2S3Ml1XAplHSlJZK8vm1KdGclpMEZuGafbS5TeHXIVnHk8RWIzQ== dependencies: cachedir "2.2.0" - cz-conventional-changelog "3.3.0" + cz-conventional-changelog "3.2.0" dedent "0.7.0" detect-indent "6.0.0" find-node-modules "2.0.0" @@ -6966,17 +6968,17 @@ copy-to-clipboard@^3.0.8: toggle-selection "^1.0.6" core-js-compat@^3.8.0: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c" - integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" + integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.1" semver "7.0.0" core-js-pure@^3.0.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.2.tgz#286f885c0dac1cdcd6d78397392abc25ddeca225" - integrity sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.3.tgz#10e9e3b2592ecaede4283e8f3ad7020811587c02" + integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: version "2.6.12" @@ -6984,9 +6986,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.1, core-js@^3.0.4, core-js@^3.6.5: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044" - integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== core-object@^3.1.5: version "3.1.5" @@ -7296,9 +7298,9 @@ csstype@^2.5.7: integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A== csstype@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" - integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" + integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== currently-unhandled@^0.4.1: version "0.4.1" @@ -7312,7 +7314,21 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cz-conventional-changelog@3.3.0, cz-conventional-changelog@^3.1.0: +cz-conventional-changelog@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" + integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== @@ -7376,7 +7392,7 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -7826,9 +7842,9 @@ dotenv@^8.0.0: integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== downshift@^6.0.6: - version "6.0.11" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.11.tgz#3c4911efcad0b76dd1e2d2fbad18906dedd531ad" - integrity sha512-aNnI8qwiJ5m3vCNpBc97kQs3xAYIACFihTEk3jjn4CC0dlUDFBu1Zc3lhd0ZdkhbiqV9ZsMK5cCyZ7YD0agvyg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.0.tgz#f008063d9b63935910d9db12ead07979ab51ce66" + integrity sha512-MnEJERij+1pTVAsOPsH3q9MJGNIZuu2sT90uxOCEOZYH6sEzkVGtUcTBVDRQkE8y96zpB7uEbRn24aE9VpHnZg== dependencies: "@babel/runtime" "^7.12.5" compute-scroll-into-view "^1.0.16" @@ -7960,9 +7976,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634: - version "1.3.634" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz#82ea400f520f739c4f6ff00c1f7524827a917d25" - integrity sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw== + version "1.3.642" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz#8b884f50296c2ae2a9997f024d0e3e57facc2b94" + integrity sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ== element-resize-detector@^1.2.1: version "1.2.1" @@ -8078,9 +8094,9 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3: - version "7.23.0" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.0.tgz#ec580aa2c115d0810e454dd5c2fffce238284b92" - integrity sha512-ix58DlRDAbGITtdJoRUPcAoQwKLYr/x/kIXjU9u1ATyhmuUjqb+0FDXghOWbkNihGiNOqBBR49+LBgK9AeBcNw== + version "7.23.1" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.1.tgz#d1517228ede08a5d4b045c78a7429728e956b30b" + integrity sha512-qYggmt3hRs6QJ6cRkww3ahMpyP8IEV2KFrIRO/Z6hu9MkE/8Y28Xd5NjQl6fPV3oLoG0vwuHzhNe3Jr7Wec8zw== dependencies: "@babel/core" "^7.12.0" "@babel/helper-compilation-targets" "^7.12.0" @@ -8095,7 +8111,7 @@ ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-bab amd-name-resolver "^1.2.1" babel-plugin-debug-macros "^0.3.3" babel-plugin-ember-data-packages-polyfill "^0.1.2" - babel-plugin-ember-modules-api-polyfill "^3.2.0" + babel-plugin-ember-modules-api-polyfill "^3.2.1" babel-plugin-module-resolver "^3.1.1" broccoli-babel-transpiler "^7.8.0" broccoli-debug "^0.6.4" @@ -8476,7 +8492,7 @@ ember-cli-update@^0.54.6: update-notifier "^4.0.0" yargs "^15.1.0" -ember-cli-version-checker@5.1.1, ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1: +ember-cli-version-checker@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.1.tgz#3185c526c14671609cbd22ab0d0925787fc84f3d" integrity sha512-YziSW1MgOuVdJSyUY2CKSC4vXrGQIHF6FgygHkJOxYGjZNQYwf5MK0sbliKatvJf7kzDSnXs+r8JLrD74W/A8A== @@ -8517,6 +8533,15 @@ ember-cli-version-checker@^4.1.0: semver "^6.3.0" silent-error "^1.1.1" +ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz#649c7b6404902e3b3d69c396e054cea964911ab0" + integrity sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q== + dependencies: + resolve-package-path "^3.1.0" + semver "^7.3.4" + silent-error "^1.1.1" + ember-cli@~3.20.2: version "3.20.2" resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.20.2.tgz#4a5411afc32a91eb81e4fa1e6f4bc950e838c132" @@ -8760,9 +8785,9 @@ ember-factory-for-polyfill@^1.3.1: ember-cli-version-checker "^2.1.0" ember-fetch@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-8.0.2.tgz#9838b9f01e33fcd23550ccf38ae4f1f90cc47113" - integrity sha512-BMwm8jLP5LCeT8Jbgz0jA04RsRyt06ZGMaC3Tx2DbHgoWOPlLMfkEKlCFE0dZVW8ZhuICKuyRZTzt4e8GrnnNA== + version "8.0.4" + resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-8.0.4.tgz#b9a3239e9d188ada18a4448ccb4fea2a091e3952" + integrity sha512-vx/v6+OTZMDbm6BT5TI6Q/NSuaWPbQxb2KRDD4yR/iJoRl2DtfgXiCA491pYT5IwAAtp6NbMa1CitIQDoaII9Q== dependencies: abortcontroller-polyfill "^1.4.0" broccoli-concat "^4.2.4" @@ -8773,9 +8798,9 @@ ember-fetch@^8.0.1: broccoli-templater "^2.0.1" calculate-cache-key-for-tree "^2.0.0" caniuse-api "^3.0.0" - ember-cli-babel "^7.19.0" + ember-cli-babel "^7.23.0" ember-cli-typescript "^3.1.3" - node-fetch "^2.6.0" + node-fetch "^2.6.1" whatwg-fetch "^3.4.0" ember-focus-trap@^0.4.0: @@ -8837,9 +8862,9 @@ ember-inline-svg@^1.0.0: walk-sync "~2.0.2" ember-intl@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.6.0.tgz#66837865f330a0c6057202904e0b11d449fb7b64" - integrity sha512-eyeijdGvUiZE6VAH22vuGAbG1OELvO9ZiuONANEETGvG7oSLzKfUkF88dZ2Ljkg1Geyct4EMO6xTi22oSvamTg== + version "5.6.2" + resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.6.2.tgz#ece4820923dfda033c279b7e3920cbbc8b6bde07" + integrity sha512-+FfI2udVbnEzueompcRb3ytBWhfnBfVVjAwnCuxwqIyS9ti8lK0ZiYHa5bquNPHjjfBzfFl4x5TlVgDNaCnccg== dependencies: broccoli-caching-writer "^3.0.3" broccoli-funnel "^3.0.3" @@ -8937,9 +8962,9 @@ ember-notify@^6.0.0: ember-cli-htmlbars "^3.0.1" ember-page-title@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.0.3.tgz#6f2f26428ae81262d31520c65c1ce8b336f34839" - integrity sha512-sXT+XrWWYkqCpwOXj1nGRdxDE4J1SbPcA9lSwtQEP0qDGenhp/GNTcLN8v3cpeyao75jAPxjgYN3YzFtvUB01Q== + version "6.2.0" + resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.2.0.tgz#d79f7422299ebb8f8ac819399596e8f54f01a0e9" + integrity sha512-mgzI59rVH6Q00uG1OnsbrSfic+MxFQbtsjX3BuDWGgU7hWahDhAAgaQrKIFx99aEqWoiL+OiX4tQLPnxyZEceA== dependencies: ember-cli-babel "^7.22.1" @@ -9057,15 +9082,15 @@ ember-source@~3.20.2: silent-error "^1.1.1" ember-template-lint@^2.0.1, ember-template-lint@^2.14.0, ember-template-lint@^2.9.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.16.0.tgz#a6d725e2c19ab7df43390357e085c66a00a751bb" - integrity sha512-RmQCFMHWPG3CDByAu0R4XP/edKhha6dl4oA9vqU6+kIuGt0WyHy3nHIJuXmVvLSosmK8KEHuWKgpWgNr//9ckg== + version "2.17.0" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.17.0.tgz#61206ad42f59c3f629a782d459e29437c0cfae21" + integrity sha512-m2X7khUmgJqzC5Bb7wYw08R6N0hwge8/TB8PucEJsFxv2fFrhh2Aec+YdNG7VWsSPFnC0i7O1upBLKcfzO/a6Q== dependencies: chalk "^4.0.0" ember-template-recast "^5.0.1" find-up "^5.0.0" get-stdin "^8.0.0" - globby "^11.0.1" + globby "^11.0.2" is-glob "^4.0.1" micromatch "^4.0.2" resolve "^1.19.0" @@ -9248,10 +9273,10 @@ engine.io@~3.5.0: engine.io-parser "~2.2.0" ws "~7.4.2" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== +enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -9337,23 +9362,25 @@ es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.0.2" has "^1.0.3" has-symbols "^1.0.1" is-callable "^1.2.2" - is-negative-zero "^2.0.0" + is-negative-zero "^2.0.1" is-regex "^1.1.1" - object-inspect "^1.8.0" + object-inspect "^1.9.0" object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -9632,12 +9659,12 @@ eslint@^2.7.0: user-home "^2.0.0" eslint@^7.5.0: - version "7.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" - integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== + version "7.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" + integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.2" + "@eslint/eslintrc" "^0.3.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -9661,7 +9688,7 @@ eslint@^7.5.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -10029,10 +10056,10 @@ fast-glob@^2.0.2, fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -10446,9 +10473,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flora-colossus@^1.0.0: version "1.0.1" @@ -10662,14 +10689,14 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: universalify "^0.1.0" fs-extra@^9.0.0, fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" fs-merger@^3.0.1, fs-merger@^3.1.0: version "3.1.0" @@ -10877,7 +10904,7 @@ get-installed-path@^2.0.3: dependencies: global-modules "1.0.0" -get-intrinsic@^1.0.0, get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== @@ -11215,10 +11242,10 @@ globalthis@^1.0.0, globalthis@^1.0.1: dependencies: define-properties "^1.1.3" -globalyzer@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.4.tgz#bc8e273afe1ac7c24eea8def5b802340c5cc534f" - integrity sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA== +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== globby@10.0.0: version "10.0.0" @@ -11247,7 +11274,7 @@ globby@8.0.2: pify "^3.0.0" slash "^1.0.0" -globby@^11.0.1: +globby@^11.0.1, globby@^11.0.2: version "11.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== @@ -11278,7 +11305,7 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= -globrex@^0.1.1: +globrex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== @@ -12163,7 +12190,7 @@ ini@1.3.7: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@^1.3.8, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -12638,7 +12665,7 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" -is-negative-zero@^2.0.0: +is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== @@ -12973,7 +13000,7 @@ iterate-iterator@^1.0.1: resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== -iterate-value@^1.0.0: +iterate-value@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== @@ -14241,9 +14268,9 @@ make-fetch-happen@^5.0.0: ssri "^6.0.0" make-fetch-happen@^8.0.9: - version "8.0.12" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.12.tgz#e281aa9182d3f2ac657d25a834cd887394eacd9e" - integrity sha512-cBD7yM72ltWEV+xlLlbimnh5qHwr+thAb/cZLiaZhicVVPVN63BikBvL5OR68+8+z2fvBOgck628vGJ2ulgF6g== + version "8.0.13" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.13.tgz#3692e1fdf027343c782e53bfe1f941fe85db9462" + integrity sha512-rQ5NijwwdU8tIaBrpTtSVrNCcAJfyDRcKBC76vOQlyJX588/88+TE+UpjWl4BgG7gCkp29wER7xcRqkeg+x64Q== dependencies: agentkeepalive "^4.1.3" cacache "^15.0.5" @@ -14572,13 +14599,14 @@ meow@^3.1.0: redent "^1.0.0" trim-newlines "^1.0.0" -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" + decamelize "^1.2.0" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" minimist-options "4.1.0" @@ -14708,9 +14736,9 @@ mime@1.6.0: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.4.7" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74" - integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" + integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== mimic-fn@^1.0.0: version "1.2.0" @@ -14793,9 +14821,9 @@ minipass-collect@^1.0.2: minipass "^3.0.0" minipass-fetch@^1.2.1, minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.2.tgz#573766fb1ae86e30df916a6b060bc2e801bf8f37" - integrity sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" + integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== dependencies: minipass "^3.1.0" minipass-sized "^1.0.3" @@ -15121,7 +15149,7 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^2.6.0: +node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -15231,19 +15259,19 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.52, node-releases@^1.1.69: - version "1.1.69" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6" - integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA== + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= -node-watch@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.0.tgz#033c0c04239d9348f3402b6b6f9c1e689a7edbe1" - integrity sha512-OOBiglke5SlRQT5WYfwXTmYqTfXjcTNBHpalyHLtLxDpQYVpVRkJqabcch1kmwJsjV/J4OZuzEafeb4soqtFZA== +node-watch@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.1.tgz#0caaa6a6833b0d533487f953c52a6c787769ba7c" + integrity sha512-UWblPYuZYrkCQCW5PxAwYSxaELNBLUckrTBBk8xr1/bUgyOkYYTsUcV4e3ytcazFEOyiRyiUrsG37pu6I0I05g== nopt@^3.0.6: version "3.0.6" @@ -15508,9 +15536,9 @@ npm-user-validate@^1.0.1: integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== npm@5.1.0, npm@~6.14.6: - version "6.14.10" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.10.tgz#f45c8e4244294ba793770f2ab0e9ce2d0b93fd29" - integrity sha512-FT23Qy/JMA+qxEYReMOr1MY7642fKn8Onn+72LASPi872Owvmw0svm+/DXTHOC3yO9CheEO+EslyXEpdBdRtIA== + version "6.14.11" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.11.tgz#e0b5598d7b9a42d275e61d8bd28cd7eee0074a3b" + integrity sha512-1Zh7LjuIoEhIyjkBflSSGzfjuPQwDlghNloppjruOH5bmj9midT9qcNT0tRUZRR04shU9ekrxNy9+UTBrqeBpQ== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -15547,7 +15575,7 @@ npm@5.1.0, npm@~6.14.6: infer-owner "^1.0.4" inflight "~1.0.6" inherits "^2.0.4" - ini "^1.3.5" + ini "^1.3.8" init-package-json "^1.10.3" is-cidr "^3.0.0" json-parse-better-errors "^1.0.2" @@ -15739,7 +15767,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1: +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -15883,9 +15911,9 @@ ora@^3.4.0: wcwidth "^1.0.1" ora@^5.0.0, ora@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" - integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== dependencies: bl "^4.0.3" chalk "^4.1.0" @@ -16280,9 +16308,9 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" @@ -16880,15 +16908,16 @@ promise-retry@^1.1.1: retry "^0.10.0" promise.allsettled@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" - integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.4.tgz#65e71f2a604082ed69c548b68603294090ee6803" + integrity sha512-o73CbvQh/OnPFShxHcHxk0baXR2a1m4ozb85ha0H14VEoi/EJJLa9mnPfEWJx9RjA9MLfhdjZ8I6HhWtBa64Ag== dependencies: - array.prototype.map "^1.0.1" + array.prototype.map "^1.0.3" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - iterate-value "^1.0.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.0.2" + iterate-value "^1.0.2" promise.hash.helper@^1.0.6: version "1.0.7" @@ -17032,9 +17061,9 @@ qs@6.7.0: integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@^6.4.0, qs@^6.6.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== qs@~6.0.2: version "6.0.4" @@ -17099,14 +17128,14 @@ qunit-dom@^1.2.0: ember-cli-version-checker "^5.1.1" qunit@^2.9.3: - version "2.13.0" - resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.13.0.tgz#4cbaac0b314d787ba20195e238b0edf1cd9b2fb1" - integrity sha512-RvJquyNKbMSn5Qo28S2wKWxHl1Ku8m0zFLTKsXfq/WZkyM+b28gpEs6YkKN1fOCV4S+979+GnevD0FRgQayo3Q== + version "2.14.0" + resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.14.0.tgz#6f913903e71ebe24ef4a4dada2b796fb52285051" + integrity sha512-CYfenbgdpmhl2Ql2rDrrj0felY4h8k6lYhtWwGBCLL4qQC33YOj0psV8MWo85L1i0SIOmEDRXkFopWnGCLmf7g== dependencies: commander "6.2.0" js-reporters "1.2.3" - node-watch "0.7.0" - tiny-glob "0.2.6" + node-watch "0.7.1" + tiny-glob "0.2.8" qw@~1.0.1: version "1.0.1" @@ -17276,10 +17305,10 @@ react-hotkeys@2.0.0: dependencies: prop-types "^15.6.1" -react-input-autosize@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2" - integrity sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw== +react-input-autosize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85" + integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg== dependencies: prop-types "^15.5.8" @@ -17325,9 +17354,9 @@ react-popper@^2.2.4: warning "^4.0.2" react-select@^3.0.8: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.1.tgz#156a5b4a6c22b1e3d62a919cb1fd827adb4060bc" - integrity sha512-HjC6jT2BhUxbIbxMZWqVcDibrEpdUJCfGicN0MMV+BQyKtCaPTgFekKWiOizSCy4jdsLMGjLqcFGJMhVGWB0Dg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.2.0.tgz#de9284700196f5f9b5277c5d850a9ce85f5c72fe" + integrity sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ== dependencies: "@babel/runtime" "^7.4.4" "@emotion/cache" "^10.0.9" @@ -17335,7 +17364,7 @@ react-select@^3.0.8: "@emotion/css" "^10.0.9" memoize-one "^5.0.0" prop-types "^15.6.0" - react-input-autosize "^2.2.2" + react-input-autosize "^3.0.0" react-transition-group "^4.3.0" react-sizeme@^2.6.7: @@ -17701,12 +17730,12 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" @@ -17781,9 +17810,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.6" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a" + integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ== dependencies: jsesc "~0.5.0" @@ -18388,13 +18417,6 @@ sane@^4.0.0, sane@^4.0.3, sane@^4.1.0: minimist "^1.1.1" walker "~1.0.5" -sanitize-filename@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sass-lint@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f" @@ -18416,9 +18438,9 @@ sass-lint@^1.13.1: util "^0.10.3" sass@^1.26.5, sass@^1.29.0: - version "1.32.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.2.tgz#66dc0250bc86c15d19ddee7135e93d0cf3d3257b" - integrity sha512-u1pUuzqwz3SAgvHSWp1k0mRhX82b2DdlVnP6UIetQPZtYbuJUDaPQhZE12jyjB7vYeOScfz9WPsZJB6Rpk7heA== + version "1.32.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.5.tgz#2882d22ad5748c05fa9bff6c3b0ffbc4f4b9e1dc" + integrity sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -18819,9 +18841,9 @@ socket.io-client@2.4.0: to-array "0.1.4" socket.io-parser@~3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.1.tgz#f07d9c8cb3fb92633aa93e76d98fd3a334623199" - integrity sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== dependencies: component-emitter "~1.3.0" debug "~3.1.0" @@ -19304,7 +19326,7 @@ string.prototype.padstart@^3.0.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" -string.prototype.trimend@^1.0.1: +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== @@ -19312,7 +19334,7 @@ string.prototype.trimend@^1.0.1: call-bind "^1.0.0" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.1: +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== @@ -19506,9 +19528,9 @@ stylelint-scss@^3.18.0: postcss-value-parser "^4.1.0" stylelint@^13.8.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.8.0.tgz#446765dbe25e3617f819a0165956faf2563ddc23" - integrity sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ== + version "13.9.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz#93921ee6e11d4556b9f31131f485dc813b68e32a" + integrity sha512-VVWH2oixOAxpWL1vH+V42ReCzBjW2AeqskSAbi8+3OjV1Xg3VZkmTcAqBZfRRvJeF4BvYuDLXebW3tIHxgZDEg== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" "@stylelint/postcss-markdown" "^0.36.2" @@ -19516,14 +19538,14 @@ stylelint@^13.8.0: balanced-match "^1.0.0" chalk "^4.1.0" cosmiconfig "^7.0.0" - debug "^4.2.0" + debug "^4.3.1" execall "^2.0.0" - fast-glob "^3.2.4" + fast-glob "^3.2.5" fastest-levenshtein "^1.0.12" file-entry-cache "^6.0.0" get-stdin "^8.0.0" global-modules "^2.0.0" - globby "^11.0.1" + globby "^11.0.2" globjoin "^0.1.4" html-tags "^3.1.0" ignore "^5.1.8" @@ -19533,7 +19555,7 @@ stylelint@^13.8.0: lodash "^4.17.20" log-symbols "^4.0.0" mathml-tag-names "^2.1.3" - meow "^8.0.0" + meow "^9.0.0" micromatch "^4.0.2" normalize-selector "^0.2.0" postcss "^7.0.35" @@ -19555,7 +19577,7 @@ stylelint@^13.8.0: style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^6.0.3" + table "^6.0.7" v8-compile-cache "^2.2.0" write-file-atomic "^3.0.3" @@ -19695,7 +19717,7 @@ table@^3.7.8: slice-ansi "0.0.4" string-width "^2.0.0" -table@^6.0.3, table@^6.0.4: +table@^6.0.4, table@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== @@ -19963,13 +19985,13 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-glob@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.6.tgz#9e056e169d9788fe8a734dfa1ff02e9b92ed7eda" - integrity sha512-A7ewMqPu1B5PWwC3m7KVgAu96Ch5LA0w4SnEN/LbDREj/gAD0nPWboRbn8YoP9ISZXqeNAlMvKSKoEuhcfK3Pw== +tiny-glob@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.8.tgz#b2792c396cc62db891ffa161fe8b33e76123e531" + integrity sha512-vkQP7qOslq63XRX9kMswlby99kyO5OvKptw7AMwBVMjXEI7Tb61eoI5DydyEMOseyGS5anDN1VPoVxEvH01q8w== dependencies: - globalyzer "^0.1.0" - globrex "^0.1.1" + globalyzer "0.1.0" + globrex "^0.1.2" tiny-lr@^1.1.1: version "1.1.1" @@ -20193,13 +20215,6 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - ts-dedent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.0.0.tgz#47c5eb23d9096f3237cc413bc82d387d36dbe690" @@ -20332,9 +20347,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.12.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.4.tgz#93de48bb76bb3ec0fc36563f871ba46e2ee5c7ee" - integrity sha512-L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A== + version "3.12.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.5.tgz#83241496087c640efe9dfc934832e71725aba008" + integrity sha512-SgpgScL4T7Hj/w/GexjnBHi3Ien9WS1Rpfg5y91WXMj9SY997ZCQU76mH4TpLwwfmMvoOU8wiaRkIf6NaH3mtg== uid-number@0.0.6: version "0.0.6" @@ -20576,11 +20591,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -20662,9 +20672,9 @@ update-section@^0.3.0: integrity sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg= uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -20753,11 +20763,6 @@ username@^5.1.0: execa "^1.0.0" mem "^4.3.0" -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -20784,13 +20789,14 @@ util.promisify@1.0.0: object.getownpropertydescriptors "^2.0.3" util.promisify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.0.tgz#aa0a043eb73f5ff5cbb3ae44819cd0f3e7a5322f" - integrity sha512-KXdwUwahiTMGAA2NE3NVKSyabmckHljc99p1E9neqltHxT+7KsomX6yGGWSmbWRMf7wTpeG/CQMDgbLN8AahsQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== dependencies: call-bind "^1.0.0" define-properties "^1.1.3" for-each "^0.3.3" + has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" util.promisify@~1.0.0: @@ -21100,9 +21106,9 @@ webpack-virtual-modules@^0.2.2: debug "^3.0.0" webpack@^4.43.0, webpack@^4.44.2: - version "4.44.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -21112,7 +21118,7 @@ webpack@^4.43.0, webpack@^4.44.2: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -21259,9 +21265,9 @@ workerpool@^5.0.1: integrity sha512-Sywova24Ow2NQ24JPB68bI89EdqMDjUXo4OpofK/QMD7C2ZVMloYBgQ5J3PChcBJHj2vspsmGx1/3nBKXtUkXQ== workerpool@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.3.tgz#3f80ba4d914fe7bb8d933628c26e5d7ff820c703" - integrity sha512-meU8ZzO+ipcx/njxtKUcbu2K95085q5WYDo8fR6PMW3hCY4driteIsNsEowYV7dzOtvq0HotUKsReJkK8gKXgg== + version "6.0.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.4.tgz#f83ecf101b35c034cb20ed38cedd619dde9d722c" + integrity sha512-sAc9w9oAJQ2680gDArGinjw0Ygj2K3KF1ZCRfslBKUCzc9Gycwlj9ZIAbizPRBftcXxhXgoGMVPxJE0VMNnWbw== wrap-ansi@^2.0.0: version "2.1.0" From a15bcf8080606717ad3aa244688eb8be1a8f4d69 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 20 Jan 2021 14:36:24 -0500 Subject: [PATCH 011/106] Update desktop prod build output folder --- ui/desktop/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 17c4f3743..3fb9be528 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -11,7 +11,7 @@ }, "scripts": { "doc:toc": "doctoc README.md", - "build": "ember build --environment=production && yarn build:desktop", + "build": "ember build --environment=production --output-path electron-app/ember-dist && yarn build:desktop", "build:development": "ember build", "build:desktop": "cd electron-app && yarn make", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", From c8c85614bc302c7b7a01084d39a905c01a87d954 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 21 Jan 2021 17:07:04 -0500 Subject: [PATCH 012/106] chore: Copy desktop ember dist folder into electron-app Before building electron-app for packaing, copy ember distribution folder into electron-app/ember-dist. --- ui/desktop/package.json | 5 +++-- yarn.lock | 27 +++++---------------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 3fb9be528..045678892 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -11,9 +11,10 @@ }, "scripts": { "doc:toc": "doctoc README.md", - "build": "ember build --environment=production --output-path electron-app/ember-dist && yarn build:desktop", + "build": "ember build --environment=production && yarn build:desktop", "build:development": "ember build", - "build:desktop": "cd electron-app && yarn make", + "build:desktop": "yarn build:desktop:prebuild && cd electron-app && yarn make", + "build:desktop:prebuild": "cp -r dist electron-app/ember-dist", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", "lint:hbs": "ember-template-lint .", "lint:js": "eslint .", diff --git a/yarn.lock b/yarn.lock index 9544a1b3b..7ecac33ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7503,7 +7503,7 @@ debug@~4.1.0: 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= @@ -12311,7 +12311,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= @@ -14004,11 +14004,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" @@ -14017,16 +14012,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" @@ -14036,19 +14026,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= @@ -14261,7 +14244,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= From a43f528497bf7f17cc8d9c81a78b000933ce00f6 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 21 Jan 2021 17:25:25 -0500 Subject: [PATCH 013/106] chore: Surface ember-get-config in core from devdep to prod Graduate ember-get-config from a devdependency in core into a prod dependency to resolve it's missing module error in desktop package. --- addons/api/package.json | 2 +- addons/core/package.json | 8 +++--- yarn.lock | 54 ++++++++++++++++++++++++++++++---------- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/addons/api/package.json b/addons/api/package.json index 08dedf528..ed6925b35 100644 --- a/addons/api/package.json +++ b/addons/api/package.json @@ -44,7 +44,7 @@ "ember-copy": "^1.0.0", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", - "ember-get-config": "^0.2.4", + "ember-get-config": "^0.3.0", "ember-load-initializers": "^2.1.1", "ember-maybe-import-regenerator": "^0.1.6", "ember-qunit": "^4.6.0", diff --git a/addons/core/package.json b/addons/core/package.json index 86b955770..d5e613ea4 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -27,13 +27,14 @@ "dependencies": { "api": "*", "auth": "*", - "rose": "*", "ember-cli-babel": "^7.21.0", "ember-cli-htmlbars": "^5.2.0", + "ember-get-config": "^0.3.0", "ember-intl": "^5.5.0", - "ember-page-title": "^6.0.3", "ember-loading": "^0.4.0", - "ember-route-action-helper": "^2.0.8" + "ember-page-title": "^6.0.3", + "ember-route-action-helper": "^2.0.8", + "rose": "*" }, "devDependencies": { "@ember/optional-features": "^1.3.0", @@ -50,7 +51,6 @@ "ember-cli-uglify": "^3.0.0", "ember-disable-prototype-extensions": "^1.1.3", "ember-export-application-global": "^2.0.1", - "ember-get-config": "^0.3.0", "ember-inline-svg": "^1.0.0", "ember-intl": "^5.5.0", "ember-load-initializers": "^2.1.1", diff --git a/yarn.lock b/yarn.lock index 7ecac33ed..d1f2f5f9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6243,9 +6243,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001173: - version "1.0.30001173" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" - integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== + version "1.0.30001179" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz#b0803883b4471a6c62066fb1752756f8afc699c8" + integrity sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA== capture-exit@^2.0.0: version "2.0.0" @@ -7503,7 +7503,7 @@ debug@~4.1.0: 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= @@ -8899,7 +8899,7 @@ ember-focus-trap@^0.4.0: ember-modifier-manager-polyfill "^1.2.0" focus-trap "^5.1.0" -ember-get-config@0.2.4, ember-get-config@^0.2.2, ember-get-config@^0.2.4: +ember-get-config@0.2.4, ember-get-config@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/ember-get-config/-/ember-get-config-0.2.4.tgz#118492a2a03d73e46004ed777928942021fe1ecd" integrity sha1-EYSSoqA9c+RgBO13eSiUICH+Hs0= @@ -12311,7 +12311,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= @@ -14004,6 +14004,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" @@ -14012,11 +14017,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" @@ -14026,12 +14036,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= @@ -14244,7 +14261,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= @@ -14457,9 +14474,9 @@ make-fetch-happen@^5.0.0: ssri "^6.0.0" make-fetch-happen@^8.0.9: - version "8.0.12" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.12.tgz#e281aa9182d3f2ac657d25a834cd887394eacd9e" - integrity sha512-cBD7yM72ltWEV+xlLlbimnh5qHwr+thAb/cZLiaZhicVVPVN63BikBvL5OR68+8+z2fvBOgck628vGJ2ulgF6g== + version "8.0.13" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.13.tgz#3692e1fdf027343c782e53bfe1f941fe85db9462" + integrity sha512-rQ5NijwwdU8tIaBrpTtSVrNCcAJfyDRcKBC76vOQlyJX588/88+TE+UpjWl4BgG7gCkp29wER7xcRqkeg+x64Q== dependencies: agentkeepalive "^4.1.3" cacache "^15.0.5" @@ -15013,7 +15030,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.2.1, minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: +minipass-fetch@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.2.tgz#573766fb1ae86e30df916a6b060bc2e801bf8f37" integrity sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA== @@ -15024,6 +15041,17 @@ minipass-fetch@^1.2.1, minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: optionalDependencies: encoding "^0.1.12" +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" + integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" From 3c19f7227384859443d9e9b0ceadb3b3f20888bf Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 22 Jan 2021 11:13:59 -0500 Subject: [PATCH 014/106] chore: update build commands --- ui/desktop/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 045678892..aa762583e 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -13,8 +13,8 @@ "doc:toc": "doctoc README.md", "build": "ember build --environment=production && yarn build:desktop", "build:development": "ember build", - "build:desktop": "yarn build:desktop:prebuild && cd electron-app && yarn make", - "build:desktop:prebuild": "cp -r dist electron-app/ember-dist", + "prebuild:desktop": "cp -r dist electron-app/ember-dist", + "build:desktop": "cd electron-app && yarn make", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", "lint:hbs": "ember-template-lint .", "lint:js": "eslint .", From 60f0a93e09321d20a7c9f7a28addff7effc94345 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 22 Jan 2021 11:34:22 -0500 Subject: [PATCH 015/106] fix: only set origin and trigger change event if the value actually changed --- ui/desktop/electron-app/src/origin.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/desktop/electron-app/src/origin.js b/ui/desktop/electron-app/src/origin.js index 3046c93f1..f4461e8f0 100644 --- a/ui/desktop/electron-app/src/origin.js +++ b/ui/desktop/electron-app/src/origin.js @@ -17,8 +17,10 @@ class RuntimeSettings { */ get origin() { return this.#origin; } set origin(origin) { - this.#origin = origin; - this.triggerOriginChanged(); + if (this.#origin !== origin) { + this.#origin = origin; + this.triggerOriginChanged(); + } } /** From f1b76e2f84eb29eff492a0df9bcf64898ca881d9 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 22 Jan 2021 11:55:37 -0500 Subject: [PATCH 016/106] chore: Disable mirage when building desktop for prod --- ui/desktop/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/package.json b/ui/desktop/package.json index aa762583e..ce7dd0015 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -11,7 +11,7 @@ }, "scripts": { "doc:toc": "doctoc README.md", - "build": "ember build --environment=production && yarn build:desktop", + "build": "ENABLE_MIRAGE=false ember build --environment=production && yarn build:desktop", "build:development": "ember build", "prebuild:desktop": "cp -r dist electron-app/ember-dist", "build:desktop": "cd electron-app && yarn make", From 0d65ecce8720e92d04a017af5b1ee8628fe90ed3 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 22 Jan 2021 12:35:47 -0500 Subject: [PATCH 017/106] chore: Add osx app config to electron forge --- ui/desktop/electron-app/package.json | 19 +- ui/desktop/electron-app/yarn.lock | 305 +--------- yarn.lock | 859 +++++++++++++-------------- 3 files changed, 442 insertions(+), 741 deletions(-) diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 245641281..bf3d1c04f 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -21,15 +21,16 @@ "ignore": [ "/ember-test(/|$)", "/tests(/|$)" - ] + ], + "name": "Boundary", + "appBundleId": "com.electron.boundary", + "appVersion": "0.0.1", + "appCopyright": "Copyright © 2021 HashiCorp, Inc.", + "osxSign": { + "identity": "Developer ID Application: * (*)" + } }, "makers": [ - { - "name": "@electron-forge/maker-zip", - "platforms": [ - "darwin" - ] - }, { "name": "@electron-forge/maker-dmg", "config": { @@ -48,11 +49,7 @@ }, "devDependencies": { "@electron-forge/cli": "6.0.0-beta.53", - "@electron-forge/maker-deb": "6.0.0-beta.53", "@electron-forge/maker-dmg": "^6.0.0-beta.54", - "@electron-forge/maker-rpm": "6.0.0-beta.53", - "@electron-forge/maker-squirrel": "6.0.0-beta.53", - "@electron-forge/maker-zip": "6.0.0-beta.53", "devtron": "^1.4.0", "electron": "10.1.5" } diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index 6b9785118..8fc7dfdd3 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -164,16 +164,6 @@ fs-extra "^9.0.1" which "^2.0.2" -"@electron-forge/maker-deb@6.0.0-beta.53": - version "6.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.53.tgz#264b75e4b1467c6aa8aa11ac4d23dbd27a10b017" - integrity sha512-bKhfLFY0qfUUPTYuGiU8N4dJKIjWpDeJlE3oP6h49O5GSHwx/eEjQRS2ckT+410HQ3WYXpZFzVc4A8bUz5ej0Q== - dependencies: - "@electron-forge/maker-base" "6.0.0-beta.53" - "@electron-forge/shared-types" "6.0.0-beta.53" - optionalDependencies: - electron-installer-debian "^3.0.0" - "@electron-forge/maker-dmg@^6.0.0-beta.54": version "6.0.0-beta.54" resolved "https://registry.yarnpkg.com/@electron-forge/maker-dmg/-/maker-dmg-6.0.0-beta.54.tgz#c3777b28c30c03b3dc18d1ca332d27f8c78c65b1" @@ -185,37 +175,6 @@ optionalDependencies: electron-installer-dmg "^3.0.0" -"@electron-forge/maker-rpm@6.0.0-beta.53": - version "6.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-rpm/-/maker-rpm-6.0.0-beta.53.tgz#a7d888c688508b9f7eaac59e693bf291cf5e1d17" - integrity sha512-tKL1yYVS6uY7XsuJX8JKQGLtdXDjrr1R8S2JnvvaZ3fT+oDQ0vdptcjQ1QqVTzKNN3VDOI46kLG5gyLVNSl4wQ== - dependencies: - "@electron-forge/maker-base" "6.0.0-beta.53" - "@electron-forge/shared-types" "6.0.0-beta.53" - optionalDependencies: - electron-installer-redhat "^3.2.0" - -"@electron-forge/maker-squirrel@6.0.0-beta.53": - version "6.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.53.tgz#c34aa0e39a64d25dbd3e31b86f2927cb02fbfe5a" - integrity sha512-CoaJPFrxWnOHOgWAmit9OtnBD/JqUPy1hGrMugrjmRvR4xQNQU5mHF2oeY2dQlgYg2Ecdiw1Rf4o8qI/KXu/RQ== - dependencies: - "@electron-forge/maker-base" "6.0.0-beta.53" - "@electron-forge/shared-types" "6.0.0-beta.53" - fs-extra "^9.0.1" - optionalDependencies: - electron-winstaller "^4.0.1" - -"@electron-forge/maker-zip@6.0.0-beta.53": - version "6.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.53.tgz#cb12e9abe17c502ce74d9151ea8ee3803d9e8d41" - integrity sha512-FwpRSAmYTts0cFVHsWfGG+r3vI8Yyf53cFxAarE7Lll+Efu6I9S43CbusDZR1cB3Ywy2TXs2Kv09rXYJv6OY0A== - dependencies: - "@electron-forge/maker-base" "6.0.0-beta.53" - "@electron-forge/shared-types" "6.0.0-beta.53" - cross-zip "^3.0.0" - fs-extra "^9.0.1" - "@electron-forge/plugin-base@6.0.0-beta.53": version "6.0.0-beta.53" resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.53.tgz#d6430ec3cb51f9bfe7386ea6b4a54a582fade8d9" @@ -307,7 +266,7 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@malept/cross-spawn-promise@^1.0.0", "@malept/cross-spawn-promise@^1.1.0": +"@malept/cross-spawn-promise@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== @@ -348,13 +307,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/fs-extra@^9.0.1": - version "9.0.6" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.6.tgz#488e56b77299899a608b8269719c1d133027a6ab" - integrity sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig== - dependencies: - "@types/node" "*" - "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -488,21 +440,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -asar@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-2.1.0.tgz#97c6a570408c4e38a18d4a3fb748a621b5a7844e" - integrity sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.20.0" - cuint "^0.2.2" - glob "^7.1.3" - minimatch "^3.0.4" - mkdirp "^0.5.1" - tmp-promise "^1.0.5" - optionalDependencies: - "@types/glob" "^7.1.1" - asar@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b" @@ -700,11 +637,6 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -755,15 +687,6 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -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" @@ -819,11 +742,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -897,18 +815,6 @@ cross-spawn@^7.0.1: shebang-command "^2.0.0" which "^2.0.1" -cross-zip@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cross-zip/-/cross-zip-3.1.0.tgz#2b7d33f2a893bf83e232ccbabf4c6c706f6b313c" - integrity sha512-aX02l0SD3KE27pMl69gkxDdDM5D3u9Ic4Je+2b1B2fP0dWnlWWY6ns2Vk5DEgCXJRhL3GasSpicNQRNbDkq0+w== - dependencies: - rimraf "^3.0.0" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -944,7 +850,7 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -1052,37 +958,6 @@ electron-devtools-installer@^3.1.1: semver "^7.2.1" unzip-crx-3 "^0.2.0" -electron-installer-common@^0.10.2: - version "0.10.3" - resolved "https://registry.yarnpkg.com/electron-installer-common/-/electron-installer-common-0.10.3.tgz#40f9db644ca60eb28673d545b67ee0113aef4444" - integrity sha512-mYbP+6i+nHMIm0WZHXgGdmmXMe+KXncl6jZYQNcCF9C1WsNA9C5SZ2VP4TLQMSIoFO+X4ugkMEA5uld1bmyEvA== - dependencies: - "@malept/cross-spawn-promise" "^1.0.0" - asar "^3.0.0" - debug "^4.1.1" - fs-extra "^9.0.0" - glob "^7.1.4" - lodash "^4.17.15" - parse-author "^2.0.0" - semver "^7.1.1" - tmp-promise "^3.0.2" - optionalDependencies: - "@types/fs-extra" "^9.0.1" - -electron-installer-debian@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/electron-installer-debian/-/electron-installer-debian-3.1.0.tgz#2f6107f559f6564c44e3832fb2942dd8de4d40cc" - integrity sha512-k6KChvx0Fw8XTlCqwwbBfh19yGQaKjGdbugokmr1IpzINOm4QFyACKMTHAYFHW5LCBUZQShZD96hwxUZ+8Kx+w== - dependencies: - "@malept/cross-spawn-promise" "^1.0.0" - debug "^4.1.1" - electron-installer-common "^0.10.2" - fs-extra "^9.0.0" - get-folder-size "^2.0.1" - lodash "^4.17.4" - word-wrap "^1.2.3" - yargs "^15.0.1" - electron-installer-dmg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/electron-installer-dmg/-/electron-installer-dmg-3.0.0.tgz#08935b602f3120981c8d5fd24d3f6525f8b0198a" @@ -1094,19 +969,6 @@ electron-installer-dmg@^3.0.0: optionalDependencies: appdmg "^0.6.0" -electron-installer-redhat@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/electron-installer-redhat/-/electron-installer-redhat-3.2.0.tgz#2c0f5da6f4a244453e4675ab1eca0877a66788c5" - integrity sha512-XMA+fQj3ULNVMl4eG+hIvrYITEqP1pfpERvx6kRwuPd06vdtB4KucL9241DAHT0NR5E9gnyJHM9Y6N24kk0mcA== - dependencies: - "@malept/cross-spawn-promise" "^1.0.0" - debug "^4.1.1" - electron-installer-common "^0.10.2" - fs-extra "^9.0.0" - lodash "^4.17.15" - word-wrap "^1.2.3" - yargs "^15.1.0" - electron-is-dev@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" @@ -1180,17 +1042,6 @@ electron-squirrel-startup@^1.0.0: dependencies: debug "^2.2.0" -electron-winstaller@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/electron-winstaller/-/electron-winstaller-4.0.1.tgz#69da2a439a6986210c3106305f921a522369207d" - integrity sha512-wgdABzcMFpREjFCHZKQ5g5JF5jGqa8YCAsVD5Tb3sJhdj63AtuCu/2o++nVESlZZugKDv6Hxo6Wi8c3knEkbgA== - dependencies: - asar "^2.0.1" - debug "^4.1.1" - fs-extra "^7.0.1" - lodash.template "^4.2.2" - temp "^0.9.0" - electron@10.1.5: version "10.1.5" resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.5.tgz#f2b161310f627063e73fbac44efcb35dece83a90" @@ -1372,7 +1223,7 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -1431,7 +1282,7 @@ fs-extra@^4.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -1504,11 +1355,6 @@ galactus@^0.2.1: flora-colossus "^1.0.0" fs-extra "^4.0.0" -gar@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" - integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -1537,19 +1383,11 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-folder-size@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-2.0.1.tgz#3fe0524dd3bad05257ef1311331417bcd020a497" - integrity sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA== - dependencies: - gar "^1.0.4" - tiny-each-async "2.0.3" - get-installed-path@^2.0.3: version "2.1.1" resolved "https://registry.yarnpkg.com/get-installed-path/-/get-installed-path-2.1.1.tgz#a1f33dc6b8af542c9331084e8edbe37fe2634152" @@ -2105,32 +1943,12 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.get@^4.0.0: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.template@^4.2.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4: +lodash@^4.17.10, lodash@^4.17.19, lodash@^4.17.20: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -3004,11 +2822,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - resolve-alpn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" @@ -3059,27 +2872,20 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.6.1, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - roarr@^2.15.3: version "2.15.4" resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" @@ -3141,7 +2947,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: +semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -3155,7 +2961,7 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3416,14 +3222,6 @@ tar@^6.0.2, tar@^6.0.5: mkdirp "^1.0.3" yallist "^4.0.0" -temp@^0.9.0: - version "0.9.4" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" - integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== - dependencies: - mkdirp "^0.5.1" - rimraf "~2.6.2" - throttleit@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" @@ -3442,33 +3240,6 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -tiny-each-async@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tiny-each-async/-/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" - integrity sha1-jru/1tYpXxNwAD+7NxYq/loKUdE= - -tmp-promise@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c" - integrity sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw== - dependencies: - bluebird "^3.5.0" - tmp "0.1.0" - -tmp-promise@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" - integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== - dependencies: - tmp "^0.2.0" - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -3476,13 +3247,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - tn1150@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tn1150/-/tn1150-0.1.0.tgz#673503d24d56b87de8b8c77fee3fc0853d59a18d" @@ -3649,11 +3413,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -3675,20 +3434,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -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" @@ -3725,11 +3470,6 @@ xtend@~2.1.1: dependencies: object-keys "~0.4.0" -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - y18n@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" @@ -3750,36 +3490,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.0.0, yargs-parser@^20.2.2: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs@^15.0.1, 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@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" diff --git a/yarn.lock b/yarn.lock index d1f2f5f9c..6943cd544 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1297,16 +1297,17 @@ fs-extra "^9.0.1" "@electron/get@^1.6.0", "@electron/get@^1.9.0": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" - integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== + version "1.12.3" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.3.tgz#fa2723385c4b565a34c4c82f46087aa2a5fbf6d0" + integrity sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q== dependencies: debug "^4.1.1" env-paths "^2.2.0" + filenamify "^4.1.0" fs-extra "^8.1.0" got "^9.6.0" progress "^2.0.3" - sanitize-filename "^1.6.2" + semver "^6.2.0" sumchecker "^3.0.1" optionalDependencies: global-agent "^2.0.2" @@ -1696,10 +1697,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1708,7 +1709,7 @@ ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -2065,11 +2066,12 @@ integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== "@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" + integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== dependencies: mkdirp "^1.0.4" + rimraf "^2.7.1" "@popperjs/core@^2.5.4": version "2.6.0" @@ -2107,9 +2109,9 @@ integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" - integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== dependencies: type-detect "4.0.8" @@ -2121,9 +2123,9 @@ "@sinonjs/commons" "^1.7.0" "@sinonjs/samsam@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz#1d2f0743dc54bf13fe9d508baefacdffa25d4329" - integrity sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" + integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -2135,16 +2137,16 @@ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@storybook/addon-actions@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.11.tgz#73e91cc95c45ea477cfd4f3603f6b95f5829eab6" - integrity sha512-J44XLx2G732OG7Az79Cpk5UlI5SyXHeQqdykwT/4IEQXSBXAYWSTIJJjpJdcjR/D+zpklab1QDSiWxCrKbe81A== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.15.tgz#07f6770e419da2ca5398a346d150141951a744e8" + integrity sha512-Mw0wlF3a2OHmI/HyHTbLxRWKCrdRIkKcLHTLptMi/9sOHcPRniwB2jTD1hdzwZrQCPbvvAkYBntVYH0XkNkGEA== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/theming" "6.1.15" core-js "^3.0.1" fast-deep-equal "^3.1.1" global "^4.3.2" @@ -2158,9 +2160,9 @@ uuid "^8.0.0" "@storybook/addon-docs@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.11.tgz#5c4c06a0e9d34bd41d993c682141c19fe4a6061a" - integrity sha512-dC6RpNWFvbEs68WDk30jrzmPncR0u7nn0SQl0Ao1wdLqCU81ptti/t6Yc7zanlo9hokMzGiom87ZMef0ad9nTQ== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.15.tgz#b2c08d0e9d058dc01a10ddd39266630551697ee5" + integrity sha512-SYXqdTVxv2M0XzmB9ybgYrbqVTAu4FEj+0JL3EJUIS7usWlhZmZIBgU4DFBOd5Aojaq1SGd0QJksMS3L1ym/Bg== dependencies: "@babel/core" "^7.12.1" "@babel/generator" "^7.12.1" @@ -2171,18 +2173,18 @@ "@mdx-js/loader" "^1.6.19" "@mdx-js/mdx" "^1.6.19" "@mdx-js/react" "^1.6.19" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.11" - "@storybook/postinstall" "6.1.11" - "@storybook/source-loader" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/node-logger" "6.1.15" + "@storybook/postinstall" "6.1.15" + "@storybook/source-loader" "6.1.15" + "@storybook/theming" "6.1.15" acorn "^7.1.0" acorn-jsx "^5.1.0" acorn-walk "^7.0.0" @@ -2204,17 +2206,17 @@ util-deprecate "^1.0.2" "@storybook/addon-knobs@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.11.tgz#bd0e33af886f00f359b8d2e83b63bde1bf97e8c7" - integrity sha512-5bVB7JbClyL/v8hJcifRL1Jetj1rDbVjmIOw2RputZHPbOJ2Dd18X3uOAfzNa7e2KJ0BmtA1ojZ3PuDfy9MAPw== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.15.tgz#8f12fd5da15c0a00993dbe837b971a4867339de2" + integrity sha512-eiwav0/9fGrChwAs7yTi13W1mR9g+vYtkQaCKQFF2VIarY9mFH0gKZvLDSs+SH2wyPMp1JOROu8ef39B8Cyj4A== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/theming" "6.1.15" copy-to-clipboard "^3.0.8" core-js "^3.0.1" escape-html "^1.0.3" @@ -2228,35 +2230,35 @@ react-select "^3.0.8" regenerator-runtime "^0.13.7" -"@storybook/addons@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.11.tgz#cb4578411ca00ccb206b484df5a171ccaca34719" - integrity sha512-OZXsdmn60dVe482l9zWxzOqqJApD2jggk/8QJKn3/Ub9posmqdqg712bW6v71BBe0UXXG/QfkZA7gcyiyEENbw== +"@storybook/addons@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.15.tgz#09eb8d962f58bd20b4ac2f83b515831c83226352" + integrity sha512-ENyHapLFOG93VaoQXPX8O3IWjLRyVBox9C9P20LMruKX/SfXAXx20qsoAWKKPGssopyOin17aoQX9pj+lFmCZQ== dependencies: - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/router" "6.1.11" - "@storybook/theming" "6.1.11" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/router" "6.1.15" + "@storybook/theming" "6.1.15" core-js "^3.0.1" global "^4.3.2" regenerator-runtime "^0.13.7" -"@storybook/api@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.11.tgz#1e0b798203df823ac21184386258cf8b5f17f440" - integrity sha512-/p4QW/p3uWO0AKVveNezX3I/CotyBKaJ5ui8PuvSPsl7yvqcsK41qI4evKOw7GMQn6oP+2enRbzHpGuCUgQSjA== +"@storybook/api@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.15.tgz#285ba42f7a8efcd3bd0e586a5e978487d826fbb4" + integrity sha512-C4D08e2ZbSe62nNKtmh9YBraoWb2j6Chw8VCkuj91kuKHh3YDNc1gjj5Fi+KYZwIcy0EllzW3RFQs+YR1/Vg1g== dependencies: "@reach/router" "^1.3.3" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/router" "6.1.11" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" - "@types/reach__router" "^1.3.5" + "@storybook/theming" "6.1.15" + "@types/reach__router" "^1.3.7" core-js "^3.0.1" fast-deep-equal "^3.1.1" global "^4.3.2" @@ -2268,38 +2270,38 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.11.tgz#62c1079f04870dd27925bd538a2020e7380daa2e" - integrity sha512-voW4Z2SUacDOxwN2q1NEBL//8OpgvL2C5CeoG1VQyEllKM8Vg9t1Nxo2FFTJBzv5LeEX7VIJKeBoB25DYvKyng== +"@storybook/channel-postmessage@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.15.tgz#80ea2346d18496f9710dd7f87fd2a9eca46ef36f" + integrity sha512-Es4B5zpLrW28KSbY8FhGVEDgUnKspJ7wPuJyKExUpZ5L9w52RkTD6lRnVPzLUfoQ4luPsExy5fiuo878/Wc9ag== dependencies: - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" core-js "^3.0.1" global "^4.3.2" qs "^6.6.0" telejson "^5.0.2" -"@storybook/channels@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.11.tgz#a93a83746ad78dd40e1c056029f6d93b17bb66bc" - integrity sha512-NvjWzQ95TSV1e18jaQBCOGoe+vptKH2NOKZ7QRQ7I0O5OoHKr47IXoh+MQ5C8CRD9FTdLE/xWdn1sVVEPRyHEw== +"@storybook/channels@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.15.tgz#22bb06a671a5ae09d2537bcf63aaf90d7f6b9f6b" + integrity sha512-HIKHDeL/0BDk9a7xc2PLiFFoHjUMKUd2djhUGdeKgdKqoWejp4JJ60fI68+2QuSRbkB8k+rAwmuWJzV7EfB5fg== dependencies: core-js "^3.0.1" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.11.tgz#d25aac484ca84a1acb01d450e756a62408f00c1a" - integrity sha512-DodJQzGCR+PYs26klvbquTjfBgkw5nvCZd3jpgWQtOrYaY/cMY1LLkVkKqrm2ENW8f7vf7tiw78RtxaXy7xeIQ== +"@storybook/client-api@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.15.tgz#8f8ead111459b94621571bdb2276f8a0aace17b1" + integrity sha512-iwuDlgNdB6Y4OidlhWPob3tEIax9taymdKEe9by4rLJ3nfXu7viHcvCAjN24oI4NFW3NZsmtqJotgftRYk0r1Q== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/channel-postmessage" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/channel-postmessage" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" "@types/qs" "^6.9.0" "@types/webpack-env" "^1.15.3" @@ -2314,23 +2316,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.11.tgz#5dd092e4293e5f58f7e89ddbc6eb2511b7d60954" - integrity sha512-dSc+VKLW1UaiMPMhlZYRqhynrrHdHFiBEgU28+8LcmoZ1yhZBwLkcKdSD4YTT0CbMJAG1/+NUW5kRI8Geeg+rA== +"@storybook/client-logger@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.15.tgz#b558d6ecbee82c038d684717d8c598eaa4a9324d" + integrity sha512-lUpatG8SxzrUapWMsIPWiR+5qRVT5ebn8tGHQeBeRHXbdmEqyq5DOlrotLUemkA5nNTCs1pMFNvKSpCHznG+fg== dependencies: core-js "^3.0.1" global "^4.3.2" -"@storybook/components@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.11.tgz#edd5db7fe43f47b5a7ab515840795a89d931512e" - integrity sha512-DGDl76uONTkg0rpsa36TpVuXv4K7rFYe8GnQ/Q8n4By5tvldC4s9YXwcDRYHVrfnYybKzuZ/+jv2ZAp4/8ZaeA== +"@storybook/components@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.15.tgz#b4a2af23ee6b9cba4c255191eae3d3463e29bfb7" + integrity sha512-lPbA/zyBfctdlpDhRTcRFLWlZPJ3PB4+wI0FUvYs69iG3/bNbQPYu8vRmNhCZOsaGt+b+dik4Tfcth8Bu+eQug== dependencies: "@popperjs/core" "^2.5.4" - "@storybook/client-logger" "6.1.11" + "@storybook/client-logger" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/theming" "6.1.11" + "@storybook/theming" "6.1.15" "@types/overlayscrollbars" "^1.9.0" "@types/react-color" "^3.0.1" "@types/react-syntax-highlighter" "11.0.4" @@ -2348,17 +2350,17 @@ react-textarea-autosize "^8.1.1" ts-dedent "^2.0.0" -"@storybook/core-events@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.11.tgz#d50e8ec90490f9a7180a8c8a83afb6dcfe47ed66" - integrity sha512-hTib81W8PxepM7iXVvl3pBXSaGpChl5LTzaLCoIRO9sSB8dy0/x2DLAHzbQvShk/l1wqUc3TtOLIxq+eC9l3wg== +"@storybook/core-events@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.15.tgz#f66e30cbed8afdb8df2254d2aa47fe139e641c60" + integrity sha512-2sz02hdGZshanoq83jaB+goAcapVEWrxe+RJZn/gu2OymlEioWNjPPtOVGgi5DNIiJFnYvc66adayNwX39+tDA== dependencies: core-js "^3.0.1" -"@storybook/core@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.11.tgz#ed9d3b513794c604ab11180f6a014924b871179e" - integrity sha512-pYOOQwiNJ5myLRn6p6nnLUjjjISHK/N55vS4HFnETYSaRLA++h1coN1jk7Zwt89dOQTdF0EsTJn+6snYOC+lxQ== +"@storybook/core@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.15.tgz#7ff8c314d3857497bf2e26c69a1fa93ef37301aa" + integrity sha512-mQeKAXcowUwF+pOdWZEFwb5M6sz4yv5cOv1vTci3/1pMmB8QpYlH+P61p4lsRO17Vlak70h18TworPka/4+mhA== dependencies: "@babel/core" "^7.12.3" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2382,20 +2384,20 @@ "@babel/preset-react" "^7.12.1" "@babel/preset-typescript" "^7.12.1" "@babel/register" "^7.12.1" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channel-postmessage" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-api" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channel-postmessage" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.11" - "@storybook/router" "6.1.11" + "@storybook/node-logger" "6.1.15" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" - "@storybook/ui" "6.1.11" + "@storybook/theming" "6.1.15" + "@storybook/ui" "6.1.15" "@types/glob-base" "^0.3.0" "@types/micromatch" "^4.0.1" "@types/node-fetch" "^2.5.4" @@ -2480,12 +2482,12 @@ ember-cli-babel "^7.1.2" "@storybook/ember@^6.0.26": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.11.tgz#436e78194872f11c7e68adbab3a8dca9835038be" - integrity sha512-E4bOis6abHb+zxt4wH8FEJEIRTZYlTrkd3UgoZk+8iJUC9BceOxqi1ApJLmb8Tem3upIVqBCofSCDqAPa+LReA== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.15.tgz#032db97640019d8f21506b06b953311883464bfd" + integrity sha512-1djhH/z1JhESxcyFrL8EuUHRD/pg+LZYg97v1OKYSkuKn8PxvnHXaObxK47K4IUY+eEI/PR7VZUJmuZBEZm72A== dependencies: "@ember/test-helpers" "^1.7.0" - "@storybook/core" "6.1.11" + "@storybook/core" "6.1.15" core-js "^3.0.1" global "^4.3.2" react "16.13.1" @@ -2493,10 +2495,10 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/node-logger@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.11.tgz#8e0d058b4804f2fea03c9d7d331b8e2d02f3b7ff" - integrity sha512-MASonXDWpSMU9HF9mqbGOR1Ps/DTJ8AVmYD50+OnB9kXl4M42Dliobeq7JwKFMnZ42RelUCCSXdWW80hGrUKKA== +"@storybook/node-logger@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.15.tgz#fcf786d3a323feb6821e40e26f98a513a60d1a79" + integrity sha512-lrO0ei3W7BRci2iUkWTr/rXgHkzxwZTrlkx0iBzbQQRy7K1AJ9bjzhurCH9B8C9XGLmn60LXT81RWD3iCLZjcw== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.0.0" @@ -2504,20 +2506,20 @@ npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.11.tgz#4b13de88ee42bfa2d65f7d4cf4924884b9c0dc7e" - integrity sha512-ICW70RuOJOHD7PcKq62yr7hCmo04F7yRMuy5/MD/G+Neaw3YpfYTc6pQ228h5UrmXiKSKG1unPkjzuIAoIeN7w== +"@storybook/postinstall@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.15.tgz#e371d5152100501b1fc45e452c9b11ee4fdf92b0" + integrity sha512-sfQz9hU/WVanLVzhx7gx3TyNWRxrKgbK7Zam2eE4MxgRcAIEJCgrd3nvllExjoPVStttuUFa3p4K94n2TQM9qA== dependencies: core-js "^3.0.1" -"@storybook/router@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.11.tgz#d58e0c8324d8b16d71e09c017a4e3c844b1a4139" - integrity sha512-YEYOoKMo/WI13MZCkdqI9X3H1G0Oj5OUxi7So4qd3khX3zcCjSr3LjiMDBcmIVZpFo5VAvzjhIY4KqpgvzTG0A== +"@storybook/router@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.15.tgz#e0cd7440a2ddc9b265e506b1cb590d3eeab56476" + integrity sha512-HlxDkGpiTSxXCJuqRoZ9Viq6Y/h/7efI8LPhhopr50qWRBTh/PEQzDqWBXG3sj8ISmi9GyUaTSAuqRwdA3lJQQ== dependencies: "@reach/router" "^1.3.3" - "@types/reach__router" "^1.3.5" + "@types/reach__router" "^1.3.7" core-js "^3.0.1" global "^4.3.2" memoizerific "^1.11.3" @@ -2531,13 +2533,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.11.tgz#26e0ba30d5b9d1828ed10ccb76eb38bf48aad304" - integrity sha512-pEMWGn3XwZYAXwIrtmd7ziH5d1zN8NCpJM8vNJssntZFW45rDo69xgGM/PrTLPDca6f/Mhv+vqzR99tdfarJSw== +"@storybook/source-loader@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.15.tgz#21b985ede0ec626c1a4916fc92a58cffca9d6c63" + integrity sha512-ZFmbuvo4sq0jVeWj7Ur1zDq5SCfTxLYuQcV6mAOqUr89dyP778PX9AO1b1/BmipjsHL3JOHN6uHAn74ksB9ofg== dependencies: - "@storybook/addons" "6.1.11" - "@storybook/client-logger" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/client-logger" "6.1.15" "@storybook/csf" "0.0.1" core-js "^3.0.1" estraverse "^4.2.0" @@ -2548,15 +2550,15 @@ regenerator-runtime "^0.13.7" source-map "^0.7.3" -"@storybook/theming@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.11.tgz#0e757e0562aedefc96bd1d12714d4c8e92823467" - integrity sha512-zRChacVgKoU2BmpvwK1ntiF3KIpc8QblJT7IGiKfP/BNpy9gNeXbLPLk3g/tkHszOvVYtkaZhEXni4Od8tqy1A== +"@storybook/theming@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.15.tgz#01083ab89904dd959429b0b3fd1c76bd0ecc59ef" + integrity sha512-88IdYaPzp4NMKf/GKBrPggxD6/d/lkdQ4SNowXxN9g9eONd9M7HtTbjuJGRCbGMJ52xGcbpj2exEnAqKQ2iodA== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.23" - "@storybook/client-logger" "6.1.11" + "@storybook/client-logger" "6.1.15" core-js "^3.0.1" deep-object-diff "^1.1.0" emotion-theming "^10.0.19" @@ -2566,21 +2568,21 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.1.11": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.11.tgz#2e5a5df010f2bb75a09a0fd0439fc8e62f8c89e5" - integrity sha512-Qth2dxS5+VbKHcqgkiKpeD+xr/hRUuUIDUA/2Ierh/BaA8Up/krlso/mCLaQOa5E8Og9WJAdDFO0cUbt939c2Q== +"@storybook/ui@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.15.tgz#a0f6c49fcf81cf172cd2de4c8dba2be1296891f6" + integrity sha512-quyhJWlOxhk95he7s5/TSYM3eEsaz3s4+98kUZE6r3ssME8u6zDvqa/qa6EWs5/nvZ2V3+12efIzCNbiiT3v3g== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.1.11" - "@storybook/api" "6.1.11" - "@storybook/channels" "6.1.11" - "@storybook/client-logger" "6.1.11" - "@storybook/components" "6.1.11" - "@storybook/core-events" "6.1.11" - "@storybook/router" "6.1.11" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.11" + "@storybook/theming" "6.1.15" "@types/markdown-to-jsx" "^6.11.0" copy-to-clipboard "^3.0.8" core-js "^3.0.1" @@ -2632,9 +2634,9 @@ defer-to-connect "^2.0.0" "@textlint/ast-node-types@^4.0.3": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz#4fb2f81450c9135191b464c3955ebd3a3a95b4a6" - integrity sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA== + version "4.4.1" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz#715dd42b3ec7ff02729fa81cdc9557fe2cdd4f10" + integrity sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA== "@textlint/markdown-to-ast@~6.0.9": version "6.0.9" @@ -2714,26 +2716,26 @@ "@types/node" "*" "@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== -"@types/express-serve-static-core@*": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" - integrity sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== +"@types/express-serve-static-core@^4.17.18": + version "4.17.18" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40" + integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@^4.17.2": - version "4.17.9" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" - integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" + integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "*" + "@types/express-serve-static-core" "^4.17.18" "@types/qs" "*" "@types/serve-static" "*" @@ -2778,11 +2780,6 @@ dependencies: "@types/unist" "*" -"@types/history@*": - version "4.7.8" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" - integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== - "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -2818,9 +2815,9 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/keyv@*": version "3.1.1" @@ -2850,10 +2847,10 @@ dependencies: "@types/braces" "*" -"@types/mime@*": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" - integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" @@ -2866,17 +2863,17 @@ integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node-fetch@^2.5.4": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + version "2.5.8" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.8.tgz#e199c835d234c7eb0846f6618012e558544ee2fb" + integrity sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*": - version "14.14.20" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" - integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== "@types/node@^9.6.0": version "9.6.61" @@ -2928,12 +2925,11 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== -"@types/reach__router@^1.3.5": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.6.tgz#413417ce74caab331c70ce6a03a4c825188e4709" - integrity sha512-RHYataCUPQnt+GHoASyRLq6wmZ0n8jWlBW8Lxcwd30NN6vQfbmTeoSDfkgxO0S1lEzArp8OFDsq5KIs7FygjtA== +"@types/reach__router@^1.3.7": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.7.tgz#de8ab374259ae7f7499fc1373b9697a5f3cd6428" + integrity sha512-cyBEb8Ef3SJNH5NYEIDGPoMMmYUxROatuxbICusVRQIqZUB85UCt6R2Ok60tKS/TABJsJYaHyNTW3kqbpxlMjg== dependencies: - "@types/history" "*" "@types/react" "*" "@types/react-color@^3.0.1": @@ -2982,11 +2978,11 @@ "@types/node" "*" "@types/serve-static@*": - version "1.13.8" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" - integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== + version "1.13.9" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" + integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== dependencies: - "@types/mime" "*" + "@types/mime" "^1" "@types/node" "*" "@types/source-list-map@*": @@ -3031,9 +3027,9 @@ source-map "^0.7.3" "@types/webpack@^4.41.8": - version "4.41.25" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" - integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -3248,9 +3244,9 @@ abbrev@1, abbrev@~1.1.1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abortcontroller-polyfill@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.5.0.tgz#2c562f530869abbcf88d949a2b60d1d402e87a7c" - integrity sha512-O6Xk757Jb4o0LMzMOMdWvxpHWrQzruYBaUruFaIOfAQRnWFxfdXYobw12jrVHGtoXk6WiiyYzc0QWN9aL62HQA== + version "1.7.1" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.1.tgz#27084bac87d78a7224c8ee78135d05df430c2d2f" + integrity sha512-yml9NiDEH4M4p0G4AcPkg8AAa4mF3nfYF28VQxaokpO67j9H7gWgmsVWJ/f1Rn+PzsnDYvzJzWIQzCqDKRvWlA== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -3724,7 +3720,7 @@ array.prototype.flatmap@^1.2.1: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -array.prototype.map@^1.0.1: +array.prototype.map@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.3.tgz#1609623618d3d84134a37d4a220030c2bd18420b" integrity sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA== @@ -4220,10 +4216,10 @@ babel-plugin-ember-modules-api-polyfill@^2.13.4, babel-plugin-ember-modules-api- dependencies: ember-rfc176-data "^0.3.13" -babel-plugin-ember-modules-api-polyfill@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.0.tgz#302cb58a3c0fa33d93ab5115f1e91d76c6ec766b" - integrity sha512-k5gyC1kUDyZDcdD8LMGTI7KA+cHdKainuWpmc7d5yv42WgZFO75njPi3hZchEGsFFXtSqm9jiahgvLBUV8E8mA== +babel-plugin-ember-modules-api-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.2.1.tgz#715252ffde309da36fb32cd6a9bad5c6b61edd33" + integrity sha512-7k4gM0VLAMjoWVxLBDqavH/Dn4mBfzqTuQmtGmZgsdQ4SYVEJ7dewUVeqWBVn5v3QspW4VSoeXh4rHPPlp/rPw== dependencies: ember-rfc176-data "^0.3.16" @@ -4948,9 +4944,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== "binaryextensions@1 || 2", binaryextensions@^2.1.2: version "2.3.0" @@ -5885,7 +5881,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1: version "4.16.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== @@ -6126,13 +6122,13 @@ calculate-cache-key-for-tree@^2.0.0: dependencies: json-stable-stringify "^1.0.1" -call-bind@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" - integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" - get-intrinsic "^1.0.0" + get-intrinsic "^1.0.2" call-limit@^1.1.1: version "1.1.1" @@ -6370,9 +6366,9 @@ cheerio@^1.0.0-rc.2: parse5-htmlparser2-tree-adapter "^6.0.0" "chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz#458a4816a415e9d3b3caa4faec2b96a6935a9e65" - integrity sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q== + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -6819,12 +6815,12 @@ commander@^6.2.0: integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commitizen@^4.0.3: - version "4.2.2" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.2.tgz#1a93dd07208521ea1ebbf832593542dac714cc79" - integrity sha512-uz+E6lGsDBDI2mYA4QfOxFeqdWUYwR1ky11YmLgg2BnEEP3YbeejpT4lxzGjkYqumnXr062qTOGavR9NtX/iwQ== + version "4.2.3" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.3.tgz#088d0ef72500240d331b11e02e288223667c1475" + integrity sha512-pYlYEng7XMV2TW4xtjDKBGqeJ0Teq2zyRSx2S3Ml1XAplHSlJZK8vm1KdGclpMEZuGafbS5TeHXIVnHk8RWIzQ== dependencies: cachedir "2.2.0" - cz-conventional-changelog "3.3.0" + cz-conventional-changelog "3.2.0" dedent "0.7.0" detect-indent "6.0.0" find-node-modules "2.0.0" @@ -7062,17 +7058,17 @@ copy-to-clipboard@^3.0.8: toggle-selection "^1.0.6" core-js-compat@^3.8.0: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c" - integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" + integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.1" semver "7.0.0" core-js-pure@^3.0.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.2.tgz#286f885c0dac1cdcd6d78397392abc25ddeca225" - integrity sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.3.tgz#10e9e3b2592ecaede4283e8f3ad7020811587c02" + integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: version "2.6.12" @@ -7080,9 +7076,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.1, core-js@^3.0.4, core-js@^3.6.5: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044" - integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A== + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== core-object@^3.1.5: version "3.1.5" @@ -7418,7 +7414,21 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cz-conventional-changelog@3.3.0, cz-conventional-changelog@^3.1.0: +cz-conventional-changelog@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" + integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + +cz-conventional-changelog@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== @@ -7482,7 +7492,7 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -7937,9 +7947,9 @@ dotenv@^8.0.0: integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== downshift@^6.0.6: - version "6.0.12" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.0.12.tgz#fadf3633e7cb22ec11d80900756821c4e6a1cf35" - integrity sha512-PVxou4rcb6Iy+EhWH1GJCOMN3NCkn4SSYG4nPU9Dy7QH7wWeozAQTAbldSqOrfEJ2ZwHnw8tNmQ7BONGJ9/MHA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.0.tgz#f008063d9b63935910d9db12ead07979ab51ce66" + integrity sha512-MnEJERij+1pTVAsOPsH3q9MJGNIZuu2sT90uxOCEOZYH6sEzkVGtUcTBVDRQkE8y96zpB7uEbRn24aE9VpHnZg== dependencies: "@babel/runtime" "^7.12.5" compute-scroll-into-view "^1.0.16" @@ -8071,9 +8081,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634: - version "1.3.635" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.635.tgz#8d1591eeca6b257d380061a2c04f0b3cc6c9e33b" - integrity sha512-RRriZOLs9CpW6KTLmgBqyUdnY0QNqqWs0HOtuQGGEMizOTNNn1P7sGRBxARnUeLejOsgwjDyRqT3E/CSst02ZQ== + version "1.3.642" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz#8b884f50296c2ae2a9997f024d0e3e57facc2b94" + integrity sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ== element-resize-detector@^1.2.1: version "1.2.1" @@ -8189,9 +8199,9 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.2, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3: - version "7.23.0" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.0.tgz#ec580aa2c115d0810e454dd5c2fffce238284b92" - integrity sha512-ix58DlRDAbGITtdJoRUPcAoQwKLYr/x/kIXjU9u1ATyhmuUjqb+0FDXghOWbkNihGiNOqBBR49+LBgK9AeBcNw== + version "7.23.1" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.1.tgz#d1517228ede08a5d4b045c78a7429728e956b30b" + integrity sha512-qYggmt3hRs6QJ6cRkww3ahMpyP8IEV2KFrIRO/Z6hu9MkE/8Y28Xd5NjQl6fPV3oLoG0vwuHzhNe3Jr7Wec8zw== dependencies: "@babel/core" "^7.12.0" "@babel/helper-compilation-targets" "^7.12.0" @@ -8206,7 +8216,7 @@ ember-cli-babel@7, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-bab amd-name-resolver "^1.2.1" babel-plugin-debug-macros "^0.3.3" babel-plugin-ember-data-packages-polyfill "^0.1.2" - babel-plugin-ember-modules-api-polyfill "^3.2.0" + babel-plugin-ember-modules-api-polyfill "^3.2.1" babel-plugin-module-resolver "^3.1.1" broccoli-babel-transpiler "^7.8.0" broccoli-debug "^0.6.4" @@ -8587,7 +8597,7 @@ ember-cli-update@^0.54.6: update-notifier "^4.0.0" yargs "^15.1.0" -ember-cli-version-checker@5.1.1, ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1: +ember-cli-version-checker@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.1.tgz#3185c526c14671609cbd22ab0d0925787fc84f3d" integrity sha512-YziSW1MgOuVdJSyUY2CKSC4vXrGQIHF6FgygHkJOxYGjZNQYwf5MK0sbliKatvJf7kzDSnXs+r8JLrD74W/A8A== @@ -8628,6 +8638,15 @@ ember-cli-version-checker@^4.1.0: semver "^6.3.0" silent-error "^1.1.1" +ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-5.1.2.tgz#649c7b6404902e3b3d69c396e054cea964911ab0" + integrity sha512-rk7GY+FmLn/2e22HsZs0Ycrz8HQ1W3Fv+2TFOuEFW9optnDXDgkntPBIl6gact/LHsfBM5RKbM3dHsIIeLgl0Q== + dependencies: + resolve-package-path "^3.1.0" + semver "^7.3.4" + silent-error "^1.1.1" + ember-cli@~3.20.2: version "3.20.2" resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.20.2.tgz#4a5411afc32a91eb81e4fa1e6f4bc950e838c132" @@ -8871,9 +8890,9 @@ ember-factory-for-polyfill@^1.3.1: ember-cli-version-checker "^2.1.0" ember-fetch@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-8.0.2.tgz#9838b9f01e33fcd23550ccf38ae4f1f90cc47113" - integrity sha512-BMwm8jLP5LCeT8Jbgz0jA04RsRyt06ZGMaC3Tx2DbHgoWOPlLMfkEKlCFE0dZVW8ZhuICKuyRZTzt4e8GrnnNA== + version "8.0.4" + resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-8.0.4.tgz#b9a3239e9d188ada18a4448ccb4fea2a091e3952" + integrity sha512-vx/v6+OTZMDbm6BT5TI6Q/NSuaWPbQxb2KRDD4yR/iJoRl2DtfgXiCA491pYT5IwAAtp6NbMa1CitIQDoaII9Q== dependencies: abortcontroller-polyfill "^1.4.0" broccoli-concat "^4.2.4" @@ -8884,9 +8903,9 @@ ember-fetch@^8.0.1: broccoli-templater "^2.0.1" calculate-cache-key-for-tree "^2.0.0" caniuse-api "^3.0.0" - ember-cli-babel "^7.19.0" + ember-cli-babel "^7.23.0" ember-cli-typescript "^3.1.3" - node-fetch "^2.6.0" + node-fetch "^2.6.1" whatwg-fetch "^3.4.0" ember-focus-trap@^0.4.0: @@ -8948,9 +8967,9 @@ ember-inline-svg@^1.0.0: walk-sync "~2.0.2" ember-intl@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.6.0.tgz#66837865f330a0c6057202904e0b11d449fb7b64" - integrity sha512-eyeijdGvUiZE6VAH22vuGAbG1OELvO9ZiuONANEETGvG7oSLzKfUkF88dZ2Ljkg1Geyct4EMO6xTi22oSvamTg== + version "5.6.2" + resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.6.2.tgz#ece4820923dfda033c279b7e3920cbbc8b6bde07" + integrity sha512-+FfI2udVbnEzueompcRb3ytBWhfnBfVVjAwnCuxwqIyS9ti8lK0ZiYHa5bquNPHjjfBzfFl4x5TlVgDNaCnccg== dependencies: broccoli-caching-writer "^3.0.3" broccoli-funnel "^3.0.3" @@ -9048,9 +9067,9 @@ ember-notify@^6.0.0: ember-cli-htmlbars "^3.0.1" ember-page-title@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.0.3.tgz#6f2f26428ae81262d31520c65c1ce8b336f34839" - integrity sha512-sXT+XrWWYkqCpwOXj1nGRdxDE4J1SbPcA9lSwtQEP0qDGenhp/GNTcLN8v3cpeyao75jAPxjgYN3YzFtvUB01Q== + version "6.2.0" + resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-6.2.0.tgz#d79f7422299ebb8f8ac819399596e8f54f01a0e9" + integrity sha512-mgzI59rVH6Q00uG1OnsbrSfic+MxFQbtsjX3BuDWGgU7hWahDhAAgaQrKIFx99aEqWoiL+OiX4tQLPnxyZEceA== dependencies: ember-cli-babel "^7.22.1" @@ -9168,15 +9187,15 @@ ember-source@~3.20.2: silent-error "^1.1.1" ember-template-lint@^2.0.1, ember-template-lint@^2.14.0, ember-template-lint@^2.9.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.16.0.tgz#a6d725e2c19ab7df43390357e085c66a00a751bb" - integrity sha512-RmQCFMHWPG3CDByAu0R4XP/edKhha6dl4oA9vqU6+kIuGt0WyHy3nHIJuXmVvLSosmK8KEHuWKgpWgNr//9ckg== + version "2.17.0" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.17.0.tgz#61206ad42f59c3f629a782d459e29437c0cfae21" + integrity sha512-m2X7khUmgJqzC5Bb7wYw08R6N0hwge8/TB8PucEJsFxv2fFrhh2Aec+YdNG7VWsSPFnC0i7O1upBLKcfzO/a6Q== dependencies: chalk "^4.0.0" ember-template-recast "^5.0.1" find-up "^5.0.0" get-stdin "^8.0.0" - globby "^11.0.1" + globby "^11.0.2" is-glob "^4.0.1" micromatch "^4.0.2" resolve "^1.19.0" @@ -9359,10 +9378,10 @@ engine.io@~3.5.0: engine.io-parser "~2.2.0" ws "~7.4.2" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== +enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -9448,23 +9467,25 @@ es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.0.2" has "^1.0.3" has-symbols "^1.0.1" is-callable "^1.2.2" - is-negative-zero "^2.0.0" + is-negative-zero "^2.0.1" is-regex "^1.1.1" - object-inspect "^1.8.0" + object-inspect "^1.9.0" object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -9793,12 +9814,12 @@ eslint@^6.5.1: v8-compile-cache "^2.0.3" eslint@^7.5.0: - version "7.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" - integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== + version "7.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" + integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.2" + "@eslint/eslintrc" "^0.3.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -9822,7 +9843,7 @@ eslint@^7.5.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -10209,10 +10230,10 @@ fast-glob@^2.0.2, fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -10647,9 +10668,9 @@ flatted@^2.0.0: integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flora-colossus@^1.0.0: version "1.0.1" @@ -10863,14 +10884,14 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: universalify "^0.1.0" fs-extra@^9.0.0, fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" fs-merger@^3.0.1, fs-merger@^3.1.0: version "3.1.0" @@ -11078,7 +11099,7 @@ get-installed-path@^2.0.3: dependencies: global-modules "1.0.0" -get-intrinsic@^1.0.0, get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== @@ -11428,10 +11449,10 @@ globalthis@^1.0.0, globalthis@^1.0.1: dependencies: define-properties "^1.1.3" -globalyzer@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.4.tgz#bc8e273afe1ac7c24eea8def5b802340c5cc534f" - integrity sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA== +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== globby@10.0.0: version "10.0.0" @@ -11460,7 +11481,7 @@ globby@8.0.2: pify "^3.0.0" slash "^1.0.0" -globby@^11.0.1: +globby@^11.0.1, globby@^11.0.2: version "11.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== @@ -11491,7 +11512,7 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= -globrex@^0.1.1: +globrex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== @@ -12861,7 +12882,7 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" -is-negative-zero@^2.0.0: +is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== @@ -13196,7 +13217,7 @@ iterate-iterator@^1.0.1: resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== -iterate-value@^1.0.0: +iterate-value@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== @@ -14805,13 +14826,14 @@ meow@^3.1.0: redent "^1.0.0" trim-newlines "^1.0.0" -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" + decamelize "^1.2.0" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" minimist-options "4.1.0" @@ -14941,9 +14963,9 @@ mime@1.6.0: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.4.7" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74" - integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" + integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== mimic-fn@^1.0.0: version "1.2.0" @@ -15030,18 +15052,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.2.tgz#573766fb1ae86e30df916a6b060bc2e801bf8f37" - integrity sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA== - 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: +minipass-fetch@^1.2.1, minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== @@ -15394,7 +15405,7 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^2.6.0: +node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -15504,19 +15515,19 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.52, node-releases@^1.1.69: - version "1.1.69" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6" - integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA== + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= -node-watch@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.0.tgz#033c0c04239d9348f3402b6b6f9c1e689a7edbe1" - integrity sha512-OOBiglke5SlRQT5WYfwXTmYqTfXjcTNBHpalyHLtLxDpQYVpVRkJqabcch1kmwJsjV/J4OZuzEafeb4soqtFZA== +node-watch@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.1.tgz#0caaa6a6833b0d533487f953c52a6c787769ba7c" + integrity sha512-UWblPYuZYrkCQCW5PxAwYSxaELNBLUckrTBBk8xr1/bUgyOkYYTsUcV4e3ytcazFEOyiRyiUrsG37pu6I0I05g== nopt@^3.0.6: version "3.0.6" @@ -16012,7 +16023,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1: +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -16156,9 +16167,9 @@ ora@^3.4.0: wcwidth "^1.0.1" ora@^5.0.0, ora@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" - integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== dependencies: bl "^4.0.3" chalk "^4.1.0" @@ -16553,9 +16564,9 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" @@ -17153,15 +17164,16 @@ promise-retry@^1.1.1: retry "^0.10.0" promise.allsettled@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" - integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.4.tgz#65e71f2a604082ed69c548b68603294090ee6803" + integrity sha512-o73CbvQh/OnPFShxHcHxk0baXR2a1m4ozb85ha0H14VEoi/EJJLa9mnPfEWJx9RjA9MLfhdjZ8I6HhWtBa64Ag== dependencies: - array.prototype.map "^1.0.1" + array.prototype.map "^1.0.3" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - iterate-value "^1.0.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.0.2" + iterate-value "^1.0.2" promise.hash.helper@^1.0.6: version "1.0.7" @@ -17305,9 +17317,9 @@ qs@6.7.0: integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@^6.4.0, qs@^6.6.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== qs@~6.0.2: version "6.0.4" @@ -17372,14 +17384,14 @@ qunit-dom@^1.2.0: ember-cli-version-checker "^5.1.1" qunit@^2.9.3: - version "2.13.0" - resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.13.0.tgz#4cbaac0b314d787ba20195e238b0edf1cd9b2fb1" - integrity sha512-RvJquyNKbMSn5Qo28S2wKWxHl1Ku8m0zFLTKsXfq/WZkyM+b28gpEs6YkKN1fOCV4S+979+GnevD0FRgQayo3Q== + version "2.14.0" + resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.14.0.tgz#6f913903e71ebe24ef4a4dada2b796fb52285051" + integrity sha512-CYfenbgdpmhl2Ql2rDrrj0felY4h8k6lYhtWwGBCLL4qQC33YOj0psV8MWo85L1i0SIOmEDRXkFopWnGCLmf7g== dependencies: commander "6.2.0" js-reporters "1.2.3" - node-watch "0.7.0" - tiny-glob "0.2.6" + node-watch "0.7.1" + tiny-glob "0.2.8" qw@~1.0.1: version "1.0.1" @@ -17549,10 +17561,10 @@ react-hotkeys@2.0.0: dependencies: prop-types "^15.6.1" -react-input-autosize@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2" - integrity sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw== +react-input-autosize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85" + integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg== dependencies: prop-types "^15.5.8" @@ -17598,9 +17610,9 @@ react-popper@^2.2.4: warning "^4.0.2" react-select@^3.0.8: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.1.tgz#156a5b4a6c22b1e3d62a919cb1fd827adb4060bc" - integrity sha512-HjC6jT2BhUxbIbxMZWqVcDibrEpdUJCfGicN0MMV+BQyKtCaPTgFekKWiOizSCy4jdsLMGjLqcFGJMhVGWB0Dg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.2.0.tgz#de9284700196f5f9b5277c5d850a9ce85f5c72fe" + integrity sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ== dependencies: "@babel/runtime" "^7.4.4" "@emotion/cache" "^10.0.9" @@ -17608,7 +17620,7 @@ react-select@^3.0.8: "@emotion/css" "^10.0.9" memoize-one "^5.0.0" prop-types "^15.6.0" - react-input-autosize "^2.2.2" + react-input-autosize "^3.0.0" react-transition-group "^4.3.0" react-sizeme@^2.6.7: @@ -17909,9 +17921,9 @@ redeyed@~1.0.0: esprima "~3.0.0" refractor@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.0.tgz#42a7d58f14a1d1bcda52a8c66123601a71e5d47d" - integrity sha512-c/jEhQjk1NDyTF3hMgtu8PigaqkWUv+c5+mBffZCTnjyrNSJkG+0eoTOJV/u0XCTuPfaFzJyj6MM4HnF0Wr27Q== + version "3.3.1" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.1.tgz#ebbc04b427ea81dc25ad333f7f67a0b5f4f0be3a" + integrity sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw== dependencies: hastscript "^6.0.0" parse-entities "^2.0.0" @@ -17974,12 +17986,12 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" regexpp@^2.0.1: version "2.0.1" @@ -18059,9 +18071,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.6" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a" + integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ== dependencies: jsesc "~0.5.0" @@ -18666,13 +18678,6 @@ sane@^4.0.0, sane@^4.0.3, sane@^4.1.0: minimist "^1.1.1" walker "~1.0.5" -sanitize-filename@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sass-lint@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f" @@ -18694,9 +18699,9 @@ sass-lint@^1.13.1: util "^0.10.3" sass@^1.26.5, sass@^1.29.0: - version "1.32.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.2.tgz#66dc0250bc86c15d19ddee7135e93d0cf3d3257b" - integrity sha512-u1pUuzqwz3SAgvHSWp1k0mRhX82b2DdlVnP6UIetQPZtYbuJUDaPQhZE12jyjB7vYeOScfz9WPsZJB6Rpk7heA== + version "1.32.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.5.tgz#2882d22ad5748c05fa9bff6c3b0ffbc4f4b9e1dc" + integrity sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -19111,9 +19116,9 @@ socket.io-client@2.4.0: to-array "0.1.4" socket.io-parser@~3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.1.tgz#f07d9c8cb3fb92633aa93e76d98fd3a334623199" - integrity sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== dependencies: component-emitter "~1.3.0" debug "~3.1.0" @@ -19601,7 +19606,7 @@ string.prototype.padstart@^3.0.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" -string.prototype.trimend@^1.0.1: +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== @@ -19609,7 +19614,7 @@ string.prototype.trimend@^1.0.1: call-bind "^1.0.0" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.1: +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== @@ -19803,9 +19808,9 @@ stylelint-scss@^3.18.0: postcss-value-parser "^4.1.0" stylelint@^13.8.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.8.0.tgz#446765dbe25e3617f819a0165956faf2563ddc23" - integrity sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ== + version "13.9.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz#93921ee6e11d4556b9f31131f485dc813b68e32a" + integrity sha512-VVWH2oixOAxpWL1vH+V42ReCzBjW2AeqskSAbi8+3OjV1Xg3VZkmTcAqBZfRRvJeF4BvYuDLXebW3tIHxgZDEg== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" "@stylelint/postcss-markdown" "^0.36.2" @@ -19813,14 +19818,14 @@ stylelint@^13.8.0: balanced-match "^1.0.0" chalk "^4.1.0" cosmiconfig "^7.0.0" - debug "^4.2.0" + debug "^4.3.1" execall "^2.0.0" - fast-glob "^3.2.4" + fast-glob "^3.2.5" fastest-levenshtein "^1.0.12" file-entry-cache "^6.0.0" get-stdin "^8.0.0" global-modules "^2.0.0" - globby "^11.0.1" + globby "^11.0.2" globjoin "^0.1.4" html-tags "^3.1.0" ignore "^5.1.8" @@ -19830,7 +19835,7 @@ stylelint@^13.8.0: lodash "^4.17.20" log-symbols "^4.0.0" mathml-tag-names "^2.1.3" - meow "^8.0.0" + meow "^9.0.0" micromatch "^4.0.2" normalize-selector "^0.2.0" postcss "^7.0.35" @@ -19852,7 +19857,7 @@ stylelint@^13.8.0: style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^6.0.3" + table "^6.0.7" v8-compile-cache "^2.2.0" write-file-atomic "^3.0.3" @@ -20009,7 +20014,7 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -table@^6.0.3, table@^6.0.4: +table@^6.0.4, table@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== @@ -20282,13 +20287,13 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-glob@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.6.tgz#9e056e169d9788fe8a734dfa1ff02e9b92ed7eda" - integrity sha512-A7ewMqPu1B5PWwC3m7KVgAu96Ch5LA0w4SnEN/LbDREj/gAD0nPWboRbn8YoP9ISZXqeNAlMvKSKoEuhcfK3Pw== +tiny-glob@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.8.tgz#b2792c396cc62db891ffa161fe8b33e76123e531" + integrity sha512-vkQP7qOslq63XRX9kMswlby99kyO5OvKptw7AMwBVMjXEI7Tb61eoI5DydyEMOseyGS5anDN1VPoVxEvH01q8w== dependencies: - globalyzer "^0.1.0" - globrex "^0.1.1" + globalyzer "0.1.0" + globrex "^0.1.2" tiny-lr@^1.1.1: version "1.1.1" @@ -20520,13 +20525,6 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - ts-dedent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.0.0.tgz#47c5eb23d9096f3237cc413bc82d387d36dbe690" @@ -20664,9 +20662,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.12.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.4.tgz#93de48bb76bb3ec0fc36563f871ba46e2ee5c7ee" - integrity sha512-L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A== + version "3.12.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.5.tgz#83241496087c640efe9dfc934832e71725aba008" + integrity sha512-SgpgScL4T7Hj/w/GexjnBHi3Ien9WS1Rpfg5y91WXMj9SY997ZCQU76mH4TpLwwfmMvoOU8wiaRkIf6NaH3mtg== uid-number@0.0.6: version "0.0.6" @@ -20908,11 +20906,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -20994,9 +20987,9 @@ update-section@^0.3.0: integrity sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg= uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -21085,11 +21078,6 @@ username@^5.1.0: execa "^1.0.0" mem "^4.3.0" -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -21116,13 +21104,14 @@ util.promisify@1.0.0: object.getownpropertydescriptors "^2.0.3" util.promisify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.0.tgz#aa0a043eb73f5ff5cbb3ae44819cd0f3e7a5322f" - integrity sha512-KXdwUwahiTMGAA2NE3NVKSyabmckHljc99p1E9neqltHxT+7KsomX6yGGWSmbWRMf7wTpeG/CQMDgbLN8AahsQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== dependencies: call-bind "^1.0.0" define-properties "^1.1.3" for-each "^0.3.3" + has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" util.promisify@~1.0.0: @@ -21432,9 +21421,9 @@ webpack-virtual-modules@^0.2.2: debug "^3.0.0" webpack@^4.43.0, webpack@^4.44.2: - version "4.45.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.45.0.tgz#bcdc1ddb43959adb47f8974e60d944027267c1be" - integrity sha512-JhDaVi4CbRcwLLAoqC7eugMSMJnZbIfE2AyjaZ19pnOIh/R2O/lXOiXA2tQFN0iXEcxgpPJsPJHW2wOWqiTLcw== + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -21444,7 +21433,7 @@ webpack@^4.43.0, webpack@^4.44.2: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -21603,9 +21592,9 @@ workerpool@^5.0.1: integrity sha512-Sywova24Ow2NQ24JPB68bI89EdqMDjUXo4OpofK/QMD7C2ZVMloYBgQ5J3PChcBJHj2vspsmGx1/3nBKXtUkXQ== workerpool@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.3.tgz#3f80ba4d914fe7bb8d933628c26e5d7ff820c703" - integrity sha512-meU8ZzO+ipcx/njxtKUcbu2K95085q5WYDo8fR6PMW3hCY4driteIsNsEowYV7dzOtvq0HotUKsReJkK8gKXgg== + version "6.0.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.4.tgz#f83ecf101b35c034cb20ed38cedd619dde9d722c" + integrity sha512-sAc9w9oAJQ2680gDArGinjw0Ygj2K3KF1ZCRfslBKUCzc9Gycwlj9ZIAbizPRBftcXxhXgoGMVPxJE0VMNnWbw== wrap-ansi@^2.0.0: version "2.1.0" From 73f3e027b1cb7bcbc6df8fb9117729a068c36832 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 22 Jan 2021 12:42:13 -0500 Subject: [PATCH 018/106] chore: Update known audit issues to capture latest changes --- yarn-audit-known-issues | 42 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/yarn-audit-known-issues b/yarn-audit-known-issues index 50ecd896c..83c0b67f1 100644 --- a/yarn-audit-known-issues +++ b/yarn-audit-known-issues @@ -1,21 +1,21 @@ -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} -{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} +{"type":"auditAdvisory","data":{"resolution":{"id":566,"path":"rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","dev":false,"bundled":false,"optional":false},"advisory":{"findings":[{"version":"2.16.3","paths":["api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>boom>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>hoek","api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>api>ember-cli-mirage>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>ember-intl>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>emberx-select>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","core>rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek","rose>ember-focus-trap>ember-auto-import>@embroider/core>jsdom>request>hawk>sntp>hoek"]}],"id":566,"created":"2018-04-20T21:25:58.421Z","updated":"2019-06-19T20:16:59.758Z","deleted":null,"title":"Prototype Pollution","found_by":{"name":"HoLyVieR"},"reported_by":{"name":"HoLyVieR"},"module_name":"hoek","cves":["CVE-2018-3728"],"vulnerable_versions":"<= 4.2.0 || >= 5.0.0 < 5.0.3","patched_versions":"> 4.2.0 < 5.0.0 || >= 5.0.3","overview":"Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution.\n\nThe `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property.\n\nThis can be demonstrated like so:\n\n```javascript\nvar Hoek = require('hoek');\nvar malicious_payload = '{\"__proto__\":{\"oops\":\"It works !\"}}';\n\nvar a = {};\nconsole.log(\"Before : \" + a.oops);\nHoek.merge({}, JSON.parse(malicious_payload));\nconsole.log(\"After : \" + a.oops);\n```\n\nThis type of attack can be used to overwrite existing properties causing a potential denial of service.","recommendation":"Update to version 4.2.1, 5.0.3 or later.","references":"- [HackerOne Report](https://hackerone.com/reports/310439)","access":"public","severity":"moderate","cwe":"CWE-471","metadata":{"module_type":"","exploitability":5,"affected_components":""},"url":"https://npmjs.com/advisories/566"}}} From 3b7baab57588da231769e5b7693bdbacd4f1374e Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 22 Jan 2021 13:51:39 -0500 Subject: [PATCH 019/106] chore: Check for ENABLE_MIRAGE env var before using it --- ui/desktop/config/environment.js | 2 +- ui/desktop/package.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index 0ef3f3a3b..f95e56961 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -1,7 +1,7 @@ 'use strict'; const APP_NAME = process.env.APP_NAME || 'Boundary'; -const ENABLE_MIRAGE = process.env.ENABLE_MIRAGE ? false : true; +const ENABLE_MIRAGE = ('ENABLE_MIRAGE' in process.env) ? process.env.ENABLE_MIRAGE : false; module.exports = function (environment) { let ENV = { diff --git a/ui/desktop/package.json b/ui/desktop/package.json index ce7dd0015..e75d70f71 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -11,7 +11,7 @@ }, "scripts": { "doc:toc": "doctoc README.md", - "build": "ENABLE_MIRAGE=false ember build --environment=production && yarn build:desktop", + "build": "ember build --environment=production && yarn build:desktop", "build:development": "ember build", "prebuild:desktop": "cp -r dist electron-app/ember-dist", "build:desktop": "cd electron-app && yarn make", @@ -24,6 +24,7 @@ "format:js": "prettier --write '{app,config,stories,tests,electron-app/src}/**/*.js' *.js", "format:sass": "prettier --write app/**/*.scss", "start": "ember serve", + "start:development": "ENABLE_MIRAGE=true yarn start", "start:desktop": "ember electron", "clean:coverage": "rm -rf coverage_*", "pretest": "yarn clean:coverage", From f3581348282fe143f4dc3965773cf6886a97d6f8 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 25 Jan 2021 12:06:15 -0500 Subject: [PATCH 020/106] docs: Add building desktop for prod section --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index c19d4efac..0f96407b0 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ subproject, e.g. running or testing. - [Building ToC](#building-toc) - [Building Admin UI for Production](#building-admin-ui-for-production) - [Building with a Container](#building-with-a-container) + - [Building Desktop UI for Production](#building-desktop-ui-for-production) - [Committing](#committing) - [License Checking](#license-checking) @@ -102,6 +103,22 @@ docker-compose -f docker-compose-embedding.yml run build Assets are saved to `ui/admin/dist/`. +### Building Desktop UI for Production + +See ui/desktop/README.md Building for Production for more information on how to +build the Desktop UI. Be sure to set build-related environment variables as +necessary for your target environment, as described in the Desktop UI readme. + +To quickly produce a production build of Desktop UI, run from this folder: + +```bash +yarn install +yarn build:ui:desktop +``` + +Assets are saved to `ui/desktop/electron-app/out/make/`. +DMG packaged desktop UI is available at asset location as `Boundary.dmg`. + ### Committing Instead of the default `git commit`, we prescribe a custom command that ensures From 9bcfd518b3ef77c22767a546e9fc0711429ace3f Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 25 Jan 2021 12:30:33 -0500 Subject: [PATCH 021/106] chore: Update desktop app name to "Boundary Desktop" --- README.md | 2 +- ui/desktop/electron-app/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0f96407b0..732c7491f 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ yarn build:ui:desktop ``` Assets are saved to `ui/desktop/electron-app/out/make/`. -DMG packaged desktop UI is available at asset location as `Boundary.dmg`. +DMG packaged desktop UI is available at asset location as `Boundary Desktop.dmg`. ### Committing diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index bf3d1c04f..4ee09e281 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -22,7 +22,7 @@ "/ember-test(/|$)", "/tests(/|$)" ], - "name": "Boundary", + "name": "Boundary Desktop", "appBundleId": "com.electron.boundary", "appVersion": "0.0.1", "appCopyright": "Copyright © 2021 HashiCorp, Inc.", @@ -34,7 +34,7 @@ { "name": "@electron-forge/maker-dmg", "config": { - "name": "Boundary" + "name": "Boundary Desktop" } } ] From 9fe8a75b28d1e3b717b954d8afe91bc19cc65f46 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 25 Jan 2021 14:54:05 -0500 Subject: [PATCH 022/106] chore: ENABLE_MIRAGE should not be used if it is unset --- ui/desktop/config/environment.js | 8 ++++++-- ui/desktop/package.json | 1 - yarn.lock | 27 +++++---------------------- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index f95e56961..4e6bcbf97 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -29,7 +29,7 @@ module.exports = function (environment) { isElectron: Boolean(process.env.EMBER_CLI_ELECTRON), 'ember-cli-mirage': { - enabled: ENABLE_MIRAGE, + //enabled: ENABLE_MIRAGE, directory: '../../addons/api/mirage' }, @@ -44,6 +44,10 @@ module.exports = function (environment) { notifyTimeout: 4000, }; + if (process.env.ENABLE_MIRAGE) { + ENV['ember-cli-mirage'].enabled = JSON.parse(process.env.ENABLE_MIRAGE); + } + if (environment === 'development') { // ENV.APP.LOG_RESOLVER = true; // ENV.APP.LOG_ACTIVE_GENERATION = true; @@ -70,7 +74,7 @@ module.exports = function (environment) { // Notification timeout should be 0 for fast tests ENV.notifyTimeout = 0; - + ENV.enableConfirmService = false; // Use in-memory storage diff --git a/ui/desktop/package.json b/ui/desktop/package.json index e75d70f71..aa762583e 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -24,7 +24,6 @@ "format:js": "prettier --write '{app,config,stories,tests,electron-app/src}/**/*.js' *.js", "format:sass": "prettier --write app/**/*.scss", "start": "ember serve", - "start:development": "ENABLE_MIRAGE=true yarn start", "start:desktop": "ember electron", "clean:coverage": "rm -rf coverage_*", "pretest": "yarn clean:coverage", diff --git a/yarn.lock b/yarn.lock index 6943cd544..479a15f72 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7513,7 +7513,7 @@ debug@~4.1.0: 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= @@ -12332,7 +12332,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= @@ -14025,11 +14025,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" @@ -14038,16 +14033,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" @@ -14057,19 +14047,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= @@ -14282,7 +14265,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= From 665975b4d3d6f15d96472c9a8116c9772ed9fc3b Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 25 Jan 2021 15:01:08 -0500 Subject: [PATCH 023/106] chore: remove unused const --- ui/desktop/config/environment.js | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index 4e6bcbf97..d2fe63834 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -1,7 +1,6 @@ 'use strict'; const APP_NAME = process.env.APP_NAME || 'Boundary'; -const ENABLE_MIRAGE = ('ENABLE_MIRAGE' in process.env) ? process.env.ENABLE_MIRAGE : false; module.exports = function (environment) { let ENV = { From b64bc143fcf8e2a26c8b4c55d21e153392a35249 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 25 Jan 2021 15:35:07 -0500 Subject: [PATCH 024/106] fix: manually set EMBER_CLI_ELECTRON var for prod --- ui/desktop/config/environment.js | 4 +++- ui/desktop/package.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index d2fe63834..21ed99936 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -25,7 +25,9 @@ module.exports = function (environment) { // when it is created }, - isElectron: Boolean(process.env.EMBER_CLI_ELECTRON), + isElectron: process.env.EMBER_CLI_ELECTRON + ? JSON.parse(process.env.EMBER_CLI_ELECTRON) + : false, 'ember-cli-mirage': { //enabled: ENABLE_MIRAGE, diff --git a/ui/desktop/package.json b/ui/desktop/package.json index aa762583e..41efac11f 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -11,7 +11,7 @@ }, "scripts": { "doc:toc": "doctoc README.md", - "build": "ember build --environment=production && yarn build:desktop", + "build": "EMBER_CLI_ELECTRON=true ember build --environment=production && yarn build:desktop", "build:development": "ember build", "prebuild:desktop": "cp -r dist electron-app/ember-dist", "build:desktop": "cd electron-app && yarn make", From 8bc85d41fdf02719e88cd6aa3171c85eada4ba8c Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 25 Jan 2021 16:24:05 -0500 Subject: [PATCH 025/106] chore: Update electron build copy task Use copy onto instead of copy into to ensure desktop ember dist gets copied correctly during electron build --- ui/desktop/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 41efac11f..4d70679c6 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -13,7 +13,7 @@ "doc:toc": "doctoc README.md", "build": "EMBER_CLI_ELECTRON=true ember build --environment=production && yarn build:desktop", "build:development": "ember build", - "prebuild:desktop": "cp -r dist electron-app/ember-dist", + "prebuild:desktop": "cp -r dist/ electron-app/ember-dist/", "build:desktop": "cd electron-app && yarn make", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", "lint:hbs": "ember-template-lint .", From 6a80b840be71814b0e916d7b989edfc33616e326 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 26 Jan 2021 13:36:01 -0500 Subject: [PATCH 026/106] chore: Add macos signing config to match electronjs example --- .../electron-app/config/macos/entitlements.plist | 12 ++++++++++++ ui/desktop/electron-app/package.json | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 ui/desktop/electron-app/config/macos/entitlements.plist diff --git a/ui/desktop/electron-app/config/macos/entitlements.plist b/ui/desktop/electron-app/config/macos/entitlements.plist new file mode 100644 index 000000000..8f574f5fb --- /dev/null +++ b/ui/desktop/electron-app/config/macos/entitlements.plist @@ -0,0 +1,12 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.debugger + + + diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 4ee09e281..66fd2a81a 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -27,7 +27,12 @@ "appVersion": "0.0.1", "appCopyright": "Copyright © 2021 HashiCorp, Inc.", "osxSign": { - "identity": "Developer ID Application: * (*)" + "identity": "Developer ID Application: Hashicorp, Inc. (D38WU7D763)", + "hardenedRuntime": true, + "gatekeeper-assess": false, + "entitlements": "config/macos/entitlements.plist", + "entitlements-inherit": "config/macos/entitlements.plist", + "signature-flags": "library" } }, "makers": [ From 84f9c2febcfaba04f84f22b862498f4f7fcbc494 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 27 Jan 2021 12:16:57 -0500 Subject: [PATCH 027/106] chore: Add env var based signing check for desktop client --- .../electron-app/config/forge.config.js | 38 +++++++++++++++++++ ui/desktop/electron-app/package.json | 29 +------------- 2 files changed, 39 insertions(+), 28 deletions(-) create mode 100644 ui/desktop/electron-app/config/forge.config.js diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js new file mode 100644 index 000000000..2690c6028 --- /dev/null +++ b/ui/desktop/electron-app/config/forge.config.js @@ -0,0 +1,38 @@ +const process = require('process'); + +module.exports = { + hooks: { + prePackage: (forgeConfig) => { + if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { + forgeConfig.osxSign = { + identity: process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY, + hardenedRuntime: true, + "gatekeeper-assess": false, + entitlements: "config/macos/entitlements.plist", + "entitlements-inherit": "config/macos/entitlements.plist", + "signature-flags": "library" + } + } else { + console.warn('Could not find signing identity. Skipping signing.'); + } + } + }, + packagerConfig: { + ignore: [ + "/ember-test(/|$)", + "/tests(/|$)" + ], + name: "Boundary Desktop", + appBundleId: "com.electron.boundary", + appVersion: "0.0.1", + appCopyright: "Copyright © 2021 HashiCorp, Inc." + }, + makers: [ + { + name: "@electron-forge/maker-dmg", + config: { + name: "Boundary Desktop" + } + } + ] +} diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 66fd2a81a..be09b0414 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -16,34 +16,7 @@ }, "keywords": [], "config": { - "forge": { - "packagerConfig": { - "ignore": [ - "/ember-test(/|$)", - "/tests(/|$)" - ], - "name": "Boundary Desktop", - "appBundleId": "com.electron.boundary", - "appVersion": "0.0.1", - "appCopyright": "Copyright © 2021 HashiCorp, Inc.", - "osxSign": { - "identity": "Developer ID Application: Hashicorp, Inc. (D38WU7D763)", - "hardenedRuntime": true, - "gatekeeper-assess": false, - "entitlements": "config/macos/entitlements.plist", - "entitlements-inherit": "config/macos/entitlements.plist", - "signature-flags": "library" - } - }, - "makers": [ - { - "name": "@electron-forge/maker-dmg", - "config": { - "name": "Boundary Desktop" - } - } - ] - } + "forge": "config/forge.config.js" }, "dependencies": { "axios": "^0.21.1", From a83e6dba26163829954b2587dc5e1117dea94296 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 27 Jan 2021 12:21:43 -0500 Subject: [PATCH 028/106] chore: Add signing check to make instead of package --- ui/desktop/electron-app/config/forge.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 2690c6028..23d9ba10a 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -2,7 +2,7 @@ const process = require('process'); module.exports = { hooks: { - prePackage: (forgeConfig) => { + preMake: (forgeConfig) => { if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { forgeConfig.osxSign = { identity: process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY, From 07f092d7c30a8881926bbc84144cc99fc6b5f3a3 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 29 Jan 2021 14:18:03 -0500 Subject: [PATCH 029/106] =?UTF-8?q?fix:=20=F0=9F=90=9B=20fixes=20issue=20w?= =?UTF-8?q?here=20scope=20nav=20is=20empty=20after=20login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/admin/app/routes/scopes/scope.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ui/admin/app/routes/scopes/scope.js b/ui/admin/app/routes/scopes/scope.js index 705c8d168..32c7945c0 100644 --- a/ui/admin/app/routes/scopes/scope.js +++ b/ui/admin/app/routes/scopes/scope.js @@ -67,16 +67,27 @@ export default class ScopesScopeRoute extends Route { this.scope.org = selectedOrg; this.scope.project = selectedProject; this.scopes = { orgs, projects, selectedOrg, selectedProject }; + // Update the controller (if exists), since setupController is only + // called once the first time the route is activated. It is not called + // again on route refreshes. + if (this.controller) this.setControllerProperties(this.scopes); } /** * Adds the scopes hash to the controller context (see `afterModel`). * @param {Controller} controller */ - setupController(controller) { + setupController(/* controller */) { super.setupController(...arguments); - const scopes = this.scopes; - controller.setProperties({ scopes }); + this.setControllerProperties(this.scopes); + } + + /** + * Updates the controller's `scopes`. + * @param {array} scopes + */ + setControllerProperties(scopes) { + this.controller.setProperties({ scopes }); } /** From 2ed8a4beafa7107b1d3744b53bac32171f1c284a Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 29 Jan 2021 14:44:18 -0500 Subject: [PATCH 030/106] =?UTF-8?q?fix:=20=F0=9F=90=9B=20welcome=20auth=20?= =?UTF-8?q?methods=20must=20have=20type=20specified=20in=20link?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/admin/app/templates/scopes/scope/auth-methods/index.hbs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs b/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs index 0d10df1b5..e0c150dfa 100644 --- a/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs +++ b/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs @@ -77,7 +77,9 @@ {{t 'resources.auth-method.messages.welcome.description'}} - + {{t 'titles.new'}} From f922c90a0f4778edb85ec590afd139a071ae2a34 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 29 Jan 2021 15:23:55 -0500 Subject: [PATCH 031/106] refactor: Remove unnecessary global user creation in test --- ui/desktop/tests/unit/authenticators/password-test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/desktop/tests/unit/authenticators/password-test.js b/ui/desktop/tests/unit/authenticators/password-test.js index a7580ef7d..35e872b48 100644 --- a/ui/desktop/tests/unit/authenticators/password-test.js +++ b/ui/desktop/tests/unit/authenticators/password-test.js @@ -44,7 +44,6 @@ module('Unit | Authenticator | password', function (hooks) { const authMethod = { id: 'paum_1234' }; this.server.create('scope', { id: 'global', type: 'global' }); this.server.create('auth-method', { id: authMethod.id, scopeId: 'global' }); - this.server.create('user', { scopeId: 'global' }); await authenticator.authenticate(creds, null, { scope, authMethod }); assert.equal( applicationAdapter.headers.Authorization, From a59658c3af460f27528e929eb427443ba49a4f51 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 29 Jan 2021 15:25:55 -0500 Subject: [PATCH 032/106] chore: Clean yarn install after merge from main --- yarn.lock | 793 +++++++++++++++++++++++++++++------------------------- 1 file changed, 433 insertions(+), 360 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9e7f9ba57..6a1ad53e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1075,9 +1075,9 @@ integrity sha512-Nz2QxdGiYh7nHgRU4R5/v6NDGW+IYv7j7dyQgpjtl4aJzrwHAdoZ0yxz7/YO8bgIOyDJJlF7jbUqjYpPClk9ZQ== "@doyensec/electronegativity@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@doyensec/electronegativity/-/electronegativity-1.7.0.tgz#4d015b74520f5ce20f4d05d049058f744aee9605" - integrity sha512-ZUp8wAWeLdTa1Br20tUzc1v+qsAY7Yg8bqQIT4asuLSjbFzwOF/hA6iMZabhG+KQS6En72MMAppZR7xyP03F1A== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@doyensec/electronegativity/-/electronegativity-1.8.0.tgz#b71f4836318010e3583a0c347d2660ef1e6bc6ef" + integrity sha512-TDil3r1l6mSZMXI8JsWLqY/B77PhoJQ9DeS4PoosL44R+uO+ZoclSg7HBFzGANU9SJ+19X2uwd4R1ufYEQJVfg== dependencies: "@babel/parser" "^7.1.2" "@babel/traverse" "^7.3.4" @@ -1096,8 +1096,8 @@ estraverse-fb "^1.3.2" got "^9.3.0" linenumber "^1.0.0" - lodash "^4.17.15" - mocha "^5.2.0" + lodash "^4.17.20" + mocha "^8.2.1" node-dir "^0.1.17" read-package-tree "^5.3.1" semver "^5.7.0" @@ -1713,10 +1713,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.1.tgz#629324d2bfdc570ed210fec7700ce20bbd872bed" - integrity sha512-io9XhgIpEbc6jSdn4QVnJeFaUzy6gS5fGiIRCUJ7QKqCNp69JS8EJPW8gCtvwz+JQtx2SJvhaMJbzz3rGkTXBA== +"@formatjs/ecma402-abstract@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.2.tgz#6c20c24f814ebf8e9dd46e34310a67895853a931" + integrity sha512-rscxoLyIwH2x+l15Z4eD580ioO3CkFVoWDLgDtgiOnWzDzpL5EigDRg9V4mINb8W6bQRT1xnCxiRwvw3bgvqrA== dependencies: tslib "^2.0.1" @@ -2066,12 +2066,12 @@ integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== "@npmcli/move-file@^1.0.1": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" - integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.1.tgz#31a3afae95308ef12f58ac147b3e33aae621241d" + integrity sha512-LtWTicuF2wp7PNTuyCwABx7nNG+DnzSE8gN0iWxkC6mpgm/iOPu0ZMTkXuCxmJxtWFsDxUaixM9COSNJEMUfuQ== dependencies: mkdirp "^1.0.4" - rimraf "^2.7.1" + rimraf "^3.0.2" "@popperjs/core@^2.5.4": version "2.6.0" @@ -2122,7 +2122,7 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/samsam@^5.3.0": +"@sinonjs/samsam@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== @@ -2137,16 +2137,16 @@ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@storybook/addon-actions@^6.0.26": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.14.tgz#20a173d781d99368a1af769ed75551a3784f3135" - integrity sha512-mXvrL8B34Rtq1WPxbQ1eUip8spqQP43HWGRH0ZmCO3Iwwcmxd6250LY3q+95QqJYsli0XJoOnS97VOLXABpaPg== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.15.tgz#07f6770e419da2ca5398a346d150141951a744e8" + integrity sha512-Mw0wlF3a2OHmI/HyHTbLxRWKCrdRIkKcLHTLptMi/9sOHcPRniwB2jTD1hdzwZrQCPbvvAkYBntVYH0XkNkGEA== dependencies: - "@storybook/addons" "6.1.14" - "@storybook/api" "6.1.14" - "@storybook/client-api" "6.1.14" - "@storybook/components" "6.1.14" - "@storybook/core-events" "6.1.14" - "@storybook/theming" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/theming" "6.1.15" core-js "^3.0.1" fast-deep-equal "^3.1.1" global "^4.3.2" @@ -2160,9 +2160,9 @@ uuid "^8.0.0" "@storybook/addon-docs@^6.0.26": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.14.tgz#fc1feac0e7e8b9c46efcd0b9c1f8ba2d306a9b3b" - integrity sha512-Skj9crqaEEISghobjtu3EKbSTwGVK2e0gTu94WqPL3GOugvGgk7b1VrCgf5fXKcdwbtZktm48CtdmeP5R5U9NQ== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.1.15.tgz#b2c08d0e9d058dc01a10ddd39266630551697ee5" + integrity sha512-SYXqdTVxv2M0XzmB9ybgYrbqVTAu4FEj+0JL3EJUIS7usWlhZmZIBgU4DFBOd5Aojaq1SGd0QJksMS3L1ym/Bg== dependencies: "@babel/core" "^7.12.1" "@babel/generator" "^7.12.1" @@ -2173,18 +2173,18 @@ "@mdx-js/loader" "^1.6.19" "@mdx-js/mdx" "^1.6.19" "@mdx-js/react" "^1.6.19" - "@storybook/addons" "6.1.14" - "@storybook/api" "6.1.14" - "@storybook/client-api" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/components" "6.1.14" - "@storybook/core" "6.1.14" - "@storybook/core-events" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.14" - "@storybook/postinstall" "6.1.14" - "@storybook/source-loader" "6.1.14" - "@storybook/theming" "6.1.14" + "@storybook/node-logger" "6.1.15" + "@storybook/postinstall" "6.1.15" + "@storybook/source-loader" "6.1.15" + "@storybook/theming" "6.1.15" acorn "^7.1.0" acorn-jsx "^5.1.0" acorn-walk "^7.0.0" @@ -2206,17 +2206,17 @@ util-deprecate "^1.0.2" "@storybook/addon-knobs@^6.0.26": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.14.tgz#748a66eff822189c016e7024129637932020bf81" - integrity sha512-Zyd4hWbV8OpsC3Cllmz4kxrGgoSGR6fDjaN1rYTZplUDf0h3dVWPEd/RhI3iU7umE5FqrFuQyadunHwuGXh3OA== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.15.tgz#8f12fd5da15c0a00993dbe837b971a4867339de2" + integrity sha512-eiwav0/9fGrChwAs7yTi13W1mR9g+vYtkQaCKQFF2VIarY9mFH0gKZvLDSs+SH2wyPMp1JOROu8ef39B8Cyj4A== dependencies: - "@storybook/addons" "6.1.14" - "@storybook/api" "6.1.14" - "@storybook/channels" "6.1.14" - "@storybook/client-api" "6.1.14" - "@storybook/components" "6.1.14" - "@storybook/core-events" "6.1.14" - "@storybook/theming" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/theming" "6.1.15" copy-to-clipboard "^3.0.8" core-js "^3.0.1" escape-html "^1.0.3" @@ -2230,35 +2230,35 @@ react-select "^3.0.8" regenerator-runtime "^0.13.7" -"@storybook/addons@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.14.tgz#2b81304bbe696923df95cdcf85cfc592d10f4065" - integrity sha512-HlpmV7aejp/MeW8bo/WKME3i71gi0men9qcwoovjDjnSF6jXoNLT336a5udKXdHqYSZgzdyURlgLtilCWkWaJQ== +"@storybook/addons@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.15.tgz#09eb8d962f58bd20b4ac2f83b515831c83226352" + integrity sha512-ENyHapLFOG93VaoQXPX8O3IWjLRyVBox9C9P20LMruKX/SfXAXx20qsoAWKKPGssopyOin17aoQX9pj+lFmCZQ== dependencies: - "@storybook/api" "6.1.14" - "@storybook/channels" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/core-events" "6.1.14" - "@storybook/router" "6.1.14" - "@storybook/theming" "6.1.14" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/router" "6.1.15" + "@storybook/theming" "6.1.15" core-js "^3.0.1" global "^4.3.2" regenerator-runtime "^0.13.7" -"@storybook/api@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.14.tgz#20035dd336aba1c5a0f8c83c8c14a2edaf4db891" - integrity sha512-gWcC/xEW8HL5DsocLujHBUdoNsl4YW1Zx1Y4SBbLCyrhj8v4JudJpylwJpOUBDe/GESXq1zqvNKvUPtI8DQNyw== +"@storybook/api@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.15.tgz#285ba42f7a8efcd3bd0e586a5e978487d826fbb4" + integrity sha512-C4D08e2ZbSe62nNKtmh9YBraoWb2j6Chw8VCkuj91kuKHh3YDNc1gjj5Fi+KYZwIcy0EllzW3RFQs+YR1/Vg1g== dependencies: "@reach/router" "^1.3.3" - "@storybook/channels" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/core-events" "6.1.14" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/router" "6.1.14" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.14" - "@types/reach__router" "^1.3.5" + "@storybook/theming" "6.1.15" + "@types/reach__router" "^1.3.7" core-js "^3.0.1" fast-deep-equal "^3.1.1" global "^4.3.2" @@ -2270,38 +2270,38 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.14.tgz#41f3115895010dad9fb30f4ac381e4f904b1e50c" - integrity sha512-If83dXXW9mKIRuvuWhWa/zkEw/F0FDgikp33x8436J3rWCh3recp27kffFRrKG0YDMpFSk/Ci5G47E9zn9SCjw== +"@storybook/channel-postmessage@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.15.tgz#80ea2346d18496f9710dd7f87fd2a9eca46ef36f" + integrity sha512-Es4B5zpLrW28KSbY8FhGVEDgUnKspJ7wPuJyKExUpZ5L9w52RkTD6lRnVPzLUfoQ4luPsExy5fiuo878/Wc9ag== dependencies: - "@storybook/channels" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/core-events" "6.1.14" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" core-js "^3.0.1" global "^4.3.2" qs "^6.6.0" telejson "^5.0.2" -"@storybook/channels@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.14.tgz#c479190ebb853a603f3ed90fc470534a02eb46eb" - integrity sha512-vP19IB2FXj8SiFbQ9ETljEBienL+KRMLgMzz3Ta3nZj/OfjJJbIuj42ZfexQGV4mS0Bo+OW+qT7VMIY6fulnFw== +"@storybook/channels@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.15.tgz#22bb06a671a5ae09d2537bcf63aaf90d7f6b9f6b" + integrity sha512-HIKHDeL/0BDk9a7xc2PLiFFoHjUMKUd2djhUGdeKgdKqoWejp4JJ60fI68+2QuSRbkB8k+rAwmuWJzV7EfB5fg== dependencies: core-js "^3.0.1" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.14.tgz#6daf56743cc72e13f05fff3d2ac554897cc9f9fd" - integrity sha512-pIDSlS48bhJdtgNg7sXV1NmLJtB0ebRHJI9htIiqtL7EGQenb4+Bbwflhj1j51OEkuM+bQsAAZxq5deiUQEGVw== +"@storybook/client-api@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.15.tgz#8f8ead111459b94621571bdb2276f8a0aace17b1" + integrity sha512-iwuDlgNdB6Y4OidlhWPob3tEIax9taymdKEe9by4rLJ3nfXu7viHcvCAjN24oI4NFW3NZsmtqJotgftRYk0r1Q== dependencies: - "@storybook/addons" "6.1.14" - "@storybook/channel-postmessage" "6.1.14" - "@storybook/channels" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/core-events" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/channel-postmessage" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" "@types/qs" "^6.9.0" "@types/webpack-env" "^1.15.3" @@ -2316,23 +2316,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.14.tgz#216b9c1332ffa3a3473dad837780a3b14f686bae" - integrity sha512-NSO8nVsp6o0eoQ1Drlu66KXpl6DPuq02Kj8AhttGzvqSYB50SV4CV+wceBcg77tIVu5QmQ+71hAEVXhx7sjRHA== +"@storybook/client-logger@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.15.tgz#b558d6ecbee82c038d684717d8c598eaa4a9324d" + integrity sha512-lUpatG8SxzrUapWMsIPWiR+5qRVT5ebn8tGHQeBeRHXbdmEqyq5DOlrotLUemkA5nNTCs1pMFNvKSpCHznG+fg== dependencies: core-js "^3.0.1" global "^4.3.2" -"@storybook/components@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.14.tgz#4ea47edfa0a3e4a26882aa5a1eb90c1ec86e6f71" - integrity sha512-Nxsp/9o1tqfY8s6RBWNHyM03A5D9k56Kr/4VNa++CbDrz1+TIxpYlDgS4sllUlXyvICLfk3sUtg3KS5CPl2iZA== +"@storybook/components@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.15.tgz#b4a2af23ee6b9cba4c255191eae3d3463e29bfb7" + integrity sha512-lPbA/zyBfctdlpDhRTcRFLWlZPJ3PB4+wI0FUvYs69iG3/bNbQPYu8vRmNhCZOsaGt+b+dik4Tfcth8Bu+eQug== dependencies: "@popperjs/core" "^2.5.4" - "@storybook/client-logger" "6.1.14" + "@storybook/client-logger" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/theming" "6.1.14" + "@storybook/theming" "6.1.15" "@types/overlayscrollbars" "^1.9.0" "@types/react-color" "^3.0.1" "@types/react-syntax-highlighter" "11.0.4" @@ -2350,17 +2350,17 @@ react-textarea-autosize "^8.1.1" ts-dedent "^2.0.0" -"@storybook/core-events@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.14.tgz#a3165e32cefd6be7326bbad4b8140653bdfa0426" - integrity sha512-tpM3VDvzqgRY7S17CRglgt1625rxNoyEwrLQiNcZkUPyO0rpaacPqVEbPCtcTmUeboI1bLdnSQIjT9B0/Y2Pww== +"@storybook/core-events@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.15.tgz#f66e30cbed8afdb8df2254d2aa47fe139e641c60" + integrity sha512-2sz02hdGZshanoq83jaB+goAcapVEWrxe+RJZn/gu2OymlEioWNjPPtOVGgi5DNIiJFnYvc66adayNwX39+tDA== dependencies: core-js "^3.0.1" -"@storybook/core@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.14.tgz#17e724a5b94d6e1bb557e213b8176660d2d14762" - integrity sha512-lHKZmfLAo2VGtF/yrZkkWMYgmFRNKbzIDxYJGp8USyUQyTfEpz2qqJlBdoD6rxr1hFPM2954tIKwh8iPhT2PFQ== +"@storybook/core@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.15.tgz#7ff8c314d3857497bf2e26c69a1fa93ef37301aa" + integrity sha512-mQeKAXcowUwF+pOdWZEFwb5M6sz4yv5cOv1vTci3/1pMmB8QpYlH+P61p4lsRO17Vlak70h18TworPka/4+mhA== dependencies: "@babel/core" "^7.12.3" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2384,20 +2384,20 @@ "@babel/preset-react" "^7.12.1" "@babel/preset-typescript" "^7.12.1" "@babel/register" "^7.12.1" - "@storybook/addons" "6.1.14" - "@storybook/api" "6.1.14" - "@storybook/channel-postmessage" "6.1.14" - "@storybook/channels" "6.1.14" - "@storybook/client-api" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/components" "6.1.14" - "@storybook/core-events" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channel-postmessage" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-api" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.14" - "@storybook/router" "6.1.14" + "@storybook/node-logger" "6.1.15" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.14" - "@storybook/ui" "6.1.14" + "@storybook/theming" "6.1.15" + "@storybook/ui" "6.1.15" "@types/glob-base" "^0.3.0" "@types/micromatch" "^4.0.1" "@types/node-fetch" "^2.5.4" @@ -2482,12 +2482,12 @@ ember-cli-babel "^7.1.2" "@storybook/ember@^6.0.26": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.14.tgz#4675c256f4145799516be08892fa0bd391523ce4" - integrity sha512-X3aBMbbj0fECjo9mJrPQeoUPQ6oUKEg8n73gnDJyofuqbWzXkUHBQKgFfcpuXjpjhWwCtUl3jCMFPycUyU4FBg== + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/ember/-/ember-6.1.15.tgz#032db97640019d8f21506b06b953311883464bfd" + integrity sha512-1djhH/z1JhESxcyFrL8EuUHRD/pg+LZYg97v1OKYSkuKn8PxvnHXaObxK47K4IUY+eEI/PR7VZUJmuZBEZm72A== dependencies: "@ember/test-helpers" "^1.7.0" - "@storybook/core" "6.1.14" + "@storybook/core" "6.1.15" core-js "^3.0.1" global "^4.3.2" react "16.13.1" @@ -2495,10 +2495,10 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/node-logger@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.14.tgz#e5294f986e3ec5c67b2738895b9d16c9a2b667fa" - integrity sha512-3jrw7coAwFXZu4qK1vm54bCPhNRvxjG+7jISbhhocDoNIv0nLWL3+tJyrC5/k/XHQiUlLkhEzpMaASADmkttNw== +"@storybook/node-logger@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.15.tgz#fcf786d3a323feb6821e40e26f98a513a60d1a79" + integrity sha512-lrO0ei3W7BRci2iUkWTr/rXgHkzxwZTrlkx0iBzbQQRy7K1AJ9bjzhurCH9B8C9XGLmn60LXT81RWD3iCLZjcw== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.0.0" @@ -2506,20 +2506,20 @@ npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.14.tgz#ec931739d566bbd3b15b742c32be82701e4910b9" - integrity sha512-A2ytqaoNjZoxmK3kZ2FxeQki6gZugGdPnEMbs8q+EJq7IN3UEbxisdGj6vxKXf/rlyZ1G1t2jSQ4xmkBF8+fZg== +"@storybook/postinstall@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.1.15.tgz#e371d5152100501b1fc45e452c9b11ee4fdf92b0" + integrity sha512-sfQz9hU/WVanLVzhx7gx3TyNWRxrKgbK7Zam2eE4MxgRcAIEJCgrd3nvllExjoPVStttuUFa3p4K94n2TQM9qA== dependencies: core-js "^3.0.1" -"@storybook/router@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.14.tgz#f6aef8c9dabf19bf06dddd80907e66369261fdde" - integrity sha512-rMaUCYzgfVLwFWo3A1Q/weSv8FBqCLmHY+3+t6ao7OV6NYjR0XgLKRzHrXq1uYdbMxWeIKhN2tIt/LR43bmDjQ== +"@storybook/router@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.15.tgz#e0cd7440a2ddc9b265e506b1cb590d3eeab56476" + integrity sha512-HlxDkGpiTSxXCJuqRoZ9Viq6Y/h/7efI8LPhhopr50qWRBTh/PEQzDqWBXG3sj8ISmi9GyUaTSAuqRwdA3lJQQ== dependencies: "@reach/router" "^1.3.3" - "@types/reach__router" "^1.3.5" + "@types/reach__router" "^1.3.7" core-js "^3.0.1" global "^4.3.2" memoizerific "^1.11.3" @@ -2533,13 +2533,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.14.tgz#507ff52cc6627e4d996020de05bf023004230953" - integrity sha512-JY3hJGTJSNmohmDDE3BLE3vPW1rSAIRToq0vpo9ZhFTFUWHm3RlhcS8+5z8Mvn9+TLDuf5WnSib5lfGmCtLmJQ== +"@storybook/source-loader@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.1.15.tgz#21b985ede0ec626c1a4916fc92a58cffca9d6c63" + integrity sha512-ZFmbuvo4sq0jVeWj7Ur1zDq5SCfTxLYuQcV6mAOqUr89dyP778PX9AO1b1/BmipjsHL3JOHN6uHAn74ksB9ofg== dependencies: - "@storybook/addons" "6.1.14" - "@storybook/client-logger" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/client-logger" "6.1.15" "@storybook/csf" "0.0.1" core-js "^3.0.1" estraverse "^4.2.0" @@ -2550,15 +2550,15 @@ regenerator-runtime "^0.13.7" source-map "^0.7.3" -"@storybook/theming@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.14.tgz#fecb66cab22d3b3218b4a98a9c210eb8a7be91e8" - integrity sha512-S+t30y4FqBTXWoVr+dtxVJ/ywiQGHBclBd9aUunbdCV4mMFra5InNo2CWn+RJlNEauLZ93gRIEzSFchIbzLk1A== +"@storybook/theming@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.15.tgz#01083ab89904dd959429b0b3fd1c76bd0ecc59ef" + integrity sha512-88IdYaPzp4NMKf/GKBrPggxD6/d/lkdQ4SNowXxN9g9eONd9M7HtTbjuJGRCbGMJ52xGcbpj2exEnAqKQ2iodA== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.23" - "@storybook/client-logger" "6.1.14" + "@storybook/client-logger" "6.1.15" core-js "^3.0.1" deep-object-diff "^1.1.0" emotion-theming "^10.0.19" @@ -2568,21 +2568,21 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.1.14": - version "6.1.14" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.14.tgz#766d696480ee6f6a5a0454ccb2f101c38a0eb9d2" - integrity sha512-DTW2TM05jTMKxh8LzUGk3g5a528PgJxrtgODFU6zzwSg2+LwdmSDtd1HAxopt2vpfTyQyX+6WN2H+lMNwfQTAQ== +"@storybook/ui@6.1.15": + version "6.1.15" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.15.tgz#a0f6c49fcf81cf172cd2de4c8dba2be1296891f6" + integrity sha512-quyhJWlOxhk95he7s5/TSYM3eEsaz3s4+98kUZE6r3ssME8u6zDvqa/qa6EWs5/nvZ2V3+12efIzCNbiiT3v3g== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.1.14" - "@storybook/api" "6.1.14" - "@storybook/channels" "6.1.14" - "@storybook/client-logger" "6.1.14" - "@storybook/components" "6.1.14" - "@storybook/core-events" "6.1.14" - "@storybook/router" "6.1.14" + "@storybook/addons" "6.1.15" + "@storybook/api" "6.1.15" + "@storybook/channels" "6.1.15" + "@storybook/client-logger" "6.1.15" + "@storybook/components" "6.1.15" + "@storybook/core-events" "6.1.15" + "@storybook/router" "6.1.15" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.14" + "@storybook/theming" "6.1.15" "@types/markdown-to-jsx" "^6.11.0" copy-to-clipboard "^3.0.8" core-js "^3.0.1" @@ -2634,9 +2634,9 @@ defer-to-connect "^2.0.0" "@textlint/ast-node-types@^4.0.3": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz#4fb2f81450c9135191b464c3955ebd3a3a95b4a6" - integrity sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA== + version "4.4.1" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz#715dd42b3ec7ff02729fa81cdc9557fe2cdd4f10" + integrity sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA== "@textlint/markdown-to-ast@~6.0.9": version "6.0.9" @@ -2780,11 +2780,6 @@ dependencies: "@types/unist" "*" -"@types/history@*": - version "4.7.8" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" - integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== - "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -2930,12 +2925,11 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== -"@types/reach__router@^1.3.5": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.6.tgz#413417ce74caab331c70ce6a03a4c825188e4709" - integrity sha512-RHYataCUPQnt+GHoASyRLq6wmZ0n8jWlBW8Lxcwd30NN6vQfbmTeoSDfkgxO0S1lEzArp8OFDsq5KIs7FygjtA== +"@types/reach__router@^1.3.7": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.7.tgz#de8ab374259ae7f7499fc1373b9697a5f3cd6428" + integrity sha512-cyBEb8Ef3SJNH5NYEIDGPoMMmYUxROatuxbICusVRQIqZUB85UCt6R2Ok60tKS/TABJsJYaHyNTW3kqbpxlMjg== dependencies: - "@types/history" "*" "@types/react" "*" "@types/react-color@^3.0.1": @@ -3050,9 +3044,9 @@ integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== "@types/yargs@^15.0.0": - version "15.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.12.tgz#6234ce3e3e3fa32c5db301a170f96a599c960d74" - integrity sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw== + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== dependencies: "@types/yargs-parser" "*" @@ -3071,6 +3065,11 @@ lodash.unescape "4.0.1" semver "5.5.0" +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + 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.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -3476,16 +3475,16 @@ ansi-align@^3.0.0: dependencies: string-width "^3.0.0" +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -4195,9 +4194,9 @@ babel-plugin-debug-macros@^0.2.0, babel-plugin-debug-macros@^0.2.0-beta.6: semver "^5.3.0" babel-plugin-debug-macros@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.3.3.tgz#29c3449d663f61c7385f5b8c72d8015b069a5cb7" - integrity sha512-E+NI8TKpxJDBbVkdWkwHrKgJi696mnRL8XYrOPYw82veNHPDORM9WIQifl6TpIo8PNy2tU2skPqbfkmHXrHKQA== + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.3.4.tgz#22961d0cb851a80654cece807a8b4b73d85c6075" + integrity sha512-wfel/vb3pXfwIDZUrkoDrn5FHmlWI96PCJ3UCDv2a86poJ3EQrnArNW5KfHSVJ9IOgxHbo748cQt7sDU+0KCEw== dependencies: semver "^5.3.0" @@ -6227,6 +6226,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + can-symlink@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/can-symlink/-/can-symlink-1.0.0.tgz#97b607d8a84bb6c6e228b902d864ecb594b9d219" @@ -6245,9 +6249,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001173: - version "1.0.30001179" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz#b0803883b4471a6c62066fb1752756f8afc699c8" - integrity sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA== + version "1.0.30001181" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001181.tgz#4f0e5184e1ea7c3bf2727e735cbe7ca9a451d673" + integrity sha512-m5ul/ARCX50JB8BSNM+oiPmQrR5UmngaQ3QThTTp5HcIIQGP/nPBs82BYLE+tigzm3VW+F4BJIhUyaVtEweelQ== capture-exit@^2.0.0: version "2.0.0" @@ -6371,6 +6375,21 @@ cheerio@^1.0.0-rc.2: parse5 "^6.0.0" parse5-htmlparser2-tree-adapter "^6.0.0" +chokidar@3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.1.2" + "chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" @@ -6783,11 +6802,6 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== - commander@2.8.x: version "2.8.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" @@ -7505,6 +7519,13 @@ debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, d dependencies: ms "2.1.2" +debug@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + dependencies: + ms "2.1.2" + debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -7537,6 +7558,11 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + decimal.js@^10.2.0: version "10.2.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" @@ -7738,12 +7764,7 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.2: +diff@4.0.2, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== @@ -8087,9 +8108,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634: - version "1.3.642" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz#8b884f50296c2ae2a9997f024d0e3e57facc2b94" - integrity sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ== + version "1.3.649" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.649.tgz#3aa8be052d4d268ede45d8e98d0cd60ffefad607" + integrity sha512-ojGDupQ3UMkvPWcTICe4JYe17+o9OLiFMPoduoR72Zp2ILt1mRVeqnxBEd6s/ptekrnsFU+0A4lStfBe/wyG/A== element-resize-detector@^1.2.1: version "1.2.1" @@ -8836,9 +8857,9 @@ ember-decorators-polyfill@^1.1.5: ember-compatibility-helpers "^1.2.0" ember-destroyable-polyfill@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ember-destroyable-polyfill/-/ember-destroyable-polyfill-2.0.2.tgz#2cc7532bd3c00e351b4da9b7fc683f4daff79671" - integrity sha512-9t+ya+9c+FkNM5IAyJIv6ETG8jfZQaUnFCO5SeLlV0wkSw7TOexyb61jh5GVee0KmknfRhrRGGAyT4Y0TwkZ+w== + version "2.0.3" + resolved "https://registry.yarnpkg.com/ember-destroyable-polyfill/-/ember-destroyable-polyfill-2.0.3.tgz#1673ed66609a82268ef270a7d917ebd3647f11e1" + integrity sha512-TovtNqCumzyAiW0/OisSkkVK93xnVF4NRU6+FN0ubpfwEOpRrmM2RqDwXI6YAChCgSHON1cz0DfQStpA1Gjuuw== dependencies: ember-cli-babel "^7.22.1" ember-cli-version-checker "^5.1.1" @@ -9135,9 +9156,9 @@ ember-router-generator@^2.0.0: recast "^0.18.1" ember-simple-auth@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ember-simple-auth/-/ember-simple-auth-3.0.1.tgz#78bcd8e3d04da43154cf105931c0d3620a9f0694" - integrity sha512-7D5s23nA5Nsonf37CyeQtksadV6Rgiz2rgCgRDnUObp3xnV71ljPtaUcZuq6kqqaZANYJi3uM8i4zVzmAHlKFQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/ember-simple-auth/-/ember-simple-auth-3.1.0.tgz#e8abe27f6c3c44f46ebacace57364e82223bab9a" + integrity sha512-JS8NtYAlSftkoQh36Kxps6iLHTP/InIgKt8w21QBHCTqDx07af4aka59GojaBvc+8GubQuGKldk6vvw3R8bwxA== dependencies: base-64 "^0.1.0" broccoli-file-creator "^2.0.0" @@ -9193,9 +9214,9 @@ ember-source@~3.20.2: silent-error "^1.1.1" ember-template-lint@^2.0.1, ember-template-lint@^2.14.0, ember-template-lint@^2.9.1: - version "2.17.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.17.0.tgz#61206ad42f59c3f629a782d459e29437c0cfae21" - integrity sha512-m2X7khUmgJqzC5Bb7wYw08R6N0hwge8/TB8PucEJsFxv2fFrhh2Aec+YdNG7VWsSPFnC0i7O1upBLKcfzO/a6Q== + version "2.18.0" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.18.0.tgz#cba7665c2ff3c34734285768d7bf41cdd08ffb3f" + integrity sha512-4J1Dk2ZaMo/nqtP4QJF+25yYnKNOewE8xopSRNGjgQpNwaUFZmZCtzJtoSJF6+SRLcMDljnewXRezugok4ljug== dependencies: chalk "^4.0.0" ember-template-recast "^5.0.1" @@ -9410,16 +9431,21 @@ entities@^1.1.1, entities@^1.1.2, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0, entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + env-paths@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" @@ -9456,7 +9482,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: +es-abstract@^1.17.0-next.0, es-abstract@^1.17.2: version "1.17.7" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== @@ -9499,16 +9525,16 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-get-iterator@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.1.tgz#b93ddd867af16d5118e00881396533c1c6647ad9" - integrity sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.1" + call-bind "^1.0.2" + get-intrinsic "^1.1.0" has-symbols "^1.0.1" - is-arguments "^1.0.4" - is-map "^2.0.1" - is-set "^2.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" is-string "^1.0.5" isarray "^2.0.5" @@ -9630,21 +9656,21 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - escape-string-regexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + escodegen@^1.12.0, escodegen@^1.14.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -10215,9 +10241,9 @@ fake-xml-http-request@^2.1.1: integrity sha512-Kn2WYYS6cDBS5jq/voOfSGCA0TafOYAUPbEp8mUVpD/DVV5bQIDjlq+MLLvNUokkbTpjBVlLDaM5PnX+PwZMlw== faker@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/faker/-/faker-5.1.0.tgz#e10fa1dec4502551aee0eb771617a7e7b94692e8" - integrity sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/faker/-/faker-5.2.0.tgz#5ee7ca475737eda8cf59c0cbaae5f5068e668dd9" + integrity sha512-UlrF1NNRIdzEPtBcy5l8JTlnXQZdz+4pQc3v2TAVocW39nnczCNQ0g0CBKgPGISJPzA2DqJVN1kdr+FCRFdN5g== fast-deep-equal@^3.1.1: version "3.1.3" @@ -10304,9 +10330,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" - integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== + version "1.10.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" + integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== dependencies: reusify "^1.0.4" @@ -10532,6 +10558,14 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -10554,14 +10588,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-yarn-workspace-root@^1.1.0, find-yarn-workspace-root@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" @@ -10610,9 +10636,9 @@ fixturify-project@^1.10.0: tmp "^0.0.33" fixturify-project@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fixturify-project/-/fixturify-project-2.1.0.tgz#1677be3f116ec3f6b2b2ebb75b393d5860c4668e" - integrity sha512-B59wD4I5HDbokvmZatZTyNIjuSBjZzcZoEYdr9kdG9qRc/FSDjzUzzvHbrZL7oWfu9qsbyJBjzf0R0WC5hIZsA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/fixturify-project/-/fixturify-project-2.1.1.tgz#a511dd26700c6b64ac271ef4393e7124f153c81f" + integrity sha512-sP0gGMTr4iQ8Kdq5Ez0CVJOZOGWqzP5dv/veOTdFNywioKjkNWCHBi1q65DMpcNGUGeoOUWehyji274Q2wRgxA== dependencies: fixturify "^2.1.0" tmp "^0.0.33" @@ -10668,6 +10694,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -10703,9 +10734,9 @@ focus-trap@^5.1.0: xtend "^4.0.1" follow-redirects@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" - integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== + version "1.13.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== for-each@^0.3.3: version "0.3.3" @@ -10994,6 +11025,11 @@ fsevents@^2.1.2, fsevents@~2.3.1: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -11105,10 +11141,10 @@ get-installed-path@^2.0.3: dependencies: global-modules "1.0.0" -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" - integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" + integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -11303,10 +11339,10 @@ 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@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -11315,10 +11351,10 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -11338,18 +11374,6 @@ glob@^5.0.10: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@^7.1.6, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-agent@^2.0.2: version "2.1.12" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" @@ -11902,12 +11926,7 @@ hawk@~3.1.0: hoek "2.x.x" sntp "1.x.x" -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= - -he@^1.2.0: +he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -12004,9 +12023,9 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hosted-git-info@^3.0.2, hosted-git-info@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" - integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== dependencies: lru-cache "^6.0.0" @@ -12525,13 +12544,13 @@ inquirer@^7.0.0, inquirer@^7.0.1: through "^2.3.6" internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: - es-abstract "^1.17.0-next.1" + get-intrinsic "^1.1.0" has "^1.0.3" - side-channel "^1.0.2" + side-channel "^1.0.4" interpret@^1.0.0: version "1.4.0" @@ -12543,21 +12562,21 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -intl-messageformat-parser@6.1.3, intl-messageformat-parser@^6.0.5: - version "6.1.3" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.3.tgz#c333850f66d686eca5c9d87eff1ad46f8721b64d" - integrity sha512-rQTtrVTFy/Z6Lg0ieHkkhdFfi/47BKv1P9+wMWlKWaAxpdDP0FIsp2LRyLPpIVKTwUfL3xf26QT25d69cSkZgQ== +intl-messageformat-parser@6.3.1, intl-messageformat-parser@^6.0.5: + version "6.3.1" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.3.1.tgz#da343ea34ed061db1597e46885d6f5a8febb68e4" + integrity sha512-/aK5zKeNfVO9OEGji6X8y11J0Xse7cQFVJo4YPJwQ/ts85O2J4QQsxXZBh5mMVHvHuKDDdsX+FY4/YTD9bwoNQ== dependencies: - "@formatjs/ecma402-abstract" "1.5.1" + "@formatjs/ecma402-abstract" "1.5.2" tslib "^2.0.1" intl-messageformat@^9.3.6: - version "9.4.3" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.3.tgz#c769923deced44b4c13ad35f84333a20c4f2bf38" - integrity sha512-vTn8gCY5EvHYCYha22QcX4zMSYxkIT8r+3vXeUtvb2udicb7Z+0Ev9p/8hHzcvyrMJk0HPADnkNLVsx8EUfRkg== + version "9.4.6" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.6.tgz#dc447cd338023f7c1ad478bd8c1807691cd4f01b" + integrity sha512-7GSvbRcM2iuWGWoHrvqB/Yu0vvidj3eTbsjFGI9CeYxboPxlmmTGAXGJo9gbOqM5dw6zL0rFFWyMUS1b4yNPMw== dependencies: fast-memoize "^2.5.2" - intl-messageformat-parser "6.1.3" + intl-messageformat-parser "6.3.1" tslib "^2.0.1" into-stream@^3.1.0: @@ -12632,7 +12651,7 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: +is-arguments@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== @@ -12867,7 +12886,7 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= -is-map@^2.0.1: +is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== @@ -12942,7 +12961,7 @@ is-path-inside@^3.0.1: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== -is-plain-obj@2.1.0, is-plain-obj@^2.0.0: +is-plain-obj@2.1.0, is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== @@ -13013,7 +13032,7 @@ is-root@2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-set@^2.0.1: +is-set@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== @@ -13330,6 +13349,14 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= +js-yaml@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.4.2, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -14353,6 +14380,13 @@ lodash@^4.0.0, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +log-symbols@4.0.0, log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" @@ -14360,13 +14394,6 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -15031,11 +15058,6 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - minimist@1.1.x: version "1.1.3" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" @@ -15184,13 +15206,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - mkdirp@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" @@ -15213,22 +15228,36 @@ mktemp@~0.4.0: resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" integrity sha1-bQUVYRyKjITkhKogABKbmOmB/ws= -mocha@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" - integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== +mocha@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39" + integrity sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w== dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" browser-stdout "1.3.1" - commander "2.15.1" - debug "3.1.0" - diff "3.5.0" - escape-string-regexp "1.0.5" - glob "7.1.2" + chokidar "3.4.3" + debug "4.2.0" + diff "4.0.2" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" growl "1.10.5" - he "1.1.1" + he "1.2.0" + js-yaml "3.14.0" + log-symbols "4.0.0" minimatch "3.0.4" - mkdirp "0.5.1" - supports-color "5.4.0" + ms "2.1.2" + nanoid "3.1.12" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "7.2.0" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.0.2" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "2.0.0" morgan@^1.10.0: version "1.10.0" @@ -15303,6 +15332,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nanoid@3.1.12: + version "3.1.12" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" + integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -17927,9 +17961,9 @@ redeyed@~1.0.0: esprima "~3.0.0" refractor@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.0.tgz#42a7d58f14a1d1bcda52a8c66123601a71e5d47d" - integrity sha512-c/jEhQjk1NDyTF3hMgtu8PigaqkWUv+c5+mBffZCTnjyrNSJkG+0eoTOJV/u0XCTuPfaFzJyj6MM4HnF0Wr27Q== + version "3.3.1" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.1.tgz#ebbc04b427ea81dc25ad333f7f67a0b5f4f0be3a" + integrity sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw== dependencies: hastscript "^6.0.0" parse-entities "^2.0.0" @@ -18835,6 +18869,13 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -18961,7 +19002,7 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.2, side-channel@^1.0.3: +side-channel@^1.0.3, side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -18995,13 +19036,13 @@ single-line-log@^1.1.2: string-width "^1.0.1" sinon@^9.2.1: - version "9.2.3" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.2.3.tgz#f68ce414e843e2fd638703043c97f260697caa52" - integrity sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw== + version "9.2.4" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.2.4.tgz#e55af4d3b174a4443a8762fa8421c2976683752b" + integrity sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg== dependencies: "@sinonjs/commons" "^1.8.1" "@sinonjs/fake-timers" "^6.0.1" - "@sinonjs/samsam" "^5.3.0" + "@sinonjs/samsam" "^5.3.1" diff "^4.0.2" nise "^4.0.4" supports-color "^7.1.0" @@ -19433,9 +19474,9 @@ ssri@^7.0.0, ssri@^7.1.0: minipass "^3.1.1" ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" @@ -19731,7 +19772,7 @@ strip-json-comments@3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -19893,12 +19934,12 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -supports-color@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== +supports-color@7.2.0, supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - has-flag "^3.0.0" + has-flag "^4.0.0" supports-color@^2.0.0: version "2.0.0" @@ -19919,13 +19960,6 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -21500,6 +21534,13 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which@2.0.2, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -21507,14 +21548,7 @@ which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: +wide-align@1.1.3, wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== @@ -21576,6 +21610,11 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" +workerpool@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438" + integrity sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q== + workerpool@^2.3.0: version "2.3.3" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.3.3.tgz#49a70089bd55e890d68cc836a19419451d7c81d7" @@ -21790,6 +21829,14 @@ yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^15.0.1: version "15.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" @@ -21825,6 +21872,32 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.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 "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yargs@^11.0.0: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" From c86c5eaecc57a01b6312a343f95b696f85c38f08 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 29 Jan 2021 16:23:56 -0500 Subject: [PATCH 033/106] docs: Add BOUNDARY_DESKTOP_SIGNING_IDENTITY info to readme --- README.md | 3 +++ ui/desktop/README.md | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 732c7491f..af9ca0b99 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,9 @@ yarn install yarn build:ui:desktop ``` +To provide a signing identify for macOS build, use `BOUNDARY_DESKTOP_SIGNING_IDENTITY` +environment variable to set signing certificate name (e.g Developer ID Application: * (*)). + Assets are saved to `ui/desktop/electron-app/out/make/`. DMG packaged desktop UI is available at asset location as `Boundary Desktop.dmg`. diff --git a/ui/desktop/README.md b/ui/desktop/README.md index 45415803a..bd8215112 100644 --- a/ui/desktop/README.md +++ b/ui/desktop/README.md @@ -66,15 +66,17 @@ To run as a desktop app: Before executing a build, be sure to set any environment variables necessary for your target [environment](#environment-variables). To build this UI for -production, run the following commads from this folder: +production, run the following commands from this folder: ```bash yarn install yarn build ``` -The static production assets are saved into the `dist/` folder. +`BOUNDARY_DESKTOP_SIGNING_IDENTITY` environment variable must be provided +to codesign in production. +The static production assets are saved into the `dist/` folder. #### Environment Variables @@ -83,7 +85,7 @@ These environment variables may be used to customized the build. | Variable | Default Value | Description | | -------- | ------------- | ----------- | | `APP_NAME` | Application Name | The user-facing name of the application, appearing in titles, etc. | -| `API_HOST` | | The host of the API, if different than UI (e.g. https://example.net:1234). | +| `BOUNDARY_DESKTOP_SIGNING_IDENTITY` | | The name of the certificate to use when signing (e.g. Developer ID Application: * (*)). | ### Running Tests From f2346e7c10af94fed9de86102c4905a09cf15b37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Jan 2021 22:40:24 +0000 Subject: [PATCH 034/106] chore(deps-dev): bump electron in /ui/desktop/electron-app Bumps [electron](https://github.com/electron/electron) from 10.1.5 to 10.2.0. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v10.1.5...v10.2.0) Signed-off-by: dependabot[bot] --- ui/desktop/electron-app/package.json | 2 +- ui/desktop/electron-app/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index be09b0414..b7525d364 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -29,6 +29,6 @@ "@electron-forge/cli": "6.0.0-beta.53", "@electron-forge/maker-dmg": "^6.0.0-beta.54", "devtron": "^1.4.0", - "electron": "10.1.5" + "electron": "10.2.0" } } diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index 8fc7dfdd3..f45e1a0c4 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -1042,10 +1042,10 @@ electron-squirrel-startup@^1.0.0: dependencies: debug "^2.2.0" -electron@10.1.5: - version "10.1.5" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.5.tgz#f2b161310f627063e73fbac44efcb35dece83a90" - integrity sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ== +electron@10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-10.2.0.tgz#4b00f0907b28aca4b93661bb53ce9a4f8ad32201" + integrity sha512-GBUyq8dwUqXPkCTkoID+eZ5Pm9GFlLUd2eSoGe8UOaHeW68SgCf5t75/uGHraQ1OIz/0qniyH5M4ebWEHGppyQ== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From 3ff4bbb9a77fd20b226b801860d9b61671306fc8 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 29 Jan 2021 17:55:55 -0500 Subject: [PATCH 035/106] chore: look for binary within the app bundle instead of the system path --- ui/desktop/electron-app/src/boundary-cli.js | 6 +++--- ui/desktop/electron-app/src/spawn-promise.js | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 42618b71b..ce740d87c 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -1,7 +1,7 @@ -const { lookpath } = require('lookpath'); +const path = require('path'); const spawnPromise = require('./spawn-promise'); -const cliPath = async () => await lookpath('boundary'); +const cliPath = async () => path.resolve(__dirname, 'binary', 'boundary'); module.exports = { // Find boundary cli path @@ -17,7 +17,7 @@ module.exports = { `-addr=${addr}`, '-format=json', '--output-json-errors' - ] + ]; return spawnPromise(command); } } diff --git a/ui/desktop/electron-app/src/spawn-promise.js b/ui/desktop/electron-app/src/spawn-promise.js index 7daf188e1..1dabe4fea 100644 --- a/ui/desktop/electron-app/src/spawn-promise.js +++ b/ui/desktop/electron-app/src/spawn-promise.js @@ -1,3 +1,4 @@ +const path = require('path'); const { spawn } = require('child_process'); // Convert to json @@ -26,7 +27,10 @@ const jsonify = (data) => { // POJO representation and throw it or promise->reject it. module.exports = function spawnPromise (command) { return new Promise((resolve, reject) => { - const childProcess = spawn('boundary', command); + const boundaryPath = path.resolve(__dirname, 'binary', 'boundary'); + // TODO: remove path logging + console.log(boundaryPath); + const childProcess = spawn(boundaryPath, command); let outputStream = ''; let errorStream = ''; From 86df6fc2c820053953f5f36f93330fea3cdcfbd9 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Sun, 31 Jan 2021 15:21:26 -0500 Subject: [PATCH 036/106] chore: Download and extract boundary artifact into desktoppkg --- .../electron-app/config/forge.config.js | 37 ++++ ui/desktop/electron-app/package.json | 1 + ui/desktop/electron-app/yarn.lock | 162 +++++++++++++++++- 3 files changed, 192 insertions(+), 8 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 23d9ba10a..72e96fa9d 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -1,7 +1,44 @@ const process = require('process'); +const fs = require('fs'); +const path = require('path'); +const https = require('https'); +const decompress = require('decompress'); +const os = require('os'); module.exports = { hooks: { + prePackage: async () => { + const downloadArtifact = (url) => { + return new Promise((resolve, reject) => { + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-desktop-artifact-')) + console.log('\nCreate tmp artifact directory: ', tmpDir); + + const artifactFileName = url.split('/').pop(); + if(!artifactFileName) reject('Could not find artifact filename in: ', url); + + const artifactPath = path.resolve(tmpDir, artifactFileName); + console.log('\nDownload artifact url: ', url); + https.get(url, (response) => { + const stream = response.pipe(fs.createWriteStream(artifactPath)) + stream.on('close', () => resolve(artifactPath)); + stream.on('error', reject); + }); + }); + } + + // Download boundary + let artifactVersion = '0.1.4'; + if (process.env.BOUNDARY_ARTIFACT_VERSION) artifactVersion = process.env.BOUNDARY_ARTIFACT_VERSION; + + const url = `https://releases.hashicorp.com/boundary/${artifactVersion}/boundary_${artifactVersion}_darwin_amd64.zip`; + const artifactPath = await downloadArtifact(url); + + // Extract artifact content + const binaryPath = path.resolve(__dirname, '..', 'ember-dist', 'binary'); + if (!fs.existsSync(binaryPath)) fs.mkdirSync(binaryPath); + console.log('\nExtract artifact to: ', binaryPath); + await decompress(artifactPath, binaryPath); + }, preMake: (forgeConfig) => { if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { forgeConfig.osxSign = { diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index be09b0414..971052c68 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -28,6 +28,7 @@ "devDependencies": { "@electron-forge/cli": "6.0.0-beta.53", "@electron-forge/maker-dmg": "^6.0.0-beta.54", + "decompress": "^4.2.1", "devtron": "^1.4.0", "electron": "10.1.5" } diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index 8fc7dfdd3..2ec3fcd70 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -523,6 +523,14 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + bl@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" @@ -585,7 +593,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer@^5.5.0: +buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -742,6 +750,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -869,6 +882,59 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -1066,7 +1132,7 @@ encodeurl@^1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -1194,6 +1260,21 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + filename-reserved-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" @@ -1273,6 +1354,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -1410,6 +1496,14 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -1527,7 +1621,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: +graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -1744,6 +1838,11 @@ is-my-json-valid@^2.20.0: jsonpointer "^4.0.0" xtend "^4.0.0" +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + is-property@^1.0.0, is-property@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" @@ -2007,6 +2106,13 @@ macos-alias@~0.2.5: dependencies: nan "^2.4.0" +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -2573,7 +2679,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -2739,7 +2845,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5, readable-stream@~2.3.6: +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -2910,7 +3016,7 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -2937,6 +3043,13 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -3154,6 +3267,13 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -3197,6 +3317,19 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + tar@^4: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -3235,7 +3368,7 @@ through2@~0.2.3: readable-stream "~1.1.9" xtend "~2.1.1" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -3254,6 +3387,11 @@ tn1150@^0.1.0: dependencies: unorm "^1.4.1" +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" @@ -3323,6 +3461,14 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -3516,7 +3662,7 @@ yarn-or-npm@^3.0.1: cross-spawn "^6.0.5" pkg-dir "^4.2.0" -yauzl@^2.10.0: +yauzl@^2.10.0, yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= From a07a2f57159036c724d857eac470d72ebb65e461 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Sun, 31 Jan 2021 15:30:52 -0500 Subject: [PATCH 037/106] chore: Update boundary artifact extraction destination folder --- .../electron-app/config/forge.config.js | 2 +- yarn.lock | 63 ++++++++++++------- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 72e96fa9d..bbceb37f3 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -34,7 +34,7 @@ module.exports = { const artifactPath = await downloadArtifact(url); // Extract artifact content - const binaryPath = path.resolve(__dirname, '..', 'ember-dist', 'binary'); + const binaryPath = path.resolve(__dirname, '..', 'src', 'binary'); if (!fs.existsSync(binaryPath)) fs.mkdirSync(binaryPath); console.log('\nExtract artifact to: ', binaryPath); await decompress(artifactPath, binaryPath); diff --git a/yarn.lock b/yarn.lock index ea954d74e..c006ba3d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5887,15 +5887,15 @@ browserslist@^3.2.6: electron-to-chromium "^1.3.47" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1: - version "4.16.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" - integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== dependencies: - caniuse-lite "^1.0.30001173" + caniuse-lite "^1.0.30001181" colorette "^1.2.1" - electron-to-chromium "^1.3.634" + electron-to-chromium "^1.3.649" escalade "^3.1.1" - node-releases "^1.1.69" + node-releases "^1.1.70" bser@2.1.1: version "2.1.1" @@ -6248,7 +6248,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001173: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001181: version "1.0.30001181" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001181.tgz#4f0e5184e1ea7c3bf2727e735cbe7ca9a451d673" integrity sha512-m5ul/ARCX50JB8BSNM+oiPmQrR5UmngaQ3QThTTp5HcIIQGP/nPBs82BYLE+tigzm3VW+F4BJIhUyaVtEweelQ== @@ -7540,7 +7540,7 @@ debug@~4.1.0: 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= @@ -8107,7 +8107,7 @@ electron-rebuild@^2.0.0: tar "^6.0.5" yargs "^16.0.0" -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634: +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.649: version "1.3.649" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.649.tgz#3aa8be052d4d268ede45d8e98d0cd60ffefad607" integrity sha512-ojGDupQ3UMkvPWcTICe4JYe17+o9OLiFMPoduoR72Zp2ILt1mRVeqnxBEd6s/ptekrnsFU+0A4lStfBe/wyG/A== @@ -9846,9 +9846,9 @@ eslint@^6.5.1: v8-compile-cache "^2.0.3" eslint@^7.5.0: - version "7.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" - integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.19.0.tgz#6719621b196b5fad72e43387981314e5d0dc3f41" + integrity sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.3.0" @@ -12357,7 +12357,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= @@ -14058,6 +14058,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" @@ -14066,11 +14071,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" @@ -14080,12 +14090,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= @@ -14298,7 +14315,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= @@ -15537,7 +15554,7 @@ node-pre-gyp@^0.11.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.52, node-releases@^1.1.69: +node-releases@^1.1.52, node-releases@^1.1.70: version "1.1.70" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== @@ -18094,9 +18111,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" regjsparser@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a" - integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ== + version "0.6.7" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" + integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== dependencies: jsesc "~0.5.0" @@ -21620,9 +21637,9 @@ workerpool@^5.0.1: integrity sha512-Sywova24Ow2NQ24JPB68bI89EdqMDjUXo4OpofK/QMD7C2ZVMloYBgQ5J3PChcBJHj2vspsmGx1/3nBKXtUkXQ== workerpool@^6.0.3: - version "6.0.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.4.tgz#f83ecf101b35c034cb20ed38cedd619dde9d722c" - integrity sha512-sAc9w9oAJQ2680gDArGinjw0Ygj2K3KF1ZCRfslBKUCzc9Gycwlj9ZIAbizPRBftcXxhXgoGMVPxJE0VMNnWbw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== wrap-ansi@^2.0.0: version "2.1.0" From 3a38040680f51bce8eaa3ebfebc0aaf6e2bab3ae Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 1 Feb 2021 09:48:21 -0500 Subject: [PATCH 038/106] chore: Do not allow boundary artifact version to be passedin Remove BOUNDARY_ARTIFACT_VERSION env var. Instead, define artifact version in electron forge config to allow trackable version upgrades. --- ui/desktop/electron-app/config/forge.config.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index bbceb37f3..e8cde84b0 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -27,9 +27,7 @@ module.exports = { } // Download boundary - let artifactVersion = '0.1.4'; - if (process.env.BOUNDARY_ARTIFACT_VERSION) artifactVersion = process.env.BOUNDARY_ARTIFACT_VERSION; - + const artifactVersion = '0.1.4'; const url = `https://releases.hashicorp.com/boundary/${artifactVersion}/boundary_${artifactVersion}_darwin_amd64.zip`; const artifactPath = await downloadArtifact(url); From 4e4895fc9f807f3f9f7410f8255100cdb76363dc Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 1 Feb 2021 12:35:02 -0500 Subject: [PATCH 039/106] chore: Move boundary artifact folder to electron-app/cli --- ui/desktop/README.md | 5 +++ ui/desktop/electron-app/.gitignore | 3 ++ ui/desktop/electron-app/config/cli.js | 40 +++++++++++++++++++ .../electron-app/config/forge.config.js | 37 +---------------- ui/desktop/electron-app/package.json | 2 + ui/desktop/electron-app/src/boundary-cli.js | 2 +- ui/desktop/electron-app/src/spawn-promise.js | 2 +- ui/desktop/package.json | 1 + 8 files changed, 54 insertions(+), 38 deletions(-) create mode 100644 ui/desktop/electron-app/config/cli.js diff --git a/ui/desktop/README.md b/ui/desktop/README.md index bd8215112..f3f57ee29 100644 --- a/ui/desktop/README.md +++ b/ui/desktop/README.md @@ -62,6 +62,9 @@ List of available project commands. `yarn run ` To run as a desktop app: * `yarn start:desktop` +The Boundary CLI is downloaded and extracted to `electron-app/cli/` folder as part of +build. CLI version is defined in `electron-app/config/cli.js`. + ### Building for Production Before executing a build, be sure to set any environment variables necessary @@ -77,6 +80,8 @@ yarn build to codesign in production. The static production assets are saved into the `dist/` folder. +The Boundary CLI is downloaded and extracted to `electron-app/cli/` folder as part of +packaging. CLI version is defined in `electron-app/config/cli.js`. #### Environment Variables diff --git a/ui/desktop/electron-app/.gitignore b/ui/desktop/electron-app/.gitignore index b215f5133..9fde06842 100644 --- a/ui/desktop/electron-app/.gitignore +++ b/ui/desktop/electron-app/.gitignore @@ -91,3 +91,6 @@ out/ # Ember build ember-dist/ ember-test/ + +# CLI +cli/ \ No newline at end of file diff --git a/ui/desktop/electron-app/config/cli.js b/ui/desktop/electron-app/config/cli.js new file mode 100644 index 000000000..6f80e957a --- /dev/null +++ b/ui/desktop/electron-app/config/cli.js @@ -0,0 +1,40 @@ +const fs = require('fs'); +const path = require('path'); +const https = require('https'); +const decompress = require('decompress'); +const os = require('os'); + +const artifactVersion = '0.1.4'; +const artifactDestination = path.resolve(__dirname, '..', 'cli'); + +const downloadArtifact = (version) => { + const url = `https://releases.hashicorp.com/boundary/${version}/boundary_${version}_darwin_amd64.zip`; + return new Promise((resolve, reject) => { + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-desktop-artifact-')) + console.log('Create tmp artifact directory: ', tmpDir); + + const artifactFileName = url.split('/').pop(); + if(!artifactFileName) reject('Could not find artifact filename in: ', url); + + const artifactPath = path.resolve(tmpDir, artifactFileName); + console.log('Download artifact url: ', url); + https.get(url, (response) => { + const stream = response.pipe(fs.createWriteStream(artifactPath)) + stream.on('close', () => resolve(artifactPath)); + stream.on('error', reject); + }); + }); +}; + +const extract = (artifactPath, destination) => { + if (!fs.existsSync(destination)) fs.mkdirSync(destination); + console.log('Extract artifact to: ', destination); + return decompress(artifactPath, destination); +}; + +module.exports = { + setup: async () => { + const artifactPath = await downloadArtifact(artifactVersion); + await extract(artifactPath, artifactDestination); + } +} \ No newline at end of file diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index e8cde84b0..0e9faa53c 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -1,42 +1,7 @@ const process = require('process'); -const fs = require('fs'); -const path = require('path'); -const https = require('https'); -const decompress = require('decompress'); -const os = require('os'); module.exports = { hooks: { - prePackage: async () => { - const downloadArtifact = (url) => { - return new Promise((resolve, reject) => { - const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-desktop-artifact-')) - console.log('\nCreate tmp artifact directory: ', tmpDir); - - const artifactFileName = url.split('/').pop(); - if(!artifactFileName) reject('Could not find artifact filename in: ', url); - - const artifactPath = path.resolve(tmpDir, artifactFileName); - console.log('\nDownload artifact url: ', url); - https.get(url, (response) => { - const stream = response.pipe(fs.createWriteStream(artifactPath)) - stream.on('close', () => resolve(artifactPath)); - stream.on('error', reject); - }); - }); - } - - // Download boundary - const artifactVersion = '0.1.4'; - const url = `https://releases.hashicorp.com/boundary/${artifactVersion}/boundary_${artifactVersion}_darwin_amd64.zip`; - const artifactPath = await downloadArtifact(url); - - // Extract artifact content - const binaryPath = path.resolve(__dirname, '..', 'src', 'binary'); - if (!fs.existsSync(binaryPath)) fs.mkdirSync(binaryPath); - console.log('\nExtract artifact to: ', binaryPath); - await decompress(artifactPath, binaryPath); - }, preMake: (forgeConfig) => { if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { forgeConfig.osxSign = { @@ -48,7 +13,7 @@ module.exports = { "signature-flags": "library" } } else { - console.warn('Could not find signing identity. Skipping signing.'); + console.warn('WARNING: Could not find signing identity. Skipping signing.'); } } }, diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 971052c68..b8bb5ebae 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -8,8 +8,10 @@ "author": "HashiCorp", "main": "src/index.js", "scripts": { + "build:cli": "node -e 'require(\"./config/cli.js\").setup()'", "start": "electron-forge start", "package": "electron-forge package", + "premake": "yarn build:cli", "make": "electron-forge make", "publish": "electron-forge publish", "lint": "echo \"No linting configured\"" diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index ce740d87c..d3f0fd332 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -1,7 +1,7 @@ const path = require('path'); const spawnPromise = require('./spawn-promise'); -const cliPath = async () => path.resolve(__dirname, 'binary', 'boundary'); +const cliPath = async () => path.resolve(__dirname, '..', 'cli', 'boundary'); module.exports = { // Find boundary cli path diff --git a/ui/desktop/electron-app/src/spawn-promise.js b/ui/desktop/electron-app/src/spawn-promise.js index 1dabe4fea..2638f653c 100644 --- a/ui/desktop/electron-app/src/spawn-promise.js +++ b/ui/desktop/electron-app/src/spawn-promise.js @@ -27,7 +27,7 @@ const jsonify = (data) => { // POJO representation and throw it or promise->reject it. module.exports = function spawnPromise (command) { return new Promise((resolve, reject) => { - const boundaryPath = path.resolve(__dirname, 'binary', 'boundary'); + const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); // TODO: remove path logging console.log(boundaryPath); const childProcess = spawn(boundaryPath, command); diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 6056db791..06056a0df 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -24,6 +24,7 @@ "format:js": "prettier --write '{app,config,stories,tests,electron-app/src}/**/*.js' *.js", "format:sass": "prettier --write app/**/*.scss", "start": "ember serve", + "prestart:desktop": "cd electron-app && yarn build:cli", "start:desktop": "ember electron", "clean:coverage": "rm -rf coverage_*", "pretest": "yarn clean:coverage", From ab9e73df3ccd6371b97221a2b751ea54652850bc Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 1 Feb 2021 12:38:15 -0500 Subject: [PATCH 040/106] chore: Remove cli path logging in electron-app --- ui/desktop/electron-app/src/spawn-promise.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/ui/desktop/electron-app/src/spawn-promise.js b/ui/desktop/electron-app/src/spawn-promise.js index 2638f653c..b4c04d75a 100644 --- a/ui/desktop/electron-app/src/spawn-promise.js +++ b/ui/desktop/electron-app/src/spawn-promise.js @@ -28,8 +28,6 @@ const jsonify = (data) => { module.exports = function spawnPromise (command) { return new Promise((resolve, reject) => { const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); - // TODO: remove path logging - console.log(boundaryPath); const childProcess = spawn(boundaryPath, command); let outputStream = ''; let errorStream = ''; From 49433bc72d9aed2c2539686f3747ef6a7cad1d8e Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Mon, 1 Feb 2021 15:03:17 -0500 Subject: [PATCH 041/106] chore: bump cli version to 0.1.5 --- ui/desktop/electron-app/config/cli.js | 6 +++--- yarn.lock | 27 +++++---------------------- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/ui/desktop/electron-app/config/cli.js b/ui/desktop/electron-app/config/cli.js index 6f80e957a..27e29e8c7 100644 --- a/ui/desktop/electron-app/config/cli.js +++ b/ui/desktop/electron-app/config/cli.js @@ -4,10 +4,10 @@ const https = require('https'); const decompress = require('decompress'); const os = require('os'); -const artifactVersion = '0.1.4'; +const artifactVersion = '0.1.5'; const artifactDestination = path.resolve(__dirname, '..', 'cli'); -const downloadArtifact = (version) => { +const downloadArtifact = version => { const url = `https://releases.hashicorp.com/boundary/${version}/boundary_${version}_darwin_amd64.zip`; return new Promise((resolve, reject) => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-desktop-artifact-')) @@ -37,4 +37,4 @@ module.exports = { const artifactPath = await downloadArtifact(artifactVersion); await extract(artifactPath, artifactDestination); } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index c006ba3d7..31a9b5a0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7540,7 +7540,7 @@ debug@~4.1.0: 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= @@ -12357,7 +12357,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= @@ -14058,11 +14058,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" @@ -14071,16 +14066,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" @@ -14090,19 +14080,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= @@ -14315,7 +14298,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= From 785c0ef6f307a17c9a123454d8929afc1b2de20c Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 1 Feb 2021 15:29:08 -0500 Subject: [PATCH 042/106] chore: Attach osx sign to packager config correctly --- ui/desktop/electron-app/config/forge.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 23d9ba10a..e82ab964b 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -4,7 +4,7 @@ module.exports = { hooks: { preMake: (forgeConfig) => { if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { - forgeConfig.osxSign = { + forgeConfig.packagerConfig.osxSign = { identity: process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY, hardenedRuntime: true, "gatekeeper-assess": false, From b28fed1f34ea8fac4a2d42569627ff7ca1dbe4c8 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 2 Feb 2021 10:04:28 -0500 Subject: [PATCH 043/106] chore: Use basic electronforge config to view signing errors --- .../electron-app/config/forge.config.js | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index e82ab964b..10fd470ba 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -2,18 +2,9 @@ const process = require('process'); module.exports = { hooks: { - preMake: (forgeConfig) => { - if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { - forgeConfig.packagerConfig.osxSign = { - identity: process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY, - hardenedRuntime: true, - "gatekeeper-assess": false, - entitlements: "config/macos/entitlements.plist", - "entitlements-inherit": "config/macos/entitlements.plist", - "signature-flags": "library" - } - } else { - console.warn('Could not find signing identity. Skipping signing.'); + prePackage: () => { + if (!process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY) { + console.warn('\nWARNING: Could not find signing identity.'); } } }, @@ -25,7 +16,14 @@ module.exports = { name: "Boundary Desktop", appBundleId: "com.electron.boundary", appVersion: "0.0.1", - appCopyright: "Copyright © 2021 HashiCorp, Inc." + appCopyright: "Copyright © 2021 HashiCorp, Inc.", + osxSign: { + identity: process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY, + "hardened-runtime": true, + entitlements: "./config/macos/entitlements.plist", + "entitlements-inherit": "./config/macos/entitlements.plist", + "signature-flags": "library" + } }, makers: [ { From ee3b6db3d55a1f1cb6cee691742e1e1fa2554fd4 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 11:12:55 -0500 Subject: [PATCH 044/106] refactor: spawn promise should support multiple exports --- ui/desktop/electron-app/src/boundary-cli.js | 4 +- ui/desktop/electron-app/src/spawn-promise.js | 47 +++++++++++++------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index d3f0fd332..3ca3ebc9a 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -1,5 +1,5 @@ const path = require('path'); -const spawnPromise = require('./spawn-promise'); +const { spawnAsyncJSONPromise } = require('./spawn-promise'); const cliPath = async () => path.resolve(__dirname, '..', 'cli', 'boundary'); @@ -18,6 +18,6 @@ module.exports = { '-format=json', '--output-json-errors' ]; - return spawnPromise(command); + return spawnAsyncJSONPromise(command); } } diff --git a/ui/desktop/electron-app/src/spawn-promise.js b/ui/desktop/electron-app/src/spawn-promise.js index b4c04d75a..b6661546f 100644 --- a/ui/desktop/electron-app/src/spawn-promise.js +++ b/ui/desktop/electron-app/src/spawn-promise.js @@ -25,23 +25,36 @@ const jsonify = (data) => { // error from the underlying exec implementation. It's not a very // helpful message for users, so it's recommended to craft nice // POJO representation and throw it or promise->reject it. -module.exports = function spawnPromise (command) { - return new Promise((resolve, reject) => { - const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); - const childProcess = spawn(boundaryPath, command); - let outputStream = ''; - let errorStream = ''; +module.exports = { - childProcess.stdout.on('data', (data) => { - outputStream += data.toString(); - const jsonData = jsonify(outputStream); - if(jsonData) resolve(jsonData); - }); + /** + * Spawns an asynchronous child process that is expected to output JSON + * data on either stdout or stderr. The process is allowed to continue + * running after the promise resolves. This function is intended to launch + * the local proxy. + * @param {string} command + * @return {Promise} + */ + spawnAsyncJSONPromise(command) { + return new Promise((resolve, reject) => { + const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); + const childProcess = spawn(boundaryPath, command); + let outputStream = ''; + let errorStream = ''; - childProcess.stderr.on('data', (data) => { - errorStream += data.toString(); - const jsonData = jsonify(errorStream); - if(jsonData) reject(new Error(jsonData?.error)); + childProcess.stdout.on('data', (data) => { + outputStream += data.toString(); + const jsonData = jsonify(outputStream); + if (jsonData) resolve(jsonData); + }); + + childProcess.stderr.on('data', (data) => { + errorStream += data.toString(); + const jsonData = jsonify(errorStream); + const error = jsonData ? jsonData.error : undefined; + if (jsonData) reject(new Error(error)); + }); }); - }); -} + }, + +}; From c40068f211fdd76021105178aa16983560b24969 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 11:34:02 -0500 Subject: [PATCH 045/106] refactor: use cliExists rather than cliPath --- ui/desktop/app/routes/scopes/scope/projects/targets.js | 8 +++----- ui/desktop/electron-app/src/boundary-cli.js | 2 -- ui/desktop/electron-app/src/handlers.js | 5 ----- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index c1da48c1d..9165e112f 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -49,11 +49,9 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { @action async connect(model) { try { - //eslint-disable-next-line no-debugger - debugger; - // Check for cli - const cliPath = await this.ipc.invoke('cliExists'); - if(!cliPath) throw new Error('Cannot find boundary cli.') + // Check for CLI + const cliExists = await this.ipc.invoke('cliExists'); + if (!cliExists) throw new Error('Cannot find Boundary CLI.'); // Create target session const connectionDetails = await this.ipc.invoke('connect', { diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 3ca3ebc9a..01777c5cd 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -4,8 +4,6 @@ const { spawnAsyncJSONPromise } = require('./spawn-promise'); const cliPath = async () => path.resolve(__dirname, '..', 'cli', 'boundary'); module.exports = { - // Find boundary cli path - path: () => cliPath(), // Check boundary cli existence exists: () => Boolean(cliPath()), // Initiate connection and return output diff --git a/ui/desktop/electron-app/src/handlers.js b/ui/desktop/electron-app/src/handlers.js index 8345d3ab3..37ca4a095 100644 --- a/ui/desktop/electron-app/src/handlers.js +++ b/ui/desktop/electron-app/src/handlers.js @@ -22,11 +22,6 @@ handle('setOrigin', async (requestOrigin) => { */ handle('cliExists', () => boundaryCli.exists()); -/** - * Detect boundary cli path - */ -handle('cliPath', () => boundaryCli.path()); - /** * Establishes a boundary session and returns session details. */ From 8e3241d7fd6f00d93056aaa826aed54e94d8290f Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 12:03:50 -0500 Subject: [PATCH 046/106] chore: pull CLI git rev and version into about dialog --- ui/desktop/electron-app/config/forge.config.js | 6 +++++- ui/desktop/electron-app/src/boundary-cli.js | 16 +++++++++++++++- ui/desktop/electron-app/src/spawn-promise.js | 14 ++++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 0e9faa53c..85216c4a4 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -1,4 +1,7 @@ const process = require('process'); +const { version } = require('../src/boundary-cli.js'); + +const formattedCLIVersion = version().formatted; module.exports = { hooks: { @@ -24,7 +27,8 @@ module.exports = { ], name: "Boundary Desktop", appBundleId: "com.electron.boundary", - appVersion: "0.0.1", + // TODO: where should the client version number come from? + appVersion: `1.0.0 ${formattedCLIVersion}`, appCopyright: "Copyright © 2021 HashiCorp, Inc." }, makers: [ diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 01777c5cd..9abbd0ab2 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -1,5 +1,5 @@ const path = require('path'); -const { spawnAsyncJSONPromise } = require('./spawn-promise'); +const { spawnAsyncJSONPromise, spawnSync } = require('./spawn-promise'); const cliPath = async () => path.resolve(__dirname, '..', 'cli', 'boundary'); @@ -17,5 +17,19 @@ module.exports = { '--output-json-errors' ]; return spawnAsyncJSONPromise(command); + }, + // Returns JSON-formatted version information from the CLI + version: () => { + const command = [ '-v' ]; + const rawOutput = spawnSync(command); + let gitRevision = /Git Revision:\s*(?.*)\n/.exec(rawOutput); + let versionNumber = /Version Number:\s*(?.*)\n/.exec(rawOutput); + if (gitRevision) gitRevision = gitRevision.groups.rev; + if (versionNumber) versionNumber = versionNumber.groups.ver; + const formatted = versionNumber + ? `CLI Version ${versionNumber}; Git Rev ${gitRevision}` + : `CLI Git Rev ${gitRevision}`; + return { gitRevision, versionNumber, formatted }; + return rawOutput; } } diff --git a/ui/desktop/electron-app/src/spawn-promise.js b/ui/desktop/electron-app/src/spawn-promise.js index b6661546f..ba08e2685 100644 --- a/ui/desktop/electron-app/src/spawn-promise.js +++ b/ui/desktop/electron-app/src/spawn-promise.js @@ -1,5 +1,7 @@ const path = require('path'); -const { spawn } = require('child_process'); +const { spawn, spawnSync } = require('child_process'); + +const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); // Convert to json const jsonify = (data) => { @@ -37,7 +39,6 @@ module.exports = { */ spawnAsyncJSONPromise(command) { return new Promise((resolve, reject) => { - const boundaryPath = path.resolve(__dirname, '..', 'cli', 'boundary'); const childProcess = spawn(boundaryPath, command); let outputStream = ''; let errorStream = ''; @@ -57,4 +58,13 @@ module.exports = { }); }, + /** + * + */ + spawnSync(command) { + const childProcess = spawnSync(boundaryPath, command); + const rawOutput = childProcess.output.toString(); + return rawOutput; + } + }; From e323f105164eb44d82079ea6810e1514d7749f47 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 12:05:34 -0500 Subject: [PATCH 047/106] chore: clarify git rev is for cli --- ui/desktop/electron-app/src/boundary-cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 9abbd0ab2..76d854345 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -27,7 +27,7 @@ module.exports = { if (gitRevision) gitRevision = gitRevision.groups.rev; if (versionNumber) versionNumber = versionNumber.groups.ver; const formatted = versionNumber - ? `CLI Version ${versionNumber}; Git Rev ${gitRevision}` + ? `CLI Version ${versionNumber}; CLI Git Rev ${gitRevision}` : `CLI Git Rev ${gitRevision}`; return { gitRevision, versionNumber, formatted }; return rawOutput; From 0d2bb33876369cba61c72f0f00f70e5dd85559f2 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 2 Feb 2021 11:47:00 -0500 Subject: [PATCH 048/106] feat: Add /targets/:target_id route --- ui/desktop/app/router.js | 4 ++- .../scopes/scope/projects/targets/target.js | 35 +++++++++++++++++++ .../scope/projects/targets/target/index.js | 4 +++ .../scopes/scope/projects/targets/index.hbs | 7 +++- .../scopes/scope/projects/targets/target.hbs | 17 +++++++++ .../scope/projects/targets/target/-header.hbs | 4 +++ .../projects/targets/target/-navigation.hbs | 5 +++ .../scope/projects/targets/target/index.hbs | 1 + .../scope/projects/targets/target-test.js | 11 ++++++ .../projects/targets/target/index-test.js | 11 ++++++ 10 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 ui/desktop/app/routes/scopes/scope/projects/targets/target.js create mode 100644 ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js create mode 100644 ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs create mode 100644 ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs create mode 100644 ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs create mode 100644 ui/desktop/app/templates/scopes/scope/projects/targets/target/index.hbs create mode 100644 ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target-test.js create mode 100644 ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/index-test.js diff --git a/ui/desktop/app/router.js b/ui/desktop/app/router.js index bcf4938e5..afd04e391 100644 --- a/ui/desktop/app/router.js +++ b/ui/desktop/app/router.js @@ -13,7 +13,9 @@ Router.map(function () { this.route('method', { path: ':auth_method_id' }); }); this.route('projects', function () { - this.route('targets', function () {}); + this.route('targets', function () { + this.route('target', { path: ':target_id' }, function() {}); + }); this.route('sessions', function() {}); }); }); diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js new file mode 100644 index 000000000..5031c8a4a --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js @@ -0,0 +1,35 @@ +import Route from '@ember/routing/route'; + +export default class ScopesScopeProjectsTargetsTargetRoute extends Route { + // =methods + + /** + * Load a target. + * @param {object} params + * @param {string} params.target_id + * @return {TargetModel} + */ + async model({ target_id }) { + return this.store.findRecord('target', target_id, { reload: true }); + } + + /** + * Renders the target-specific templates for header and navigation + * page sections. + * @override + */ + renderTemplate() { + super.renderTemplate(...arguments); + + this.render('scopes/scope/projects/targets/target/-header', { + into: 'scopes/scope/projects/targets/target', + outlet: 'header', + }); + + this.render('scopes/scope/projects/targets/target/-navigation', { + into: 'scopes/scope/projects/targets/target', + outlet: 'navigation', + }); + + } +} diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js new file mode 100644 index 000000000..2199146f8 --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js @@ -0,0 +1,4 @@ +import Route from '@ember/routing/route'; + +export default class ScopesScopeProjectsTargetsTargetIndexRoute extends Route { +} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs index 8c3c463e5..bee6e9d46 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs @@ -21,7 +21,12 @@ {{#each @model as |model|}} - {{model.target.name}} + + {{model.target.displayName}} +

{{model.target.description}}

diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs new file mode 100644 index 000000000..0ca9acc68 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs @@ -0,0 +1,17 @@ +{{page-title @model.displayName}} + + + + + {{outlet "header"}} + + + + {{outlet "navigation"}} + + + + {{outlet}} + + + diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs new file mode 100644 index 000000000..b6ddb6476 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs @@ -0,0 +1,4 @@ +

+ {{model.displayName}} +

+

{{model.description}}

\ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs new file mode 100644 index 000000000..b27314ac2 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs @@ -0,0 +1,5 @@ + + + {{t 'resources.host-set.title_plural'}} + + diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/index.hbs new file mode 100644 index 000000000..c24cd6895 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/index.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target-test.js b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target-test.js new file mode 100644 index 000000000..7794f4aa7 --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/projects/targets/target', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:scopes/scope/projects/targets/target'); + assert.ok(route); + }); +}); diff --git a/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/index-test.js b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/index-test.js new file mode 100644 index 000000000..d097986e4 --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/index-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/projects/targets/target/index', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:scopes/scope/projects/targets/target/index'); + assert.ok(route); + }); +}); From 10e0a3d5a7b71cc979365a41b375432df5d30df0 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 15:42:08 -0500 Subject: [PATCH 049/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20create=20relate?= =?UTF-8?q?d=20sessions=20on=20connect=20in=20dev=20for=20mocks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/mirage/config.js | 3 + addons/api/mirage/scenarios/ipc.js | 76 +++++++++++++++++++ ui/desktop/app/initializers/ipc.js | 52 ------------- .../tests/unit/initializers/ipc-test.js | 28 ------- 4 files changed, 79 insertions(+), 80 deletions(-) create mode 100644 addons/api/mirage/scenarios/ipc.js delete mode 100644 ui/desktop/app/initializers/ipc.js delete mode 100644 ui/desktop/tests/unit/initializers/ipc-test.js diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index bbd5b1637..5ae912f69 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -3,9 +3,12 @@ import config from '../config/environment'; import { authHandler, deauthHandler } from './route-handlers/auth'; import { pickRandomStatusString } from './factories/session'; import { Response } from 'miragejs'; +import initializeMockIPC from './scenarios/ipc'; export default function() { + initializeMockIPC(this); + // make this `http://localhost:8080`, for example, if your API is on a different server // this.urlPrefix = ''; // make this `/api`, for example, if your API is namespaced diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js new file mode 100644 index 000000000..d72a57b32 --- /dev/null +++ b/addons/api/mirage/scenarios/ipc.js @@ -0,0 +1,76 @@ +import Ember from 'ember'; +import config from 'ember-get-config'; +import { random } from 'faker'; + +export default function initializeMockIPC (server) { + /** + * We strive to make this application runnable in a regular web browser, since + * it is a convenient environment for development and testing. But only an + * Electron environment has true IPC. Outside of Electron, we mock the handling + * of the message-based IPC requests originating from the + * renderer (the Ember app). + */ + class MockIPC { + async invoke(method, payload) { + return await this[method](payload); + } + + origin = null; + + getOrigin() { + return this.origin; + } + + setOrigin(origin) { + this.origin = origin; + return this.origin; + } + + cliExists() { + return true; + } + + /** + * Creates a new session instance associated with the specified target. + * @param connect_details + * @param + */ + connect({ target_id }) { + const target = server.schema.targets.find(target_id); + const { scope, type } = target; + const newSession = server.schema.sessions.create({ + scope, + target, + userId: 'authenticateduser', + type, + created_time: new Date().toISOString() + }); + return { + address: `${window.location.protocol}//${window.location.hostname}`, + port: random.number(), + protocol: type, + session_id: newSession.id + }; + } + } + + /** + * Establishes a mock IPC handler, which mimics the behavior of the Electron + * main process, and routes messages to it in a way similar to our + * preload.js script. + * + * Initializes mock IPC only in a non-Electron non-testing context. + */ + if (!config.isElectron && !Ember.testing) { + const mockIPC = new MockIPC(); + window.addEventListener('message', async function (event) { + if (event.origin !== window.location.origin) return; + const { method, payload } = event?.data ?? {}; + if (method) { + const response = await mockIPC.invoke(method, payload); + event.ports[0].postMessage(response); + } + }); + } + +} diff --git a/ui/desktop/app/initializers/ipc.js b/ui/desktop/app/initializers/ipc.js deleted file mode 100644 index 74e9d8545..000000000 --- a/ui/desktop/app/initializers/ipc.js +++ /dev/null @@ -1,52 +0,0 @@ -import Ember from 'ember'; -import config from '../config/environment'; - -/** - * We strive to make this application runnable in a regular web browser, since - * it is a convenient environment for development and testing. But only an - * Electron environment has true IPC. Outside of Electron, we mock the handling - * of the message-based IPC requests originating from the - * renderer (the Ember app). - */ -class MockIPC { - async invoke(method, payload) { - console.log('MockIPC:', method, payload); - return await this[method](payload); - } - - origin = null; - - getOrigin() { - return this.origin; - } - - setOrigin(origin) { - this.origin = origin; - return this.origin; - } - - connect() {} -} - -/** - * Establishes a mock IPC handler, which mimics the behavior of the Electron - * main process, and routes messages to it in a way similar to our - * preload.js script. - * - * Initializes mock IPC only in a non-Electron non-testing context. - */ -export function initialize() { - if (!config.isElectron && !Ember.testing) { - const mockIPC = new MockIPC(); - window.addEventListener('message', async function (event) { - if (event.origin !== window.location.origin) return; - const { method, payload } = event?.data ?? {}; - if (method) { - const response = await mockIPC.invoke(method, payload); - event.ports[0].postMessage(response); - } - }); - } -} - -export default { initialize }; diff --git a/ui/desktop/tests/unit/initializers/ipc-test.js b/ui/desktop/tests/unit/initializers/ipc-test.js deleted file mode 100644 index 6efc5c816..000000000 --- a/ui/desktop/tests/unit/initializers/ipc-test.js +++ /dev/null @@ -1,28 +0,0 @@ -import Application from '@ember/application'; - -import { initialize } from 'desktop/initializers/ipc'; -import { module, test } from 'qunit'; -import { run } from '@ember/runloop'; - -module('Unit | Initializer | ipc', function(hooks) { - hooks.beforeEach(function() { - this.TestApplication = Application.extend(); - 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); - }); -}); From ef7cdac7ab2b406a0f9ab1882236b471393a2ad1 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 16:01:35 -0500 Subject: [PATCH 050/106] chore: mock CLI connect address should be just a hostname --- addons/api/mirage/scenarios/ipc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index d72a57b32..bad3194c8 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -46,7 +46,7 @@ export default function initializeMockIPC (server) { created_time: new Date().toISOString() }); return { - address: `${window.location.protocol}//${window.location.hostname}`, + address: window.location.hostname, port: random.number(), protocol: type, session_id: newSession.id From cbef287a0e24377438fa398119e65a7c84339920 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 17:12:47 -0500 Subject: [PATCH 051/106] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20copyable?= =?UTF-8?q?=20component=20to=20desktop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/translations/form/en-us.yaml | 2 + ui/desktop/app/components/copyable/index.hbs | 30 +++++++ ui/desktop/app/components/copyable/index.js | 78 +++++++++++++++++++ ui/desktop/app/styles/app.scss | 2 +- ui/desktop/package.json | 2 + .../integration/components/copyable-test.js | 17 ++++ yarn.lock | 33 ++++++-- 7 files changed, 155 insertions(+), 9 deletions(-) create mode 100644 ui/desktop/app/components/copyable/index.hbs create mode 100644 ui/desktop/app/components/copyable/index.js create mode 100644 ui/desktop/tests/integration/components/copyable-test.js diff --git a/addons/core/translations/form/en-us.yaml b/addons/core/translations/form/en-us.yaml index 459380e62..dfd2362a4 100644 --- a/addons/core/translations/form/en-us.yaml +++ b/addons/core/translations/form/en-us.yaml @@ -49,3 +49,5 @@ grant_scope: origin: label: Origin URL description: The Boundary URL to which to connect (e.g. protocol://host:port) +proxy: + label: Proxy diff --git a/ui/desktop/app/components/copyable/index.hbs b/ui/desktop/app/components/copyable/index.hbs new file mode 100644 index 000000000..618f3315b --- /dev/null +++ b/ui/desktop/app/components/copyable/index.hbs @@ -0,0 +1,30 @@ + + + {{#if this.copied}} + + {{yield}} + + {{else}} + + {{yield}} + + {{/if}} + + {{#if this.isClipboardLibrarySupported}} + + {{this.actionText}} + + {{/if}} + diff --git a/ui/desktop/app/components/copyable/index.js b/ui/desktop/app/components/copyable/index.js new file mode 100644 index 000000000..17652e911 --- /dev/null +++ b/ui/desktop/app/components/copyable/index.js @@ -0,0 +1,78 @@ +import Component from '@glimmer/component'; +import ClipboardJS from 'clipboard'; +import { action } from '@ember/object'; +import { generateComponentID } from 'rose/utilities/component-auto-id'; +import { task, timeout } from 'ember-concurrency'; +import { tracked } from '@glimmer/tracking'; + +export default class CopyableComponent extends Component { + + // =attributes + + id = generateComponentID(); + copyableButtonId = `copyable-button-${this.id}`; + + actionIcon = 'copy-action'; + successIcon = 'copy-success'; + actionText = this.args.buttonText; + successText = this.args.acknowledgeText; + + @tracked copied = false; + + clipboard = null; + + /** + * A Ember Concurrency-based task that updates copy icon to a success state + * and back after 1 second. This icon flash indicates success on + * copy to clipboard action. + * + * NOTE: tasks are sort of attributes and sort of methods, but they are not + * language-level constructs. Thus we annotate this task as if it + * is an attribute. + * @type {Task} + */ + /* istanbul ignore next */ + @task(function * () { + this.copied = true; + yield timeout(1000); + this.copied = false; + }).drop() confirmCopyTimer; + + /** + * Checks for ClipboardJS support. + * @return {boolean} + */ + get isClipboardLibrarySupported() { + return ClipboardJS.isSupported(); + } + + // =actions + + /** + * Initialize ClipboardJS library and register for it's events. + */ + @action + register() { + this.destroy(); + /* istanbul ignore next */ + this.clipboard = new ClipboardJS(`#${this.copyableButtonId}`, { + text: () => this.args.text, + }); + /* istanbul ignore next */ + this.clipboard.on('success', (clipboardEvent) => { + clipboardEvent.clearSelection(); + this.confirmCopyTimer.perform(); + }); + } + + /** + * Destroy ClipboardJS library instance and cancel icon timer. + */ + @action + destroy() { + this.clipboard?.destroy(); + this.clipboard = null; + this.confirmCopyTimer.cancelAll(); + } + +} diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index 14d7233c2..d361d91f6 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -167,7 +167,7 @@ 0% { background-color: var(--action-subtler-1); } - + 100% { background-color: transparent; } diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 06056a0df..3d865e587 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -36,11 +36,13 @@ "devDependencies": { "@doyensec/electronegativity": "^1.7.0", "@ember/optional-features": "^1.3.0", + "@ember/render-modifiers": "^1.0.2", "@glimmer/component": "^1.0.1", "@glimmer/tracking": "^1.0.0", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "broccoli-asset-rev": "^3.0.0", + "clipboard": "^2.0.6", "core": "*", "doctoc": "^1.4.0", "ember-auto-import": "^1.6.0", diff --git a/ui/desktop/tests/integration/components/copyable-test.js b/ui/desktop/tests/integration/components/copyable-test.js new file mode 100644 index 000000000..f00a0b00a --- /dev/null +++ b/ui/desktop/tests/integration/components/copyable-test.js @@ -0,0 +1,17 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render, find } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; + +module('Integration | Component | copyable', function (hooks) { + setupRenderingTest(hooks); + + test('it renders', async function (assert) { + await render( + hbs`text` + ); + assert.ok(find('.copyable')); + assert.equal(find('.copyable-content').textContent.trim(), 'text'); + assert.equal(find('.copyable-button').textContent.trim(), 'Copy me'); + }); +}); diff --git a/yarn.lock b/yarn.lock index 31a9b5a0d..b4a5c0378 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6249,9 +6249,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001181: - version "1.0.30001181" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001181.tgz#4f0e5184e1ea7c3bf2727e735cbe7ca9a451d673" - integrity sha512-m5ul/ARCX50JB8BSNM+oiPmQrR5UmngaQ3QThTTp5HcIIQGP/nPBs82BYLE+tigzm3VW+F4BJIhUyaVtEweelQ== + version "1.0.30001183" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz#7a57ba9d6584119bb5f2bc76d3cc47ba9356b3e2" + integrity sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw== capture-exit@^2.0.0: version "2.0.0" @@ -7540,7 +7540,7 @@ debug@~4.1.0: 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= @@ -12357,7 +12357,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= @@ -14058,6 +14058,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" @@ -14066,11 +14071,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" @@ -14080,12 +14090,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= @@ -14298,7 +14315,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= From 354d4fd5a6a25e467f1172c94870ae91a23c1a0a Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 2 Feb 2021 17:18:12 -0500 Subject: [PATCH 052/106] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20persist=20proxy?= =?UTF-8?q?=20information=20on=20sessions=20and=20display?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../routes/scopes/scope/projects/targets.js | 7 +++++++ .../scopes/scope/projects/sessions/index.hbs | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index 9165e112f..ee96bf2e2 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -61,7 +61,14 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { }); // 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 }); + + // Associate the connection details with the session + const session = + await this.store.findRecord('session', connectionDetails.session_id); + session.proxy = connectionDetails; + } catch(e) { this.confirm.confirm(e.message, { isConnectError: true }) // Retry diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index d0847dbb3..a9e7b9b75 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -13,6 +13,7 @@ {{t "form.id.label"}} {{t "resources.target.title"}} + {{t "form.proxy.label"}} {{t "form.started.label"}} {{t "form.status.label"}} @@ -28,6 +29,24 @@ {{sessionAggregate.session.id}} {{sessionAggregate.target.displayName}} + + {{!-- + This should also be predicated on the session being active... + inactive sessions should not show this information, + even if it remains on the model instance + --}} + {{#if sessionAggregate.session.proxy}} + + + {{sessionAggregate.session.proxy.address}}:{{sessionAggregate.session.proxy.port}} + + + {{/if}} + From faa90a8be173c8eb3798ff0658789a3ed9eea66e Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 3 Feb 2021 14:39:24 -0500 Subject: [PATCH 055/106] chore: Fix eslint errors --- .../scope/projects/targets/target/hosts.js | 2 +- .../scope/projects/targets/target/-header.hbs | 4 +- .../scope/projects/targets/target/hosts.hbs | 38 +++++++++---------- 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js index bfc76764c..8b23f7025 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js @@ -1,5 +1,5 @@ import Route from '@ember/routing/route'; -import { all, hash } from 'rsvp'; +import { all } from 'rsvp'; import { A } from '@ember/array'; export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route { diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs index b6ddb6476..695e13318 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs @@ -1,4 +1,4 @@

- {{model.displayName}} + {{@model.displayName}}

-

{{model.description}}

\ No newline at end of file +

{{@model.description}}

\ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs index 6cf921efd..a925671d7 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs @@ -1,23 +1,19 @@ {{page-title (t "resources.host-set.title_plural")}} -{{#if @model}} - - - - {{#each @model as |host|}} - - - {{host.displayName}} -

{{host.description}}

-
- {{host.id}} - {{host.attributes.address}} - - {{t (concat 'resources.host.types.' host.type)}} - -
- {{/each}} -
-
- -{{/if}} + + + {{#each @model as |host|}} + + + {{host.displayName}} +

{{host.description}}

+
+ {{host.id}} + {{host.attributes.address}} + + {{t (concat 'resources.host.types.' host.type)}} + +
+ {{/each}} +
+
From f4f0beaca713b6754ba8dc0ae818e5c98254de4e Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 3 Feb 2021 18:40:51 -0500 Subject: [PATCH 056/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20only=20show=20p?= =?UTF-8?q?roxy=20info=20for=20active=20or=20pending=20sessions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scopes/scope/projects/sessions/index.hbs | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index 0c645c93b..f6d0b70e3 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -31,18 +31,26 @@ {{sessionAggregate.target.displayName}} {{!-- - This should also be predicated on the session being active... - inactive sessions should not show this information, - even if it remains on the model instance + Two if's here because: + 1) Local proxy info is only relevant if the session is + active or pending (aka isCancelable). Once the session + is canceled or in the process thereof, the local proxy + may no longer be used. + 2) The session actually has proxy information associated + with it. It's possible for the user to start sessions + from other devices (or even another tab), in which case we + won't have the local proxy info available here. --}} - {{#if sessionAggregate.session.proxy}} - - {{sessionAggregate.session.proxy}} - + {{#if sessionAggregate.session.isCancelable}} + {{#if sessionAggregate.session.proxy}} + + {{sessionAggregate.session.proxy}} + + {{/if}} {{/if}} From fbdae2c532ba7302f95a81e039a5a91b85578613 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 4 Feb 2021 10:49:14 -0500 Subject: [PATCH 057/106] feat: Add /target/sessions route --- addons/core/translations/resources/en-us.yaml | 1 + ui/desktop/app/router.js | 1 + .../routes/scopes/scope/projects/targets/target.js | 7 +++---- .../scopes/scope/projects/targets/target/sessions.js | 12 ++++++++++++ .../scope/projects/targets/target/-navigation.hbs | 3 +++ .../scope/projects/targets/target/sessions.hbs | 1 + .../scope/projects/targets/target/sessions-test.js | 11 +++++++++++ 7 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js create mode 100644 ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs create mode 100644 ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/sessions-test.js diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 7ad5434d1..ff2dce9eb 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -104,6 +104,7 @@ host: session: title: Session title_plural: Sessions + active_plural: Active Sessions description: A session is a connection to a target initiated through Boundary. messages: none: diff --git a/ui/desktop/app/router.js b/ui/desktop/app/router.js index 8e4b8d71e..0af5b7e46 100644 --- a/ui/desktop/app/router.js +++ b/ui/desktop/app/router.js @@ -16,6 +16,7 @@ Router.map(function () { this.route('targets', function () { this.route('target', { path: ':target_id' }, function() { this.route('hosts'); + this.route('sessions'); }); }); this.route('sessions', function() {}); diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js index 29efcc413..3c2be903f 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js @@ -14,11 +14,10 @@ export default class ScopesScopeProjectsTargetsTargetRoute extends Route { } /** - * Navigate to hostsets within a target. - * @param {TargetModel} model + * Navigate to sessions within a target. */ - afterModel(model) { - this.transitionTo('scopes.scope.projects.targets.target.hosts', model); + afterModel() { + this.transitionTo('scopes.scope.projects.targets.target.sessions'); } /** diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js new file mode 100644 index 000000000..2b071e3a7 --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js @@ -0,0 +1,12 @@ +import Route from '@ember/routing/route'; + +export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route { + // =methods + + /** + * Loads all sessions and filter to current target. + * @return {Promise{[SessionModel]}} + */ + async model() { + } +} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs index bac5c17a3..12bfe97f8 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-navigation.hbs @@ -1,4 +1,7 @@ + + {{t 'resources.session.active_plural'}} + {{t 'resources.host.title_plural'}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs new file mode 100644 index 000000000..c24cd6895 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/sessions-test.js b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/sessions-test.js new file mode 100644 index 000000000..2208beec8 --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/projects/targets/target/sessions-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/projects/targets/target/sessions', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:scopes/scope/projects/targets/target/sessions'); + assert.ok(route); + }); +}); From 6fd3a896eaf8468b7b8017b2d0780f84339d42c1 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 4 Feb 2021 10:54:18 -0500 Subject: [PATCH 058/106] refactor: Move /target/hosts redirection into /target/index --- .../app/routes/scopes/scope/projects/targets/target.js | 8 -------- .../routes/scopes/scope/projects/targets/target/index.js | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js index 29efcc413..5031c8a4a 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js @@ -13,14 +13,6 @@ export default class ScopesScopeProjectsTargetsTargetRoute extends Route { return this.store.findRecord('target', target_id, { reload: true }); } - /** - * Navigate to hostsets within a target. - * @param {TargetModel} model - */ - afterModel(model) { - this.transitionTo('scopes.scope.projects.targets.target.hosts', model); - } - /** * Renders the target-specific templates for header and navigation * page sections. diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js index 2199146f8..dca9bcd77 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js @@ -1,4 +1,13 @@ import Route from '@ember/routing/route'; export default class ScopesScopeProjectsTargetsTargetIndexRoute extends Route { + // =methods + + /** + * Navigate to hosts within a target. + */ + afterModel() { + this.transitionTo('scopes.scope.projects.targets.target.hosts'); + } + } From adedc6e3eea8c6a6c83627edd27612564e4a2ef2 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 4 Feb 2021 12:03:57 -0500 Subject: [PATCH 059/106] refactor: Remove EmberArray use in /target/hosts to simplify --- .../scope/projects/targets/target/hosts.js | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js index 8b23f7025..fda131f12 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js @@ -1,6 +1,5 @@ import Route from '@ember/routing/route'; import { all } from 'rsvp'; -import { A } from '@ember/array'; export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route { // =methods @@ -11,25 +10,26 @@ export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route { */ async model() { const { host_sets } = this.modelFor('scopes.scope.projects.targets.target'); - const hostSetsPromises = await all( + // Load all host-sets + const hostSets = await all( host_sets.map(({ host_set_id }) => this.store.findRecord('host-set', host_set_id) ) ); - // Extract host ids from all host set - const hostIds = A(); - hostSetsPromises.map(({ host_ids }) => - host_ids.forEach(({ value }) => hostIds.push(value) ) - ); - - // Fetch all hosts - const hostPromises = await all( - hostIds.uniq().map((hostId) => - this.store.findRecord('host', hostId) - ) + // Extract host ids from all host sets + const hostIds = hostSets.map(({host_ids}) => + host_ids.content.map((hostId) => + hostId.value + ) ) - return all(hostPromises); + // Load unique hosts + const uniqueHostIds = new Set(hostIds.flat()); + return all( + [...uniqueHostIds].map((hostId) => + this.store.findRecord('host', hostId) + ) + ); } } From c90e4fa69a96c829b8550d7c6b1dd640acbc2d33 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 4 Feb 2021 16:18:04 -0500 Subject: [PATCH 060/106] feat: Show active sessions under /target/:target_id route --- .../app/routes/scopes/scope/projects.js | 15 +++++++++ .../routes/scopes/scope/projects/sessions.js | 1 + .../scopes/scope/projects/targets/target.js | 26 +++++++++++++-- .../scope/projects/targets/target/hosts.js | 4 +-- .../scope/projects/targets/target/index.js | 2 +- .../scope/projects/targets/target/sessions.js | 3 +- .../scopes/scope/projects/sessions/index.hbs | 8 +++++ .../scopes/scope/projects/targets/target.hbs | 2 +- .../scope/projects/targets/target/-header.hbs | 4 +-- .../projects/targets/target/sessions.hbs | 33 ++++++++++++++++++- 10 files changed, 87 insertions(+), 11 deletions(-) diff --git a/ui/desktop/app/routes/scopes/scope/projects.js b/ui/desktop/app/routes/scopes/scope/projects.js index fb77550fd..585a35ab6 100644 --- a/ui/desktop/app/routes/scopes/scope/projects.js +++ b/ui/desktop/app/routes/scopes/scope/projects.js @@ -1,5 +1,7 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; +import { action } from '@ember/object'; +import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeProjectsRoute extends Route { // =services @@ -25,4 +27,17 @@ export default class ScopesScopeProjectsRoute extends Route { scope_id: currentScope.id, }); } + + // =actions + + /** + * Cancels the specified session and notifies user of success or error. + * @param {SessionModel} + */ + @action + @notifyError(({ message }) => message, { catch: true }) + @notifySuccess('notifications.canceled-success') + async cancelSession(session) { + await session.cancelSession(); + } } diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/sessions.js index 83baf114b..ee013ee3c 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions.js @@ -99,4 +99,5 @@ export default class ScopesScopeProjectsSessionsRoute extends Route { deactivate() { this.poller.cancelAll(); } + } diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js index 5031c8a4a..45d18cdd6 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js @@ -1,16 +1,36 @@ import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; +import { A } from '@ember/array'; export default class ScopesScopeProjectsTargetsTargetRoute extends Route { + + // =services + + @service session; + // =methods /** - * Load a target. + * Load a target and it's active sessions * @param {object} params * @param {string} params.target_id - * @return {TargetModel} + * @return {{TargetModel, [SessionModel]}} */ async model({ target_id }) { - return this.store.findRecord('target', target_id, { reload: true }); + const userId = this.session.data.authenticated.user_id; + const target = await this.store.findRecord('target', target_id, { reload: true }); + const sessions = await this.store.query('session', { scope_id: target.scopeID }); + + // Filter to current user, current target, and active state + const filteredSessions = sessions.filter( + session => session.user_id === userId && + session.target_id === target.id && + session.isCancelable + ) + // Sort sessions by time created + const sortedSessions = + A(filteredSessions).sortBy('session.created_time').reverse(); + return { target, sessions: sortedSessions }; } /** diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js index fda131f12..349543f4c 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js @@ -9,10 +9,10 @@ export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route { * @return {Promise{[HostModel]}} */ async model() { - const { host_sets } = this.modelFor('scopes.scope.projects.targets.target'); + const { target } = this.modelFor('scopes.scope.projects.targets.target'); // Load all host-sets const hostSets = await all( - host_sets.map(({ host_set_id }) => + target.host_sets.map(({ host_set_id }) => this.store.findRecord('host-set', host_set_id) ) ); diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js index dca9bcd77..0f92ba860 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/index.js @@ -7,7 +7,7 @@ export default class ScopesScopeProjectsTargetsTargetIndexRoute extends Route { * Navigate to hosts within a target. */ afterModel() { - this.transitionTo('scopes.scope.projects.targets.target.hosts'); + this.transitionTo('scopes.scope.projects.targets.target.sessions'); } } diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js index 2b071e3a7..bf3f475f3 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js @@ -4,9 +4,10 @@ export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route // =methods /** - * Loads all sessions and filter to current target. + * Loads all sessions for current target. * @return {Promise{[SessionModel]}} */ async model() { + return this.modelFor('scopes.scope.projects.targets.target').sessions; } } diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index d0847dbb3..21f09f00c 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -15,6 +15,7 @@ {{t "resources.target.title"}} {{t "form.started.label"}} {{t "form.status.label"}} + @@ -36,6 +37,13 @@ {{sessionAggregate.session.status}} + + {{#if sessionAggregate.session.isCancelable}} + + {{t "actions.cancel"}} + + {{/if}} +
{{/each}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs index 0ca9acc68..525892043 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target.hbs @@ -1,4 +1,4 @@ -{{page-title @model.displayName}} +{{page-title @model.target.displayName}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs index 695e13318..41f83d562 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs @@ -1,4 +1,4 @@

- {{@model.displayName}} + {{@model.target.displayName}}

-

{{@model.description}}

\ No newline at end of file +

{{@model.target.description}}

\ No newline at end of file diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index c24cd6895..84571556b 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1 +1,32 @@ -{{outlet}} + + + {{#each @model as |session|}} + + + + {{session.id}} + + {{user.displayName}} + {{target.displayName}} + + + + + {{session.status}} + + + {{#if session.isCancelable}} + + {{t "actions.cancel"}} + + {{/if}} + + + {{/each}} + + From b0f450f8e96632049ab03c10fd31b59284ee279f Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 4 Feb 2021 16:36:43 -0500 Subject: [PATCH 061/106] chore: Fix lint errors --- .../templates/scopes/scope/projects/targets/target/sessions.hbs | 2 -- 1 file changed, 2 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index 84571556b..49a8e2585 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -9,8 +9,6 @@ @size="medium" /> {{session.id}} - {{user.displayName}} - {{target.displayName}}
diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs index bb76d5e56..e2cf73f39 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs @@ -1,32 +1,46 @@ {{page-title (t "resources.host-set.title_plural")}} - - - {{#each @model.hosts as |host|}} - - - {{host.displayName}} -

{{host.description}}

-
- - - {{host.id}} - - - {{host.attributes.address}} - - {{t (concat 'resources.host.types.' host.type)}} - - - - {{t "resources.session.actions.connect"}} - - -
- {{/each}} -
-
+{{#if @model.hosts}} + + + + {{#each @model.hosts as |host|}} + + + {{host.displayName}} +

{{host.description}}

+
+ + + {{host.id}} + + + {{host.attributes.address}} + + {{t (concat 'resources.host.types.' host.type)}} + + + + {{t "resources.session.actions.connect"}} + + +
+ {{/each}} +
+
+ +{{else}} + + + + + {{t "resources.host.messages.none.description"}} + + + + +{{/if}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index 48f10efda..d9edc3900 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1,40 +1,54 @@ - - - {{!-- - TODO: sort these via the controller so that active and pending appear first - similar to the way the sessions routes are sorted. - --}} - {{#each @model.target.sessions as |session|}} - - - - - {{session.id}} - - - - - - - {{session.status}} - - - {{#if session.isCancelable}} - - {{t "actions.cancel"}} - - {{/if}} - - - {{/each}} - - +{{#if @model.target.sessions}} + + + + {{!-- + TODO: sort these via the controller so that active and pending appear first + similar to the way the sessions routes are sorted. + --}} + {{#each @model.target.sessions as |session|}} + + + + + {{session.id}} + + + + + + + {{session.status}} + + + {{#if session.isCancelable}} + + {{t "actions.cancel"}} + + {{/if}} + + + {{/each}} + + + +{{else}} + + + + + {{t "resources.session.messages.none.description"}} + + + + +{{/if}} \ No newline at end of file From 1fd146939f5b9a37b021093c6de25cce8a68ae51 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 9 Feb 2021 23:01:06 -0500 Subject: [PATCH 075/106] fix: Connecting from a target view raises toString error --- .../templates/scopes/scope/projects/targets/target/-actions.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs index b82595c94..e59af9f97 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs @@ -1,3 +1,3 @@ - + {{t "resources.session.actions.connect"}} From 0b8550c136b8d296f432fd329bb70775cd5d88ad Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 10 Feb 2021 13:19:24 -0500 Subject: [PATCH 076/106] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20use=20recrus?= =?UTF-8?q?ive=20listing=20for=20desktop=20queries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and add mock rescursive support for scopes, targets, and sessions --- addons/api/addon/models/session.js | 8 ++++ addons/api/addon/models/target.js | 8 ++++ addons/api/mirage/config.js | 39 +++++++++++++---- .../scopes/scope/projects/sessions/index.js | 27 ++++++++++++ ui/desktop/app/routes/scopes/scope.js | 20 ++++----- .../app/routes/scopes/scope/projects.js | 7 ++-- .../routes/scopes/scope/projects/sessions.js | 42 ++----------------- .../routes/scopes/scope/projects/targets.js | 29 +++---------- .../scopes/scope/projects/sessions/index.hbs | 30 ++++++------- .../scopes/scope/projects/targets/index.hbs | 20 ++++----- .../scope/projects/sessions/index-test.js | 12 ++++++ 11 files changed, 132 insertions(+), 110 deletions(-) create mode 100644 ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js create mode 100644 ui/desktop/tests/unit/controllers/scopes/scope/projects/sessions/index-test.js diff --git a/addons/api/addon/models/session.js b/addons/api/addon/models/session.js index 5ab2e3c39..dd27cd9c6 100644 --- a/addons/api/addon/models/session.js +++ b/addons/api/addon/models/session.js @@ -32,6 +32,14 @@ export default class SessionModel extends GeneratedSessionModel { : null; } + /** + * The target associated with this session (if loaded). + * @type {TargetModel} + */ + get target() { + return this.store.peekRecord('target', this.target_id); + } + // =methods /** diff --git a/addons/api/addon/models/target.js b/addons/api/addon/models/target.js index 8924ffbb4..6c5e1cfe8 100644 --- a/addons/api/addon/models/target.js +++ b/addons/api/addon/models/target.js @@ -45,6 +45,14 @@ export default class TargetModel extends GeneratedTargetModel { .filter(s => s && (s.target_id === this.id)); } + /** + * The project associated with this target (if already loaded). + * @type {ScopeModel} + */ + get project() { + return this.store.peekRecord('scope', this.scopeID); + } + /** * True if any sessions associated with this target are active or pending. * @type {boolean} diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index 5ae912f69..8f6503319 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -23,13 +23,16 @@ export default function() { // Scope resources - this.get('/scopes', ({ scopes }, { queryParams: { scope_id } }) => { + this.get('/scopes', ({ scopes }, { queryParams: { scope_id, recursive } }) => { // Default parent scope is global if (!scope_id) scope_id = 'global'; - const results = scopes.where(scope => { - return scope.scope ? scope.scope.id === scope_id : false - }); - return results; + if (recursive && scope_id === 'global') { + return scopes.all(); + } else { + return scopes.where(scope => { + return scope.scope ? scope.scope.id === scope_id : false + }); + } }); this.post('/scopes', function ({ scopes }) { // Parent scope comes through the payload via `scope_id`, but this needs @@ -287,7 +290,16 @@ export default function() { // target - this.get('/targets', function ({ targets }, { queryParams: { scope_id } }) { + this.get('/targets', function ({ targets }, { queryParams: { scope_id, recursive } }) { + if (recursive && scope_id === 'global') { + return targets.all(); + } else if (recursive) { + return targets.where(target => { + const targetModel = targets.find(target.id); + return (target.scopeId === scope_id) + || (targetModel?.scope?.scope?.id === scope_id) + }); + } return targets.where(target => target.scopeId === scope_id); }); this.post('/targets', function ({ targets }) { @@ -325,7 +337,7 @@ export default function() { // session - this.get('/sessions', function ({ sessions }, { queryParams: { scope_id } }) { + this.get('/sessions', function ({ sessions }, { queryParams: { scope_id, recursive } }) { // To simulate changes to `session.status` that may occur in the backend, // we quietly randomize the value of the field on GET. // To populate sessions for logged in user, @@ -333,7 +345,7 @@ export default function() { // But only if not in testing mode. // In tests, we need deterministic statuses. if (!Ember.testing) { - sessions.where(session => session.scopeId === scope_id) + sessions.all() .models .forEach(session => { session.update({ @@ -344,7 +356,16 @@ export default function() { }); }); } - return sessions.where(session => session.scopeId === scope_id) + if (recursive && scope_id === 'global') { + return sessions.all(); + } else if (recursive) { + return sessions.where(session => { + const sessionModel = sessions.find(session.id); + return (session.scopeId === scope_id) + || (sessionModel?.scope?.scope?.id === scope_id) + }); + } + return sessions.where(session => session.scopeId === scope_id); }); this.get('/sessions/:id', function ({ sessions }, { params: { id } }) { const session = sessions.find(id); diff --git a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js new file mode 100644 index 000000000..dc54b63f0 --- /dev/null +++ b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js @@ -0,0 +1,27 @@ +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; + +export default class ScopesScopeProjectsSessionsIndexController extends Controller { + + // =sessions + + @service session; + + // =attributes + + @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') + get sorted() { + const userId = this.session.data.authenticated.user_id; + const sessions = this.model; + const sortedSessions = sessions + .filter(session => session.user_id === userId) + .sortBy('session.created_time').reverse(); + // Then move active sessions to the top... + return [ + ...sortedSessions.filter((session) => session.isCancelable), + ...sortedSessions.filter((session) => !session.isCancelable), + ]; + } + +} diff --git a/ui/desktop/app/routes/scopes/scope.js b/ui/desktop/app/routes/scopes/scope.js index 914aa2904..14e36f5e1 100644 --- a/ui/desktop/app/routes/scopes/scope.js +++ b/ui/desktop/app/routes/scopes/scope.js @@ -89,14 +89,14 @@ export default class ScopesScopeRoute extends Route { }); } - /** - * In global scope, redirect to first org on authentication. - */ - redirect(model) { - const { isAuthenticated } = this.session; - const { isGlobal } = model; - if (isAuthenticated && isGlobal && this.scopes.orgs?.length) { - this.replaceWith('scopes.scope', this.scopes.orgs.firstObject.id); - } - } + // /** + // * In global scope, redirect to first org on authentication. + // */ + // redirect(model) { + // const { isAuthenticated } = this.session; + // const { isGlobal } = model; + // if (isAuthenticated && isGlobal && this.scopes.orgs?.length) { + // this.replaceWith('scopes.scope', this.scopes.orgs.firstObject.id); + // } + // } } diff --git a/ui/desktop/app/routes/scopes/scope/projects.js b/ui/desktop/app/routes/scopes/scope/projects.js index 0d7ada97c..b1aacf256 100644 --- a/ui/desktop/app/routes/scopes/scope/projects.js +++ b/ui/desktop/app/routes/scopes/scope/projects.js @@ -20,10 +20,9 @@ export default class ScopesScopeProjectsRoute extends Route { * @return {Promise */ model() { - const currentScope = this.modelFor('scopes.scope'); - return this.store.query('scope', { - scope_id: currentScope.id, - }); + return this.store + .query('scope', { recursive: true, scope_id: 'global' }) + .filter(({ isProject }) => isProject); } } diff --git a/ui/desktop/app/routes/scopes/scope/projects/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/sessions.js index 1c0f133ef..149aedb7f 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/sessions.js @@ -1,8 +1,6 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; -import { all, hash } from 'rsvp'; import { task, timeout } from 'ember-concurrency'; -import { A } from '@ember/array'; import config from '../../../../config/environment'; import { action } from '@ember/object'; import { notifySuccess, notifyError } from 'core/decorators/notify'; @@ -49,43 +47,9 @@ export default class ScopesScopeProjectsSessionsRoute extends Route { * @return {Promise{[{session: SessionModel, target: TargetModel}]}} */ async model() { - const projects = this.modelFor('scopes.scope.projects'); - const userId = this.session.data.authenticated.user_id; - let projectSessions = await all( - projects.map(({ id: scope_id }) => - this.store.query('session', { scope_id }) - ) - ); - - // Filter sessions to current user - let sessions = projectSessions.map( - sessions => sessions.filter( - session => session.user_id === userId - ) - ).flat(); - - const sessionAggregates = await all( - sessions.map(session => hash({ - session, - target: session.target_id - ? ( - this.store.peekRecord('target', session.target_id) || - this.store.findRecord('target', session.target_id) - ) - : null, - })) - ); - - // Sort sessions by time created... - let sortedSessionAggregates = - A(sessionAggregates).sortBy('session.created_time').reverse(); - // Then move active sessions to the top... - sortedSessionAggregates = [ - ...sortedSessionAggregates.filter((aggregate) => aggregate.session.status === 'active'), - ...sortedSessionAggregates.filter((aggregate) => aggregate.session.status !== 'active'), - ]; - - return sortedSessionAggregates; + const { id: scope_id } = this.modelFor('scopes.scope'); + await this.store.query('target', { recursive: true, scope_id }); + return await this.store.query('session', { recursive: true, scope_id }); } /** diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index f02dd4f0f..32a804074 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -1,6 +1,5 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; -import { all } from 'rsvp'; import { action } from '@ember/object'; import { task, timeout } from 'ember-concurrency'; import { later } from '@ember/runloop'; @@ -33,7 +32,7 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { @task(function * () { while(true) { yield timeout(POLL_TIMEOUT_SECONDS * 1000); - yield this.refreshSessions(); + //yield this.refreshSessions(); } }).drop() poller; @@ -51,20 +50,9 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { * @return {Promise{[TargetModel]}} */ async model() { - const projects = this.modelFor('scopes.scope.projects'); - let projectTargets = await all( - projects.map(({ id: scope_id }) => - this.store.query('target', { scope_id }) - ) - ); - let targets = projectTargets.map((target) => target.toArray()).flat(); + const { id: scope_id } = this.modelFor('scopes.scope'); await this.refreshSessions(); - return targets.map((target) => { - return { - target, - project: this.store.peekRecord('scope', target.scopeID), - }; - }); + return this.store.query('target', { recursive: true, scope_id }); } /** @@ -73,13 +61,8 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { * TODO: query only for sessions associated with the current user. */ async refreshSessions() { - const projects = this.modelFor('scopes.scope.projects'); - //const userId = this.session.data.authenticated.user_id; - await all( - projects.map(({ id: scope_id }) => - this.store.query('session', { scope_id }) - ) - ); + const { id: scope_id } = this.modelFor('scopes.scope'); + await this.store.query('session', { recursive: true, scope_id }); } /** @@ -115,7 +98,7 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { target_id: model.id, token: this.session.data.authenticated.token }; - + if (host) options.host_id = host.id; // Create target session diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index 35c53bb63..3f6dccb72 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -6,7 +6,7 @@ - {{#if @model}} + {{#if this.sorted}} @@ -20,22 +20,22 @@ - {{#each @model as |sessionAggregate|}} + {{#each this.sorted as |model|}} - {{sessionAggregate.session.id}} + {{model.id}} - {{sessionAggregate.target.displayName}} + {{model.target.displayName}} {{!-- Two if's here because: @@ -48,29 +48,29 @@ from other devices (or even another tab), in which case we won't have the local proxy info available here. --}} - {{#if sessionAggregate.session.isCancelable}} - {{#if sessionAggregate.session.proxy}} + {{#if model.isCancelable}} + {{#if model.proxy}} - {{sessionAggregate.session.proxy}} + {{model.proxy}} {{/if}} {{/if}} - - {{sessionAggregate.session.status}} + {{model.status}} - {{#if sessionAggregate.session.isCancelable}} - + {{#if model.isCancelable}} + {{t "actions.cancel"}} {{/if}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs index b816ced05..61f61178c 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs @@ -22,32 +22,32 @@ - {{model.target.displayName}} + {{model.displayName}} -

{{model.target.description}}

+

{{model.description}}

- {{model.target.id}} + {{model.id}} - {{#if model.target.type}} + {{#if model.type}} - {{t (concat "resources.target.types." model.target.type)}} + {{t (concat "resources.target.types." model.type)}} {{/if}} @@ -66,7 +66,7 @@
- + {{t "resources.session.actions.connect"}} diff --git a/ui/desktop/tests/unit/controllers/scopes/scope/projects/sessions/index-test.js b/ui/desktop/tests/unit/controllers/scopes/scope/projects/sessions/index-test.js new file mode 100644 index 000000000..1a9f45f78 --- /dev/null +++ b/ui/desktop/tests/unit/controllers/scopes/scope/projects/sessions/index-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | scopes/scope/projects/sessions/index', function(hooks) { + setupTest(hooks); + + // TODO: Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:scopes/scope/projects/sessions/index'); + assert.ok(controller); + }); +}); From 6c4863efc72ca632016e255aa9b231ffefb848bf Mon Sep 17 00:00:00 2001 From: 99 Date: Wed, 10 Feb 2021 11:59:07 -0800 Subject: [PATCH 077/106] Add desktop release trigger --- .github/workflows/ui-release-trigger.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/ui-release-trigger.yml diff --git a/.github/workflows/ui-release-trigger.yml b/.github/workflows/ui-release-trigger.yml new file mode 100644 index 000000000..3f352ae87 --- /dev/null +++ b/.github/workflows/ui-release-trigger.yml @@ -0,0 +1,20 @@ +name: "Trigger Boundary UI release" + +on: + push: + tags: + - '*' + +jobs: + trigger-circleci-release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + - name: Trigger Release job + env: + TAG: ${{ github.event.release.tag_name }} + run: | + curl -u ${{ secrets.CIRCLE_CI_TOKEN }}: -X POST --header "Content-Type: application/json" \ + -d '{ "branch": "main", "parameters": {"TAG": "${TAG}" }}' \ + https://circleci.com/api/v2/project/github/hashicorp/boundary-ui-releases/pipeline \ No newline at end of file From 3f3e21e60c92b09404879504d2cd72a7e104d498 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 10 Feb 2021 16:19:29 -0500 Subject: [PATCH 078/106] refactor: Sort and filter active sessions in a target --- .../scope/projects/targets/target/sessions.js | 36 +++++++++++++++++++ .../scopes/scope/projects/targets/target.js | 27 +++----------- .../scope/projects/targets/target/hosts.js | 2 +- .../scope/projects/targets/target/sessions.js | 10 ++++++ .../projects/targets/target/-actions.hbs | 2 +- .../scope/projects/targets/target/-header.hbs | 10 +++--- .../projects/targets/target/sessions.hbs | 6 +--- .../projects/targets/target/sessions-test.js | 12 +++++++ 8 files changed, 70 insertions(+), 35 deletions(-) create mode 100644 ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js create mode 100644 ui/desktop/tests/unit/controllers/scopes/scope/projects/targets/target/sessions-test.js diff --git a/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js new file mode 100644 index 000000000..dfab20739 --- /dev/null +++ b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js @@ -0,0 +1,36 @@ +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import { A } from '@ember/array'; + +export default class ScopesScopeProjectsTargetsTargetSessionsController extends Controller { + // =services + + @service session; + + /** + * Sort and filter to active sessions of current user + * @param {[SessionModel]} model + * @param {object} session + * @type {[SessionModel]} + */ + @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') + get selfActiveSessions() { + const sessions = this.model; + const userId = this.session.data.authenticated.user_id; + const filteredSessions = + sessions.filter(session => + session.isCancelable && + session.user_id === userId + ); + + // Sort sessions + const sortedSessions = A(filteredSessions).sortBy('created_time').reverse(); + + // Move active sessions to top + return [ + ...sortedSessions.filter(session => session.isActive), + ...sortedSessions.filter(session => !session.isActive) + ] + } +} diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js index 0bcdbd2ec..3cf2343fe 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target.js @@ -1,36 +1,17 @@ import Route from '@ember/routing/route'; -import { inject as service } from '@ember/service'; -import { A } from '@ember/array'; export default class ScopesScopeProjectsTargetsTargetRoute extends Route { - // =services - - @service session; - // =methods /** - * Load a target and it's active sessions + * Load a target * @param {object} params * @param {string} params.target_id - * @return {{TargetModel, [SessionModel]}} + * @return {TargetModel} */ - async model({ target_id }) { - const userId = this.session.data.authenticated.user_id; - const target = await this.store.findRecord('target', target_id, { reload: true }); - const sessions = await this.store.query('session', { scope_id: target.scopeID }); - - // Filter to current user, current target, and active state - const filteredSessions = sessions.filter( - session => session.user_id === userId && - session.target_id === target.id && - session.isCancelable - ) - // Sort sessions by time created - const sortedSessions = - A(filteredSessions).sortBy('session.created_time').reverse(); - return { target, sessions: sortedSessions }; + model({ target_id }) { + return this.store.findRecord('target', target_id, { reload: true }); } /** diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js index 0362726f5..ef2f5a8ab 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/hosts.js @@ -18,7 +18,7 @@ export default class ScopesScopeProjectsTargetsTargetHostsRoute extends Route { * @return {Promise{[HostModel]}} */ async model() { - const { target } = this.modelFor('scopes.scope.projects.targets.target'); + const target = this.modelFor('scopes.scope.projects.targets.target'); // Load all host-sets const hostSets = await all( target.host_sets.map(({ host_set_id }) => diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js index 4f0281e2f..203b74d62 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js @@ -3,6 +3,16 @@ import { action } from '@ember/object'; import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route { + + // =methods + + /** + * @return {[SessionModel]} + */ + model() { + return this.modelFor('scopes.scope.projects.targets.target').sessions; + } + // =actions /** diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs index e59af9f97..b82595c94 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-actions.hbs @@ -1,3 +1,3 @@ - + {{t "resources.session.actions.connect"}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs index 8677dadd4..938169518 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/-header.hbs @@ -1,18 +1,18 @@

- {{@model.target.displayName}} - {{#if @model.target.isActive}} + {{@model.displayName}} + {{#if @model.isActive}} {{t "states.active"}} {{/if}}

-

{{@model.target.description}}

+

{{@model.description}}

- {{@model.target.id}} + {{@model.id}}

diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index e273d7058..008e5dfb0 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1,10 +1,6 @@ - {{!-- - TODO: sort these via the controller so that active and pending appear first - similar to the way the sessions routes are sorted. - --}} - {{#each @model.target.sessions as |session|}} + {{#each this.selfActiveSessions as |session|}} Date: Wed, 10 Feb 2021 16:32:24 -0500 Subject: [PATCH 079/106] chore: Add missing origin validation message --- addons/core/translations/errors/en-us.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/core/translations/errors/en-us.yaml b/addons/core/translations/errors/en-us.yaml index 0e2239e72..a151a4ba9 100644 --- a/addons/core/translations/errors/en-us.yaml +++ b/addons/core/translations/errors/en-us.yaml @@ -17,3 +17,5 @@ generic: title: Error authentication-failed: title: Authentication Failed +origin-verification-failed: + description: Could not validate the provided origin URL as Boundary URL. Please check origin URL and try again. From f31cd4315b32538fa69b798b04435ec74ede82bc Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 10 Feb 2021 21:26:30 -0500 Subject: [PATCH 080/106] style: Fix auth border expanding to bottom of screen --- .../templates/scopes/scope/authenticate.hbs | 105 ++++++++---------- 1 file changed, 49 insertions(+), 56 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/authenticate.hbs b/ui/desktop/app/templates/scopes/scope/authenticate.hbs index b01ed3a31..3d7d834bd 100644 --- a/ui/desktop/app/templates/scopes/scope/authenticate.hbs +++ b/ui/desktop/app/templates/scopes/scope/authenticate.hbs @@ -1,65 +1,58 @@ {{page-title (t "actions.authenticate")}} -{{!-- - -Change --}} - +
+ - - - {{t "titles.global"}} - - {{#each this.sortedScopes as |scope|}} - - {{scope.displayName}} + + + {{t "titles.global"}} - {{/each}} - + {{#each this.sortedScopes as |scope|}} + + {{scope.displayName}} + + {{/each}} + - - {{#each @model.authMethods as |authMethod|}} - - {{t (concat "resources.auth-method.types." authMethod.type)}} - - {{/each}} - + + {{#each @model.authMethods as |authMethod|}} + + {{t (concat "resources.auth-method.types." authMethod.type)}} + + {{/each}} + - {{#if @model.authMethods}} - {{outlet}} + {{#if @model.authMethods}} + {{outlet}} -

- {{t "origin.connected-to"}}: - {{this.origin}} -
- - {{t "actions.change-origin"}} - -

+

+ {{t "origin.connected-to"}}: + {{this.origin}} +
+ + {{t "actions.change-origin"}} + +

- {{/if}} - {{#unless @model.authMethods}} - - - - {{t "resources.auth-method.messages.none.description"}} - - - - {{/unless}} + {{/if}} + {{#unless @model.authMethods}} + + + + {{t "resources.auth-method.messages.none.description"}} + + + + {{/unless}} -
+ +
From 40cb386cfd3cf82e0403fdca9d9d8b389047e556 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 10 Feb 2021 21:49:33 -0500 Subject: [PATCH 081/106] chore: Add friendly tag to desktop info messages Adding a friendly tag to translation file properties helps maintain the current structure while adding non-administrative language to info messages. --- addons/core/translations/resources/en-us.yaml | 9 +++++++++ .../templates/scopes/scope/projects/sessions/index.hbs | 4 ++-- .../scopes/scope/projects/targets/target/hosts.hbs | 4 ++-- .../scopes/scope/projects/targets/target/sessions.hbs | 4 ++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 55b547d0b..e670a70d7 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -95,6 +95,9 @@ host: none: title: No Hosts description: No hosts available in this scope. + none-friendly: + title: No Hosts Available + description: No hosts available to display yet. actions: add: Add Host create: New Host @@ -110,6 +113,12 @@ session: none: title: No Sessions description: There are no active sessions within the current scope. + none-friendly: + title: No Sessions Available + description: No sessions available to display yet. + none-active-friendly: + title: No Active Sessions Available + description: No active sessions available to display yet. actions: connect: Connect org: diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index 35c53bb63..4c124cc24 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -83,9 +83,9 @@ {{else}} - + - {{t "resources.session.messages.none.description"}} + {{t "resources.session.messages.none-friendly.description"}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs index e2cf73f39..92ae3eebe 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/hosts.hbs @@ -36,9 +36,9 @@ {{else}} - + - {{t "resources.host.messages.none.description"}} + {{t "resources.host.messages.none-friendly.description"}} diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index d9edc3900..0c8095880 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -44,9 +44,9 @@ {{else}} - + - {{t "resources.session.messages.none.description"}} + {{t "resources.session.messages.none-active-friendly.description"}} From 34511f1a0123ffa0a257fae0f8da699e24d2465c Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 10 Feb 2021 23:12:15 -0500 Subject: [PATCH 082/106] chore: Remove spaces from dmg filename --- ui/desktop/electron-app/config/forge.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 2c7b5f4a6..612c4d733 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -34,7 +34,8 @@ module.exports = { { name: "@electron-forge/maker-dmg", config: { - name: "Boundary Desktop" + name: "boundary-desktop", + title: "Boundary Desktop" } } ] From 8ab7785915c22ca8495611b0a91b64b100eaf798 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 11 Feb 2021 09:08:32 -0500 Subject: [PATCH 083/106] refactor: Wordsmith origin error message --- addons/core/translations/errors/en-us.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/core/translations/errors/en-us.yaml b/addons/core/translations/errors/en-us.yaml index a151a4ba9..c814611d0 100644 --- a/addons/core/translations/errors/en-us.yaml +++ b/addons/core/translations/errors/en-us.yaml @@ -18,4 +18,4 @@ generic: authentication-failed: title: Authentication Failed origin-verification-failed: - description: Could not validate the provided origin URL as Boundary URL. Please check origin URL and try again. + description: Unable to connect to the specified origin. Please check the URL and try again. From 8e43f3aef614080c4716246fb9d11f71b77d6513 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 10:44:48 -0500 Subject: [PATCH 084/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20PR=20feedback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scopes/scope/projects/sessions/index.js | 10 +++++++++- ui/desktop/app/routes/scopes/scope.js | 11 ----------- ui/desktop/app/routes/scopes/scope/projects.js | 18 ++++++++++++++++-- .../routes/scopes/scope/projects/targets.js | 2 +- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js index dc54b63f0..babe28f5f 100644 --- a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js +++ b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js @@ -10,16 +10,24 @@ export default class ScopesScopeProjectsSessionsIndexController extends Controll // =attributes + /** + * A list of sessions filtered to the current user and sorted by created time, + * and active/pending. + * @type {SessionModel[]} + */ @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') get sorted() { const userId = this.session.data.authenticated.user_id; const sessions = this.model; const sortedSessions = sessions + // filter sessions by current user .filter(session => session.user_id === userId) + // sort by created time .sortBy('session.created_time').reverse(); - // Then move active sessions to the top... return [ + // then move active sessions to the top ...sortedSessions.filter((session) => session.isCancelable), + // and all others to the end ...sortedSessions.filter((session) => !session.isCancelable), ]; } diff --git a/ui/desktop/app/routes/scopes/scope.js b/ui/desktop/app/routes/scopes/scope.js index 14e36f5e1..a0b817037 100644 --- a/ui/desktop/app/routes/scopes/scope.js +++ b/ui/desktop/app/routes/scopes/scope.js @@ -88,15 +88,4 @@ export default class ScopesScopeRoute extends Route { outlet: 'header-nav', }); } - - // /** - // * In global scope, redirect to first org on authentication. - // */ - // redirect(model) { - // const { isAuthenticated } = this.session; - // const { isGlobal } = model; - // if (isAuthenticated && isGlobal && this.scopes.orgs?.length) { - // this.replaceWith('scopes.scope', this.scopes.orgs.firstObject.id); - // } - // } } diff --git a/ui/desktop/app/routes/scopes/scope/projects.js b/ui/desktop/app/routes/scopes/scope/projects.js index b1aacf256..e579d7efb 100644 --- a/ui/desktop/app/routes/scopes/scope/projects.js +++ b/ui/desktop/app/routes/scopes/scope/projects.js @@ -1,6 +1,20 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; +/** + * TODO: This route is now vestigial. Desktop does not provide project-based + * navigation. This route formerly provided a way to aggregate + * all project scopes, which was necessary to then aggregate targets and + * sessions under those projects. Since the API now provides recursive listing, + * it's possible to load all targets and sessions with a single call, no client- + * side aggregation required. + * + * However, it _is_ necessary to prime the store with all project scopes. + * This allows the UI to display project names on associated resources. + * + * The priming function of this route could be moved to scopes or scopes/scope. + * It no longer makes sense as a dedicated route. + */ export default class ScopesScopeProjectsRoute extends Route { // =services @@ -16,8 +30,8 @@ export default class ScopesScopeProjectsRoute extends Route { } /** - * Loads project scopes for the current scope. - * @return {Promise + * Primes the store with _all project scopes_ under global. + * @return {Promise{ScopeModel}} */ model() { return this.store diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets.js b/ui/desktop/app/routes/scopes/scope/projects/targets.js index 32a804074..867011648 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets.js @@ -32,7 +32,7 @@ export default class ScopesScopeProjectsTargetsRoute extends Route { @task(function * () { while(true) { yield timeout(POLL_TIMEOUT_SECONDS * 1000); - //yield this.refreshSessions(); + yield this.refreshSessions(); } }).drop() poller; From 2eb4dc03e8c81ad68d12a9a68cc5d9d586790b38 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 11 Feb 2021 10:50:47 -0500 Subject: [PATCH 085/106] fix: Close icon in dialog header will dismiss dialog --- ui/desktop/app/templates/application.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/desktop/app/templates/application.hbs b/ui/desktop/app/templates/application.hbs index 7101dd522..3bca4c490 100644 --- a/ui/desktop/app/templates/application.hbs +++ b/ui/desktop/app/templates/application.hbs @@ -77,7 +77,7 @@ @icon="check-circle-fill" @style="success" @modal={{true}} - @dismiss={{accept}} + @dismiss={{deny}} as |dialog|> @@ -107,7 +107,7 @@ @icon="cancel-square-fill" @style="error" @modal={{true}} - @dismiss={{accept}} + @dismiss={{deny}} as |dialog|>

From 275a535d0b9e83785467b2abed56eaed011cb917 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 12:22:35 -0500 Subject: [PATCH 086/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20add=20app=20ver?= =?UTF-8?q?sion=20and=20commit=20and=20tweak=20dialog=20whitespace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/desktop/electron-app/config/forge.config.js | 11 ++++++++++- ui/desktop/electron-app/src/boundary-cli.js | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 612c4d733..aab636b03 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -3,6 +3,15 @@ const { version } = require('../src/boundary-cli.js'); const formattedCLIVersion = version().formatted; +const appVersion = process.env.VERSION + ? `Version: ${process.env.VERSION}\n` + : ''; +const appCommit = process.env.COMMIT + ? `Commit: ${process.env.COMMIT}\n` + : ''; + +const formattedAppVersion = `${appVersion}${appCommit}`; + module.exports = { hooks: { prePackage: () => { @@ -19,7 +28,7 @@ module.exports = { name: "Boundary Desktop", appBundleId: "com.electron.boundary", // TODO: where should the client version number come from? - appVersion: `1.0.0 ${formattedCLIVersion}`, + appVersion: `${formattedAppVersion}${formattedCLIVersion}\n`, appCopyright: "Copyright © 2021 HashiCorp, Inc.", icon: "./config/macos/icon.icns", osxSign: { diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 241f288fc..36797d023 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -49,8 +49,8 @@ module.exports = { if (gitRevision) gitRevision = gitRevision.groups.rev; if (versionNumber) versionNumber = versionNumber.groups.ver; const formatted = versionNumber - ? `CLI Version ${versionNumber}; CLI Git Rev ${gitRevision}` - : `CLI Git Rev ${gitRevision}`; + ? `CLI Version: ${versionNumber}\nCLI Commit ${gitRevision}` + : `CLI Commit: ${gitRevision}`; return { gitRevision, versionNumber, formatted }; return rawOutput; } From b26a9b8fade670868a2d1ff993c25718ecbf8b65 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 12:24:22 -0500 Subject: [PATCH 087/106] use consistent colons --- ui/desktop/electron-app/src/boundary-cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/src/boundary-cli.js b/ui/desktop/electron-app/src/boundary-cli.js index 36797d023..2227687ed 100644 --- a/ui/desktop/electron-app/src/boundary-cli.js +++ b/ui/desktop/electron-app/src/boundary-cli.js @@ -49,7 +49,7 @@ module.exports = { if (gitRevision) gitRevision = gitRevision.groups.rev; if (versionNumber) versionNumber = versionNumber.groups.ver; const formatted = versionNumber - ? `CLI Version: ${versionNumber}\nCLI Commit ${gitRevision}` + ? `CLI Version: ${versionNumber}\nCLI Commit: ${gitRevision}` : `CLI Commit: ${gitRevision}`; return { gitRevision, versionNumber, formatted }; return rawOutput; From a350d7e5ac22dfb32a8c4d03df35a8d5db4b8079 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 12:47:22 -0500 Subject: [PATCH 088/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20tweak=20target?= =?UTF-8?q?=20"active"=20badge=20appearance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scopes/scope/projects/targets/index.hbs | 15 ++++++++------- .../scope/projects/targets/target/-header.hbs | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs index b816ced05..444f5501c 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs @@ -21,19 +21,20 @@ {{#each @model as |model|}} - {{model.target.displayName}} -

{{model.target.description}}

+ {{#if model.target.description}} +

{{model.target.description}}

+ {{/if}} + {{#if model.target.isActive}} + + {{t "states.active"}} + + {{/if}} {{@model.displayName}} {{#if @model.isActive}} +   {{t "states.active"}} From 87c91d5d62092cee420e77fbc27f03d90c217e20 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 15:48:46 -0500 Subject: [PATCH 089/106] =?UTF-8?q?fix:=20=F0=9F=90=9B=20target=20sessions?= =?UTF-8?q?=20should=20update=20on=20poll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scopes/scope/projects/sessions/index.js | 2 -- .../scope/projects/targets/target/sessions.js | 22 ++++++++++--------- .../scope/projects/targets/target/sessions.js | 10 +-------- .../projects/targets/target/sessions.hbs | 3 ++- 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js index babe28f5f..0cfb61dbf 100644 --- a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js +++ b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js @@ -1,5 +1,4 @@ import Controller from '@ember/controller'; -import { computed } from '@ember/object'; import { inject as service } from '@ember/service'; export default class ScopesScopeProjectsSessionsIndexController extends Controller { @@ -15,7 +14,6 @@ export default class ScopesScopeProjectsSessionsIndexController extends Controll * and active/pending. * @type {SessionModel[]} */ - @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') get sorted() { const userId = this.session.data.authenticated.user_id; const sessions = this.model; diff --git a/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js index dfab20739..9b10b7e0d 100644 --- a/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js @@ -1,5 +1,4 @@ import Controller from '@ember/controller'; -import { computed } from '@ember/object'; import { inject as service } from '@ember/service'; import { A } from '@ember/array'; @@ -9,14 +8,21 @@ export default class ScopesScopeProjectsTargetsTargetSessionsController extends @service session; /** - * Sort and filter to active sessions of current user + * Sessions belonging to the target. + * @type {SessionModel[]} + */ + get sessions() { + return this.model.sessions; + } + + /** + * Sort and filter to active sessions of current user. * @param {[SessionModel]} model * @param {object} session * @type {[SessionModel]} */ - @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') - get selfActiveSessions() { - const sessions = this.model; + get cancelableUserSessions() { + const sessions = this.sessions; const userId = this.session.data.authenticated.user_id; const filteredSessions = sessions.filter(session => @@ -27,10 +33,6 @@ export default class ScopesScopeProjectsTargetsTargetSessionsController extends // Sort sessions const sortedSessions = A(filteredSessions).sortBy('created_time').reverse(); - // Move active sessions to top - return [ - ...sortedSessions.filter(session => session.isActive), - ...sortedSessions.filter(session => !session.isActive) - ] + return sortedSessions; } } diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js index 203b74d62..9306118c7 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js @@ -4,15 +4,6 @@ import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route { - // =methods - - /** - * @return {[SessionModel]} - */ - model() { - return this.modelFor('scopes.scope.projects.targets.target').sessions; - } - // =actions /** @@ -25,4 +16,5 @@ export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route async cancelSession(session) { await session.cancelSession(); } + } diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index 008e5dfb0..e99a67ec1 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1,6 +1,7 @@ - {{#each this.selfActiveSessions as |session|}} + {{this.sessions.length}} / {{this.cancelableUserSessions.length}} + {{#each this.cancelableUserSessions as |session|}} Date: Thu, 11 Feb 2021 17:04:02 -0500 Subject: [PATCH 090/106] chore: Add a catchall error template Shows user a common error message when network errors occur --- ui/desktop/app/templates/error.hbs | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 ui/desktop/app/templates/error.hbs diff --git a/ui/desktop/app/templates/error.hbs b/ui/desktop/app/templates/error.hbs new file mode 100644 index 000000000..c93470673 --- /dev/null +++ b/ui/desktop/app/templates/error.hbs @@ -0,0 +1,7 @@ +{{page-title (t "errors.generic.title") }} + +
+ + + +
From 9c0b56344ad5dfc58743148911ad1a18e509385d Mon Sep 17 00:00:00 2001 From: 99 Date: Thu, 11 Feb 2021 15:25:14 -0800 Subject: [PATCH 091/106] fixup typo --- .github/workflows/ui-release-trigger.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ui-release-trigger.yml b/.github/workflows/ui-release-trigger.yml index 3f352ae87..0181ed3ac 100644 --- a/.github/workflows/ui-release-trigger.yml +++ b/.github/workflows/ui-release-trigger.yml @@ -15,6 +15,6 @@ jobs: env: TAG: ${{ github.event.release.tag_name }} run: | - curl -u ${{ secrets.CIRCLE_CI_TOKEN }}: -X POST --header "Content-Type: application/json" \ + curl -u ${{ secrets.CIRCLE_TOKEN }}: -X POST --header "Content-Type: application/json" \ -d '{ "branch": "main", "parameters": {"TAG": "${TAG}" }}' \ - https://circleci.com/api/v2/project/github/hashicorp/boundary-ui-releases/pipeline \ No newline at end of file + https://circleci.com/api/v2/project/github/hashicorp/boundary-ui-releases/pipeline From 3bfde4c28c5e88a716bbcf801407d1a4afaeee2d Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 11 Feb 2021 19:01:45 -0500 Subject: [PATCH 092/106] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20disconnect?= =?UTF-8?q?=20button=20to=20error=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/integration/components/error/message-test.js | 2 +- addons/core/translations/actions/en-us.yaml | 1 + addons/core/translations/errors/en-us.yaml | 2 +- ui/desktop/app/routes/application.js | 10 ++++++++++ ui/desktop/app/services/origin.js | 10 ++++++++++ ui/desktop/app/templates/error.hbs | 8 ++++++++ ui/desktop/electron-app/src/handlers.js | 7 +++++++ ui/desktop/electron-app/src/origin.js | 9 ++++++++- 8 files changed, 46 insertions(+), 3 deletions(-) diff --git a/addons/core/tests/integration/components/error/message-test.js b/addons/core/tests/integration/components/error/message-test.js index f7e92a534..47651bd89 100644 --- a/addons/core/tests/integration/components/error/message-test.js +++ b/addons/core/tests/integration/components/error/message-test.js @@ -60,7 +60,7 @@ module('Integration | Component | error/message', function (hooks) { ); assert.equal( find('.rose-message-description').textContent.trim(), - 'Please contact your administrator or try again later.' + 'We\'re not sure what happened. Please contact your administrator or try again later.' ); }); }); diff --git a/addons/core/translations/actions/en-us.yaml b/addons/core/translations/actions/en-us.yaml index 89165233a..1c4c2483a 100644 --- a/addons/core/translations/actions/en-us.yaml +++ b/addons/core/translations/actions/en-us.yaml @@ -3,6 +3,7 @@ cancel: Cancel delete: Delete remove: Remove discard: Discard +disconnect: Disconnect dismiss: Dismiss save: Save submit: Submit diff --git a/addons/core/translations/errors/en-us.yaml b/addons/core/translations/errors/en-us.yaml index c814611d0..0f05b94a7 100644 --- a/addons/core/translations/errors/en-us.yaml +++ b/addons/core/translations/errors/en-us.yaml @@ -12,7 +12,7 @@ description: We ran into a problem and could not continue. You can ask your administrator or try again later. unknown: title: Something went wrong - description: Please contact your administrator or try again later. + description: We're not sure what happened. Please contact your administrator or try again later. generic: title: Error authentication-failed: diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index 45c73b24a..f32dbf9bc 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -71,6 +71,16 @@ export default class ApplicationRoute extends Route.extend( this.session.invalidate(); } + /** + * Disconnects from origin and invalidates session, thereby resetting + * the client and reloading to the onboarding origin screen. + */ + @action + disconnect() { + this.origin.resetOrigin(); + this.invalidateSession(); + } + /** * Hooks into ember-loading to kick off loading indicator in the * application template. diff --git a/ui/desktop/app/services/origin.js b/ui/desktop/app/services/origin.js index ba280a1ae..e72a738f0 100644 --- a/ui/desktop/app/services/origin.js +++ b/ui/desktop/app/services/origin.js @@ -1,6 +1,7 @@ import Service from '@ember/service'; import { assert } from '@ember/debug'; import { inject as service } from '@ember/service'; +import { notifyError } from 'core/decorators/notify'; export default class OriginService extends Service { @@ -72,4 +73,13 @@ export default class OriginService extends Service { } } + /** + * Resets the origin. + */ + @notifyError(({ message }) => message, { catch: true }) + async resetOrigin() { + this.rendererOrigin = null; + await this.ipc.invoke('resetOrigin'); + } + } diff --git a/ui/desktop/app/templates/error.hbs b/ui/desktop/app/templates/error.hbs index c93470673..f5fcb9fbf 100644 --- a/ui/desktop/app/templates/error.hbs +++ b/ui/desktop/app/templates/error.hbs @@ -1,7 +1,15 @@ {{page-title (t "errors.generic.title") }}
+ + + + + {{t "actions.disconnect"}} + + +
diff --git a/ui/desktop/electron-app/src/handlers.js b/ui/desktop/electron-app/src/handlers.js index f4b9a62b4..948e82c51 100644 --- a/ui/desktop/electron-app/src/handlers.js +++ b/ui/desktop/electron-app/src/handlers.js @@ -17,6 +17,13 @@ handle('setOrigin', async (requestOrigin) => { origin.origin = requestOrigin; }); +/** + * Resets the origin. + */ +handle('resetOrigin', async (requestOrigin) => { + origin.resetOrigin(); +}); + /** * Check for boundary cli existence */ diff --git a/ui/desktop/electron-app/src/origin.js b/ui/desktop/electron-app/src/origin.js index f4461e8f0..7d85e4466 100644 --- a/ui/desktop/electron-app/src/origin.js +++ b/ui/desktop/electron-app/src/origin.js @@ -24,7 +24,7 @@ class RuntimeSettings { } /** - * + * Validates the origin is reachable and has a scopes endpoint. */ async validateOrigin(origin) { // If the origin is the Electron origin, it is automatically valid. @@ -40,6 +40,13 @@ class RuntimeSettings { } } + /** + * Sets the origin to null. + */ + async resetOrigin() { + this.origin = null; + } + // Quick and dirty event handler pattern to enable the application to respond // when the origin is changed. #originWatchers = []; From d697c45f82c00a255b66c6d9cf5731cb371ac894 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 11 Feb 2021 21:18:59 -0500 Subject: [PATCH 093/106] chore: Add dmg background image --- ui/desktop/electron-app/config/forge.config.js | 3 ++- .../electron-app/config/macos/background.png | Bin 0 -> 36895 bytes .../electron-app/config/macos/background@2x.png | Bin 0 -> 94468 bytes 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 ui/desktop/electron-app/config/macos/background.png create mode 100644 ui/desktop/electron-app/config/macos/background@2x.png diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index aab636b03..7b382a6d0 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -44,7 +44,8 @@ module.exports = { name: "@electron-forge/maker-dmg", config: { name: "boundary-desktop", - title: "Boundary Desktop" + title: "Boundary Desktop", + background: "./config/macos/background.png" } } ] diff --git a/ui/desktop/electron-app/config/macos/background.png b/ui/desktop/electron-app/config/macos/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8f26e900ebefa964a02cfe4a3e8962c047e94ad4 GIT binary patch literal 36895 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¨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

;G-DPNCm$nZHPYlQ4yJQNA4B*C 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 AHvj+t literal 0 HcmV?d00001 From 3590d58ecb5596cd89837f66cd53bbf75d29b51c Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 11 Feb 2021 21:42:05 -0500 Subject: [PATCH 094/106] chore: Capture unauthorized model errors with error template --- ui/desktop/app/templates/scopes/scope/projects/error.hbs | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 ui/desktop/app/templates/scopes/scope/projects/error.hbs diff --git a/ui/desktop/app/templates/scopes/scope/projects/error.hbs b/ui/desktop/app/templates/scopes/scope/projects/error.hbs new file mode 100644 index 000000000..4b50d06f4 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/projects/error.hbs @@ -0,0 +1,7 @@ +{{page-title (t "errors.generic.title") }} + + + {{#each @model.errors as |error|}} + + {{/each}} + From b96ce2327e7c49fea6e45dcb1d4364a370ed14ed Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Thu, 11 Feb 2021 23:26:15 -0500 Subject: [PATCH 095/106] chore: Hide devtools in production menu --- ui/desktop/electron-app/src/index.js | 10 +++- ui/desktop/electron-app/src/menu.js | 89 ++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 ui/desktop/electron-app/src/menu.js diff --git a/ui/desktop/electron-app/src/index.js b/ui/desktop/electron-app/src/index.js index d811bcf9e..5b95e658f 100644 --- a/ui/desktop/electron-app/src/index.js +++ b/ui/desktop/electron-app/src/index.js @@ -4,12 +4,14 @@ const { default: installExtension, EMBER_INSPECTOR, } = require('electron-devtools-installer'); -const { session, app, protocol, BrowserWindow, ipcMain } = require('electron'); +const { session, app, protocol, BrowserWindow, ipcMain, Menu } = require('electron'); require('./handlers.js'); const origin = require('./origin.js'); const { generateCSPHeader } = require('./content-security-policy.js'); +const menu = require('./menu.js'); + const isDev = require('electron-is-dev'); // Register the custom file protocol @@ -88,6 +90,12 @@ app.on('ready', async () => { } } + // Configure menu in prod env + if(!isDev) { + const menuTemplate = Menu.buildFromTemplate(menu.generateMenuTemplate()); + Menu.setApplicationMenu(menuTemplate); + } + mainWindow = new BrowserWindow({ width: 1024, height: 768, diff --git a/ui/desktop/electron-app/src/menu.js b/ui/desktop/electron-app/src/menu.js new file mode 100644 index 000000000..8e37595bc --- /dev/null +++ b/ui/desktop/electron-app/src/menu.js @@ -0,0 +1,89 @@ +const { shell } = require('electron') + +const generateMenuTemplate = () => { + return [ + // { role: 'appMenu' } + { + label: 'Boundary Desktop', + submenu: [ + { role: 'about' }, + { type: 'separator' }, + { role: 'services' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideothers' }, + { role: 'unhide' }, + { type: 'separator' }, + { role: 'quit' } + ] + }, + // { role: 'fileMenu' } + { + label: 'File', + submenu: [ + { role: 'close' } + ] + }, + // { role: 'editMenu' } + { + label: 'Edit', + submenu: [ + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + { role: 'pasteAndMatchStyle' }, + { role: 'delete' }, + { role: 'selectAll' }, + { type: 'separator' }, + { + label: 'Speech', + submenu: [ + { role: 'startSpeaking' }, + { role: 'stopSpeaking' } + ] + } + ] + }, + // { role: 'viewMenu' } + { + label: 'View', + submenu: [ + { role: 'reload' }, + { type: 'separator' }, + { role: 'resetZoom' }, + { role: 'zoomIn' }, + { role: 'zoomOut' }, + { type: 'separator' }, + { role: 'togglefullscreen' } + ] + }, + // { role: 'windowMenu' } + { + label: 'Window', + submenu: [ + { role: 'minimize' }, + { role: 'zoom' }, + { type: 'separator' }, + { role: 'front' }, + { type: 'separator' }, + { role: 'window' } + ] + }, + { + role: 'help', + submenu: [ + { + label: 'Documentation', + click: () => shell.openExternal('https://www.boundaryproject.io') + } + ] + } + ] +} + +module.exports = { + generateMenuTemplate: generateMenuTemplate +}; \ No newline at end of file From cb04f93a8333d5e8b77f11bc5c4b0b5ebb0263de Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 12 Feb 2021 09:34:42 -0500 Subject: [PATCH 096/106] style: Fix tab spacing in sessions template --- .../projects/targets/target/sessions.hbs | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index 8806a81af..fa93594e3 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -17,26 +17,27 @@ - {{!-- - Two if's here because: - 1) Local proxy info is only relevant if the session is - active or pending (aka isCancelable). Once the session - is canceled or in the process thereof, the local proxy - may no longer be used. - 2) The session actually has proxy information associated - with it. It's possible for the user to start sessions - from other devices (or even another tab), in which case we - won't have the local proxy info available here. - --}} - {{#if session.isCancelable}} - {{#if session.proxy}} - - {{session.proxy}} - + {{!-- + Two if's here because: + 1) Local proxy info is only relevant if the session is + active or pending (aka isCancelable). Once the session + is canceled or in the process thereof, the local proxy + may no longer be used. + 2) The session actually has proxy information associated + with it. It's possible for the user to start sessions + from other devices (or even another tab), in which case we + won't have the local proxy info available here. + --}} + {{#if session.isCancelable}} + {{#if session.proxy}} + + {{session.proxy}} + + {{/if}} {{/if}} From 80fb07d960444f0436fc8a4d56177b3c2329b69f Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 09:57:43 -0500 Subject: [PATCH 097/106] =?UTF-8?q?chore:=20=F0=9F=A4=96=20add=20network?= =?UTF-8?q?=20error=20and=20disconnect=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/scopes/scope/projects/error.hbs | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/error.hbs b/ui/desktop/app/templates/scopes/scope/projects/error.hbs index 4b50d06f4..57529c9f8 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/error.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/error.hbs @@ -1,7 +1,23 @@ {{page-title (t "errors.generic.title") }} - - {{#each @model.errors as |error|}} - - {{/each}} - +{{! Most error types will land here }} +{{#if @model.errors}} + + {{#each @model.errors as |error|}} + + {{/each}} + +{{/if}} + +{{! But a disconnected state doesn't get normalized errors }} +{{#unless @model.errors}} + + + + + + + {{t "actions.disconnect"}} + + +{{/unless}} From e78138189f7dcea3b0689d61e7441c7364f809c4 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 10:48:37 -0500 Subject: [PATCH 098/106] chore: remove debug output --- .../templates/scopes/scope/projects/targets/target/sessions.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index e99a67ec1..3dfa9e4e4 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1,6 +1,6 @@ - {{this.sessions.length}} / {{this.cancelableUserSessions.length}} + {{#each this.cancelableUserSessions as |session|}} From 90efc2798c67685c8e2aac772c9f2244a4288e62 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 12 Feb 2021 12:18:34 -0500 Subject: [PATCH 099/106] chore: Update dmg background --- .../electron-app/config/forge.config.js | 2 +- .../electron-app/config/macos/background.png | Bin 36895 -> 36886 bytes .../config/macos/background@2x.png | Bin 94468 -> 94466 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 7b382a6d0..9b1731d69 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -44,7 +44,7 @@ module.exports = { name: "@electron-forge/maker-dmg", config: { name: "boundary-desktop", - title: "Boundary Desktop", + title: "BoundaryDesktop", background: "./config/macos/background.png" } } diff --git a/ui/desktop/electron-app/config/macos/background.png b/ui/desktop/electron-app/config/macos/background.png index 8f26e900ebefa964a02cfe4a3e8962c047e94ad4..bdc5575f6725accdda11c5428cff866fb45b17d0 100644 GIT binary patch delta 34048 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 C|MK(z delta 34151 zcmX_ocRZW#_kOjdv_?=x>``hIAvRUSs$HXM?=5C*@@~ZzqiO9KYVT3RYR%dsDYa{F zN+~seX+N*;@89H=+x^`4Ip@00b*@Kp?(Ll1+lhwodNqi=zCXcU);-GtyM}A++O`5{ zZH8O_?}Z0;w69BvRlm6q5Pm6p`@Px}a>HIs>q^^0${Lp2`=fiEcXT5BU$f}fRTP6$Qn|BMk^4r74Ydz zR^`aRLq@{S8{o$nRZjLr(>8_n=Iy5>>LryIJ^k3#^jh6_A3oSkc2D(*xlh1eeNB!C zqe^yBj(ay-q>(bweubWLE2$FiyD;kEB6;xp$LNMRU7f&Z%xQs@U?mf1=5ltwZv{hp zT3{pSv$qsDWJIe!$pQ|#Z0a&kwExNcr>PCfYv|nw0(RP=c1nm~jb%eS_&c|l-X(c8kWB|N}{1fKdU287wOg`9BS*Y9l&33?V zvha^(mN{e7w|Y(Hf_#!u${lx^EsK;0nEfn&elPUBq*eL%4(*qOJJ)uzh5_hW(}*1w z_^-p}fc0}H!tiy9;LuU#+V=hbUdtJH$QVg$C%`b3_kLbUM}7c$HlTgs#jw48Pj$s# z=Ks|Vna3qdg=lI8<*~cJ2+fmx^S0#L{P}(B8^wd3-xcR($wN#!wv}C;9p0NBW*yHT z8B8IJQ^43uW=Thgf%(vZ5^#azJjk=;8s55#`LYYkVX;%97NJf}r7V1C ziPHxMp$DW5?Mx45{`ilk;v+ft14at8WaPaBD;9<;Ee7hP$&Wo?EIvPuZ_!Z|iOz1tmF+ z$54ofF(kE9h#0I(E}t%!FUubt?a#yWPM7nJ$Vg6?%|6;Oc?r(kQhLm`io2VXlq>P( z76K4=zhUO5!f?!_6Hs2!rz;z=P{lp+>Nvp9m>tws}4%72Gl%Yt^NwVyq@Iz8DLaAdoBe z3k($$er%l2V!w}ZWN2Eu6ZduN&RxxO^}zfBM$S(yh#Z;C!X%S#?A%b9U@ z7AxwV(mr_rr+N#B)z-D1KQ4GureRDjnkV)ciuL;JCP+2)?t^_(@~*yBTg8_~d+aZ@i1x+T{3PdHqu_9mKupoQrLj z5MliKCUdNpPVZHtVRnF;_TTp6af)E@gF9Na*6(fB@{am2mBY-OTZp5 zO1JV&J8yvsvQzZKa-m~Xtv+Uvm*hK85khcND;hiw$8kQCAPEQp$sDT{H&<59wT9w? z^h87`@2Q&-Rcu^CTzNT1Gwf$vY)GR`yrb4YtuS*KbsHu>~Od0f!Oz+_b1Yr3^bxn0vc39vb zgEA5|5xQ0Km?0yBAuD?Y8rQ#Tn<#e|wL{DZe_`GpEtMaUe3HEH^C=pXCQR}M)j+#v znTjsvL?rqE%0aE&g03no13p@#HC$|Ql5uI-b%IPvH|E+Z5*R^78L;e0a^P|+MBDKX zflXXRqmL*F;f1{dal4CunqI&ytxw-$2R8K|cO;j8cOM9iyLxK26-R9&>_+80+V-^o z6+yxVUk61(ds8bytG=$I057Kmo<>=x^Ixn8aySX~f)j%I#XG6SEdf5>?j`QT9kjFQ zF8!?kd28-%d894tyi!U3x1Jr9R9aAyR@cM!oAuJhf5nEnTRRTK!E$w-9JSD_9T#2E z7@Xn#bb7p4hoO?445lYEN0*mOgi3@@$M$me(!D|@TDX%CB-mtIfXC<(w4X<~Z>lXyK9fOf zs?oJJZl>q>n@MjvqVVh_c?1TV{nT4;QycUpDPb#*ElfL3O|?)%A#EX+G!^kLo7!r6 z>4+I2?By8@Jk30){~n0IDYVq0(-EBqgieKFT5)PGxbOiu^M5~BwZ#MesPZuD@Ni?_ zy`l}A6wrnW_wLJ+RqMC_M{I<>OnNz8z5WT(q!&OCpsz>NV zsIcG+g*dtsQBpQ+UQL+9$K+wHkr6M6<;o*(rNxIh9N;Ca1_lu+3{TP(&eG{k^o3Y! zR40?dk|w928MQ4BuNZ9NESUepD3xbjx6xS!M)js5oS9s-34=gF#@PGg=b`hl4hsAD z?cdRia}vRqM%a(G+`n-j|9p&8*qj4a9IN4gveQ!+EACF!NM{<_Z?H{x1^un9kd6Pd zaDdZ~dX3R>n*{gTOmY-}6yObJM=gr@UVgkVf3KpcU})O8X0iR_hGLRj7QFlY7X1#OAVrl;Ul3qTicSWk9(=M-G>$Z`J#o1TSPlpE(q$s%(raG@DBXlb z0(D6|b{jQPIVsgty0-qykS62Gqq~D(UKAs_*fV#ZcBN7P-@o8%AH3nBNqJHp6wbkt zB}tFcB4dOzA#?wR=6R52auF^0*w+*}*`fuvKyry;@m?cTqWaS`o^x?@L!J`S3Ntq+ zL6Xudnn|RELVOaFx{BDk213z_ipjZ5%2=G{rMmQU}NWSXzHjo`@r z^u7rpS#Bj10MC>VKKl5~&4@Dg~4@@%?wZ91v zsI`J{)l?8;kD>PR-VV$;3psn)Ir)vr$yxX$`Ll+>M2LT+x%pU*d@4*$Br70L3o}0_ zu^u@fUO#xunE06!qN_&C#*}5r;T5HBqV8K_VRIJKb)30=Ueej5ytszdI5jE-VV-!eYHA+^BBvwb5o?X%e$##aVJ3sR#FY1#@^c zMuYIo+(#=ey6W+-I8a-gu`p6V;dAphljICXYx7h4Jm0zwS}P>z3mhY5lS<_-SjlW| ze||RtDPS$g{JnaF_=G1^&zE@U7ZI5ln&zVAMSc^f3_Tu(YVg-8M$*t{{+Bwbauae_ z=7!PhO3g;e%s1GonrX)ZZP?E<$)F9kvVrNu_nt$JUpm+fjThI2l!8c3gcX89$Dd>Q zgk861_Is*^IP>6C^xs<=o0&x>-H*uh_>cr>wU>km7dyWzxb92!xXa)545(4|h&L`x^Vi3UZCI8qH9n-}MH%kliBDI(O;vPF2TWB~W>&MleC8H~xu-XmZ4BWKw6 zrJ8|qhpna-lj@hbwdgsc|AUeh>Gny;jYZAT*+hJ%gReZ3y{D^Ayu^P+G3xovWAs*y zFvN#)=UINxVcCEe2WQ{5xn%*0kYQfbB-*>USENV2b}uMQ`nl6ISJ=- z3!BvVe%33b2_uiy&=WX|hQi5`OTQ4Dol^7z;6HhBarTt&8PzAr{*2oaH4zn!-KQ+{ z(jz=Dq~pd7)YP3_w+qIE%U<6!HwD`kx3;(%)s7oCkI2e0!*Hv#B_3KD;8`w}(WpI!r)N0&jlAk?0H0oN* z;xxRs|Lq%@p66}P{`XA`X=1&pHN|I^wA{E%l{faEhqHPMcmGnI2?Km0DBc~?8coa0 z5sbyB;2*BM|H7tI5paBf^LRSg#1&SK@&Z@Cy_2s$@1N(OUw=sc6H=Cg z$u0=0v31wn#GPo12cl`-PJFsAm0xUht(YHc~SrDIs4`(D;qm%$(!p=!pVaL<8PYabAHpp*C8T-NhiwBYZpx>c#_ z1(n8Xzx+Z*X+$ghIKIu_0DIG+>ly8HRv-gEK$w;Xd9G~MXqC9g?B{7R40&ejuBIV$ z+ykzEeDUh37N!}TUAv{XtYzyJsP&gXcz6dXV+IPa-tTq^|0Z4Li@PrUW1U2A2jYVf zI%TEq9>TrPpN~ZIovRG95le%5fi_+tHgT!h@$+jOyvC8zK$}ENFNs&VGG7t~-s{;B zB7|pwc4aXmn)fJFOMe($SC+UCe@P2h0@m!lp;Fg0+vuMabtXyPo8`0e&kszvG}rzu zVOY?~Q7X(PASdKiPr8NGo@6fm*yK}Cr#af6n;|`-I#s2#w-qxJ!WFZl_!o$Z*oz+r z^}0i#eT?bRppQ^$8?n@AkPG}yZz}V;QFdWF)sH4Y2E%O?+S72V3P6F}V*NrCR_*(P`9(%eiyYbN?p^Qi zI8o+PZDerXJ)RkvHJ<}0x_RY9v6CinsI9goEl1EZzfNmZEk8p#Mif5LbI{Ykp?vT3 zAK}n4Ko2*H-X|8XcdLziFZ6OMcL4V;d}k}_>th6Pa&TlsY>}gFm&y!+ARh0*2Y{X> z<1*mAP#qn<#{YyuUE=T>NGjr`;(Z48+j`-jm`W+KFxP$Yd+SErteE21fRY_H;d*V0 z*Cw88i7nvvM*&s#-M6zoT8a5MJ5LJo*MF3R&+>q_$yY zbgMfI=;?VYL>kXfvLm8z*ySih&h=*tS_em&5S&w`@Z~#=o_Keah=>-Y%9tXDTZJV?r3oS{^42JZRVJO zM@3;0$);u$vp0UHfAd8F&5Aku5dkY)Tz>6q9e2MYHnNG{#)ImdgR2+pPi=Fgp{)XX zy8&lvS9{{>Ln+H-6$gSsQJ9f;OCc8nk)jw0jSdXm-$)JgFyjE;e-n_WOj|X9JIP2_ zE`Rne(2Oa5ZFIKOHX~*-Ix z-&4{kU+oD6T{)#Lq#6%lUsv%Ml7@gY&dpU&l{X^Tv^)ORBLLL{WkK|-0!_0!!8hYI zD-+gn1YH-u#o3=uX~pp{IUyczQ|R>+R(hJ&S;lScE72~kM}UY*cJOC9Rd)InJ6o!; z9f)3hORVrSgtsP&Q!96&Mk*M@2-qfVcWl2^ssYyp36hy8l;D39K=p)LNKyZ-)uQhuew=+ z$Z5deB9lQ^_box-Q7UX{U0IV8;_`jdIu1l6%XHG6<`M@A)5tQGdO1bwSRmY|9j&dC z=bN<{6>Oz?=PrBpD7=IiBD;F_yzQ}u0vD!u`RDVfP3!QOdlKu7EK&vICBYm57h9O3 zlBnnEg<*XO854J?vNg0v`wP^F>%Rw z4;jP9X>YEN86kI)FumT-O(W8>ZIB@Is;|M=1d%>%vyAs}|M_d3@g6C?plx~^od?k; zo|zsq=AhOgJn||ZY8$vENn&V~+5*#Hee0{~QBS_-?%)@>Lwgw8;#XR{o42#3ii(-M z#?byc4zR5M?*HRIT-j&NrT%05?WQ7THrJCM=KZ}^FKa`5*~wT_Ezl+Ge@<!I8AmKZd2QIH#G|~7&}8LSj^_QI%Z!wO$^%T=ca)od5Nl~HrXeJ z*G}$reyntHSxW#m$V`0aETW-FgVoSF!s?$3I{wGZg^B9B^i>b1HN&lhpDC_-CC5ZP z0Ar$T$gs{tu=j!`)ez0yAJ47|^iMg^3Jmt}yfS^#Q*7IRLg*$R4n3^*Oc&?-ufthu z9b5$$v&4Vvd*Y{Y8IXNl^h8>qx`BSG`jwURx{$4QpMkDT9QPBp!t#uZ?In)Y>8x1= z?a?C)p*qjFj&9W?Q%*ES_9l7b;=e)Pbdqq7p|Y&4Qd$Kg?=li)UX(OUmz<()~VW6*n0ueMqK#*fTS0@R#K_O8MJYs!CYK{h^NorDNb?C&|2bJzwj*M0fU; zflT)jG1nXMdtSeDsXAWSLO76wTxPRnCZD3IB9@TpvcQu$C?Z{aeN5fVqGX31(WbVn<)~;1tEoJTv zo_I#da9B&e)PpbOR)uz0{;;GDsg&^70Rq#g{MhiFjj$b63~hx`6&d=&-wj7GsG8YK z!oZl~En|r)B&bmPY?GawYeq zw`pRScwXR&r%?Jm&(gPK2QS)l27l);S((bkv*;| z$#r;FX{UihCCyNU1j6?>ashtnNDz&^^^l|7QTQg>Wg9p?0#8pLSn*1~|Dwi*{KQrq z?(jT`A4lzLBrc8s0+Y1Ia3S!H1+Pzq$AUoNq4MTukcT9&_W)<@i;^ABP>!S8>#MbS z-U#&{7++Ph6kG)1%!&;(y}IPFWG; z+rB^8@NT)1#b z`%=MQj|ntsqSV3f1gBOMAT?D7>&gX`Io3Z3Y20jm!;Q{$GBE7i_UT;0URWuS* zagcOSBpW_7i)Bm4d-g)Nfy)%4DZjwZZ?BU99*$cmUVlbscDCXXT*GdvB2Lj9ty{p% zTb>-j_=h+z!uL7gLw-dD12z0O;74b~A&-U+ zkJEpn=8yze=F+7gCK$hmreUE1FB4*Q#L4!cKlGU$SaFt3&GxICn=pXecfXXYaK|3~ z$H9PV*(bVv(;_VyX~{H?MBLPs_@1$9o`gUCtBL{MdE(1Q(S3C=XmII9d_k6=9~}e# zl-6-Cae{p>xlKj`vGQ+~{n(eXK$wRUHJ>f~9=swPsO`CYXJmV%EWD0vFbQwG|{hXG8c_=N&cwd(9ns8)LCIVE-~P=lbmAy6bpmT zl1y4>x!=Y<0zbAAtZH&jRe^rrS zM;x7vRA;)cTdJpJV5#97x(EVZt)x#KM&Y89UF70oN^vIFQzl}A?fE5BJ6WZlH*bST ztei^9t5RlD1m1T@K&W&x0xk-i*7-h$q!O6>wu!~-h5apD3lQF589 z0MEub)i@vTOZuk~$ojJPRrVYL#=M&|@&lIb(mEi^K zknNe4WYyX?+04(OfYf%M|P+(avg^8C&Ue1Bw~6 zeZCu_tCUlbfA@RU1(x+38o7x*H2}~J>mR56Rd8 znl3*L9J&*9dIBjk|HJ}KP6IGn@U3Jlbza-rPC(9+g;c_RMCJa zhjO3k4c>(CXB|G!m9Q+fn%m`Y23A`zBa!GY%z4b=(j+|+`xi9m57PD4W4%n1a z4E@vK*7r@DfeW@w^}ZwzUQSu$hz$-=y2ljGDuu7vW8p7(_?38{P?Ghy!pfb{vAhK4 zWeYZOw16nC@cCOnjy)EY~U`o}u@mc3|XSx)q(J}pp@ALK|C z;?te7EvT1~9)+UTG_l!J84ypE{B8wIx>FB4|M7La(BK_+VJmFOACC5_L$NK-$v-|~ z`N*MJN{^-zMXQ?Kn1`JZK zjuj1@-h7~L3IGKug`;A(3hItV*t%Bt)8O9Lki}4%5DR0>_xg2`2a^~5P7dkJN%E|m z2d^9Ec)~+}H5~%~WHNipVjj)4`{=r`0RDFyGOV{2ownKg0+zK~QHRTIqDRONgPLF= z{*+BMX6n#H=TExN>HL}JTXnB%ID+w#qC9DixxQ_Db4kCtnOuWg?4_N{2TF!8tLHAP zj3N_LhNR-9P31C1f^tS3GZM93UiPR-PG)#PVXwqSi&QUvKF?O}X4u$8|G6lAS;pl= zt&*0m6-2M2*jl(T=(L!!sP;=$hRk6k-9IR2qAjRo<7X>%)#PlqW^W|kpa1D21uJ*%{VL+t z5W_F&>3XEM+)**Z-%$oHPpoF`37!86^2)m}pFtj(dtO8jd$s=_6KXO21l6w0l#h(s zms%dy?FHvmYYYvhP?WI>;2!$sckE|(MGo6Cr5xST=$8-5PvgDIR^8?!jqdtZC@`U9 zs$ew2DD)h&GrI4OdNt@2WP!nX`hwdf0!r_9sPUc$LaIdU)7IdzSpzhd$<0CMt~N2w z`{G;sk5uko?bFw38h(Cz`q}2gT6(s{`|bac5Ge|w**S^8%oL0m7c~gFZ}Hw;==Nj& z{ELmRuZo6oj+TOQ?Ayq&OH^Sc{Nu7PztCK3kxv1?jwik7+~$d3sp^HIfzqaV(k)7L zTn;U{C=zRqRyil?m5?DYw=iBJuCp|>2w1WX$3jOvrm&X|oE z3;`Mh2b@A*zh-EMQmlXlS&Vr@TKq&@m{0ZgCDuP=4LxQSJm;^FD40b!B&S&-a%e&T zDEJfDe>yNc?jjWp3(!`w#uUwTk%)iQ#DQ@6h&tUlvuIq91IH?4kejQ$%3`1su4%@B ziE58cWr-JcdvQsIyq2wX3e&6lS~ngQ?4PD)W@6QBk{=6K;5c$_R9-EXRx)8(c~0x@ z2H{^)SY&x=+UX%8+o6*Xq@!s6G^QEyIY(}lfE3X!g@O>p&kU8~;%Lb3MXK$X5sOjm%H8n>- z$Dhal+S(EI`d0-OEm73Kxw!;4fs_s3=Hr-Mjsrdhd|Ao3Bxapd={|z{neZajrSPHh zyovqFC2JW_c3Sy*&9>=_PevmJ^KwgbTZxP)?~`#6@2zL|#2YK`=?Y5kl4bCp8|K_#p&eJRUnbQiBk51oy_NID^5?*H4QWA6_9erx#LyIVN zQ-F%)em&JoUiRakH&+>hL);P^nmj?(mdg~7`)D&U=V<*ii$*t?ms!H_@CWaEr55bS7Y?7;dLo^qS}`)2|L)Un}|5 zU!&5ctLo~H!XJek^7xqSH~}lA3&%9cww!)xNJc7IzzdEOItu?%(FxK2-rU<#tUsyQ zT8qkF%bu-K3^jYrjCsW=(U+6w*8MT(k;>INOW7w0rQ(Rw9d4FW?uzf{W9Pjq_Tc>3 zKg7tdf=}p6dEo1BH_e~dTl=sBGh4vyk+(9-bakWTr9a#|3EOmQ-ug^H@&G+7^5CB8 z=&oxA-rGp$4+yA~P~$nYoG+lUzomzQT4038?9-w_(8GF-=|iMqm%%Y1p@&rA?p+sE zj%!5eJ+VqukfA`r=D(R5@s{y()6jqcF#Y(b*61M|^39!>Z*_FGOaVU>30$b?JmR0_ zn<#K$yX%{dQN;)Fowav)iUyX)!bF^qZD;-Z>ySQQELesgP^Q|L@_Wx69s5auYHRev z#c9MNC83{qqaUZu`NsK9VA3QR@O7|yxJz4D27@(m{3Y{zdXHV$eK&BhUx|}uxGnjX z1_XZoGf3a>GS$<(C92)&PdM--bKZJDOKNV}yfi4CGVb;DiKl1*cpFcMw=kBEM9-BT z5h6jnFG9c26Zs^}}|AXgUU6V@aSDZ8ZMh-#wi@px|$~U1V29z@% zckCZN1m^3&kpf~$^K&XldB+CD#UVybcukJ3DSy}baV!w(@!G_Mj{*E`0U!*UFESBF zF8`i_T?}|eLtF&d=B!pFXKoCBvn8E3n0uwtiadZQ;*ZlL(P@S)H#kCOR6)?jEZ^Ip$qRB zqSVa}1OtZzf)?c{G zSdfxo=-2DE8hH)+T})`&sns( zmf^%5ARF{29R)=VUFQn-z?cGK(i0lf1@kPPT>dQ)IQ{R85eXy$X=a- zAJQ$jnQ@-$U{Vvtww=DGPYPMHjscwKv2 z&)2x(-!tJY9L^vG?ev^1q1Qyks?leiN4d(mIxSI{uhqG)R_%CijZbn*$Zo(i1#i0I zI7nH{GR-7DH;u7rl;2^xO~w;UJ0&`akEH9+uwN^oU8g;w-)eDrQ|zQNDE(bhJxWKj zWskg9^x~%klDj|FBbvI+9b8l^$7#DG84@z;{Y&8jo&`ScKyh6tv$VX|NhrMZN4mu{{9e8~U zUe)nY(3p}SSV{X#01AchZ;(DYnxD(AhTtA(c}9J%KK^#H{wQ!qjA)x(oJHozEco0{ zhDs~+GgJJet|Vq31lNQJP+BPsw3U$UC>&pn#T!CUo>x^PQSEEI=aXti1Nx9_p*JR% z1PM8mHuzVQtmJU4m^7cF>%tLT(C_Mh#0|JUC@ED4hjVvUOB6E&XN z9Hok6eQolJFX6qr&x@(-O3K052vX78pOpoyegqiytWl*Xuks2knhWEORwF!NTgEf_R_z}TsM^Gy|qNH!tx>o&UGZq zDqzrk8dW(v7qO{oW24}CC-QizXjFI$p14-VN?dnOyc|Xq!lE~RYJn;Y+;_aW`SIxH zKH~&ArCn6JyG9O^X5O9M`5P=O$1|&z`jzVhTW8q8o#-VT2-uyn*TlN(bCshFSSZyt~McyC0P4lK1&+&$V zHKuwka`hPuaodZFkgnbIPX=S>7%6UXamKw=p7>iIK}Vb7Miia3;|azJ$072BEa(s- zIB9EM_HkT&mG1=EDgYj#tQMx8us{s}80W=9;*!pA(?iX}=z5A&A3 zknM=3W4Mm*5zl&DUD_v2LFaWO0ibvZZCFeiBcy{=no*gexDH)-PHN2Djuz(E9d|%yQ~r{JoHEZfjX-3(VxApuA#O!%iin~lEa&qr44}#GE|7)+ zs{yU*(?ZSBd~>Q2Xv#vyxd?LefasrcO0}v%qldR~!|k`(Ij&`#aVFOx7h*;Dl17kE z+3e7CxE_sXc{55WNeRuo0FR*+?_X%$=QwY6>u52^J*JmaLSkQhuw^EVj;LQ@yvbsW z#oqX7=@%O>ua7M;pKUbFA%~7OC?3l1J3qQd4U_IJr9WNZKRy_e(o{0G@Mh>HM=bbF zmM7-GrEr>^!N0|ZIjqmVi zefNl;2H#>&t^;jn=Po%QpAE+Ymdec`n5-@uzD@1pZoY$k2#=zTN94 z6#HZDV~x18M9~Iqs-qps-SUm)pQ-&UE$Dt8FR#ivxTV?CNfnjBa8eYa>5^aQxJspo zpVqj%JK?bD?cd)MvofCZoB1Yl!JSNWw#32> zZsm9K$wQ%Yg$2weoQ!(~09kb7J%5`|Q$yR>`X}AH>m+E*!wg=;Kl$`}*uZ`Kud@?T z&`BsX=XefG62*)0EtNTQ7{YNN$pbB1aqN(8l2b4Db_u;MM%<;;E(?{>(&8DDFouKq z1d`9qo!qlEbF0AbJK`N%$VDmLPz(@S&77V&C7GJQ3g`V5au_d~AQ}*n-KB|q8Ycq? z$;ptI4sK|83kU=RSE3JGu=f2yUeIc)@sdn+%}MPl18r*QCIF_>a1i>VpH_yGGvymizZ*=g!hWzzG%6MG ztn$XMG|NJ?%-s-?l@c^LF0v_FCOuN2){a4gX)=e*Nr7A!euhw1kN2H{R1t z%~!>C`4;ZYL*v6_1aC>C+FC?o2LowR7QJu8HVVw{E{7kJO;2{}r zRC(61s#)~#`~v)xC98IYPZFmYs-*V|uKDXdQ|kDb@8(^o=Rfs}(~PxEW>I4;sW=~R z`&cwE0ETH8_2N7D!|0GJq75Tjg?sroym+VE1>Pfu;&{w!yoWi%bm6Zg#=z*2CFG-O zJsIU>nPjj8e69E+O^Cx?h{b%(%8@tnSTgpR*=eutifiI%)VHZpw(|v@FTiJB7fa(S zLo<@|ZK^DjDivEBDf~Y1g`EpA3xv~P$4p)xhoAbxA>tank|BH8@ zx9?YFMAo?QmP8qA_T&emkN20?BdYNh4jwDMTkx6%7vP^#yh-li>3)9aH$U&44u;{g zZe^MjvRXYtd!rxg%Ibyf*ZR!vg-uhuU%kB>1>{)I_fw@57tEyCXQ-)eF8W58jv8px zGa-u(T*aySOSA`x*Kd^pplxA(K)att7POEt;BbT=JF>OGFg188`iuhaNAE7sOh6Ea_b*C_nX1@caTg7X$aynl zK}s(&$`mxG|M?;mgh`YcN8V(ZU~?Ca88zpb<(zxDp)wxNJ8ye7TUtiLK{crl>jZ_S zzJ1%mK%r1NgP6dRqd=t??%TTVTT&Se4ViyMEOeL1k-t4NvHI)}Mz;^`vJdRj+I3-X zRTo2ehnQ#T28O8~N!xAkYfRT{zY<@|fa>}F>n9R5?sSo%WA%>i zUmiv;=x4{A2fo&?>zf`%zV{cD!w`G=Rv$LGzO-uYVuK-10KfACQrg6bLhVR5w>6Ca7u?f+m1n|0(A0eIWS?XDTo$r+s66U{A{TF@A1zkc zD6Cmo!|2+y=B8D>Fn?8Z)${Q|7Ct_>OMSlFUR6l*sAMK^6^ zj_u3&N5ryGi;<$~fuH4X!3`5myMQNgXKh@bV{jqz5NJ(?C$U>3Gz0w2rE4|T7iSe} zy|iOL=V&zao~dd{$^lOO_YsCuubYM2az8gU=SMKmu=9yJ8*Z(x@7p8nS~G$ir0~@} zFoQ>7S=?5o;HWs}TU+`gIiS}(1=4W5Xt^9d##Yg}73+jYSHvb(zfp8B7fSW^fD#^A z%>DAn=+vxB<@@!ra;9vHcVx5{)Ei7Lud#j}MBv%>QqD0rq{j;zCc^JPL-C$vNLCMf z6OvE1e0bi`5E!2Jl=%_lE8J@)4Rg(ElA!jlRmkL5J{?WsNq-~`OKK-ZoW0gF*}-)I zsNr1eYZ=7$C<|H=y`lZC$ha*y7eBu3*_PC$p5B~_LI(t1)lj!IKLvzXWXqT(fV5p5 zsbHv%@AbN&)zAh6VJAsliMHb1aatV-w49+qy1w6cV)g;rX9c?2kZ0bP(|GyP-SE{Q z#fkr7v8M=mh{NQZV;8JE=sDbQ(V}jkU*hhs;Sg`Flz=yrinrV%+w*48|HRa*GI%c zp0wCSTev%IgtDY?AdzZHJwklvL}yMm9paqbs}xgJz7IoeRs*A+EwUj$Qtn+YVMLGY zk?OIz*3Ch^u5j7k*P%FU?6K9n#d~RBr2UBK?b%rWz$v**q7^{qa!!uKW8)XM%*P$M zNuNc9M)cstUv7I_8_NN5q|{&1ukyM6KJOFoN$g}lS)QTi&s<5*NSc(%VYBab4!FnU z(~Sq4y3-|FGd4*-scv0yFF8m0*Vxc6k;`psZ`C~Cgj?0KqeHH)HXpq#bf458Okh-6 zH0T;!Ro5#FajE#v|rC#AGxdjy?XM1}VdxTWhz~D65*Aj4W zk=I;3AsIGgTPom?c=KeTS4zQ7jUU_1pEcqUbyAU}Xm|5q^oqf{aQA=s&lEiodSz>> z1<&?WnccL$I#lM7+uUDgMkjS%X14`fZ8cY(;@_hbRUwb`^}d6P2;BE}*JN-D|BN8m zpibuC?M)9ghU zHR674E5V^5ufz|JRsb(I8+%)NPEKxI;a!1$rn&G%#BVgSf^uLSG$m(Pqt@PhRN>z! z@sGPtP=0Y#u0O`V!_v(FBW`SnRcEy9M5YZ_>;&G{iIZlG$OwyvLWu`m4Zu-|5q?I? z!ulZ|#O5!c%aoJP&W)HmomCj@Z@r}sh{hcTl}lmnQ0a9-c6Juj+%0_N-K+pmW-Y~GyY=%fR?B(okM#o{o~vNz3fO zV9BpLFP^&LZKHOYJsem!TMs(JPCh-d(fkmBABhA`AsIPX7$v0uTh!Eh-IxbV`PnzJ zHlOe&WN|5Ss*?R2N9Su@n$K3zC2VBHPYcG(oK%tieF&E10~;aky<4!+{rrrR(_#&);zA$$0ee(#_=P+qxog?yL7Nrq0>t(j`vpb-q%$-=0mS^olfb3 z;75Dk_*TD=xy%aNMgF51Tl}PW0W9?+l3E<`m{dlZT$FA_)2Q0q^WfR|`?Eu?(RJOb z&OHx4D0DC&jA+men8k>8G2#hN;!#95s3P5n$`aiEM{%~>d zcikF4eM6bA8A$uRdFp||F59=Z%1XFlr`KBbOC(O~R9Wm?G!1a0IxN@d9f{~UUcj|U z)O|0@=!P=t=S6~039eol635}udTaSMeJWukXZIV=iXOFRzi{FEM@kDs2nZyMu=Qc0 z1Cy&$5Cv0qn)W|G2pXs7co9EFh(1v~o{Xs0uw9jJ<8(fdsf$YyQ#MZ=?xl!Fe8+Q0LpOHI*5vi^64>5pop z6(V1v@)cw~e^#>7DamrTmyIs?lO(1`uIjCD(Y?Du_FQ-a$tAuSMR>;kGuN_ZQKnk6 z^6Sz@e?@P3mP{Q;d%=yI;~71@yz|>AU+yE{w5I{meCKR*jtLmH6a!DmRmT0ELUJnS z=iI5b<^!8oDjsuvV1A^1D`BdtM^{fA9poW=GogFS=5px+!3u!AVf0{uXVLgivL`0e zj8e5ou4I)T)H%JOdN%u4O`944X;>GN+6Yse9+;h%l;x-YXeE~dD zspYLuXs}Jub_xnz7J|vvo(EdDODU3plUfOecQGS#IQT#&I*cZcKQ{PxEli#eFr4U) zJZ}nbt5C^d1hHje@$rlAp|u6woGj4XQ)B|aZETisV^k-U^-+)0)GW>4P0x#HhK_Ta z*9u2Xp-yFxf0Tr;xYmwuD}cA-v1HLwIPs~=E(O-27WpR0X^SVKpF;P<{+rKwR3U47FVI1fvd$I4iYfSO|0O4rUC0DX3p-W z8Z{`mfq#!9oV{NEOpE;8iA1FK~q^G7+AZV(IlJgXt- zj1H4=LcB(LkgH;Jm@*IVT19hhn{iu%UA$K3+5a-jw^)N)!-sR7r;X248w0d%<1hy6 z-gr^DQVp&Z7E_f)5|6XF!DgUH#|2LK@O{9YYPgP4jMjtAWH(dtA+3cjg=Z20|P)#{yG!JFMbpsz6ubPh!NW0!V|YeJZ4x=_B&QRBvnLbS zX7BvmClqA}o-J0%$Faomox*x7ZhY8&rXbPluIBZrDLVzUwa>GJiY}H<8EXIHg(q}B z7-fqX2ln#6sb3PLE74lroCfpD6;Io4;5_A#xe-S|%NjuqiNW=gi(Zv#efK6V^!~Ps z(b=JIwTJ^zUPkJ)F)tdZINqZVQt6)1V+Z^t=U#ah|aVM zc#OU~F{NrC{4fkyonaJ`jQ__kmsF+W*lX6Sw>uHFVSdPU&GU8r(~v4pIo`xk+mPom zhP_>AH5iLQ9@a0km|5*5B#SU3_JA-1fFM%J1ycMQn2}j}xK3k9B&4X~ltC~RoAF`47q%8E^ti*$Y@^+)$?{7qv zC%0g-+eqga!F))@Co=6<7WmgCawX9X^+zQ4$4OsxX-Lw;*o?`vyh(J!lS=P0S)Cw} z+OmEkC!-Fuu2qT(oq&jI?U~k8?su;TjbBgs0lF8nbh|r>{H=?iM+sQ{cz?9ZOhZ!p zhhFOhb5M_?3Wzb{E7hK;;?;CH4GVr>7}4vZh$6?Z{(VWrarHI6sG*4-gK4ptvvla` z0rUDvOOsky2Xkmj->R6O#a)090}Tc|`y?VFx6Gq^dxO~N7A}kb7VbYA=_P}B=buIm zfZYGW_v|=VS$ZO)rB*Q}E$)i%S}|sFv1x>*oC*I!FC(hV9>lJ0V(jS?_}KVo!WhxM zd!$5j#LI?da|B|Xqa*6FOz1E^z}fZy6S%1j;{H0-jJuU zJ_flk0o78}r>PUUg~cIVd6aqIflknxg5w+^YQhb&8svkk`@Iu-*33#!mHR6WcTV^F zh>of6Slk!ccT&)L8js3?$GQq+OsKb`^+tL~=*d|G2P_zQ?S&}2{fi+4eDrBI>#HDM zM-t%AAZbb7E;?Ptg-_1)67HU}kqRveM067A zemiLA3Awc*@TzuW%_#rrLWO~b6<+W{0Bc7RMB zWy!AH8>;el-ATas&rd)wsO9gIu=Yy9#=px|@v>>GON8ZOFAAv9tpEHJc>CNIl5mra zo12%%-;ap>dxRr*i@cy6WYpk{KMN)q|1L+PGA6s(DC$G<1qE_yaCV?Bi51wdG{aYe zQ%3)G@6{w#QJjt3+gBWLw=U?32m$KzP{p?uS{fJ%8A>!@FY!9z9)!BKcD?VE-=2_5h3@Rjz0ZyK&ar34ZoJs4wMFne;r^Z?c1+Z(XY|XsmU;NV z`F_$fiGK@0+#4KTX(b5g!(onw^FCPJB^*JrXpTf`&lr1}2yV$$3YGCI(lbw`Bq#&N zcC_^?yJ*NXz^n1v5TxSDX&Yfri+VclpuxOXaJVqgp2ik!#uvz@<@-G47p8{{Q3}X! z?I5cR;6hZBpm{nI%VB|%M(2aWe3F;@L7#d%%zNHXbWFn6(a%<}-o>#GGcqe^zp?DaAqi9P~kU<7iXB zrIk*aAb4xDbIJDESRJap2PoF!4M^RL7Lp|#!@v#W?YV{%*!!_fxuM>~Pjig@jJOW^ z8+?GgxM$Am7R`He_M5Gc;HB-Zcac7~@-7Lk0^0ZYJ{SE_PebUd6LA08>Z5ek5wwGo;tJq9R|O3Gz1q%6aTykr zqwv2pZ9MKKU2ruN%09eVd1zbo-YZi$oY@#b5j$)-*)VyyPHDWCqP&hX0`AVZ%)6iU zjg0Wm=xA&AZVhD&-GK&Fq#DWGi5ko^iAhgD_jZ*hkLyA`X{F!SU$!`FssdYSfE!+3TTTI(*e1WO660nmj}B^RX5)lym4!9k5Zlfemvmxk1>6O7ip1j z`{QZk`inGjE#|7;(>q@ktNHaWh8ArMrg0CsHLUvYgu(G7g`VT2nE2Ti`?_7>%`K0T zWl7JItRb0nmPg(LNhx=G`dTjG?K1D&e?7VCoZIe8VNgp+h+D&Ri_~ko%)IrTKoM6X z(^Wle2mm;6H zo;!jC$aAQ}Rn60%OjRR^pkG;79aJ$1D1zQqI zUIqH8Q~vScocq&471vRO_>0;KzoEP@PvM~rBT0J3)@^ck8*P3!gX_%9%(=E=R~s<; zvS?nX4nMJ*xe-~J4XNj%7Wbdc?M2F4T8#Sp`v=>>p*oybfo@A96I0>oKt`CoN7#ND z(zw)y0+e3$(!{3TtO=TU@6a_~Ec*_=!OB)}4mJ#{S+{#cRUjWtfrT zo9>tAbqaJjSi&;>yl*XN?prS5M7TE@teYT+iUIO_n>A>Xz+t+T-$`R^a9goZ-=7Nt z68Ys7Gc{)myawp;(;F4dCm(_qn=N&Ihl>NNEeRce#g^9L#(sI6;}+8)N4NXQ82F4> zm@y}vO@uC}FVc>)kiZR|Fs^Y@eZ?U$cIIKg2| z)6>)GHz7=a_%j%X>gBgvq0k!)bR;Qa&BYLwZ#&dYPmTK=iUzA=2_>A;g5GgFZQXTKYQ8w z@PG9A z!y|^qCS8bdkV9du->lfH9dhr>mi>T@Z?~pO`7KopEe#@i$hSaZOybj4Zv~ojNq+O0 zc&YTj6>9c+HUoVv1$jBdKo&DGP9MUsCeP!GADHZ^uGK1{Qcol^A=Kf$v~Rw>3-G#q z>#;=O((Wk{+Oy=b;wM|Q#*8NWT8l1~`eB{&;T1A6^0glQLTU8ELBo1X>diWk>Ll?3 zFMg29^O-RNMeKU_dPVbr5Xe|HQm^owiO6>jDM(HEQ}z=7e&UD#X_RtUY(~1%NOR_~ zP#R7(m5+loX=6xfSNouby>cHoN!t5Vl!T z=lFaWy!NOsDkS`QJ3S~kHm%kN?s0iA(}}*9zK%5hx;SeqIHp!Pe(san_`XrdKMuKb zuA*>V!|)0a^GYDl9PeF57qZLca&pJ54*Q}ZX(T>R-v){viwY^BOaN!x>tjQUKJw~} z9vlDg8Ve0#^+xEJ`Nk&~RS(eosF&Y$$m4E-yIcCUNuJ0&I~9mo z9g};pdU$`kCgD611qd2SIK!&@1;u>u`F1vL zKM~@2k@{U5hVCDyGgD>*8t1lxC2>)ws!U^T7Sr!d&mD{yaty1~>n16AW=wauBO^EW zCan7Dt~)*hv9hi~AS5~-{+$vs$pvy3cX7(TMG;!A+$>*2J&`h4NH;tpG7{o0u6s=l zN;Lf2tXpOGjJd!Y^5T#py<-F1yYY|pC(H+B& z+rdHQd=rw7xyeZI7b`ki7KcVN99;&i<>4B9*8^FFU&(7rKx|engzuT^Lw@`~<9(6J zYYhc?21Hrnz1~o#%|J{xD1_-a^ph#7wbi8cJk&}^ns~bH_V0kX4Lj~rELkOqBli>` z72q|eg8Vk>S;PZKKDmJIddq$P<}$WwO7Di%^T7&OEmAA-WDNwR7D z$m{er#N8cWdnSGg2RZ?b1JX}3vc|c~eo za#0EFDruGn6K~P1QLFOS$LHoLKeyrhz-INriI!fXmCh)e=&=9rX+cQwmeeh&fm~zg z+v>6SWyf>n0m?~Rgk%UA-aXP{>Cir6*FVhTl19e#Wl%T-T|>Sb-3< zo!i$&KZt_jLn%pkr==N>w+Cu|jqOn^)r{ePVho%-tJf{#i2anxW4+75-W109shwqo zHdZIt#pOXuYsPVZg<+=Xqog4vCw$6QT1-Z3y?y#O%`Tl5a`g{K{mXO~B5gCx3q&4d z!*4ewj7yPOeu`>?Buovx-VFt*j4^Lk5$Imj1V{PA{#(|oAZ(W1h%MxWzD z+^xRWF)(NF-Ub(ZLL+*>-pZH*o7m6hb_J469G3GKZ?l|(4rJQItF!#T$FtK5#}jGGmlSKW zi+AOtVuEZLa5o_>trioRjk`T7785r>>+rPj(KPsyUcAl#&Sx-RZt>5X;Se#qAK-d; zcurvRP)PkDMM_N$O$n_(Y-M%vw0`pRB!xF=Z=4wqcK{r%T$ZG#5nWBq*yPENHWSij zZ>Z>Ti$!c#Ujx|rvS5fz zyo^uD+-;@>kR8Lubd1vQCy8)#GhI|tmF*aw5Iu}8So^wvW_X|u0mphDIGA;yHV0KZ zGd8=|z63hB?YM&9!z3Fj-*#>K^vkAO9{M%A#g<2(aflZF@KE{m3-mGtja4)m|4ebu z3y{O?v!@d;_ojZ0=oJ-?fV1wI|y5sdz7kaD;H*wRx@QD7!Dau1C(|1)Z}h_m*( za^6|}uundZ=v&3Kzo14@VaDDC!?KZ%=R+;ZQJyq};f%W#+Z3gU|6VamHIv=ml5al{ z&C7|XEl&U1`k@y`(DSw-ky3=JShFJ5MmO26*KX6jHb;vrWT2+u&zu>?L5Xh-Xtq<{*CXAab>r3tYfS5Ke zg^>lE9LDKS%Rf)~`vk~E@9cM86_A5C%g}3SI2#_L;U0Teij{{0tcTnZO2g$bH>%04 zwOIE`BH{{*zyK`HLJ~6;oa@|NE^5w_Q$MZ`jk>1|MIT2JQ3}#C=*8CdO=hn#E30AJ zp7$>2{@SHJ;h~E`IXsC#m9=FBj;ExRJnUl6pV%W8v@6_<5>qEVu?|_jPWBxBg{6iD zp>6dn-dm!d5?1`F-F~n%coxP(?HnFvDASuLK>d;Z&-}0a@|!b$w&O1(#m&+omX#56 z5kc~A3n_4A`fu`=nm1C*`6XhBPsi3}cl|6op6F{dvunHJ#!9$49gfj>1DSWqU3fOw zH-S)QhZTz7Pv>=Gey`U}&I~9HVMEOHO9O@BzkZQLZ%Ep$F{gi~w70RbCk8KcYlj7n zH^@jvRq>nDT`7#84q}QHv)P4gNtgJP<4jGSMIP}%L2Cvls8d^A0*#u^-&-TT*d+M( z;>$Hh{%Id@<(5B7F8=lh*q$*=K09Qn)HnV`a|(v85Y)G_7ziXr#VsK1teMey{ngguPXIWr4muetZfpbQFnR1 zdUpx@^^vUk%0cnDC!$qC+QZ|okm`Tez2i7Az{Iq2wHqlZUjSSUT8WuUTUc9L*Bmmi zL2v!nqxmr)w46}87*MoR!ATyvxpniQG?v z8m5B7YU_s6Q&atG=_G=ySD++Q;U?~D(O?(5#aDBXdQtn~y#0QTt$;i%aythQv-DPe zGa886O3q2R_@0)gPXxTiyyu|rYI|=06G~ZwwCgc{k}=KSZ`%Z60~y^a92&ATY<^$P zFZO|jjYHwO(3dG;y41-2*^Xj1f7d_$Cb(+u$I#*?PM#yF>}tB=K)+hU!x}aj^?P$L z`U`2z*;u2}Is>U?XT_{ruY9qd9ln+TPq4_=md>}A&Q|TeK2K^c9E=kIqO=WT&9AFR zK%?@(8QlUcZG)pvhvm%&Tx$s$12O0zx(n=Vw=%J;l%=qk+{)Zep1pNs#pD$mb3Xr$ z$Gurluu zDCOQ~Nl+>(Z_YUtb%g1r>X(`F)jFWf7j^CTLh?beE9 zckG>k+5+j#YRs>AeBK!%x7Gp`xIibQaGMCEd2skS5qo{;Z2Dsd$-~t8s?o2FMEBbD zZ@7DD;UI0QDh$0+5p;Vbkj4RO{G)GY)7LD(*tzOsMl(aB?)J!=~%*1+6hrERn$qBoBq}v$XvV?`;M|A z4?QVtHhLOfaQV&f@fp6mxF|wn&yK+{dU8xzCUk4cmqn?*^(cf9Q5g%725?iMZi)Ma zN1hhQG}6KFk%sZ&r8LXPc#S99 zpon~ABm?M@9@>uJUsD|W-6U3*qqGl^zQ&Wf0;F2 zfG#g+3-lEscX;>iW+*YE_e@jg2!XmwX1H)ujF) z)Xma>APX*dP7~WR0T2r`OK&qzSI?4C%#2q|a8i}c<1$&HWoK;|&1+v!^htLKta(`+ zTr}t)m4sn{#|r3I(f+c3ll$#k+)#}$5eW8=-+v$St1W0>DS-Faopbp$cu=i(}InS+b>`Cg^)CMc@3QpEtd3LEtZp4No$Ro_U(;L5P8XN zpI*o+T#K@$?4}Q#AJmow&PRl6R~00<3LYu!Y-yNl0eFc|{1_Ju)$2lVX=F2x#C~gp zD{&e5yaU}Y^`6jYq3Ue-Iqus`kd8a+9#b{i|J80(r*SvkWgUBtZ+*Cs!pb!?*c$h? zOZoolI!fQty)oLNpkFdtakCQE%XyBc>_;5y%sJN7)4RQ%Np3vVjRZ}uQ^L|uTpCHjJ5Di zRDa3Ja2i@>$uqZ(FS;dt5e*ET*A~ntpzqDO1)5QaN>^qtwc}6y$o?(J(&w-1NpX|; zxvYX_svEMWO<4P@73lc#jP-|H_1pj)8><%t1F4y0Fys4@hz5>Zmu+_ypBbpM>$ky4ZGmO< z4<3N;B9eYph3tK;i&c@XM2XEs24;+tq;dA?;dJNVb@y+jsN!JTwz3lts!&KlD1@^E zF-j`x^DiaIITh!OS7~ETZ$N~R@excZaZANvgnql}&33+mOEH6ZJjmY%!A(@p=600l_!{?lj?brjWVTMg)i2KVsG=@mZ!la+`$DKZ>@}8yp3RiHh3JGHgac3XZ2$6h^nGXO z&4kNWUb^M$VCo3P@%)d13}@hT9LStle*NrA=wSqNIdtLj;rhLdg2$o$dMu*I{IQ>m6d;wTfx++Keoy+jk)j9Gul z&UQ7Gs>-Ru_M^Om{k$gJ98*^B*rgrBYI7?H#N}G(7a8XE4BC9XGGyqcuO|z|l8*RX zxjuiU-9ZV>0EG|BHOpQrVezt`1H72H#>D^5kqZw#+fT=Fi^s76NU%y`VW-x&nW3VB@l9 znd9`I_(&d2!OtF!E~3{OYY0K3ig!NVvJ8)%F5S<)+fK^+(Y51Cet246%wf}BIjjz0EFCRuMvlTu8m;dIP72iQezf51`c7kF zgj4CE`P~uD)nXpwn7rjzs_`oyEThFnv$TlX-6CO=muU$1cM3Wt^zXKEd3B;lbkL!w zDP5{S4b3=U*Zk-gjXv#o+r9YRjvBh7qpj=9o4NUso%|GIJV`DrZ@%R^*DnfwdN&gu zIB#1VCZSi|r}|uM3~q>+AI)znhcY&fhc-FK6dIa2O?-zxeu(ZhT@JWxcHH0nZg&`# zc)CNwA4}>uepnpEh#gqNKTpb9UK~Cxw7qNaA)00$h?pOsdXbc;^n}xEqNoyF_Hted zHw&V!M#m&NaG3_p_ejTDM-p)j`68xF$2>iA+ovm^C(SsIMy4u zF51O?s6!0TrHJS{vhtFa_W7w7%uJ1G%FfhP3i;f z_!KYA_JNrQHg&O5(A!rdho>Z&pR5ULB!8|XUwfyOS-XYlw)Dg`wLyE; ziSwy(EVDT#Tt=xVG?c=?RV*UUq~2kC!qI2=lz(TE3gu*=@kG-*Dq7S1J7OFV9Yp0a+}6rj**a+?rZUK(&igqo-r7ug@8Vm;Vg5U@4>9!s>1Rul&Dh z=&;O!?a%yME2o-~)AFw($9`(Gdrf`QOpD97UP1hrD6q?_LHz_w6AQPJK%u*H1S4wR zz=$U2{8Wd6(3HEleKg9KWOiaQ^f_LMnh(>Z`epu~ztKj<0c##yV~40(D|y@q{1@!Z ze0?C?8`ji#+$^G}^#dy5I=1=+FL@huxNPdp513oVNuea=H!fGlO{J{T!LeZk$`Oua z-nI|t>}QqiWmn*8L?w^~oHiqZOPUrweNuGdRjk!;Qp>?F$@~4GaHF=eMnC)J9FCzn zbo9Vi?+vMeZ)Gx7_UpIO9A_#*%nR6418+%cdCCH{p=)Flpa+8a_p2&dw(S?8N^d)f z?>~K2yvpHae&250av(TbNcf_kfk8R38Z}A&P4dA4bNh-Wq~ti8Z#$L+hSJlO0~!_U zKqnzt6w=INj(^jCfjM3(mrB}-h_~IRin1n4=Y{Xwcg9afOWhs2It8PinkRd%T zCf3b$fn<6b-pN4YY`0y&;2ej6?g-Tp=uqPvZ=gcPi31vLlVs^B=W3SGTz~K1E4z`J4Fu`F z7B{MwO+H+*9slL|9BX$%&Vht~%*z{_{{EeJ3^Hq29JU&dCmR zVnreEyOvXs2|S0^bbbdTm&A$MaUY4SF67w`5tU?k<3iR?v?&7`*GZju=O_yrvg4aY z10`BXAw=kU(10BQtf(@04u#PPkR}{qp`abHz4lW09yOsGhX;5YCMo!svxc>^hytoZ z%yFP!aT-NZ#lak_>Far)r2vD8h4Gj?=~lXe?bn`c)35#ntcPc`g0Mo=38CM_YJxSD zoOqk-ms_v~&gZievEmro!#lP_wm>H6*iCaLZw|i~Ld@F~7`(7Bb8qOOoMyof&ryuYFOe z!b|fv1)9k~zndBLyC53ip~p*_P7UJx9B#w%6kG;M0(dSR>$Qnop1~vW?~E%SmD`~a zKW0uB&mQSrxy0**+f;)ICAb>gq6`dj#*3R^g8|E2GLS^I5<9bQlBY3n7SIlg0rHdr z-VCu0yzE!PWV3U5i@qjMADu%Ro7;Qkx$D>z)72ND7(WODSQODcPNVskQ;+x-GE>b<4 zae~ziwZN5yfR;{*Tv4Fuh>wp{P}IN>FPz{|WAaTl_cv*feVA6X^;8rXFOq5^OS+Dv z?5;VHApnxIh|$8P2L*^Upv9%7%APrOQTlfFTfFi!JjBAPRk^Cao#>{XKj|wNYB`%W z9M`DKLSL&a3;82*B%KMZ!iQv$Pin$Z>4I0q^4h9J_%8@Ll{P2v>8%Y!jKIbm1MT)J zTWTYMOm$o+pdGZsb5T(_85+%HHEoCFGt}L|8-OSU6eWYkKw$Nk#eohs7h{+ z`@Dj%r+H^@JWCSVpBH3k@fIg#_7)|)R1OBD^(p;-?84qLm;a%B)e<9o*rIiQuw*N% z;%=dlru@2|epuzODG*^oucl-IoB(M3YQXgbx}(&*aMB8mq!4$QvKVM9%d)U1$Do4* zzzH|qK%&IvPHHy3yk9OKUg(!S+35IqlGbNIW%aiUb!A&ORLTI14V`SezQTw;HjA%f zC^n!*qULW_g?lMlADA30?C#fzvFZ<35Vi*}8JDeFAE084Up+2>G&=@d^U zKS4$YQXbbNBf6T*YM57AIw)Nsqy<=1)y{+(bXWN8+j9DZ&4eyT&#r50jlW^=cl;x= ze{;~x-dz;5w||-r+kYuXLh2JAW*V96g041v+_(N;hQt$F2>22%ww<656%` zy_G!i!B%%WRU*|cKK%t*SKcNybdp-9F;BXl!rjVOY00C$LTWET(g*E}QcqQB45vz% z#uKEW@Wr0+f*hoYgX7mnHGC(HH0HS<`r!7SZyR1i*WK#!Yd-Vhg)4r{fxxpb^*f4S zU_jg@j^r%|6}Qk@wI?S4`n?sMnGl_>Kr4027wdrmL4!sP(rhaQD^l-3i@y}k%{&b1 zq=&`IrAh5<6Rxhj(s;sphXWbthw`~njy1fq@_A~D2iJYQW&v`{r*YI#PCUu5cf1GAggwaa- zXu{<-uaVx;&SN|#oR%S>=bfqU9E2^*AMvk2I!w|xUQDqB|;C zPD7b@1lj=QfLAQ%{4B*Se0dEM?*nZdHN!=?&Q#>N*{{IJa%1tn5u}G$FCsO1%3tmX z5?x#Zn;C-w3K^O`p0W*NoT65*D~$0_A{3o9QkG zx~?IsAyRzLr6z}Hh8(yZO6maBIi>o!Pt9^Hzzn>CoxP~}!I!lC-OouP;vR%h-0||$ zP|Tjg8K-7G^|Bco8df6kO>OHpxfW;I&0lxGYmZ}sGrxZCxZAeZ`8!&GMK6>_XY7uS zHBvz-D!UZ|8r6gtJ7+IC)7+kc5-SV5oiX)#HBk{fAzD>+5}ZNihP0#SA*_v_i~vz4b%^oiFwz(EP>P zEfpp{-Q(G|I{yZr&8F0LTc#(dHN4`m#{3Dss2rD+#;9jvl!bVt#R%cU;%syEh?ubV zGtW%FKU!*{Q)^an5$n6P2r)ft8+*om~vvKLZ`0hd6-C zU!P!n&J4jkLCI3?-m0*QHJ)}FfRuObvLbH6g~if4rX15L{CTkFh@@xs=Vd&(cohwW z`K-tKbZF}RA8y8rM%v&^qJ}AaH=gf(nDv~R3i1m94X4yeUfu`&TtD#oLZ?V7eOtXf zpiXn#!iHeORFYp9b||^BTE`EwZLIN1i(!gjnhcYr{b0RccYZq=wA};%6DSypl3Y)y zDf%*ZmHqG&gi^ClX7&w-kg}T0)>go3rZ4gX}v{Wf~)6a;boK1h0B3wD){+-dhR3I8Wmf4rL2XTcZOn zG984NdXB||PlSP16a@Kdzktr9uhZf_5wGYcEaZMN;_wW623E?KwVif^M0=(Uw_Fd| zsxeV|FEd-9t)L%ZpFo{V9P--!F_U8pxwlB9HwlP7Z<>jR-;-3yQA|Z_Y!qv#amag9eG!EzOSY`;4d~37N zKluGv7?tgH!+QatC6nN<&p(*e&~K?Ps0A~PRq4l)I>!(!c*wIX0H?Ob!9iFC^(?`@sQ%IL19;Rs41wCq8PZN7`EV(91E(~kf0`dq0+7%J zc6HHyqf1)vN%l`I2A0b?aT2voFf42&BtV8!H#6z(=G0Pi5aWNo72r8S9o_>}#)>Uq zt?d8)#%HJ40(evm2@Z<*W5Rnucd7sX4eq?7fzSwJgtO#$&<1N@_~qj*;7HE*8s1#= zJvQUG78an3jej(E2U~k!j10mkL5S;lb&)p|2@vp4Fyi(NwgBY{nIw<0U-|TaI2Le} z`iq#?wbZO4FispYvY|uXl0SZ(0=K@t{#b?9$=~-^$bp5BM1-`3FOp-*q4|24k9nL%v==-s3%t)~rk z6?{~z(GGd;9Ln=xIRy09to>z3$9^~-Z2Wha_Eat8bQ>nFZG+Tvw>ka9rsd&h3l?e_)9xN>43DV*zZ z$Ryw|SJ4i(7jUKh_he|K@upS1`D^W>D12P(`pJ+~ z#C|(oowii#JA!wm{@;tO92yC#g&i{ zEd<~J6rRt@_p-@7qVQVY#-dknms}m6^SW1$5Qvt~_RxASE#Z-=o$N2$+D5*KtTF3W zNJNOu{NCaMzmd7M+>@vyvx!^KV}n__+ig>NOUl!Ce5X1_GV7linkDE7f5e#lEAm0NpN%709rDk%S@vu>a{>4 zV_$a9DAPx9boa+g&tDS)KiKaX=G0l(k(?wbm;qDQ^jm#=H_d9D%kq zn0(9k{=fI^YnXB;-=vjzS73hvIRWoHj>~Ja^1cXy#)Q+^DuY{Lfn?4(^HSy(*7!b) z3(WI6W$g@Wn)J(vm(l~n?XwL(Pns{lg{Ti)UV~lT)&|b)kT_LOy1KCq*JMcUJ}qbj zj=i!tF{gRTX@Up(G}2^u60PT+{rmk0+18E%})IRZ;cI`Ub(NowVF9vBbN^tf#RrN&La*@ENP!f{E9mZ~Ghn7Uqn zWDhM3Ug<_6HeBu`be(%z`J0(X3zOJ|Wm!?9TJ2q$eBd@3Q#nD(YVu2s{-W6$Jyf&g z_)_RBj}o3VLeLLEqHi_q>;pjb`B_ca7T*j^J_JHl&oeo&Uy@A9F8~^Mk%BX@i6j1X z({w{Yt|Sc~$t)KvJVYJAAOf}!0(nCzOn;H$7>9bQS+dfz!k;9h3a-VECV6iYOH)at zICp7;oArGaj_Qz1_S>u0Br`eyIRmuv?=Gm)y3&DWb#wXTCz<{{+)PM*1VlV&bImeU zL1V+E$uR9u2gV3M=Yg zo;#}$E?$1|t@Ao*9rqSKAGnS;yx4Vk&qm@p<5xzh^b|`QOG`+hdV=S+BHl z(J@r$)1pN41O5?hwY^^m5|1kuF#0cF71*=2KU{J)`fWOUnJLMX^ne}2c0xhMI-8;) zwRyO-!EHOfUyia-x5efTL$&fKUfVfGTe?B|*vghTN8?K~0!1PEJ4^g1c45Th7)9AT83w&^h zd=pM+93I2!xpKJ&L+_BT&v^x(o1U4O-;+OWn1$xmFumM2=%_H|C_Vs@>G1cF7D`f5 z18DRiw2-_ka4*?-u`Vq+DkD($eyOe$7J;MeYFM?c`02ai<|Rx9f-hr$zm)ukb8E$0 zUjt}1X{)hmEY7J3j;;e+n=}90LM%m0QyP4!JeR_$6D6!XjyP+3V*5mG^)g;c9FHh* zDxeAK|F=n?NAwoRn-#i$+t<838#^>yekHB}x!QNLwE$_Utnh>viQuyT$Vv*fKoYNd zRaV#r!*vk{9h#QRcIo#F^M(Q9FW`QT^lw`V>MCpuQu(#MfP!3kM-QPEue7VYZT9xi zfAwX(V-V(&@X-2|HBE`7GYkeOzb%_xWD9rxDOhHnCjJ; zs$Fk5`KR!vJ}`E~-{&W`>+I47gsB9c+5>KIqZgaD%v0B z2DbaUQ5OMs;{QEHyvFLF9oxlgPn{57pF0w;&xQxdV^6yO_Rv1G@Oc2uRMo>RvPnUf z0gQW|{ulSeryhcR5u%&=7``%@AIR{77hUq-U3EmN9*FxZAFR|!P_V2(E!}$-g95?J z3i%g7@R(05Jxss2VBjz~R+o}w5O{nZ%mMAbwr@4w= zy3p;T11sZ*7a(gJya9Wl>sv{af&2_LJSEHL95i1-eu!!KzjN*{FWND84F1fw8X6l` zNuyamr;bN^h{^kRBY7Fd2QMUjryb^L?{3bMj&tRdbaj*ChB2wh1vvfgP{rSEgw-(L z3gc0Lx6QD{*0Mk&DNmNGq_jCWR~_PN?7oY>Q%n6bGQaJM1ezf6(V_hAk)M(f<7mQv zty91rg~&8a`dZZx-#-WmzDO)-2j1cTqH;9Iug}Sk9)aK@^y>jpKgB^hbin!W3HYNR Mqbgl4`7ZGP0rrhzzW@LL diff --git a/ui/desktop/electron-app/config/macos/background@2x.png b/ui/desktop/electron-app/config/macos/background@2x.png index 8b2477f4ee1efd602d76a75dff46cc514223bd7c..65e472457915b3cf570978bb1269337597addedc 100644 GIT binary patch delta 58001 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 delta 58002 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 iMmQ)V@l~j!ZP4eecG+%+`16t Date: Fri, 12 Feb 2021 12:42:32 -0500 Subject: [PATCH 100/106] style: Add icon to dmg title --- ui/desktop/electron-app/config/forge.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 9b1731d69..ec63df287 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -43,8 +43,9 @@ module.exports = { { name: "@electron-forge/maker-dmg", config: { + title: "Boundary", name: "boundary-desktop", - title: "BoundaryDesktop", + icon: "./config/macos/icon.icns", background: "./config/macos/background.png" } } From 2ac65ba4e582a1439a5de20ca526b0bb446d8c52 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 13:07:56 -0500 Subject: [PATCH 101/106] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20initial=20?= =?UTF-8?q?doc=20links=20to=20dekstop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/scopes/scope/projects/sessions/index.hbs | 6 +++++- .../app/templates/scopes/scope/projects/targets/index.hbs | 2 ++ ui/desktop/config/environment.js | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs index fc6e412c2..123bc2007 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/sessions/index.hbs @@ -1,7 +1,11 @@ -

{{t "resources.session.title_plural"}}

+

+ {{t "resources.session.title_plural"}} + +

+

{{t "resources.session.description"}}

diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs index 46ba29ed8..294071675 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/index.hbs @@ -3,7 +3,9 @@

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

+

{{t "resources.target.description"}}

diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index 0469efdca..cb8bcd5cd 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -44,6 +44,14 @@ module.exports = function (environment) { notifyTimeout: 4000, sessionPollingTimeoutSeconds: 2.5, + + documentation: { + baseURL: 'https://boundaryproject.io/help/desktop', + topics: { + targets: '/targets', + sessions: '/sessions' + } + } }; if (process.env.ENABLE_MIRAGE) { From 2e33ee8f85b86a9a9e41795def3d69a526622194 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 12 Feb 2021 13:10:08 -0500 Subject: [PATCH 102/106] fix: Make default window size larger --- ui/desktop/electron-app/src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/desktop/electron-app/src/index.js b/ui/desktop/electron-app/src/index.js index 5b95e658f..3a9e42607 100644 --- a/ui/desktop/electron-app/src/index.js +++ b/ui/desktop/electron-app/src/index.js @@ -97,8 +97,8 @@ app.on('ready', async () => { } mainWindow = new BrowserWindow({ - width: 1024, - height: 768, + width: 1280, + height: 760, titleBarStyle: 'hiddenInset', webPreferences: { partition, From 24fa7e7403cc87dca0a2e356713008d569afe44d Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 13:52:58 -0500 Subject: [PATCH 103/106] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20support=20extern?= =?UTF-8?q?al=20link=20opening?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/mirage/scenarios/ipc.js | 8 + ui/desktop/app/routes/application.js | 14 + ui/desktop/electron-app/src/handlers.js | 8 + ui/desktop/package.json | 1 + yarn.lock | 1821 +++++++++++++---------- 5 files changed, 1049 insertions(+), 803 deletions(-) diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js index bad3194c8..f8b7e524a 100644 --- a/addons/api/mirage/scenarios/ipc.js +++ b/addons/api/mirage/scenarios/ipc.js @@ -26,6 +26,14 @@ export default function initializeMockIPC (server) { return this.origin; } + resetOrigin() { + this.origin = null; + } + + openExternal(href) { + window.open(href); + } + cliExists() { return true; } diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index f32dbf9bc..d24608101 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -1,5 +1,6 @@ import Route from '@ember/routing/route'; import Ember from 'ember'; +import jQuery from 'jquery'; /* eslint-disable-next-line ember/no-mixins */ import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'; import { inject as service } from '@ember/service'; @@ -16,6 +17,7 @@ export default class ApplicationRoute extends Route.extend( @service session; @service origin; + @service ipc; // =attributes @@ -33,6 +35,18 @@ export default class ApplicationRoute extends Route.extend( return this.origin.updateOrigin(); } + /** + * Adds listener on target=_blank links so that they may be opened in an + * external browser. + */ + afterModel() { + const ipc = this.ipc; + /* eslint-disable-next-line ember/no-jquery */ + jQuery(document).on('click', 'a[href][target="_blank"]', function () { + ipc.invoke('openExternal', this.href); + }); + } + /** * After becoming authenticated, does nothing. This overrides the default * behavior of the ApplicationRouteMixin, which is to redirect after auth. diff --git a/ui/desktop/electron-app/src/handlers.js b/ui/desktop/electron-app/src/handlers.js index 948e82c51..2b6b1030a 100644 --- a/ui/desktop/electron-app/src/handlers.js +++ b/ui/desktop/electron-app/src/handlers.js @@ -1,3 +1,4 @@ +const { shell } = require('electron'); const handle = require('./ipc-handler'); const boundaryCli = require('./boundary-cli'); const origin = require('./origin.js'); @@ -24,6 +25,13 @@ handle('resetOrigin', async (requestOrigin) => { origin.resetOrigin(); }); +/** + * Opens the specified URL in an external browser. + */ +handle('openExternal', async (href) => { + shell.openExternal(href); +}); + /** * Check for boundary cli existence */ diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 3d865e587..e63f6435a 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -35,6 +35,7 @@ }, "devDependencies": { "@doyensec/electronegativity": "^1.7.0", + "@ember/jquery": "^1.1.0", "@ember/optional-features": "^1.3.0", "@ember/render-modifiers": "^1.0.2", "@glimmer/component": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index b4a5c0378..8cfd17e56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1443,6 +1443,18 @@ resolved "https://registry.yarnpkg.com/@ember/edition-utils/-/edition-utils-1.2.0.tgz#a039f542dc14c8e8299c81cd5abba95e2459cfa6" integrity sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog== +"@ember/jquery@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@ember/jquery/-/jquery-1.1.0.tgz#33d062610a5ceaa5c5c8a3187f870d47d6595940" + integrity sha512-zePT3LiK4/2bS4xafrbOlwoLJrDFseOZ95OOuVDyswv8RjFL+9lar+uxX6+jxRb0w900BcQSWP/4nuFSK6HXXw== + dependencies: + broccoli-funnel "^2.0.2" + broccoli-merge-trees "^3.0.2" + ember-cli-babel "^7.11.1" + ember-cli-version-checker "^3.1.3" + jquery "^3.4.1" + resolve "^1.11.1" + "@ember/optional-features@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@ember/optional-features/-/optional-features-1.3.0.tgz#d7da860417b85a56cec88419f30da5ee1dde2756" @@ -1908,15 +1920,6 @@ resolved "https://registry.yarnpkg.com/@hashicorp/structure-icons/-/structure-icons-1.8.1.tgz#d29945df2b41dcb317b141e51a26bd4be796a164" integrity sha512-XFYdCIshmaR3Igc8eWpOZ2Gr3IR/0TogXZ4PQ9bz1E9cLzF3njBcs3tCpJUOwRwe/wMI5YTlL/sOGvcZ77AB/Q== -"@iarna/cli@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz#0f7af5e851afe895104583c4ca07377a8094d641" - integrity sha512-ukITQAqVs2n9HGmn3car/Ir7d3ta650iXhrG7pjr3EWdFmJuuOVWgYsu7ftsSe5VifEFFhjxVuX9+8F7L8hwcA== - dependencies: - signal-exit "^3.0.2" - update-notifier "^2.2.0" - yargs "^8.0.2" - "@icons/material@^0.2.4": version "0.2.4" resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" @@ -2060,11 +2063,6 @@ "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" -"@npmcli/ci-detect@^1.0.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" - integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== - "@npmcli/move-file@^1.0.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.1.tgz#31a3afae95308ef12f58ac147b3e33aae621241d" @@ -2651,11 +2649,6 @@ traverse "^0.6.6" unified "^6.1.6" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - "@types/acorn@^4.0.3": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.5.tgz#e29fdf884695e77be4e99e67d748f5147255752d" @@ -3230,7 +3223,7 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -JSONStream@^1.3.5: +JSONStream@~1.3.1: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -3243,7 +3236,7 @@ abab@^2.0.3: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== -abbrev@1, abbrev@~1.1.1: +abbrev@1, abbrev@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -3323,20 +3316,13 @@ after@0.8.2: resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@4, agent-base@^4.3.0: +agent-base@4, agent-base@^4.1.0, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -3344,22 +3330,13 @@ agent-base@~4.2.1: dependencies: es6-promisify "^5.0.0" -agentkeepalive@^3.4.1: +agentkeepalive@^3.3.0, agentkeepalive@^3.4.1: version "3.5.2" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== dependencies: humanize-ms "^1.2.1" -agentkeepalive@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a" - integrity sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -3406,7 +3383,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^4.7.0: +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= @@ -3414,7 +3391,7 @@ ajv@^4.7.0: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3512,7 +3489,7 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: +ansi-regex@^3.0.0, ansi-regex@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= @@ -3601,15 +3578,15 @@ app-root-dir@^1.0.2: resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= -aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.1.2 || 2", aproba@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +aproba@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + integrity sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw== archy@~1.0.0: version "1.0.0" @@ -3792,6 +3769,11 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -3809,6 +3791,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA= + assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" @@ -3881,7 +3868,7 @@ async-promise-queue@^1.0.3, async-promise-queue@^1.0.5: async "^2.4.1" debug "^2.6.8" -async@0.9.x: +async@0.9.x, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= @@ -3936,11 +3923,26 @@ autoprefixer@^9.7.2, autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + integrity sha1-xXED96F/wDfwLXwuZLYC6iI/fWM= + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.2.1, aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + axe-core@3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227" @@ -4877,7 +4879,7 @@ base64-js@0.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.2.tgz#024f0f72afa25b75f9c0ee73cd4f55ec1bed9784" integrity sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q= -base64-js@^1.0.2, base64-js@^1.2.3: +base64-js@^1.0.2, base64-js@^1.2.3, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -4931,18 +4933,6 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bin-links@^1.1.2, bin-links@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.8.tgz#bd39aadab5dc4bdac222a07df5baf1af745b2228" - integrity sha512-KgmVfx+QqggqP9dA3iIc5pA4T1qEEEL+hOhOhNPaUm77OTrJoOXE/C05SJLNJe6m/2wUK7F1tDSou7n5TfCDzQ== - dependencies: - bluebird "^3.5.3" - cmd-shim "^3.0.0" - gentle-fs "^2.3.0" - graceful-fs "^4.1.15" - npm-normalize-package-bin "^1.0.0" - write-file-atomic "^2.3.0" - binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -4965,7 +4955,7 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.0.3, bl@~1.0.0, bl@~1.2.3: +bl@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== @@ -4973,6 +4963,22 @@ bl@^4.0.3, bl@~1.0.0, bl@~1.2.3: readable-stream "^2.3.5" safe-buffer "^5.1.1" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bl@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e" + integrity sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4= + dependencies: + readable-stream "~2.0.5" + blank-object@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9" @@ -4983,11 +4989,23 @@ blob@0.0.5: resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -bluebird@^3.1.1, bluebird@^3.3.5, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + +bluebird@^3.1.1, bluebird@^3.3.5, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bluebird@~3.5.0: + version "3.5.5" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + blueimp-md5@^2.10.0: version "2.18.0" resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935" @@ -5061,6 +5079,13 @@ boolean@^3.0.1: resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570" integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g== +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + integrity sha1-emNune1O/O+xnO9JR6PGffrukRs= + dependencies: + hoek "0.9.x" + boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -5068,13 +5093,6 @@ boom@2.x.x: dependencies: hoek "2.x.x" -boom@7.x.x: - version "7.3.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" - integrity sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A== - dependencies: - hoek "6.x.x" - bops@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/bops/-/bops-0.0.3.tgz#c5cbf6fea8be7401ca5ea6d1679e6c4e8b407c79" @@ -5105,7 +5123,7 @@ bower-endpoint-parser@0.2.2: resolved "https://registry.yarnpkg.com/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz#00b565adbfab6f2d35addde977e97962acbcb3f6" integrity sha1-ALVlrb+rby01rd3pd+l5Yqy8s/Y= -boxen@^1.2.1: +boxen@^1.0.0, boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== @@ -5946,6 +5964,19 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -5956,16 +5987,6 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= -byline@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" - integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= - -byte-size@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" - integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== - bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" @@ -5981,7 +6002,26 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: +cacache@^10.0.0: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^12.0.2: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== @@ -6049,6 +6089,44 @@ cacache@^15.0.5: tar "^6.0.2" unique-filename "^1.1.1" +cacache@^9.2.9: + version "9.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.3.0.tgz#9cd58f2dd0b8c8cacf685b7067b416d6d3cf9db1" + integrity sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g== + dependencies: + bluebird "^3.5.0" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^1.3.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.1" + ssri "^4.1.6" + unique-filename "^1.1.0" + y18n "^3.2.1" + +cacache@~9.2.9: + version "9.2.9" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.2.9.tgz#f9d7ffe039851ec94c28290662afa4dd4bb9e8dd" + integrity sha512-ghg1j5OyTJ6qsrqU++dN23QiTDxb5AZCFGsF3oB+v9v/gY+F4X8L/0gdQMEjd+8Ot3D29M2etX5PKozHRn2JQw== + dependencies: + bluebird "^3.5.0" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^1.3.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.1" + ssri "^4.1.6" + unique-filename "^1.1.0" + y18n "^3.2.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -6135,7 +6213,7 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-limit@^1.1.1: +call-limit@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== @@ -6248,10 +6326,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.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001181: - version "1.0.30001183" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz#7a57ba9d6584119bb5f2bc76d3cc47ba9356b3e2" - integrity sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: + version "1.0.30001185" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz#3482a407d261da04393e2f0d61eefbc53be43b95" + integrity sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg== capture-exit@^2.0.0: version "2.0.0" @@ -6283,6 +6361,11 @@ caseless@~0.11.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c= +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" @@ -6424,7 +6507,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.0.1, chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -6434,6 +6517,11 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chownr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -6456,13 +6544,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cidr-regex@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" - integrity sha512-sB3ogMQXWvreNPbJUZMRApxuRYd+KoIo4RGQ81VatjmMW6WJPo+IJZ2846FGItr9VzKo5w7DXzijPLGtSd0N3Q== - dependencies: - ip-regex "^2.1.0" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -6545,14 +6626,6 @@ cli-boxes@^2.2.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-columns@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" - integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4= - dependencies: - string-width "^2.0.0" - strip-ansi "^3.0.1" - cli-cursor@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -6597,7 +6670,7 @@ cli-table3@0.6.0, cli-table3@^0.6.0: optionalDependencies: colors "^1.1.2" -cli-table3@^0.5.0, cli-table3@^0.5.1: +cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== @@ -6634,15 +6707,6 @@ clipboard@^2.0.0, clipboard@^2.0.6: select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - 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" @@ -6703,10 +6767,10 @@ clone@^2.0.0, clone@^2.1.2: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= -cmd-shim@^3.0.0, cmd-shim@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz#2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb" - integrity sha512-DtGg+0xiFhQIntSBRzL2fRQBnmtAVwXIDo4Qq46HPpObYquxMaZS4sb82U9nH91qJrlosC1wa9gwr0QyL/HypA== +cmd-shim@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + integrity sha1-b8vamUg6j9FdfTChlspp1oii79s= dependencies: graceful-fs "^4.1.2" mkdirp "~0.5.0" @@ -6790,13 +6854,20 @@ columnify@~1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.5, combined-stream@^1.0.8, combined-stream@~1.0.5: +combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.5, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8= + dependencies: + delayed-stream "0.0.5" + comma-separated-tokens@^1.0.0: version "1.0.8" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" @@ -6919,7 +6990,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.4.6, concat-stream@^1.5.0: +concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -6929,7 +7000,7 @@ concat-stream@^1.4.6, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -config-chain@^1.1.11, config-chain@^1.1.12: +config-chain@^1.1.11, config-chain@~1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== @@ -6976,7 +7047,7 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -7263,12 +7334,19 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -cryptiles@2.x.x, cryptiles@~4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.3.tgz#2461d3390ea0b82c643a6ba79f0ed491b0934c25" - integrity sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw== +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw= dependencies: - boom "7.x.x" + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g= + dependencies: + boom "2.x.x" crypto-browserify@^3.11.0: version "3.12.0" @@ -7412,6 +7490,11 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8= + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -7512,13 +7595,6 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" @@ -7533,6 +7609,13 @@ 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" +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -7653,6 +7736,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8= + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -7668,7 +7756,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@^1.1.2, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -7730,11 +7818,6 @@ detect-newline@3.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -9461,7 +9544,7 @@ errlop@^2.0.0: resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== -errno@^0.1.3, errno@~0.1.7: +"errno@>=0.1.1 <0.2.0-0", errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -10181,7 +10264,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@^3.0.2, extend@~3.0.0: +extend@^3.0.0, extend@^3.0.2, extend@~3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -10540,11 +10623,6 @@ find-node-modules@2.0.0: findup-sync "^3.0.0" merge "^1.2.1" -find-npm-prefix@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" - integrity sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA== - find-root@1.1.0, find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -10750,6 +10828,11 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -10791,6 +10874,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI= + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + form-data@~1.0.0-rc3: version "1.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" @@ -10800,6 +10892,24 @@ form-data@~1.0.0-rc3: combined-stream "^1.0.5" mime-types "^2.1.11" +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + format@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" @@ -10845,6 +10955,11 @@ front-matter@2.1.2: dependencies: js-yaml "^3.4.6" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@8.1.0, fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -10988,7 +11103,7 @@ fs-updater@^1.0.4: heimdalljs-logger "^0.1.9" rimraf "^2.6.2" -fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: +fs-vacuum@~1.2.10: version "1.2.10" resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" integrity sha1-t2Kb7AekAxolSP35n17PHMizHjY= @@ -11030,6 +11145,33 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fstream-ignore@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU= + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream-npm@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/fstream-npm/-/fstream-npm-1.2.1.tgz#08c4a452f789dcbac4c89a4563c902b2c862fd5b" + integrity sha512-iBHpm/LmD1qw0TlHMAqVd9rwdU6M+EHRUnPkXpRi5G/Hf0FIFH+oZFryodAU2MFNfGRh/CzhUFlMKV3pdeOTDw== + dependencies: + fstream-ignore "^1.0.0" + inherits "2" + +fstream@^1.0.0, fstream@^1.0.12, fstream@~1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -11097,33 +11239,16 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== +genfun@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" + integrity sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E= gensync@^1.0.0-beta.1: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -gentle-fs@^2.3.0, gentle-fs@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.1.tgz#11201bf66c18f930ddca72cf69460bdfa05727b1" - integrity sha512-OlwBBwqCFPcjm33rF2BjW+Pr6/ll2741l+xooiwTCeaX2CA1ZuclavyMBe0/KlR21/XGsgY6hzEQZ15BdNa13Q== - dependencies: - aproba "^1.1.2" - chownr "^1.1.2" - cmd-shim "^3.0.3" - fs-vacuum "^1.2.10" - graceful-fs "^4.1.11" - iferr "^0.1.5" - infer-owner "^1.0.4" - mkdirp "^0.5.1" - path-is-inside "^1.0.2" - read-cmd-shim "^1.0.1" - slide "^1.1.6" - get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -11351,7 +11476,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@^7.1.6, glob@~7.1.1: +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@^7.1.6, glob@~7.1.1, glob@~7.1.2: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -11656,6 +11781,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@~4.1.11: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -11696,6 +11826,16 @@ handlebars@^4.0.13, handlebars@^4.0.4, handlebars@^4.3.1, handlebars@^4.4.2, han optionalDependencies: uglify-js "^3.1.4" +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" @@ -11706,6 +11846,22 @@ har-validator@~2.0.6: is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio= + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + hard-rejection@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" @@ -11916,7 +12072,17 @@ hastscript@^6.0.0: property-information "^5.0.0" space-separated-tokens "^1.0.0" -hawk@~3.1.0: +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + integrity sha1-h81JH5tG5OKurKM1QWdmiF0tHtk= + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~3.1.0, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ= @@ -11980,6 +12146,11 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU= + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -11990,11 +12161,6 @@ hoek@4.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== -hoek@6.x.x: - version "6.1.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" - integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== - hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -12017,7 +12183,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.8: +hosted-git-info@^2.1.4, hosted-git-info@^2.4.2, hosted-git-info@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== @@ -12029,6 +12195,11 @@ hosted-git-info@^3.0.2, hosted-git-info@^3.0.6: dependencies: lru-cache "^6.0.0" +hosted-git-info@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + integrity sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg== + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -12118,12 +12289,12 @@ htmlparser2@~3.9.2: inherits "^2.0.1" readable-stream "^2.0.2" -http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: +http-cache-semantics@3.8.1, http-cache-semantics@^3.8.0, http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: +http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== @@ -12165,7 +12336,7 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== -http-proxy-agent@^2.1.0: +http-proxy-agent@^2.0.0, http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== @@ -12173,15 +12344,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - http-proxy@^1.13.1, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" @@ -12191,6 +12353,15 @@ http-proxy@^1.13.1, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY= + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -12200,6 +12371,15 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + http2-wrapper@^1.0.0-beta.5.2: version "1.0.0-beta.5.2" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" @@ -12213,7 +12393,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.3: +https-proxy-agent@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -12221,7 +12401,7 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^3.0.0: +https-proxy-agent@^3.0.0, https-proxy-agent@^3.0.1: 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== @@ -12229,14 +12409,6 @@ https-proxy-agent@^3.0.0: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" @@ -12275,21 +12447,16 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: +iferr@^0.1.5, iferr@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -iferr@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" - integrity sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg== - ignore-walk@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" @@ -12412,7 +12579,7 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -12432,12 +12599,12 @@ ini@1.3.7: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -ini@^1.3.4, ini@^1.3.5, ini@^1.3.8, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0, ini@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^1.10.3: +init-package-json@~1.10.1: version "1.10.3" resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== @@ -12594,11 +12761,6 @@ invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "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" @@ -12609,7 +12771,7 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@1.1.5, ip@^1.1.5: +ip@1.1.5, ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -12687,6 +12849,13 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= + dependencies: + builtin-modules "^1.0.0" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" @@ -12706,13 +12875,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-cidr@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.1.tgz#e92ef121bdec2782271a77ce487a8b8df3718ab7" - integrity sha512-Gx+oErgq1j2jAKCR2Kbq0b3wbH0vQKqZ0wOlHxm0o56nq51Cs/DZA8oz9dMDhbHyHEGgJ86eTeVudtgMMOx3Mw== - dependencies: - cidr-regex "^2.0.10" - is-core-module@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" @@ -12881,11 +13043,6 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= - is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -13324,7 +13481,7 @@ joi@^12.0.0: isemail "3.x.x" topo "2.x.x" -jquery@^3.5.0: +jquery@^3.4.1, jquery@^3.5.0: version "3.5.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== @@ -13481,7 +13638,7 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -13662,13 +13819,6 @@ lazy-universal-dotenv@^3.0.1: dotenv "^8.0.0" dotenv-expand "^5.1.0" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - 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" @@ -13701,126 +13851,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libcipm@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.8.tgz#dcea4919e10dfbce420327e63901613b9141bc89" - integrity sha512-IN3hh2yDJQtZZ5paSV4fbvJg4aHxCCg5tcZID/dSVlTuUiWktsgaldVljJv6Z5OUlYspx6xQkbR0efNodnIrOA== - dependencies: - bin-links "^1.1.2" - bluebird "^3.5.1" - figgy-pudding "^3.5.1" - find-npm-prefix "^1.0.2" - graceful-fs "^4.1.11" - ini "^1.3.5" - lock-verify "^2.1.0" - mkdirp "^0.5.1" - npm-lifecycle "^3.0.0" - npm-logical-tree "^1.2.1" - npm-package-arg "^6.1.0" - pacote "^9.1.0" - read-package-json "^2.0.13" - rimraf "^2.6.2" - worker-farm "^1.6.0" - -libnpm@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" - integrity sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ== - dependencies: - bin-links "^1.1.2" - bluebird "^3.5.3" - find-npm-prefix "^1.0.2" - libnpmaccess "^3.0.2" - libnpmconfig "^1.2.1" - libnpmhook "^5.0.3" - libnpmorg "^1.0.1" - libnpmpublish "^1.1.2" - libnpmsearch "^2.0.2" - libnpmteam "^1.0.2" - lock-verify "^2.0.2" - npm-lifecycle "^3.0.0" - npm-logical-tree "^1.2.1" - npm-package-arg "^6.1.0" - npm-profile "^4.0.2" - npm-registry-fetch "^4.0.0" - npmlog "^4.1.2" - pacote "^9.5.3" - read-package-json "^2.0.13" - stringify-package "^1.0.0" - -libnpmaccess@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz#8b2d72345ba3bef90d3b4f694edd5c0417f58923" - integrity sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ== - dependencies: - aproba "^2.0.0" - get-stream "^4.0.0" - npm-package-arg "^6.1.0" - npm-registry-fetch "^4.0.0" - -libnpmconfig@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" - integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== - dependencies: - figgy-pudding "^3.5.1" - find-up "^3.0.0" - ini "^1.3.5" - -libnpmhook@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz#4020c0f5edbf08ebe395325caa5ea01885b928f7" - integrity sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA== - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - get-stream "^4.0.0" - npm-registry-fetch "^4.0.0" - -libnpmorg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz#5d2503f6ceb57f33dbdcc718e6698fea6d5ad087" - integrity sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww== - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - get-stream "^4.0.0" - npm-registry-fetch "^4.0.0" - -libnpmpublish@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.3.tgz#e3782796722d79eef1a0a22944c117e0c4ca4280" - integrity sha512-/3LsYqVc52cHXBmu26+J8Ed7sLs/hgGVFMH1mwYpL7Qaynb9RenpKqIKu0sJ130FB9PMkpMlWjlbtU8A4m7CQw== - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - lodash.clonedeep "^4.5.0" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - npm-registry-fetch "^4.0.0" - semver "^5.5.1" - ssri "^6.0.1" - -libnpmsearch@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz#9a4f059102d38e3dd44085bdbfe5095f2a5044cf" - integrity sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg== - dependencies: - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - npm-registry-fetch "^4.0.0" - -libnpmteam@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz#8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820" - integrity sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA== - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - 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" @@ -13835,20 +13865,6 @@ libnpx@10.2.2: 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" - integrity sha512-BPc0D1cOjBeS8VIBKUu5F80s6njm0wbVt7CsGMrIcJ+SI7pi7V0uVPGpEMH9H5L8csOcclTxAXFE2VAsJXUhfA== - 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 "^14.2.3" - license-checker@^25.0.1: version "25.0.1" resolved "https://registry.yarnpkg.com/license-checker/-/license-checker-25.0.1.tgz#4d14504478a5240a857bb3c21cd0491a00d761fa" @@ -14016,16 +14032,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lock-verify@^2.0.2, lock-verify@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.1.tgz#81107948c51ed16f97b96ff8b60675affb243fc1" - integrity sha512-n0Zw2DVupKfZMazy/HIFVNohJ1z8fIoZ77WBnyyBGG6ixw83uJNyrbiJvvHWe1QKkGiBCjj8RCPlymltliqEww== - dependencies: - "@iarna/cli" "^1.2.0" - npm-package-arg "^6.1.0" - semver "^5.4.1" - -lockfile@^1.0.4: +lockfile@~1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== @@ -14449,7 +14456,7 @@ lowlight@^1.14.0: fault "^1.0.0" highlight.js "~10.5.0" -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@~4.1.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -14510,43 +14517,42 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-fetch-happen@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" - integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== +make-fetch-happen@^2.4.13: + version "2.6.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38" + integrity sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw== dependencies: - agentkeepalive "^3.4.1" - cacache "^12.0.0" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" + agentkeepalive "^3.3.0" + cacache "^10.0.0" + http-cache-semantics "^3.8.0" + http-proxy-agent "^2.0.0" + https-proxy-agent "^2.1.0" + lru-cache "^4.1.1" + mississippi "^1.2.0" node-fetch-npm "^2.0.2" promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" + socks-proxy-agent "^3.0.1" + ssri "^5.0.0" -make-fetch-happen@^8.0.9: - version "8.0.13" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.13.tgz#3692e1fdf027343c782e53bfe1f941fe85db9462" - integrity sha512-rQ5NijwwdU8tIaBrpTtSVrNCcAJfyDRcKBC76vOQlyJX588/88+TE+UpjWl4BgG7gCkp29wER7xcRqkeg+x64Q== +make-fetch-happen@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-6.1.0.tgz#7d3c647913136efd73e94bde899f85fcd3eda09e" + integrity sha512-Q/RHcHofC+BnleSGDiO3SQQX2mCvXz639s+kJ7+loR4RPT487itVJ8RWIyBEfnqpnkaUFaWgNyV6CxT7eyDdEA== dependencies: - agentkeepalive "^4.1.3" - cacache "^15.0.5" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" + agentkeepalive "^3.4.1" + cacache "^13.0.1" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^3.0.1" + lru-cache "^5.1.1" + minipass "^3.0.0" minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" + minipass-fetch "^1.1.2" minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" + minipass-pipeline "^1.2.2" promise-retry "^1.1.1" - socks-proxy-agent "^5.0.0" - ssri "^8.0.0" + socks-proxy-agent "^4.0.0" + ssri "^7.0.1" makeerror@1.0.x: version "1.0.11" @@ -14777,23 +14783,11 @@ mdurl@^1.0.0, mdurl@^1.0.1, mdurl@~1.0.0: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= -meant@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" - integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - mem@^4.0.0, mem@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" @@ -14983,13 +14977,18 @@ mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.7: +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.7: version "2.1.28" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: mime-db "1.45.0" +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + integrity sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4= + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -15000,6 +14999,11 @@ mime@^2.4.4: resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== +mime@~1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -15080,7 +15084,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.2.1, minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: +minipass-fetch@^1.1.2, minipass-fetch@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== @@ -15106,7 +15110,7 @@ minipass-json-stream@^1.0.1: jsonparse "^1.3.1" minipass "^3.0.0" -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: +minipass-pipeline@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== @@ -15120,7 +15124,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.2.0, minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass@^2.2.0, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -15128,7 +15132,7 @@ minipass@^2.2.0, minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2. 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.0.1, minipass@^3.1.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== @@ -15182,6 +15186,38 @@ miragejs@^0.1.31: lodash.values "^4.3.0" pretender "^3.4.3" +mississippi@^1.2.0, mississippi@^1.3.0, mississippi@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e" + integrity sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^1.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -15206,18 +15242,18 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" - integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" +mkdirp@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= + mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -15275,7 +15311,7 @@ mout@^1.0.0: resolved "https://registry.yarnpkg.com/mout/-/mout-1.2.2.tgz#c9b718a499806a0632cede178e80f436259e777d" integrity sha512-w0OUxFEla6z3d7sVpMZGBCpQvYh8PHS1wZ6Wu9GNKHMpAHWJ0if0LsQZh3DlOqw55HlhJEOMLpFnwtxp99Y5GA== -move-concurrently@^1.0.1: +move-concurrently@^1.0.1, move-concurrently@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= @@ -15450,23 +15486,6 @@ node-fetch@^2.6.0, node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-gyp@^5.0.2, node-gyp@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" - integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.1.2" - request "^2.88.0" - rimraf "^2.6.3" - semver "^5.7.1" - tar "^4.4.12" - which "^1.3.1" - node-gyp@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" @@ -15483,6 +15502,25 @@ node-gyp@^7.1.0: tar "^6.0.2" which "^2.0.2" +node-gyp@~3.6.2: + version "3.6.3" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.3.tgz#369fcb09146ae2167f25d8d23d8b49cc1a110d8d" + integrity sha512-7789TDMqJpv5iHxn1cAESCBEC/sBHAFxAvgXAcvzWenEWl0qf6E2Kk/Xwdl5ZclktUJzxJPVa27OMkBvaHKqCQ== + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request ">=2.9.0 <2.82.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -15559,7 +15597,7 @@ node-releases@^1.1.52, node-releases@^1.1.70: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== -node-uuid@~1.4.7: +node-uuid@~1.4.0, node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= @@ -15569,14 +15607,14 @@ node-watch@0.7.1: resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.1.tgz#0caaa6a6833b0d533487f953c52a6c787769ba7c" integrity sha512-UWblPYuZYrkCQCW5PxAwYSxaELNBLUckrTBBk8xr1/bUgyOkYYTsUcV4e3ytcazFEOyiRyiUrsG37pu6I0I05g== -nopt@^3.0.6: +"nopt@2 || 3", nopt@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" -nopt@^4.0.1, nopt@^4.0.3: +nopt@^4.0.1, nopt@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== @@ -15591,7 +15629,7 @@ nopt@^5.0.0: dependencies: abbrev "1" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -15611,6 +15649,16 @@ normalize-package-data@^3.0.0: semver "^7.3.2" validate-npm-package-license "^3.0.1" +normalize-package-data@~2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2" + integrity sha512-YcMnjqeoUckXTPKZSAsPjUPLxH85XotbpqK3w4RyCwdFQSU5FxxBys8buehkSfg0j9fKvV1hn7O0+8reEgkAiw== + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -15647,14 +15695,6 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== -npm-audit-report@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.3.tgz#8226deeb253b55176ed147592a3995442f2179ed" - integrity sha512-8nH/JjsFfAWMvn474HB9mpmMjrnKb1Hx/oTAdjv4PT9iZBvBxiZ+wtDUapHCJwLqYGQVPaAfs+vL5+5k9QndXw== - dependencies: - cli-table3 "^0.5.0" - console-control-strings "^1.1.0" - npm-bundled@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" @@ -15680,38 +15720,29 @@ npm-git-info@^1.0.3: resolved "https://registry.yarnpkg.com/npm-git-info/-/npm-git-info-1.0.3.tgz#a933c42ec321e80d3646e0d6e844afe94630e1d5" integrity sha1-qTPELsMh6A02RuDW6ESv6UYw4dU= -npm-install-checks@^3.0.2: +npm-install-checks@~3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz#ab2e32ad27baa46720706908e5b14c1852de44d9" integrity sha512-E4kzkyZDIWoin6uT5howP8VDvkM+E8IQDcHAycaAxMbwkqhIg5eEYALnXOl3Hq9MrkdQB/2/g1xwBINXdKSRkg== dependencies: semver "^2.3.0 || 3.x || 4 || 5" -npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" - integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== - dependencies: - byline "^5.0.0" - graceful-fs "^4.1.15" - node-gyp "^5.0.2" - resolve-from "^4.0.0" - slide "^1.1.6" - uid-number "0.0.6" - umask "^1.1.0" - which "^1.3.1" - -npm-logical-tree@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" - integrity sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg== - npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0, npm-package-arg@^6.1.1: +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0", npm-package-arg@^5.1.2, npm-package-arg@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37" + integrity sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA== + dependencies: + hosted-git-info "^2.4.2" + osenv "^0.1.4" + semver "^5.1.0" + validate-npm-package-name "^3.0.0" + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== @@ -15731,7 +15762,7 @@ npm-package-arg@^7.0.0: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: +npm-package-arg@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== @@ -15740,7 +15771,7 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.6, npm-packlist@^1.4.8: +npm-packlist@^1.1.6, npm-packlist@^1.4.6: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -15749,14 +15780,13 @@ npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.6, npm-packlist@^1. npm-bundled "^1.0.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" - integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== +npm-pick-manifest@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz#a5ee6510c1fe7221c0bc0414e70924c14045f7e8" + integrity sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ== dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" + npm-package-arg "^5.1.2" + semver "^5.3.0" npm-pick-manifest@^4.0.0: version "4.0.0" @@ -15767,28 +15797,39 @@ npm-pick-manifest@^4.0.0: 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" - integrity sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ== +npm-registry-client@~8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.4.0.tgz#d52b901685647fc62a4c03eafecb6ceaa5018d4c" + integrity sha512-PVNfqq0lyRdFnE//nDmn3CC9uqTsr8Bya9KPLIevlXMfkP0m4RpCVyFFk0W1Gfx436kKwyhLA6J+lV+rgR81gQ== dependencies: - aproba "^1.1.2 || 2" - figgy-pudding "^3.4.1" - npm-registry-fetch "^4.0.0" + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^4.1.2" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^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: - 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== +npm-registry-fetch@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-5.0.1.tgz#98f59f2ac83440baf7a4fbe800972cfe37c9334d" + integrity sha512-GK7SUx188KSkPvbceOGO59L3FGHLBYoP0YEhUAKYjAypL15v5xmoempZ9rIJS2R/1eOS0KS1Y9AQe79YfgNxaw== dependencies: - "@npmcli/ci-detect" "^1.0.0" - lru-cache "^6.0.0" - make-fetch-happen "^8.0.9" - minipass "^3.1.3" - minipass-fetch "^1.3.0" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^6.0.0" + minipass "^3.0.0" + minipass-fetch "^1.1.2" minipass-json-stream "^1.0.1" minizlib "^2.0.0" - npm-package-arg "^8.0.0" + npm-package-arg "^7.0.0" + safe-buffer "^5.2.0" npm-run-all@^4.1.5: version "4.1.5" @@ -15826,133 +15867,104 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npm-user-validate@^1.0.1: +npm-user-validate@~1.0.0: version "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: - version "6.14.11" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.11.tgz#e0b5598d7b9a42d275e61d8bd28cd7eee0074a3b" - integrity sha512-1Zh7LjuIoEhIyjkBflSSGzfjuPQwDlghNloppjruOH5bmj9midT9qcNT0tRUZRR04shU9ekrxNy9+UTBrqeBpQ== +npm@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-5.1.0.tgz#cf8201e044018e9c89532041c90094541982b2c0" + integrity sha512-pt5ClxEmY/dLpb60SmGQQBKi3nB6Ljx1FXmpoCUdAULlGqGVn2uCyXxPCWFbcuHGthT7qGiaGa1wOfs/UjGYMw== dependencies: - JSONStream "^1.3.5" - abbrev "~1.1.1" + JSONStream "~1.3.1" + abbrev "~1.1.0" + ansi-regex "~3.0.0" ansicolors "~0.3.2" ansistyles "~0.1.3" - aproba "^2.0.0" + aproba "~1.1.2" archy "~1.0.0" - bin-links "^1.1.8" - bluebird "^3.5.5" - byte-size "^5.0.1" - cacache "^12.0.3" - call-limit "^1.1.1" - chownr "^1.1.4" - ci-info "^2.0.0" - cli-columns "^3.1.2" - cli-table3 "^0.5.1" - cmd-shim "^3.0.3" + bluebird "~3.5.0" + cacache "~9.2.9" + call-limit "~1.1.0" + chownr "~1.0.1" + cmd-shim "~2.0.2" columnify "~1.5.4" - config-chain "^1.1.12" + config-chain "~1.1.11" detect-indent "~5.0.0" - detect-newline "^2.1.0" dezalgo "~1.0.3" editor "~1.0.0" - figgy-pudding "^3.5.1" - find-npm-prefix "^1.0.2" fs-vacuum "~1.2.10" fs-write-stream-atomic "~1.0.10" - gentle-fs "^2.3.1" - glob "^7.1.6" - graceful-fs "^4.2.4" + fstream "~1.0.11" + fstream-npm "~1.2.1" + glob "~7.1.2" + graceful-fs "~4.1.11" has-unicode "~2.0.1" - hosted-git-info "^2.8.8" - iferr "^1.0.2" - infer-owner "^1.0.4" + hosted-git-info "~2.5.0" + iferr "~0.1.5" inflight "~1.0.6" - inherits "^2.0.4" - ini "^1.3.8" - init-package-json "^1.10.3" - is-cidr "^3.0.0" - json-parse-better-errors "^1.0.2" + inherits "~2.0.3" + ini "~1.3.4" + init-package-json "~1.10.1" lazy-property "~1.0.0" - libcipm "^4.0.8" - libnpm "^3.0.1" - libnpmaccess "^3.0.2" - libnpmhook "^5.0.3" - libnpmorg "^1.0.1" - libnpmsearch "^2.0.2" - libnpmteam "^1.0.2" - libnpx "^10.2.4" - lock-verify "^2.1.0" - lockfile "^1.0.4" + lockfile "~1.0.3" lodash._baseuniq "~4.6.0" lodash.clonedeep "~4.5.0" lodash.union "~4.6.0" lodash.uniq "~4.5.0" lodash.without "~4.4.0" - lru-cache "^5.1.1" - meant "^1.0.2" - mississippi "^3.0.0" - mkdirp "^0.5.5" - move-concurrently "^1.0.1" - node-gyp "^5.1.0" - nopt "^4.0.3" - normalize-package-data "^2.5.0" - npm-audit-report "^1.3.3" + lru-cache "~4.1.1" + mississippi "~1.3.0" + mkdirp "~0.5.1" + move-concurrently "~1.0.1" + node-gyp "~3.6.2" + nopt "~4.0.1" + normalize-package-data "~2.4.0" npm-cache-filename "~1.0.2" - npm-install-checks "^3.0.2" - npm-lifecycle "^3.1.5" - npm-package-arg "^6.1.1" - npm-packlist "^1.4.8" - npm-pick-manifest "^3.0.2" - npm-profile "^4.0.4" - npm-registry-fetch "^4.0.7" - npm-user-validate "^1.0.1" + npm-install-checks "~3.0.0" + npm-package-arg "~5.1.2" + npm-registry-client "~8.4.0" + npm-user-validate "~1.0.0" npmlog "~4.1.2" once "~1.4.0" - opener "^1.5.2" - osenv "^0.1.5" - pacote "^9.5.12" + opener "~1.4.3" + osenv "~0.1.4" + pacote "~2.7.38" path-is-inside "~1.0.2" promise-inflight "~1.0.1" - qrcode-terminal "^0.12.0" - query-string "^6.8.2" - qw "~1.0.1" read "~1.0.7" - read-cmd-shim "^1.0.5" + read-cmd-shim "~1.0.1" read-installed "~4.0.3" - read-package-json "^2.1.1" - read-package-tree "^5.3.1" - readable-stream "^3.6.0" - readdir-scoped-modules "^1.1.0" - request "^2.88.0" - retry "^0.12.0" - rimraf "^2.7.1" - safe-buffer "^5.1.2" - semver "^5.7.1" - sha "^3.0.0" + read-package-json "~2.0.9" + read-package-tree "~5.1.6" + readable-stream "~2.3.2" + request "~2.81.0" + retry "~0.10.1" + rimraf "~2.6.1" + safe-buffer "~5.1.1" + semver "~5.3.0" + sha "~2.0.1" slide "~1.1.6" sorted-object "~2.0.1" sorted-union-stream "~2.1.3" - ssri "^6.0.1" - stringify-package "^1.0.1" - tar "^4.4.13" + ssri "~4.1.6" + strip-ansi "~4.0.0" + tar "~2.2.1" text-table "~0.2.0" - tiny-relative-date "^1.3.0" uid-number "0.0.6" umask "~1.1.0" - unique-filename "^1.1.1" + unique-filename "~1.1.0" unpipe "~1.0.0" - update-notifier "^2.5.0" - uuid "^3.3.3" - validate-npm-package-license "^3.0.4" + update-notifier "~2.2.0" + uuid "~3.1.0" validate-npm-package-name "~3.0.0" - which "^1.3.1" - worker-farm "^1.7.0" - write-file-atomic "^2.4.3" + which "~1.2.14" + worker-farm "~1.3.1" + wrappy "~1.0.2" + write-file-atomic "~2.1.0" -npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -16012,11 +16024,21 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -oauth-sign@~0.8.0: +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4= + +oauth-sign@~0.8.0, oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -16131,7 +16153,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -16165,10 +16187,10 @@ open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.0: is-docker "^2.0.0" is-wsl "^2.1.1" -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +opener@~1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" + integrity sha1-XG2ixdflgx6P+jlklQ+NZnSskLg= optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" @@ -16230,15 +16252,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== - dependencies: - execa "^0.7.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" @@ -16253,7 +16266,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.3, osenv@^0.1.4, osenv@^0.1.5: +osenv@0, osenv@^0.1.3, osenv@^0.1.4, osenv@^0.1.5, osenv@~0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -16481,41 +16494,32 @@ pacote@10.2.1: 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" - integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== +pacote@~2.7.38: + version "2.7.38" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-2.7.38.tgz#5091f8774298c26c3eca24606037f1bb73db74c1" + integrity sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA== dependencies: - bluebird "^3.5.3" - cacache "^12.0.2" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" + bluebird "^3.5.0" + cacache "^9.2.9" + glob "^7.1.2" + lru-cache "^4.1.1" + make-fetch-happen "^2.4.13" minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" + mississippi "^1.2.0" normalize-package-data "^2.4.0" - npm-normalize-package-bin "^1.0.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^3.0.0" - npm-registry-fetch "^4.0.0" - osenv "^0.1.5" + npm-package-arg "^5.1.2" + npm-pick-manifest "^1.0.4" + osenv "^0.1.4" promise-inflight "^1.0.1" promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" + protoduck "^4.0.0" + safe-buffer "^5.1.1" + semver "^5.3.0" + ssri "^4.1.6" + tar-fs "^1.15.3" + tar-stream "^1.5.4" + unique-filename "^1.1.0" + which "^1.2.12" pako@~1.0.5: version "1.0.11" @@ -16705,7 +16709,7 @@ path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: +path-is-inside@^1.0.1, path-is-inside@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -16798,6 +16802,16 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -17131,18 +17145,30 @@ printf@^0.5.1: resolved "https://registry.yarnpkg.com/printf/-/printf-0.5.3.tgz#8b7eec278d886833312238b2bf42b2b6f250880a" integrity sha512-t3lYN6vPU5PZXDiEZZqoyXvN8wCsBfi8gPoxTKo2e5hhV673t/KUh+mfO8P8lCOCDC/BWcOGIxKyebxc5FuqLA== -prismjs@^1.21.0, prismjs@~1.21.0, prismjs@~1.23.0: +prismjs@^1.21.0: version "1.21.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== optionalDependencies: clipboard "^2.0.0" +prismjs@~1.23.0: + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== + optionalDependencies: + clipboard "^2.0.0" + private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -17257,12 +17283,12 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== +protoduck@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-4.0.0.tgz#fe4874d8c7913366cfd9ead12453a22cd3657f8e" + integrity sha1-/kh02MeRM2bP2erRJFOiLNNlf44= dependencies: - genfun "^5.0.0" + genfun "^4.0.1" proxy-addr@~2.0.5: version "2.0.6" @@ -17282,6 +17308,11 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -17294,7 +17325,15 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pump@^2.0.0: +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== @@ -17346,11 +17385,6 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qrcode-terminal@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== - qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -17361,11 +17395,26 @@ qs@^6.4.0, qs@^6.6.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== +qs@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768" + integrity sha1-UKk+K1r2aRwxvOpdrnjubqGQN2g= + qs@~6.0.2: version "6.0.4" resolved "https://registry.yarnpkg.com/qs/-/qs-6.0.4.tgz#51019d84720c939b82737e84556a782338ecea7b" integrity sha1-UQGdhHIMk5uCc36EVWp4Izjs6ns= +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -17375,15 +17424,6 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -query-string@^6.8.2: - version "6.13.8" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.8.tgz#8cf231759c85484da3cf05a851810d8e825c1159" - integrity sha512-jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -17433,11 +17473,6 @@ qunit@^2.9.3: node-watch "0.7.1" tiny-glob "0.2.8" -qw@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" - integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= - ramda@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" @@ -17719,7 +17754,7 @@ reactcss@^1.2.0: dependencies: lodash "^4.0.1" -read-cmd-shim@^1.0.1, read-cmd-shim@^1.0.5: +read-cmd-shim@~1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== @@ -17748,7 +17783,7 @@ read-package-json-fast@^1.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13, read-package-json@^2.1.1: +"read-package-json@1 || 2", read-package-json@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== @@ -17758,6 +17793,18 @@ read-package-json-fast@^1.0.3: normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" +read-package-json@~2.0.9: + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + integrity sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg== + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + read-package-tree@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" @@ -17767,6 +17814,17 @@ read-package-tree@^5.3.1: readdir-scoped-modules "^1.0.0" util-promisify "^2.1.0" +read-package-tree@~5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.1.6.tgz#4f03e83d0486856fb60d97c94882841c2a7b1b7a" + integrity sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -17836,7 +17894,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.2, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -17849,7 +17907,7 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -17878,7 +17936,19 @@ readable-stream@~1.1.10, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: +readable-stream@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -18304,7 +18374,35 @@ request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.45.0, request@^2.88.0, request@^2.88.2, request@~2.40.0, request@~2.68.0: +"request@>=2.9.0 <2.82.0", request@~2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA= + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@^2.45.0: version "2.68.0" resolved "https://registry.yarnpkg.com/request/-/request-2.68.0.tgz#35fe6a5cd184393a477c95b0725604d822fb9105" integrity sha1-Nf5qXNGEOTpHfJWwclYE2CL7kQU= @@ -18330,6 +18428,52 @@ request@^2.45.0, request@^2.88.0, request@^2.88.2, request@~2.40.0, request@~2.6 tough-cookie "~2.2.0" tunnel-agent "~0.4.1" +request@^2.74.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@~2.40.0: + version "2.40.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67" + integrity sha1-TdZw9pbx5uhC5mtLXoOTAaub62c= + dependencies: + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + qs "~1.0.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "1.1.1" + http-signature "~0.10.0" + oauth-sign "~0.3.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + tunnel-agent "~0.4.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -18513,16 +18657,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.10.0: +retry@^0.10.0, retry@~0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -18541,20 +18680,20 @@ rfc6902@^3.0.1: resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-3.1.1.tgz#24fc3b2568496100ac507c2e27e61ec5a1c134dd" integrity sha512-aHiEm2S4mQSyyIaK7NVotfmVkgOOn1K9iuuSCIKJ8eIAte/8o06Vp06Z2NcLrmMahDmA+2F6oHx33P4NOQ1JnQ== -rimraf@2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -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: +rimraf@2, 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" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@2.6.3, rimraf@~2.6.1, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.1, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -18816,7 +18955,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -18843,6 +18982,11 @@ semver@^7.0.0, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: dependencies: lru-cache "^6.0.0" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -18942,12 +19086,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -sha@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz#b2f2f90af690c16a3a839a6a6c680ea51fedd1ae" - integrity sha512-DOYnM37cNsLNSGIG/zZWch5CKIRNoLdYUQTQlcgkRkoYIUwDYjqDyye16YcDZg/OPdcbUgTKMjc4SY6TB7ZAPw== +sha@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" + integrity sha1-YDCCL70smCOUn49y7WQR7lzyWq4= dependencies: graceful-fs "^4.1.2" + readable-stream "^2.0.2" shallowequal@^1.1.0: version "1.1.0" @@ -19085,11 +19230,16 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: +slide@^1.1.3, slide@^1.1.5, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= +smart-buffer@^1.0.13: + version "1.1.15" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + integrity sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY= + smart-buffer@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" @@ -19133,6 +19283,13 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA= + dependencies: + hoek "0.9.x" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -19192,6 +19349,14 @@ socket.io@^2.1.0: socket.io-client "2.4.0" socket.io-parser "~3.4.0" +socks-proxy-agent@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" + integrity sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA== + dependencies: + agent-base "^4.1.0" + socks "^1.1.10" + socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -19200,22 +19365,13 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" -socks-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" - integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== +socks@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + integrity sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o= dependencies: - agent-base "6" - debug "4" - socks "^2.3.3" - -socks@^2.3.3: - version "2.5.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.5.1.tgz#7720640b6b5ec9a07d556419203baa3f0596df5f" - integrity sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ== - dependencies: - ip "^1.1.5" - smart-buffer "^4.1.0" + ip "^1.1.4" + smart-buffer "^1.0.13" socks@~2.3.2: version "2.3.3" @@ -19416,11 +19572,6 @@ speedometer@~0.1.2: resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -19458,14 +19609,28 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^6.0.0, ssri@^6.0.1: +ssri@^4.1.2, ssri@^4.1.6, ssri@~4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-4.1.6.tgz#0cb49b6ac84457e7bdd466cb730c3cb623e9a25b" + integrity sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA== + dependencies: + safe-buffer "^5.1.0" + +ssri@^5.0.0, ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0, ssri@^7.1.0: +ssri@^7.0.0, ssri@^7.0.1, ssri@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== @@ -19577,11 +19742,6 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -19688,11 +19848,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-package@^1.0.0, stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== - stringstream@~0.0.4: version "0.0.6" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" @@ -19712,7 +19867,7 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: +strip-ansi@^4.0.0, strip-ansi@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= @@ -20078,7 +20233,39 @@ 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.13: +tar-fs@^1.15.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2, tar-stream@^1.5.4: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar@^2.0.0, tar@~2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +tar@^4: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -20347,11 +20534,6 @@ tiny-lr@^1.1.1: object-assign "^4.1.0" qs "^6.4.0" -tiny-relative-date@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" - integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== - tinycolor2@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" @@ -20408,6 +20590,11 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -20477,13 +20664,44 @@ topo@2.x.x: dependencies: hoek "4.x.x" -tough-cookie@^2.3.3, tough-cookie@^3.0.1, tough-cookie@~2.2.0, tough-cookie@~2.3.3: +tough-cookie@>=0.12.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@^2.3.3, tough-cookie@~2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== dependencies: punycode "^1.4.1" +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.2.2.tgz#c83a1830f4e5ef0b93ef2a3488e724f8de016ac7" + integrity sha1-yDoYMPTl7wuT7yo0iOck+N4Basc= + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" @@ -20595,13 +20813,18 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel-agent@~0.4.1, tunnel-agent@~0.6.0: +tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.0, tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us= + tunnel@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" @@ -20711,7 +20934,7 @@ uid-number@0.0.6: resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -umask@^1.1.0, umask@~1.1.0: +umask@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= @@ -20809,7 +21032,7 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= -unique-filename@^1.1.1: +unique-filename@^1.1.0, unique-filename@^1.1.1, unique-filename@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== @@ -20941,7 +21164,7 @@ unist-util-visit@^1.1.0: dependencies: unist-util-visit-parents "^2.0.0" -universalify@^0.1.0: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -20986,7 +21209,7 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: +update-notifier@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== @@ -21021,6 +21244,20 @@ update-notifier@^4.0.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" +update-notifier@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" + integrity sha1-G1g3z5DAc22IYncytmHBOPht5y8= + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + update-section@^0.3.0: version "0.3.3" resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" @@ -21195,7 +21432,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.0.0, uuid@^3.1.0, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -21205,12 +21442,17 @@ uuid@^8.0.0, uuid@^8.1.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g== + v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: +validate-npm-package-license@*, validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -21534,6 +21776,13 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@2.0.2, which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -21541,10 +21790,10 @@ which@2.0.2, which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@~1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + integrity sha1-mofEN48D6CfOyvGs31bHNsAcFOU= dependencies: isexe "^2.0.0" @@ -21596,13 +21845,21 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -worker-farm@^1.6.0, worker-farm@^1.7.0: +worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" +worker-farm@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" + integrity sha1-QzMRK7SbF6oFC4eJXKayys9A5f8= + dependencies: + errno ">=0.1.1 <0.2.0-0" + xtend ">=4.0.0 <4.1.0-0" + worker-rpc@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" @@ -21686,12 +21943,12 @@ wrap-legacy-hbs-plugin-if-needed@^1.0.1: "@glimmer/syntax" "^0.42.1" "@simple-dom/interface" "^1.4.0" -wrappy@1: +wrappy@1, wrappy@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.3: +write-file-atomic@^2.0.0: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== @@ -21710,6 +21967,15 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write-file-atomic@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37" + integrity sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -21769,7 +22035,7 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -21837,14 +22103,6 @@ yargs-parser@13.1.2, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" - integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -21858,13 +22116,6 @@ yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= - dependencies: - camelcase "^4.1.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -21916,23 +22167,6 @@ yargs@^11.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" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.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 "^3.0.0" - which-module "^2.0.0" - 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" @@ -21963,25 +22197,6 @@ yargs@^16.0.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.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 "^7.0.0" - yarn-or-npm@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/yarn-or-npm/-/yarn-or-npm-3.0.1.tgz#6336eea4dff7e23e226acc98c1a8ada17a1b8666" From 3663d3ea6ac32b39d25e74188aac5365b622c9af Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 15:42:22 -0500 Subject: [PATCH 104/106] =?UTF-8?q?fix:=20=F0=9F=90=9B=20dark=20mode=20sho?= =?UTF-8?q?uld=20persist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/desktop/app/routes/application.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index d24608101..be807e246 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -32,6 +32,8 @@ export default class ApplicationRoute extends Route.extend( * origin so that the renderer's CSP can be rewritten to allow requests. */ beforeModel() { + const theme = this.session.get('data.theme'); + this.toggleTheme(theme); return this.origin.updateOrigin(); } From b706460647b7a6db52f936a18273526078b759e9 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 12 Feb 2021 16:30:39 -0500 Subject: [PATCH 105/106] chore: bump CLI version to 0.1.6 --- ui/desktop/electron-app/config/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/electron-app/config/cli.js b/ui/desktop/electron-app/config/cli.js index 27e29e8c7..2e6858008 100644 --- a/ui/desktop/electron-app/config/cli.js +++ b/ui/desktop/electron-app/config/cli.js @@ -4,7 +4,7 @@ const https = require('https'); const decompress = require('decompress'); const os = require('os'); -const artifactVersion = '0.1.5'; +const artifactVersion = '0.1.6'; const artifactDestination = path.resolve(__dirname, '..', 'cli'); const downloadArtifact = version => { From a3311cf8c54846a1349470ceace49a5ac1171db2 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Tue, 16 Feb 2021 11:42:43 -0500 Subject: [PATCH 106/106] Creating empty commit to trigger release