From 9900fa50ac10926e503c7e2466d0d6228ae03341 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 00:08:45 +0000 Subject: [PATCH 01/66] fix(deps): bump ruby/setup-ruby from 1.72.1 to 1.73.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.72.1 to 1.73.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/v1.72.1...v1.73.0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c30b3bfb..fa5d9254 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Setup Ruby - uses: ruby/setup-ruby@v1.72.1 + uses: ruby/setup-ruby@v1.73.0 with: ruby-version: 2.5 From 586bdf1c4ac2fe5ffdb514853b1b29730ac96e50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Jun 2021 00:54:07 +0000 Subject: [PATCH 02/66] fix(deps): bump ruby/setup-ruby from 1.73.0 to 1.75.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.73.0 to 1.75.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/v1.73.0...v1.75.0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fa5d9254..3de02aef 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Setup Ruby - uses: ruby/setup-ruby@v1.73.0 + uses: ruby/setup-ruby@v1.75.0 with: ruby-version: 2.5 From fe4baee1dbb2ca03f4e3512f4d0420abc66f467e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jul 2021 00:27:40 +0000 Subject: [PATCH 03/66] fix(deps): bump actions/setup-node from 2.1.5 to 2.2.0 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.1.5 to 2.2.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.1.5...v2.2.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/cd.yml | 2 +- .github/workflows/check_ui.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 2dc9bf54..34c010f8 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2.3.4 - - uses: actions/setup-node@v2.1.5 + - uses: actions/setup-node@v2.2.0 - name: Dependencies run: npm install diff --git a/.github/workflows/check_ui.yml b/.github/workflows/check_ui.yml index 76b73eec..d29d9eeb 100644 --- a/.github/workflows/check_ui.yml +++ b/.github/workflows/check_ui.yml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v2.3.4 - - uses: actions/setup-node@v2.1.5 + - uses: actions/setup-node@v2.2.0 - name: Dependencies run: npm install From e8154ab7263a2e55fcfed700cf04661cb28b5725 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jul 2021 00:27:16 +0000 Subject: [PATCH 04/66] fix(deps): bump ruby/setup-ruby from 1.75.0 to 1.76.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.75.0 to 1.76.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/v1.75.0...v1.76.0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3de02aef..56e2cc24 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Setup Ruby - uses: ruby/setup-ruby@v1.75.0 + uses: ruby/setup-ruby@v1.76.0 with: ruby-version: 2.5 From 2c652821645f5888d34ba99be95223731fad59b9 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Mon, 12 Jul 2021 16:58:22 +0300 Subject: [PATCH 05/66] add button in html --- ui/src/views/dashboard/settings.vue | 122 ++++++++++++++++------------ 1 file changed, 71 insertions(+), 51 deletions(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index 1caceed6..be34eff2 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -1,54 +1,63 @@ \ No newline at end of file + + + + \ No newline at end of file From 9e0b430bf8402a5ab89565063a190e445a78a526 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 13 Jul 2021 11:01:56 +0300 Subject: [PATCH 06/66] add new setting modal --- ui/src/views/dashboard/settings.vue | 187 ++++++++++++++++++++++++---- 1 file changed, 162 insertions(+), 25 deletions(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index be34eff2..ed694bc9 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -2,9 +2,83 @@
- + Add setting + + + Name: + + + + + + + Description: + + + + + + + Body (value): + + + + + + + + + Type: + + + + {{fieldType}} + + + + + + + + Access level: + + + + {{level}} + + + + + + + + + All fields are required. + + + @@ -94,6 +168,9 @@ const columns = [ }, ]; +const possibleFieldTypes = ['int', 'float', 'str', 'object', 'list']; +const possibleAccesslevels = ['User', 'Admin']; + export default { name: "Settings", data() { @@ -109,15 +186,42 @@ export default { object, }, selfEdit: ["object"], + + addSetting: { + visible: false, + loading: false, + data: { + access_level: 1, + body: "", + description: "", + name: "", + type: "", + } + }, + + possibleFieldTypes, + possibleAccesslevels }; }, async mounted() { this.sync(); + this.addSettingInit(); }, computed: { ...mapGetters(["credentials"]), }, methods: { + addSettingInit(){ + this.addSetting.visible = false; + this.addSetting.loading = false; + this.addSetting.data = { + access_level: 1, + body: "", + description: "", + name: "", + type: this.possibleFieldTypes[0], + } + }, async sync() { this.settings = ( await this.$axios({ @@ -152,30 +256,16 @@ export default { const targetCache = newCacheData.filter((item) => key === item.name)[0]; if (target && targetCache) { delete target.editable; - this.$axios({ - method: "post", - url: `/settings/${key}`, - auth: this.credentials, - data: target, - }) - .then((res) => { - if (res.data.response == 1) { - this.$message.success("Success"); - } else { - this.$message.error("Fail"); - this.cancel(key); - return; - } - this.settings = newData; - Object.assign(targetCache, target); - this.cacheData = newCacheData; - }) - .catch((err) => { - console.error(err); - this.$message.error("Fail"); - this.cancel(key); - }); - } + this.sendSetting(key, target) + .then(() => { + this.settings = newData; + Object.assign(targetCache, target); + this.cacheData = newCacheData; + }) + .catch(() => { + this.cancel(key); + }); + } this.editingKey = ""; }, cancel(key) { @@ -191,6 +281,49 @@ export default { this.settings = newData; } }, + sendSetting(key, data){ + return new Promise((resolve, reject) => { + this.$axios({ + method: "post", + url: `/settings/${key}`, + auth: this.credentials, + data: data, + }) + .then((res) => { + if (res.data.response == 1) { + this.$message.success("Success"); + resolve(res); + } else { + throw res; + } + }) + .catch((err) => { + console.error(err); + this.$message.error("Fail"); + reject(err); + }); + }) + }, + sendNewSetting(){ + for (const field in this.addSetting.data) { + if(this.addSetting.data[field].length == 0){ + console.log(field); + console.log(this.addSetting.data[field]); + this.$message.error("All fields are required!"); + return; + } + } + + this.addSetting.loading = true; + this.sendSetting(this.addSetting.data.name, this.addSetting.data) + .then(() => { + this.addSettingInit(); + }) + .catch(()=> { + this.addSetting.loading = false; + + }) + } }, }; @@ -204,4 +337,8 @@ export default { .view__buttons{ margin-bottom: 10px; } + +.add-setting__info-row:not(:last-of-type){ + margin-bottom: 15px; +} \ No newline at end of file From 7e1e12933f5cb728f16ebc28481ab4439f3cde3d Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 13 Jul 2021 11:05:47 +0300 Subject: [PATCH 07/66] fix number values in table --- ui/src/views/dashboard/settings.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index ed694bc9..65e3e3a2 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -108,7 +108,7 @@ @keyup.enter="save(record.name)" @keyup.escape="cancel(record.name)" /> - + From 0289197160f0095532015a5b5bd7e766b5404969 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 13 Jul 2021 11:15:15 +0300 Subject: [PATCH 08/66] new number fix + fallback to raw --- ui/src/views/dashboard/settings.vue | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index 65e3e3a2..67291fd4 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -108,7 +108,16 @@ @keyup.enter="save(record.name)" @keyup.escape="cancel(record.name)" /> - + + @@ -136,6 +145,7 @@ + + \ No newline at end of file diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index 67291fd4..df11b0dd 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -150,6 +150,7 @@ import num from "@/components/types/num.vue"; import list from "@/components/types/list.vue"; import str from "@/components/types/raw.vue"; import object from "@/components/types/object.vue"; +import bool from "@/components/types/bool.vue"; const columns = [ { @@ -196,7 +197,8 @@ export default { list, str, object, - raw + bool, + raw, }, selfEdit: ["object"], From 4f4788743b57dbfd1e3a0d950497c7c709492ce4 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 13 Jul 2021 13:24:06 +0300 Subject: [PATCH 10/66] added ability to delete settings --- ui/src/views/dashboard/settings.vue | 81 +++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 23 deletions(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index df11b0dd..b82d91fb 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -129,6 +129,16 @@ Save Cancel + + +
+ Type field name: + +
+ DELETE +
key === item.name)[0]; if (target && targetCache) { delete target.editable; - this.sendSetting(key, target) - .then(() => { - this.settings = newData; - Object.assign(targetCache, target); - this.cacheData = newCacheData; + this.sendSetting({key, data: target}) + .then((res) => { + if (res.data.response == 1) { + this.$message.success("Success"); + this.settings = newData; + Object.assign(targetCache, target); + this.cacheData = newCacheData; + } else { + throw res; + } }) - .catch(() => { + .catch((err) => { this.cancel(key); + console.error(err); + this.$message.error("Fail"); }); } this.editingKey = ""; @@ -296,27 +315,16 @@ export default { this.settings = newData; } }, - sendSetting(key, data){ + sendSetting({key, data}){ return new Promise((resolve, reject) => { this.$axios({ method: "post", - url: `/settings/${key}`, + url: `/settings${key ? "/" + key : ''}`, auth: this.credentials, data: data, }) - .then((res) => { - if (res.data.response == 1) { - this.$message.success("Success"); - resolve(res); - } else { - throw res; - } - }) - .catch((err) => { - console.error(err); - this.$message.error("Fail"); - reject(err); - }); + .then(resolve) + .catch(reject); }) }, sendNewSetting(){ @@ -330,14 +338,41 @@ export default { } this.addSetting.loading = true; - this.sendSetting(this.addSetting.data.name, this.addSetting.data) + this.sendSetting({data: this.addSetting.data}) .then(() => { this.addSettingInit(); + this.sync(); + this.$message.success("Success"); }) .catch(()=> { this.addSetting.loading = false; + this.$message.error("Fail"); + }) + }, + deleteField(recordName){ + if(recordName !== this.deletingFieldNameSecurity || this.deletingFieldNameSecurity == 'removethefkngfield'){ + this.$message.error('wrong field name'); + return; + } + console.log(object); + this.$axios({ + method: "delete", + url: `/settings/${recordName}`, + auth: this.credentials, }) + .then((res) => { + if(res.data.response > 0){ + this.sync(); + this.$message.success("Success"); + } else { + throw res + } + }) + .catch((err) => { + console.error(err); + this.$message.success("Failed"); + }); } }, }; From be563f5e843db275f3adf039920105a9d3ab4299 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Jul 2021 00:24:35 +0000 Subject: [PATCH 11/66] fix(deps): bump ruby/setup-ruby from 1.76.0 to 1.77.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.76.0 to 1.77.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/v1.76.0...v1.77.0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 56e2cc24..c17c7f0f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Setup Ruby - uses: ruby/setup-ruby@v1.76.0 + uses: ruby/setup-ruby@v1.77.0 with: ruby-version: 2.5 From deaf8861f71d8b1517bd57ec30184b0d73003db3 Mon Sep 17 00:00:00 2001 From: dowellkin Date: Fri, 16 Jul 2021 20:27:36 +0300 Subject: [PATCH 12/66] remove second declaration of bool component --- ui/src/views/dashboard/settings.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index e92ee501..4ebf5429 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -161,7 +161,6 @@ import bool from "@/components/types/bool.vue"; import list from "@/components/types/list.vue"; import str from "@/components/types/raw.vue"; import object from "@/components/types/object.vue"; -import bool from "@/components/types/bool.vue"; const columns = [ { @@ -393,4 +392,4 @@ export default { .add-setting__info-row:not(:last-of-type){ margin-bottom: 15px; } - \ No newline at end of file + From 34216ea00ad78f0e7ee62a8c940ef3f02a0aa93c Mon Sep 17 00:00:00 2001 From: dowellkin Date: Fri, 16 Jul 2021 20:39:16 +0300 Subject: [PATCH 13/66] also removed bool key in types. --- ui/src/views/dashboard/settings.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/src/views/dashboard/settings.vue b/ui/src/views/dashboard/settings.vue index 4ebf5429..053014e4 100644 --- a/ui/src/views/dashboard/settings.vue +++ b/ui/src/views/dashboard/settings.vue @@ -208,7 +208,6 @@ export default { str, bool, object, - bool, raw, }, selfEdit: ["object"], From 0fb2432ae1a8dd76fc71e0efb3e37c9f326e73d4 Mon Sep 17 00:00:00 2001 From: Mik Date: Sun, 18 Jul 2021 15:00:52 +0200 Subject: [PATCH 14/66] Update version.txt --- meta/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/version.txt b/meta/version.txt index d0f85f6c..cca649fb 100644 --- a/meta/version.txt +++ b/meta/version.txt @@ -1 +1 @@ -v1.0.2 - testing +v1.0.2 - stable From 50d9e1243a377b77c431c2cbab4cf9d296411074 Mon Sep 17 00:00:00 2001 From: Mik Date: Sun, 18 Jul 2021 15:28:22 +0200 Subject: [PATCH 15/66] log base url --- ui/src/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/main.js b/ui/src/main.js index 9bb3de51..1c2a1aed 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -4,6 +4,7 @@ import store from "@/store"; import router from "@/router"; import axios from "axios"; +console.log(`Using '${process.env.VUE_APP_IONE_API_BASE_URL}' as base URL`); Vue.prototype.$axios = axios.create({ baseURL: `${process.env.VUE_APP_IONE_API_BASE_URL}`, }); From 7b218c515a6eeb71eddf3a1f462ba1cb4274a3b1 Mon Sep 17 00:00:00 2001 From: Mik Date: Sun, 18 Jul 2021 15:28:25 +0200 Subject: [PATCH 16/66] dep --- ui/package-lock.json | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index fd0618ca..17b1fce7 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "ant-design-vue": "^1.7.4", "codemirror": "^5.60.0", - "core-js": "^3.9.1", + "core-js": "^3.10.0", "js-yaml": "^4.0.0", "vue": "^2.6.11", "vue-axios": "^3.2.4", @@ -7646,9 +7646,14 @@ } }, "node_modules/core-js": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz", - "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==" + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz", + "integrity": "sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, "node_modules/core-js-compat": { "version": "3.9.1", @@ -27312,9 +27317,9 @@ } }, "core-js": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.10.0.tgz", - "integrity": "sha512-MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ==" + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz", + "integrity": "sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==" }, "core-js-compat": { "version": "3.9.1", @@ -36831,9 +36836,9 @@ } }, "vue-loader-v16": { - "version": "npm:vue-loader@16.2.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.2.0.tgz", - "integrity": "sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==", + "version": "npm:vue-loader@16.1.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", + "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -37905,4 +37910,4 @@ } } } -} \ No newline at end of file +} From 2e432ea711081da2748044a873b2c7f05ad71731 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 20 Jul 2021 12:08:26 +0200 Subject: [PATCH 17/66] lack of return --- lib/vmcontrol/main.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/vmcontrol/main.rb b/lib/vmcontrol/main.rb index 9dd1e552..b4d67527 100644 --- a/lib/vmcontrol/main.rb +++ b/lib/vmcontrol/main.rb @@ -164,6 +164,7 @@ def Terminate(userid, vmid) return 1 elsif userid == 0 then LOG "Terminate query rejected! Tryed to delete root-user(oneadmin)", "Terminate" + return 1 end Delete(userid) LOG "Terminating VM#{vmid}", "Terminate" From eee97cd54c7591f2b85749689dfaa4561c73f447 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 20 Jul 2021 12:15:33 +0200 Subject: [PATCH 18/66] skip oneadmin users in cleanup hook --- hooks/user_post_delete_clean_up.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hooks/user_post_delete_clean_up.rb b/hooks/user_post_delete_clean_up.rb index 1ba4afdd..68cafbcc 100755 --- a/hooks/user_post_delete_clean_up.rb +++ b/hooks/user_post_delete_clean_up.rb @@ -42,6 +42,11 @@ id = user.id +if id == 0 then + puts "oneadmin user, skipping..." + exit 0 +end + unless user.groups.include? IONe::Settings['IAAS_GROUP_ID'] then puts "Not IaaS User, skipping..." exit 0 From 6b46ec51abc82f8fb5b68079ce62534733b0acf9 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 20 Jul 2021 12:18:02 +0200 Subject: [PATCH 19/66] extra return --- lib/vmcontrol/main.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/vmcontrol/main.rb b/lib/vmcontrol/main.rb index b4d67527..a140fa7d 100644 --- a/lib/vmcontrol/main.rb +++ b/lib/vmcontrol/main.rb @@ -224,6 +224,7 @@ def Release(vmid) def Delete(userid) if userid == 0 then LOG "Delete query rejected! Tryed to delete root-user(oneadmin)", "Delete" + return end LOG "Deleting User ##{userid}", "Delete" onblock(:u, userid).delete From 7e543423c314f5bdb12e3114e7febe5fc6f52f35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Jul 2021 00:18:42 +0000 Subject: [PATCH 20/66] fix(deps): bump actions/setup-node from 2.2.0 to 2.3.0 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/cd.yml | 2 +- .github/workflows/check_ui.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 34c010f8..fd19d536 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2.3.4 - - uses: actions/setup-node@v2.2.0 + - uses: actions/setup-node@v2.3.0 - name: Dependencies run: npm install diff --git a/.github/workflows/check_ui.yml b/.github/workflows/check_ui.yml index d29d9eeb..e033a3c5 100644 --- a/.github/workflows/check_ui.yml +++ b/.github/workflows/check_ui.yml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v2.3.4 - - uses: actions/setup-node@v2.2.0 + - uses: actions/setup-node@v2.3.0 - name: Dependencies run: npm install From 29b31b203b6857aa893ebdbd21d89b962e59be39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Jul 2021 00:18:44 +0000 Subject: [PATCH 21/66] fix(deps): bump ruby/setup-ruby from 1.77.0 to 1.78.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.77.0 to 1.78.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/v1.77.0...v1.78.0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c17c7f0f..18db87a8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Setup Ruby - uses: ruby/setup-ruby@v1.77.0 + uses: ruby/setup-ruby@v1.78.0 with: ruby-version: 2.5 From 15901b20a40f6b04a077c1ea247ca73f35856117 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 26 Jul 2021 11:54:12 +0200 Subject: [PATCH 22/66] postgresql support(connection) --- core/connect_db.rb | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/core/connect_db.rb b/core/connect_db.rb index 09ff2053..9bc0e6c0 100644 --- a/core/connect_db.rb +++ b/core/connect_db.rb @@ -1,21 +1,26 @@ -if $oned_conf.get('DB/BACKEND') != "\"mysql\"" then - STDERR.puts "OneDB backend is not MySQL, exiting..." +db_backend = ($oned_conf.get('DB/BACKEND') || $oned_conf.get('DB/backend')).delete("\"") +case db_backend +when "mysql" + adapter = :mysql2 +when "postgresql" + adapter = :postgres +else + STDERR.puts "OneDB backend(#{db_backend}) is not supported, exiting..." exit 1 end ops = {} -ops[:host] = $oned_conf.get('DB/SERVER') -ops[:user] = $oned_conf.get('DB/USER') -ops[:password] = $oned_conf.get('DB/PASSWD') -ops[:database] = $oned_conf.get('DB/DB_NAME') +ops[:host] = ($oned_conf.get('DB/SERVER') || $oned_conf.get('DB/server')) +ops[:user] = ($oned_conf.get('DB/USER') || $oned_conf.get('DB/user')) +ops[:password] = ($oned_conf.get('DB/PASSWD') || $oned_conf.get('DB/passwd')) +ops[:database] = ($oned_conf.get('DB/DB_NAME') || $oned_conf.get('DB/db_name')) ops.each do |k, v| next if !v || !(v.is_a? String) - - ops[k] = v.chomp('"').reverse.chomp('"').reverse + ops[k] = v.delete("\"") end -ops.merge! adapter: :mysql2, encoding: 'utf8mb4' +ops.merge! adapter: adapter require 'sequel' $db = Sequel.connect(**ops) From 82e2b8c040bca07c3322fd715facc991999521e5 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 26 Jul 2021 12:04:27 +0200 Subject: [PATCH 23/66] db versions --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 68cd9937..9287d8b8 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,13 @@ Creators: OpenNebula5.10+(see Releases for
older ONe versions) - MySQL MariaDB Server~8.0 + DataBase + + + MySQL MariaDB Server~8.0 + + + PostgreSQL^13.3 Ruby2.5.5 From 236af841fc0ac40fc578a401daf45c1cf2c4dbf5 Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 28 Jul 2021 13:48:18 +0200 Subject: [PATCH 24/66] include routes in copy routine on install --- rake/install_ione.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake/install_ione.rake b/rake/install_ione.rake index 4e48ce5b..2f85152a 100644 --- a/rake/install_ione.rake +++ b/rake/install_ione.rake @@ -1,7 +1,7 @@ require 'pathname' @ione = %w( - models modules lib scripts service ione_server.rb meta + models modules lib scripts service routes ione_server.rb meta ) @ione_logs = %w( ione debug rpc suspend From 2360ae01afc8928dad1120a48a893ed2f032a8ea Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 28 Jul 2021 15:22:39 +0200 Subject: [PATCH 25/66] =?UTF-8?q?one=20more=20dir=20=F0=9F=A4=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rake/install_ione.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake/install_ione.rake b/rake/install_ione.rake index 2f85152a..bf38d5b4 100644 --- a/rake/install_ione.rake +++ b/rake/install_ione.rake @@ -1,7 +1,7 @@ require 'pathname' @ione = %w( - models modules lib scripts service routes ione_server.rb meta + core models modules lib scripts service routes ione_server.rb meta ) @ione_logs = %w( ione debug rpc suspend From c082f199ec679d36c20b1f706aafadf9a14652cc Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 28 Jul 2021 15:23:02 +0200 Subject: [PATCH 26/66] define default ONED_CONF location unless defined --- core/load_oned_conf.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/load_oned_conf.rb b/core/load_oned_conf.rb index 805af059..329e5174 100644 --- a/core/load_oned_conf.rb +++ b/core/load_oned_conf.rb @@ -1,5 +1,7 @@ require 'augeas' +ONED_CONF = '/etc/one/oned.conf' unless defined? ONED_CONF + work_file_dir = File.dirname(ONED_CONF) work_file_name = File.basename(ONED_CONF) From 5a330776c5bb2318c57c22cdb1a61f6029b8f918 Mon Sep 17 00:00:00 2001 From: Mik Date: Thu, 29 Jul 2021 11:52:01 +0200 Subject: [PATCH 27/66] ShowbackError is back(class, not the error) --- service/objects/user.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/service/objects/user.rb b/service/objects/user.rb index 41cb131c..da43a6a6 100644 --- a/service/objects/user.rb +++ b/service/objects/user.rb @@ -145,4 +145,14 @@ def initialize msg = "User not exists or error occurred while getting user." super end end + + # Error while processing(calculating) showback Exception + class ShowbackError < StandardError + attr_reader :params + + def initialize params = [] + @params = params[1...params.length] + super "#{params[0]}\nParams:#{@params.inspect}" + end + end end From 570fee39cee9dcae804196ca8ca46f90863073a1 Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 30 Jul 2021 13:51:22 +0200 Subject: [PATCH 28/66] update IONe simple --- rake/configure_nginx.rake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rake/configure_nginx.rake b/rake/configure_nginx.rake index 3eda36e0..fa5d5e90 100644 --- a/rake/configure_nginx.rake +++ b/rake/configure_nginx.rake @@ -7,7 +7,10 @@ end desc "Configure Nginx" task :configure_nginx => [:before, :useful_questions] do cd @src_dir - + if @@nginx == 'n' then + puts "Skipping nginx configuration..." + return + end puts print "Do you want installer to generate self-signed cert? (y/n) " cert = @silent From d53ef88ee8a0382ad30fe33b91137d7be2b91a83 Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 30 Jul 2021 13:52:25 +0200 Subject: [PATCH 29/66] update IONe simple --- Rakefile | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/Rakefile b/Rakefile index 0b432e1e..258f01d8 100644 --- a/Rakefile +++ b/Rakefile @@ -16,19 +16,17 @@ task :before, [:silent, :domain] do | _task, args | end @src_dir = pwd + @version = File.read("#{@src_dir}/meta/version.txt") + puts "Installing IONe #{@version}" end task :useful_questions do puts - puts "IONe installer is going to overwrite your nginx configuration." - nginx = @silent + puts "IONe installer is would like to overwrite your nginx configuration." + @nginx = @silent until ['y', 'n'].include? nginx do print "Do you want to continue? (y/n) " - nginx = STDIN.gets.strip.downcase - end - if nginx == 'n' then - puts "Exiting" - exit 0 + @nginx = STDIN.gets.strip.downcase end while @domain.nil? @@ -36,7 +34,7 @@ task :useful_questions do @domain = STDIN.gets.strip.downcase puts "You've entered '#{@domain}'" - puts "Nginx going to be configured with following server names:" + puts "Nginx should to be configured with following server names:" puts " cloud.#{@domain} --> Sunstone" puts " ione-api.#{@domain} --> IONe API" puts " ione-admin.#{@domain} --> IONe UI" @@ -67,3 +65,25 @@ task :install, [:silent, :domain] => [:before, :useful_questions, :install_gems, puts msg end end + +desc "IONe check update" +task :check_update do + sh %{git checkout master} + sh %{git pull} + current = File.read('./meta/version.txt') + installed = File.read('/usr/lib/one/ione/meta/version.txt') + puts "\n" * 5 + if current != installed then + puts "Update available! \n !!! DANGEROUS!!! Run rake update to install it." + else + puts "You are up to date." + end +end + +desc "IONe update" +task :update, [:silent, :domain] => [:before, :useful_questions, :install_gems, :install_ione, :hooks, :install_ui, :configure_nginx] do + for msg in $messages do + puts msg + end + puts "IONe #{@version} is now installed, you're up to date!" +end From 7bde5a1cf3e587d3c4d033286c7c562f5c15bb53 Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 30 Jul 2021 13:54:01 +0200 Subject: [PATCH 30/66] resolve NameError: undefined local variable or method `nginx' --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 258f01d8..8fba5354 100644 --- a/Rakefile +++ b/Rakefile @@ -24,7 +24,7 @@ task :useful_questions do puts puts "IONe installer is would like to overwrite your nginx configuration." @nginx = @silent - until ['y', 'n'].include? nginx do + until ['y', 'n'].include? @nginx do print "Do you want to continue? (y/n) " @nginx = STDIN.gets.strip.downcase end From bf782a9696ad0b0b3b5c5bac4dda3f42ccf25129 Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 30 Jul 2021 13:56:05 +0200 Subject: [PATCH 31/66] name error again --- rake/configure_nginx.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake/configure_nginx.rake b/rake/configure_nginx.rake index fa5d5e90..c017943e 100644 --- a/rake/configure_nginx.rake +++ b/rake/configure_nginx.rake @@ -7,7 +7,7 @@ end desc "Configure Nginx" task :configure_nginx => [:before, :useful_questions] do cd @src_dir - if @@nginx == 'n' then + if @nginx == 'n' then puts "Skipping nginx configuration..." return end From 9bf43acbcabd01ea560afaace9695c03b46c88df Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 30 Jul 2021 14:02:24 +0200 Subject: [PATCH 32/66] generate .env file to ensure env while UI build --- rake/install_ui.rake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rake/install_ui.rake b/rake/install_ui.rake index 861c0b01..6c886e4b 100644 --- a/rake/install_ui.rake +++ b/rake/install_ui.rake @@ -8,8 +8,13 @@ task install_ui: [:useful_questions] do cd '/usr/lib/one/ione/ui/' sh %(sudo npm install --quiet --no-progress) + puts "Generating env" + File.open('.env', 'w') do | file | + file.puts "VUE_APP_IONE_API_BASE_URL=https://ione-api.#{@domain}" + end + puts 'Building static UI' - sh %(VUE_APP_IONE_API_BASE_URL=https://ione-api.#{@domain} sudo npm run build) + sh %(sudo npm run build) puts 'Changing owner' chown_R 'oneadmin', 'oneadmin', '/usr/lib/one/ione/ui/dist' From c89489b7a20e0985bff93502d971cebd51a451e3 Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 4 Aug 2021 13:10:15 +0200 Subject: [PATCH 33/66] get_user_vms_ext method --- lib/vminfo/main.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/vminfo/main.rb b/lib/vminfo/main.rb index dcec6396..82ebaa3a 100644 --- a/lib/vminfo/main.rb +++ b/lib/vminfo/main.rb @@ -151,6 +151,16 @@ def get_user_vms r = VirtualMachinePool.new(@client, -1).get_hash['VM_POOL'] r.empty? ? [] : r['VM'] end + # Returns all @client User vms with extended info + # @return [Array] + def get_user_vms_ext + u = onblock(:u, -1, @client) + r = u.info! + + raise r if OpenNebula.is_error? r + + u.vms $db + end # @!endgroup end From 91a9dc1b34d0b6ede7ac5a49830e725b71377adf Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 4 Aug 2021 16:10:31 +0200 Subject: [PATCH 34/66] resolve ignoring group id issue while reinstalling --- lib/creative_funcs/main.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 08eda817..660b9777 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -171,7 +171,7 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) return vmid.message if vmid.class != Integer trace << "Changing VM owner:#{__LINE__ + 1}" - onblock(:vm, vmid).chown(params['userid'], IONe::Settings['USERS_GROUP']) + onblock(:vm, vmid).chown(params['userid'], params['groupid'] || IONe::Settings['USERS_GROUP']) ##### PostDeploy Activity define ##### Thread.new do From b3ef85a5d9c7c4063f018438bfc6853cc6590d29 Mon Sep 17 00:00:00 2001 From: Mik Date: Thu, 5 Aug 2021 22:58:15 +0200 Subject: [PATCH 35/66] Resolve: user not authorized to perfrom Admin, on public network release --- lib/vntools/main.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/vntools/main.rb b/lib/vntools/main.rb index 2e99ef78..402f23ca 100644 --- a/lib/vntools/main.rb +++ b/lib/vntools/main.rb @@ -50,8 +50,9 @@ def reserve_public_ip params end end - vn = onblock(:vn, uvnet, @client) + vn = onblock(:vn, uvnet, $client) vn.chown(u.id, u.groups.first) + vn.chmod(1, 1, 1, 0, 0, 0, 0, 0, 0) return vn.id end From 32aa32d70ac3791df4c224a107bbb550ae6019e7 Mon Sep 17 00:00:00 2001 From: Mik Date: Thu, 5 Aug 2021 23:06:07 +0200 Subject: [PATCH 36/66] remove old debug --- lib/creative_funcs/main.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 660b9777..5f850d95 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -67,9 +67,6 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) LOG_DEBUG params.merge!({ :method => 'Reinstall' }).debug_out return nil if params['debug'] == 'turn_method_off' - return { 'vmid' => rand(params['vmid'].to_i + 1000), 'vmid_old' => params['vmid'], 'ip' => '0.0.0.0', -'ip_old' => '0.0.0.0' } if params['debug'] == 'data' - LOG "Reinstalling VM#{params['vmid']}", 'Reinstall' trace << "Checking params:#{__LINE__ + 1}" if params.get('vmid', 'groupid', 'userid', 'templateid').include?(nil) then From 46efb75e887da914db8681f004776a19fb89d493 Mon Sep 17 00:00:00 2001 From: Mik Date: Thu, 5 Aug 2021 23:59:43 +0200 Subject: [PATCH 37/66] IONe Recreate method --- lib/creative_funcs/main.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 5f850d95..0c72bd13 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -209,6 +209,36 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) return e.message, trace end + # Recreates VM - leaves same ID, same IP addresses, amount of resources, etc, but recreates on host + # @param [Hash] params + # @option params [Integer] :vm + # @return [TrueClass, Integer] - true and host where VM been deployed before recreate + def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) + params.to_sym! + LOG_DEBUG params.merge!({ :method => 'Reinstall' }).debug_out + LOG "Reinstalling VM#{params[:vm]}", 'Reinstall' + + trace << "Getting VM:#{__LINE__}" + vm = onblock(:vm, params[:vm]) + vm.info! + trace << "Checking access rights:#{__LINE__}" + onblock(:u, -1, @client) do | u | + u.info! + if u.id != vm.uid && !u.groups.include?(0) then + raise StandardError.new("Not enough access to perform Recreate") + end + end + trace << "Getting VM host:#{__LINE__}" + host, _ = vm.host + trace << "Recovering VM:#{__LINE__}" + vm.recover(4) + + return true, host.to_i + rescue => e + LOG_ERROR "Error ocurred while Reinstall: #{e.message}" + raise e + end + # Creates new virtual machine from the given OS template and resize it to given specs, and new user account, which becomes owner of this VM # @param [Hash] params - all needed data for new User and VM creation # @option params [String] :login Username for new OpenNebula account From 673196a4f9c130128ef6ec15fc7e5facfd32443f Mon Sep 17 00:00:00 2001 From: Mik Date: Thu, 5 Aug 2021 23:59:57 +0200 Subject: [PATCH 38/66] ensure vm.uid is Integer --- service/objects/vm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/objects/vm.rb b/service/objects/vm.rb index 11655f56..97d97c18 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -306,7 +306,7 @@ def getResourcesAllocationLimits # @return [Integer] def uid info = true self.info! if info - self['UID'] + self['UID'].to_i end # Returns owner user name From 166b641aa33d6a0a745058094f254a7d55f789e7 Mon Sep 17 00:00:00 2001 From: Mik Date: Fri, 6 Aug 2021 20:09:51 +0200 Subject: [PATCH 39/66] lint --- lib/creative_funcs/main.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 0c72bd13..3a15ec91 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -217,7 +217,7 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) params.to_sym! LOG_DEBUG params.merge!({ :method => 'Reinstall' }).debug_out LOG "Reinstalling VM#{params[:vm]}", 'Reinstall' - + trace << "Getting VM:#{__LINE__}" vm = onblock(:vm, params[:vm]) vm.info! @@ -225,7 +225,7 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) onblock(:u, -1, @client) do | u | u.info! if u.id != vm.uid && !u.groups.include?(0) then - raise StandardError.new("Not enough access to perform Recreate") + raise StandardError.new("Not enough access to perform Recreate") end end trace << "Getting VM host:#{__LINE__}" From 055d2351285b1919cc936725c1427da6f1065d1f Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 14:19:53 +0200 Subject: [PATCH 40/66] apt support --- Rakefile | 5 +++-- rake/install_gems.rake | 22 ++++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Rakefile b/Rakefile index 8fba5354..96545d97 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,7 @@ $messages = [] -task :before, [:silent, :domain] do | _task, args | +task :before, [:packm, :silent, :domain] do | _task, args | + @packm = args[:packm] || 'yum' @silent = args[:silent] @domain = args[:domain] @@ -55,7 +56,7 @@ load "rake/set_hooks.rake" load "rake/test_install.rake" desc "Full IONe Installation" -task :install, [:silent, :domain] => [:before, :useful_questions, :install_gems, :install_ione, :hooks, :install_ui, :configure_nginx] do +task :install, [:packm, :silent, :domain] => [:before, :useful_questions, :install_gems, :install_ione, :hooks, :install_ui, :configure_nginx] do $messages << <<-EOF Thanks, for installation and choosing us! Configure ione with ione.conf & IONe UI and test install with: rake test_install diff --git a/rake/install_gems.rake b/rake/install_gems.rake index 69b7799b..2c25894b 100644 --- a/rake/install_gems.rake +++ b/rake/install_gems.rake @@ -1,7 +1,15 @@ -@sys_packages = %w(npm make automake gcc gcc-c++ kernel-devel ruby-devel mysql-devel) +@sys_packages = { + 'yum' => %w(npm make automake gcc gcc-c++ kernel-devel ruby-devel mysql-devel), + 'apt' => %w(npm make automake gcc ruby-dev libmariadb-dev) +} + +@pack_managers = { + `yum` => "yum install -yq", + 'apt' => "apt update && apt -yqq install" +} desc "Install Gems" -task :install_gems, [:silent] => :before do | _task, args | +task :install_gems, [:packm, :silent] => :before do | _task, args | puts "Installing Gems:\n" puts "1. Installing gems..." @@ -9,7 +17,7 @@ task :install_gems, [:silent] => :before do | _task, args | puts puts "2. Installing required system libs and tools" - puts "Following packages are going to be installed:\n\t#{@sys_packages.join(' ')}" + puts "Following packages are going to be installed:\n\t#{@sys_packages[@packm].join(' ')}" a = nil a = 'y' if @silent == 'y' || args[:silent] == 'y' @@ -19,14 +27,16 @@ task :install_gems, [:silent] => :before do | _task, args | a = STDIN.gets.downcase.strip end exit 0 if a == 'n' + + @packm = args[:packm] || 'yum' puts "Installing..." begin - sh %{sudo yum install -yq #{@sys_packages.join(' ')}} + sh %{sudo #{@pack_managers[@packm]} #{@sys_packages[@packm].join(' ')}} rescue $messages << <<~EOF - It seems to be, that you aren't using CentOS or yum doesn't work properly, follow next steps: + It seems to be, that #{@packm} doesn't work properly, follow next steps: 1. Install this packages manually: - #{@sys_packages.join(' ')} + #{@sys_packages[@packm].join(' ')} 2. Install need parts using commands from: rake --tasks Thanks, for installation and choosing us! From 93e343acc9877e4cfbe8490c22a6ddeb0963da69 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 14:20:53 +0200 Subject: [PATCH 41/66] hwat --- rake/install_gems.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake/install_gems.rake b/rake/install_gems.rake index 2c25894b..d10471a4 100644 --- a/rake/install_gems.rake +++ b/rake/install_gems.rake @@ -4,7 +4,7 @@ } @pack_managers = { - `yum` => "yum install -yq", + 'yum' => "yum install -yq", 'apt' => "apt update && apt -yqq install" } From b287b6c73a1cae3b45db9261592fe63603e79dee Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 14:25:48 +0200 Subject: [PATCH 42/66] no gem colorize workaround --- rake/test_install.rake | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rake/test_install.rake b/rake/test_install.rake index 1a1b4794..c15fc6a4 100644 --- a/rake/test_install.rake +++ b/rake/test_install.rake @@ -1,6 +1,15 @@ require 'pathname' require 'yaml' +class String + def color + self + end + alias green :color + alias yellow :color + alias red :color +end + task :test_install_gems do require 'colorize' require 'net/http' From 7ad474cf6692b399f8c5d53f115de40cd720f18b Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 14:28:08 +0200 Subject: [PATCH 43/66] install order --- rake/install_gems.rake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rake/install_gems.rake b/rake/install_gems.rake index d10471a4..06fa79c2 100644 --- a/rake/install_gems.rake +++ b/rake/install_gems.rake @@ -12,11 +12,7 @@ desc "Install Gems" task :install_gems, [:packm, :silent] => :before do | _task, args | puts "Installing Gems:\n" - puts "1. Installing gems..." - sh %{bundle install} - puts - - puts "2. Installing required system libs and tools" + puts "1. Installing required system libs and tools" puts "Following packages are going to be installed:\n\t#{@sys_packages[@packm].join(' ')}" a = nil @@ -45,5 +41,9 @@ task :install_gems, [:packm, :silent] => :before do | _task, args | end puts + puts "2. Installing gems..." + sh %{bundle install} + puts + puts "Done.\n" end From 0202d2c8c79ed27a5260f5f2a94748a680818661 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 14:28:39 +0200 Subject: [PATCH 44/66] install_gems -> install_deps --- .github/workflows/cd.yml | 2 +- Rakefile | 6 +++--- rake/{install_gems.rake => install_deps.rake} | 4 ++-- rake/install_ione.rake | 2 +- rake/test_install.rake | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) rename rake/{install_gems.rake => install_deps.rake} (92%) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index fd19d536..0efa9860 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -71,7 +71,7 @@ jobs: chmod +x ione_server.rb chmod +x -R hooks/* rake hooks - rake install_gems[y] + rake install_deps[yum, y] \cp -f sys/ione.service /usr/lib/systemd/system/ione.service systemctl daemon-reload systemctl restart ione diff --git a/Rakefile b/Rakefile index 96545d97..c0f1b61d 100644 --- a/Rakefile +++ b/Rakefile @@ -48,7 +48,7 @@ task :useful_questions do puts "Using '#{@domain}' as base domain." end -load "rake/install_gems.rake" +load "rake/install_deps.rake" load "rake/install_ione.rake" load "rake/install_ui.rake" load "rake/configure_nginx.rake" @@ -56,7 +56,7 @@ load "rake/set_hooks.rake" load "rake/test_install.rake" desc "Full IONe Installation" -task :install, [:packm, :silent, :domain] => [:before, :useful_questions, :install_gems, :install_ione, :hooks, :install_ui, :configure_nginx] do +task :install, [:packm, :silent, :domain] => [:before, :useful_questions, :install_deps, :install_ione, :hooks, :install_ui, :configure_nginx] do $messages << <<-EOF Thanks, for installation and choosing us! Configure ione with ione.conf & IONe UI and test install with: rake test_install @@ -82,7 +82,7 @@ task :check_update do end desc "IONe update" -task :update, [:silent, :domain] => [:before, :useful_questions, :install_gems, :install_ione, :hooks, :install_ui, :configure_nginx] do +task :update, [:silent, :domain] => [:before, :useful_questions, :install_deps, :install_ione, :hooks, :install_ui, :configure_nginx] do for msg in $messages do puts msg end diff --git a/rake/install_gems.rake b/rake/install_deps.rake similarity index 92% rename from rake/install_gems.rake rename to rake/install_deps.rake index 06fa79c2..2f4c2985 100644 --- a/rake/install_gems.rake +++ b/rake/install_deps.rake @@ -9,8 +9,8 @@ } desc "Install Gems" -task :install_gems, [:packm, :silent] => :before do | _task, args | - puts "Installing Gems:\n" +task :install_deps, [:packm, :silent] => :before do | _task, args | + puts "Installing dependencies:\n" puts "1. Installing required system libs and tools" puts "Following packages are going to be installed:\n\t#{@sys_packages[@packm].join(' ')}" diff --git a/rake/install_ione.rake b/rake/install_ione.rake index bf38d5b4..ee1ec413 100644 --- a/rake/install_ione.rake +++ b/rake/install_ione.rake @@ -8,7 +8,7 @@ require 'pathname' ) desc "IONe Back-End Installation" -task :install_ione => [:before, :install_gems] do +task :install_ione => [:before, :install_deps] do puts 'Copying conf' cp 'sys/ione.conf', '/etc/one/' unless Pathname.new("/etc/one/ione.conf").exist? diff --git a/rake/test_install.rake b/rake/test_install.rake index c15fc6a4..4ed51a79 100644 --- a/rake/test_install.rake +++ b/rake/test_install.rake @@ -10,7 +10,7 @@ class String alias red :color end -task :test_install_gems do +task :test_install_deps do require 'colorize' require 'net/http' require 'sequel' @@ -208,5 +208,5 @@ task :test_api_root do end desc "Check if IONe is installed and running" -task :test_install => [:test_install_gems, :load_installed_env, :test_config_exists, :test_configured, :test_api_root] do +task :test_install => [:test_install_deps, :load_installed_env, :test_config_exists, :test_configured, :test_api_root] do end From 1c6fa8f9c54db30bc7635040c68d3db7184830d5 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 15:05:13 +0200 Subject: [PATCH 45/66] colorize again --- rake/test_install.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake/test_install.rake b/rake/test_install.rake index 4ed51a79..1649d46b 100644 --- a/rake/test_install.rake +++ b/rake/test_install.rake @@ -2,7 +2,7 @@ require 'pathname' require 'yaml' class String - def color + def color *_args self end alias green :color From f8aa01dc806ed9708f17df18267f88abaee2dc29 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 16:01:03 +0200 Subject: [PATCH 46/66] remove npm from installer --- rake/install_deps.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rake/install_deps.rake b/rake/install_deps.rake index 2f4c2985..72d3aec4 100644 --- a/rake/install_deps.rake +++ b/rake/install_deps.rake @@ -1,6 +1,6 @@ @sys_packages = { - 'yum' => %w(npm make automake gcc gcc-c++ kernel-devel ruby-devel mysql-devel), - 'apt' => %w(npm make automake gcc ruby-dev libmariadb-dev) + 'yum' => %w(make automake gcc gcc-c++ kernel-devel ruby-devel mysql-devel), + 'apt' => %w(make automake gcc ruby-dev libmariadb-dev) } @pack_managers = { From cb80a55aa6b03ea6ee37b309de3a8dfd62a811ed Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 16:23:10 +0200 Subject: [PATCH 47/66] deprecated --- ione_server.rb | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ione_server.rb b/ione_server.rb index d14ead7f..591d38ce 100755 --- a/ione_server.rb +++ b/ione_server.rb @@ -95,12 +95,6 @@ ENDPOINT = "http://localhost:#{$oned_conf.get('PORT')}/RPC2" $client = Client.new(CREDENTIALS, ENDPOINT) # oneadmin auth-client -require "SettingsDriver" - -# Settings Table Model -# @see https://github.com/ione-cloud/ione-sunstone/blob/55a9efd68681829624809b4895a49d750d6e6c34/models/SettingsDriver.rb#L13-L37 Settings Model Definition -class Settings < Sequel::Model(:settings); end - puts 'Including on_helper funcs' require "#{ROOT}/service/on_helper.rb" include ONeHelper From 37644e02e099bb18e99ded1075e15c01a5fbfd64 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 16:30:03 +0200 Subject: [PATCH 48/66] deprecated --- rake/update.rake | 84 ------------------------------------------------ 1 file changed, 84 deletions(-) delete mode 100644 rake/update.rake diff --git a/rake/update.rake b/rake/update.rake deleted file mode 100644 index 6d0685b8..00000000 --- a/rake/update.rake +++ /dev/null @@ -1,84 +0,0 @@ - -def 100to101 - # Write TrafficRecorder to conf and scripts - # touch traffic-recorder log file - - # Update hooks - - # Update UI - - # Remove service/objects/records - # Add service/billers/*, service/biller.rb, showback.rb - # Add service/records/* - # Add service/records.rb - - # Add insert_zero_traffic_record.rb hook - - # Update meta - # Update lib - - # Update service/objects/* - - # Update ione_server.rb - # Update service/log.rb - # Update models/SettingsDriver.rb - - # Delete models/SunstoneServer.rb - # Delete models/SunstoneViews.rb - - # Delete modules/stat/main.rb - # Delete service/handlers/cache_handler.rb - - # remove lib/appbindings/main.rb - - # Update sys/ione.service -end - -available_versions = [ - ['v1.0.0', 'v1.0.1', method(:100to101)] -] - -desc "Update IONe" -task :update do - puts "Preparing for update..." - begin - @version = File.read('/usr/lib/one/ione/meta/version.txt').chomp.split(' ').first - r = nil - until %w(y n).include? r do - print "You have IONe #{@version} installed, is it correct? (y/n) " - r = STDIN.gets.chomp - end - raise if r == 'n' - rescue - r = nil - until %w(y n).include? r do - print 'Currently installed version cannot be found, do you want to enter it manually? (y/n) ' - r = STDIN.gets.chomp - end - if r == 'n' then - puts 'Bye.' - exit 0 - end - r = nil - until r == 'y' do - print 'Enter your currenly installed IONe version like vX.Y.Z: ' - @version = STDIN.gets.chomp - print "You've entered \"#{@version}\", is it correct? (y/n) " - r = STDIN.gets.chomp - end - end - - puts 'Seeking for update scripts...' - script = available_versions.select { | ver | ver.first == @version } - - r = nil - until %w(y n).include? r do - puts "You can update to version #{script[1]} now." - print "Proceed? (y/n) " - r = STDIN.gets.chomp - end - if r == 'n' then - puts 'Bye.' - exit 0 - end -end \ No newline at end of file From cd6a8ae95f02ea6711e4a94461b527c6dbc9ba5e Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 17:17:34 +0200 Subject: [PATCH 49/66] damn colorize --- rake/set_hooks.rake | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rake/set_hooks.rake b/rake/set_hooks.rake index 80b19517..813d05a8 100644 --- a/rake/set_hooks.rake +++ b/rake/set_hooks.rake @@ -189,7 +189,19 @@ task :hooks do chmod_R "+x", "/usr/lib/one/ione/hooks/" end - require 'colorize' + begin + require 'colorize' + rescue + class String + def red + self + end + + def green + self + end + end + end require '/usr/lib/one/ione/lib/std++/main.rb' puts 'Adding hooks to HookPool' From b252d5ea9256f5498c0bf9c233193b5df027403b Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 17:17:39 +0200 Subject: [PATCH 50/66] audit --- ui/package-lock.json | 2565 ++++++++++-------------------------------- 1 file changed, 623 insertions(+), 1942 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index 17b1fce7..0df61dd8 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -3109,195 +3109,18 @@ "semver": "^6.3.0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, "node_modules/@babel/preset-env/node_modules/@babel/helper-plugin-utils": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, "node_modules/@babel/preset-env/node_modules/@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "node_modules/@babel/preset-env/node_modules/@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, "node_modules/@babel/preset-env/node_modules/@babel/types": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", @@ -4027,9 +3850,9 @@ "dev": true }, "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "dev": true }, "node_modules/@types/qs": { @@ -4363,9 +4186,9 @@ } }, "node_modules/@vue/cli-overlay": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.12.tgz", - "integrity": "sha512-dCN0RzVpA8fp+MfjuVBROgM483MPObAb/je+APE/JhpCJyPQORYQEvNpmaorpN+9Cp6mrESVSzhh0qD4SFrlzg==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.13.tgz", + "integrity": "sha512-jhUIg3klgi5Cxhs8dnat5hi/W2tQJvsqCxR0u6hgfSob0ORODgUBlN+F/uwq7cKIe/pzedVUk1y07F13GQvPqg==", "dev": true }, "node_modules/@vue/cli-plugin-babel": { @@ -4383,126 +4206,46 @@ "webpack": "^4.0.0" } }, - "node_modules/@vue/cli-plugin-babel/node_modules/@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "dependencies": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@vue/cli-plugin-babel/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@vue/cli-plugin-eslint": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.12.tgz", - "integrity": "sha512-nbjGJkWxo/xdD32DwvnEAUwkWYsObpqNk9NuU7T62ehdzHPzz58o3j03YZ7a7T7Le8bYyOWMYsdNfz63F+XiZQ==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.13.tgz", + "integrity": "sha512-yc2uXX6aBiy3vEf5TwaueaDqQbdIXIhk0x0KzEtpPo23jBdLkpOSoU5NCgE06g/ZiGAcettpmBSv73Hfp4wHEw==", "dev": true, "dependencies": { - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-shared-utils": "^4.5.13", "eslint-loader": "^2.2.1", "globby": "^9.2.0", "inquirer": "^7.1.0", "webpack": "^4.0.0", "yorkie": "^2.0.0" - } - }, - "node_modules/@vue/cli-plugin-eslint/node_modules/@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "dependencies": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@vue/cli-plugin-eslint/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0", + "eslint": ">= 1.6.0 < 7.0.0" } }, "node_modules/@vue/cli-plugin-router": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.12.tgz", - "integrity": "sha512-DYNz5AA3W7Ewt3aaiOLGdYFt4MX4w/HTEtep+kPzP9S9tAknzyoIJXkaYzhwu8ArpEYwhWgtuCcDZ8hR6++DbA==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.13.tgz", + "integrity": "sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w==", "dev": true, "dependencies": { - "@vue/cli-shared-utils": "^4.5.12" - } - }, - "node_modules/@vue/cli-plugin-router/node_modules/@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "dependencies": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@vue/cli-plugin-router/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@vue/cli-shared-utils": "^4.5.13" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" } }, "node_modules/@vue/cli-plugin-unit-jest": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.12.tgz", - "integrity": "sha512-hZibVfMDGTANN7QENbE7eEAlk8adTW8fEpuGXA4IV+eDqLDPUPVUOwcw8f9d7Rx3KVHES3GyFQ9yVK/KeI9NGw==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.13.tgz", + "integrity": "sha512-8t7QIihJWB9Kv85FamrEzWbJnvsLhQdyXHl3h+qhAihrZdLL+9mj905y88cBCq+i2PqqZ/qAoabbpf4DxDAb7g==", "dev": true, "dependencies": { "@babel/core": "^7.11.0", "@babel/plugin-transform-modules-commonjs": "^7.9.6", "@types/jest": "^24.0.19", - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-shared-utils": "^4.5.13", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^24.9.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", @@ -4514,26 +4257,9 @@ "jest-watch-typeahead": "^0.4.2", "ts-jest": "^24.2.0", "vue-jest": "^3.0.5" - } - }, - "node_modules/@vue/cli-plugin-unit-jest/node_modules/@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "dependencies": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" } }, "node_modules/@vue/cli-plugin-unit-jest/node_modules/deepmerge": { @@ -4545,25 +4271,19 @@ "node": ">=0.10.0" } }, - "node_modules/@vue/cli-plugin-unit-jest/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/@vue/cli-plugin-vuex": { + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.13.tgz", + "integrity": "sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" } }, - "node_modules/@vue/cli-plugin-vuex": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.12.tgz", - "integrity": "sha512-STgbvNv/3iHAKArc18b/qjN7RX1FTrfxPeHH26GOr/A8lJes7+CSluZZ8E5R7Zr/vL0zOqOkUVDAjFXVf4zWQA==", - "dev": true - }, "node_modules/@vue/cli-service": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.12.tgz", - "integrity": "sha512-Di/dFw72HIvUrpTgnnPQkPq07mdd7z3GPeCH/o+6fv4bxOD+gwK9z7P6RkG4lGv2QdLz+qjim9f7xw5w+9ENkg==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.13.tgz", + "integrity": "sha512-CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==", "dev": true, "dependencies": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", @@ -4572,10 +4292,10 @@ "@types/minimist": "^1.2.0", "@types/webpack": "^4.0.0", "@types/webpack-dev-server": "^3.11.0", - "@vue/cli-overlay": "^4.5.12", - "@vue/cli-plugin-router": "^4.5.12", - "@vue/cli-plugin-vuex": "^4.5.12", - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-overlay": "^4.5.13", + "@vue/cli-plugin-router": "^4.5.13", + "@vue/cli-plugin-vuex": "^4.5.13", + "@vue/cli-shared-utils": "^4.5.13", "@vue/component-compiler-utils": "^3.1.2", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", @@ -4610,12 +4330,11 @@ "pnp-webpack-plugin": "^1.6.4", "portfinder": "^1.0.26", "postcss-loader": "^3.0.0", - "ssri": "^7.1.0", - "terser-webpack-plugin": "^2.3.6", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^1.4.4", "thread-loader": "^2.1.3", "url-loader": "^2.2.0", "vue-loader": "^15.9.2", - "vue-loader-v16": "npm:vue-loader@^16.1.0", "vue-style-loader": "^4.1.2", "webpack": "^4.0.0", "webpack-bundle-analyzer": "^3.8.0", @@ -4628,41 +4347,36 @@ }, "engines": { "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/@vue/cli-plugin-router": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.12.tgz", - "integrity": "sha512-DYNz5AA3W7Ewt3aaiOLGdYFt4MX4w/HTEtep+kPzP9S9tAknzyoIJXkaYzhwu8ArpEYwhWgtuCcDZ8hR6++DbA==", - "dev": true, - "dependencies": { - "@vue/cli-shared-utils": "^4.5.12" - } - }, - "node_modules/@vue/cli-service/node_modules/@vue/cli-plugin-vuex": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.12.tgz", - "integrity": "sha512-STgbvNv/3iHAKArc18b/qjN7RX1FTrfxPeHH26GOr/A8lJes7+CSluZZ8E5R7Zr/vL0zOqOkUVDAjFXVf4zWQA==", - "dev": true - }, - "node_modules/@vue/cli-service/node_modules/@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "dependencies": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" + }, + "optionalDependencies": { + "vue-loader-v16": "npm:vue-loader@^16.1.0" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.0.0-beta.14", + "vue-template-compiler": "^2.0.0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "less-loader": { + "optional": true + }, + "pug-plain-loader": { + "optional": true + }, + "raw-loader": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "stylus-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } } }, "node_modules/@vue/cli-service/node_modules/acorn": { @@ -4677,120 +4391,39 @@ "node": ">=0.4.0" } }, - "node_modules/@vue/cli-service/node_modules/cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "node_modules/@vue/cli-service/node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "dependencies": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" + "minipass": "^3.1.1" }, "engines": { "node": ">= 8" } }, - "node_modules/@vue/cli-service/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@vue/cli-service/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/@vue/cli-shared-utils": { + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.13.tgz", + "integrity": "sha512-HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==", "dev": true, "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" } }, - "node_modules/@vue/cli-service/node_modules/semver": { + "node_modules/@vue/cli-shared-utils/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", @@ -4799,59 +4432,17 @@ "semver": "bin/semver.js" } }, - "node_modules/@vue/cli-service/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/cli-service/node_modules/ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@vue/cli-service/node_modules/terser-webpack-plugin": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", - "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==", - "dev": true, - "dependencies": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 8.9.0" - } - }, "node_modules/@vue/component-compiler-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", - "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz", + "integrity": "sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==", "dev": true, "dependencies": { "consolidate": "^0.15.1", "hash-sum": "^1.0.2", "lru-cache": "^4.1.2", "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", + "postcss": "^7.0.36", "postcss-selector-parser": "^6.0.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" @@ -5192,19 +4783,6 @@ "node": ">= 0.12.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6444,22 +6022,26 @@ } }, "node_modules/browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "version": "4.16.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz", + "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001157", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", + "caniuse-lite": "^1.0.30001248", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.793", "escalade": "^3.1.1", - "node-releases": "^1.1.66" + "node-releases": "^1.1.73" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, "node_modules/bs-logger": { @@ -6687,13 +6269,16 @@ } }, "node_modules/call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "dependencies": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/call-me-maybe": { @@ -6767,10 +6352,14 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001218", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001218.tgz", - "integrity": "sha512-0ASydOWSy3bB88FbDpJSTt+PfDwnMqrym3yRZfqG8EXSQ06OZhF+q5wgYP/EN+jJMERItNcDQUqMyNjzZ+r5+Q==", - "dev": true + "version": "1.0.30001249", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz", + "integrity": "sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } }, "node_modules/capture-exit": { "version": "2.0.0", @@ -6981,15 +6570,6 @@ "node": ">=0.10.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -7273,9 +6853,9 @@ } }, "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "dev": true }, "node_modules/combined-stream": { @@ -7665,37 +7245,6 @@ "semver": "7.0.0" } }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/core-js-compat/node_modules/electron-to-chromium": { - "version": "1.3.691", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.691.tgz", - "integrity": "sha512-ZqiO69KImmOGCyoH0icQPU3SndJiW93juEvf63gQngyhODO6SpQIPMTOHldtCs5DS5GMKvAkquk230E2zt2vpw==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, "node_modules/core-js-compat/node_modules/semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -7989,13 +7538,13 @@ } }, "node_modules/cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "dev": true, "dependencies": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" }, @@ -8004,9 +7553,9 @@ } }, "node_modules/cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", "dev": true, "dependencies": { "css-declaration-sorter": "^4.0.1", @@ -8037,7 +7586,7 @@ "postcss-ordered-values": "^4.1.2", "postcss-reduce-initial": "^4.0.3", "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", + "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" }, "engines": { @@ -8096,9 +7645,9 @@ } }, "node_modules/csso/node_modules/css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, "dependencies": { "mdn-data": "2.0.14", @@ -8630,9 +8179,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "dependencies": { "ip": "^1.1.0", @@ -8869,9 +8418,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.595", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.595.tgz", - "integrity": "sha512-JpaBIhdBkF9FLG7x06ONfe0f5bxPrxRcq0X+Sc8vsCt+OPWIzxOD+qM71NEHLGbDfN9Q6hbtHRv4/dnvcOxo6g==", + "version": "1.3.801", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.801.tgz", + "integrity": "sha512-xapG8ekC+IAHtJrGBMQSImNuN+dm+zl7UP1YbhvTkwQn8zf/yYuoxfTSAEiJ9VDD+kjvXaAhNDPSxJ+VImtAJA==", "dev": true }, "node_modules/elliptic": { @@ -8997,25 +8546,34 @@ } }, "node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.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.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { @@ -9030,6 +8588,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/escalade": { @@ -10200,18 +9761,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -10274,14 +9823,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-stream": { @@ -10332,9 +9884,9 @@ } }, "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" @@ -10467,7 +10019,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/has-flag": { "version": "3.0.0", @@ -10479,12 +10034,30 @@ } }, "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-value": { @@ -10621,9 +10194,9 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/hpack.js": { @@ -10650,12 +10223,6 @@ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", "dev": true }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, "node_modules/html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", @@ -11073,15 +10640,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -11279,6 +10837,20 @@ "node": ">=6" } }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/intersperse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz", @@ -11369,10 +10941,13 @@ "dev": true }, "node_modules/is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.3.tgz", + "integrity": "sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -11388,15 +10963,19 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { @@ -11406,12 +10985,15 @@ "dev": true }, "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ci": { @@ -11580,11 +11162,14 @@ "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" }, "node_modules/is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { @@ -11600,12 +11185,18 @@ } }, "node_modules/is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number/node_modules/kind-of": { @@ -11684,15 +11275,19 @@ } }, "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-resolvable": { @@ -11711,36 +11306,33 @@ } }, "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { - "html-comment-regex": "^1.1.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typedarray": { @@ -12150,12 +11742,24 @@ } }, "node_modules/jest-environment-jsdom-fifteen/node_modules/ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "dev": true, "engines": { "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/jest-environment-node": { @@ -12820,40 +12424,6 @@ "node": ">=4" } }, - "node_modules/jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -13128,9 +12698,9 @@ "dev": true }, "node_modules/jsdom/node_modules/ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", "dev": true, "dependencies": { "async-limiter": "~1.0.0" @@ -13461,9 +13031,9 @@ } }, "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -13869,42 +13439,6 @@ "node": ">=8" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minipass/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -14233,9 +13767,9 @@ } }, "node_modules/node-releases": { - "version": "1.1.66", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", - "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "node_modules/nopt": { @@ -14390,10 +13924,13 @@ } }, "node_modules/object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/object-is": { "version": "1.1.5", @@ -14408,27 +13945,6 @@ "node": ">= 0.4" } }, - "node_modules/object-is/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/object-is/node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -14491,132 +14007,20 @@ } }, "node_modules/object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "engines": { "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/object.values/node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/es-abstract/node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/object.values/node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/object.values/node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/object.values/node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/obuf": { @@ -14823,18 +14227,6 @@ "node": ">=6" } }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", @@ -15192,9 +14584,9 @@ } }, "node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", @@ -15203,6 +14595,10 @@ }, "engines": { "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-calc": { @@ -15787,12 +15183,11 @@ } }, "node_modules/postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", "dev": true, "dependencies": { - "is-svg": "^3.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "svgo": "^1.0.0" @@ -16324,27 +15719,6 @@ "node": ">= 0.4" } }, - "node_modules/regexp.prototype.flags/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/regexp.prototype.flags/node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, "node_modules/regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -17053,6 +16427,20 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17678,69 +17066,29 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", - "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", - "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { @@ -18456,15 +17804,18 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -18928,6 +18279,7 @@ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", "dev": true, + "optional": true, "dependencies": { "chalk": "^4.1.0", "hash-sum": "^2.0.0", @@ -18939,6 +18291,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -18951,6 +18304,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, + "optional": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18964,6 +18318,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -18975,13 +18330,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true }, "node_modules/vue-loader-v16/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -18991,6 +18348,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, + "optional": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -19005,6 +18363,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -19907,6 +19266,9 @@ "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { @@ -20007,9 +19369,9 @@ } }, "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "dependencies": { "async-limiter": "~1.0.0" @@ -23279,189 +22641,18 @@ "semver": "^6.3.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", - "dev": true, - "requires": { - "@babel/types": "^7.13.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", - "dev": true, - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-plugin-utils": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, "@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", - "dev": true - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, "@babel/types": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", @@ -24120,9 +23311,9 @@ "dev": true }, "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "dev": true }, "@types/qs": { @@ -24446,9 +23637,9 @@ } }, "@vue/cli-overlay": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.12.tgz", - "integrity": "sha512-dCN0RzVpA8fp+MfjuVBROgM483MPObAb/je+APE/JhpCJyPQORYQEvNpmaorpN+9Cp6mrESVSzhh0qD4SFrlzg==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.13.tgz", + "integrity": "sha512-jhUIg3klgi5Cxhs8dnat5hi/W2tQJvsqCxR0u6hgfSob0ORODgUBlN+F/uwq7cKIe/pzedVUk1y07F13GQvPqg==", "dev": true }, "@vue/cli-plugin-babel": { @@ -24464,125 +23655,41 @@ "cache-loader": "^4.1.0", "thread-loader": "^2.1.3", "webpack": "^4.0.0" - }, - "dependencies": { - "@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "@vue/cli-plugin-eslint": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.12.tgz", - "integrity": "sha512-nbjGJkWxo/xdD32DwvnEAUwkWYsObpqNk9NuU7T62ehdzHPzz58o3j03YZ7a7T7Le8bYyOWMYsdNfz63F+XiZQ==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.13.tgz", + "integrity": "sha512-yc2uXX6aBiy3vEf5TwaueaDqQbdIXIhk0x0KzEtpPo23jBdLkpOSoU5NCgE06g/ZiGAcettpmBSv73Hfp4wHEw==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-shared-utils": "^4.5.13", "eslint-loader": "^2.2.1", "globby": "^9.2.0", "inquirer": "^7.1.0", "webpack": "^4.0.0", "yorkie": "^2.0.0" - }, - "dependencies": { - "@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "@vue/cli-plugin-router": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.12.tgz", - "integrity": "sha512-DYNz5AA3W7Ewt3aaiOLGdYFt4MX4w/HTEtep+kPzP9S9tAknzyoIJXkaYzhwu8ArpEYwhWgtuCcDZ8hR6++DbA==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.13.tgz", + "integrity": "sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^4.5.12" - }, - "dependencies": { - "@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@vue/cli-shared-utils": "^4.5.13" } }, "@vue/cli-plugin-unit-jest": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.12.tgz", - "integrity": "sha512-hZibVfMDGTANN7QENbE7eEAlk8adTW8fEpuGXA4IV+eDqLDPUPVUOwcw8f9d7Rx3KVHES3GyFQ9yVK/KeI9NGw==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.13.tgz", + "integrity": "sha512-8t7QIihJWB9Kv85FamrEzWbJnvsLhQdyXHl3h+qhAihrZdLL+9mj905y88cBCq+i2PqqZ/qAoabbpf4DxDAb7g==", "dev": true, "requires": { "@babel/core": "^7.11.0", "@babel/plugin-transform-modules-commonjs": "^7.9.6", "@types/jest": "^24.0.19", - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-shared-utils": "^4.5.13", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^24.9.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", @@ -24596,50 +23703,25 @@ "vue-jest": "^3.0.5" }, "dependencies": { - "@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true } } }, "@vue/cli-plugin-vuex": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.12.tgz", - "integrity": "sha512-STgbvNv/3iHAKArc18b/qjN7RX1FTrfxPeHH26GOr/A8lJes7+CSluZZ8E5R7Zr/vL0zOqOkUVDAjFXVf4zWQA==", - "dev": true + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.13.tgz", + "integrity": "sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA==", + "dev": true, + "requires": {} }, "@vue/cli-service": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.12.tgz", - "integrity": "sha512-Di/dFw72HIvUrpTgnnPQkPq07mdd7z3GPeCH/o+6fv4bxOD+gwK9z7P6RkG4lGv2QdLz+qjim9f7xw5w+9ENkg==", + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.13.tgz", + "integrity": "sha512-CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", @@ -24648,10 +23730,10 @@ "@types/minimist": "^1.2.0", "@types/webpack": "^4.0.0", "@types/webpack-dev-server": "^3.11.0", - "@vue/cli-overlay": "^4.5.12", - "@vue/cli-plugin-router": "^4.5.12", - "@vue/cli-plugin-vuex": "^4.5.12", - "@vue/cli-shared-utils": "^4.5.12", + "@vue/cli-overlay": "^4.5.13", + "@vue/cli-plugin-router": "^4.5.13", + "@vue/cli-plugin-vuex": "^4.5.13", + "@vue/cli-shared-utils": "^4.5.13", "@vue/component-compiler-utils": "^3.1.2", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", @@ -24686,8 +23768,8 @@ "pnp-webpack-plugin": "^1.6.4", "portfinder": "^1.0.26", "postcss-loader": "^3.0.0", - "ssri": "^7.1.0", - "terser-webpack-plugin": "^2.3.6", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^1.4.4", "thread-loader": "^2.1.3", "url-loader": "^2.2.0", "vue-loader": "^15.9.2", @@ -24700,188 +23782,62 @@ "webpack-merge": "^4.2.2" }, "dependencies": { - "@vue/cli-plugin-router": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.12.tgz", - "integrity": "sha512-DYNz5AA3W7Ewt3aaiOLGdYFt4MX4w/HTEtep+kPzP9S9tAknzyoIJXkaYzhwu8ArpEYwhWgtuCcDZ8hR6++DbA==", - "dev": true, - "requires": { - "@vue/cli-shared-utils": "^4.5.12" - } - }, - "@vue/cli-plugin-vuex": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.12.tgz", - "integrity": "sha512-STgbvNv/3iHAKArc18b/qjN7RX1FTrfxPeHH26GOr/A8lJes7+CSluZZ8E5R7Zr/vL0zOqOkUVDAjFXVf4zWQA==", - "dev": true - }, - "@vue/cli-shared-utils": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz", - "integrity": "sha512-qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { - "find-up": "^4.0.0" + "minipass": "^3.1.1" } - }, + } + } + }, + "@vue/cli-shared-utils": { + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.13.tgz", + "integrity": "sha512-HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "terser-webpack-plugin": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", - "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==", - "dev": true, - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" - } } } }, "@vue/component-compiler-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", - "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz", + "integrity": "sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==", "dev": true, "requires": { "consolidate": "^0.15.1", "hash-sum": "^1.0.2", "lru-cache": "^4.1.2", "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", + "postcss": "^7.0.36", "postcss-selector-parser": "^6.0.2", "prettier": "^1.18.2", "source-map": "~0.6.1", @@ -25200,16 +24156,6 @@ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -26308,16 +25254,16 @@ } }, "browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "version": "4.16.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz", + "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001157", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", + "caniuse-lite": "^1.0.30001248", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.793", "escalade": "^3.1.1", - "node-releases": "^1.1.66" + "node-releases": "^1.1.73" } }, "bs-logger": { @@ -26511,13 +25457,13 @@ } }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "call-me-maybe": { @@ -26579,9 +25525,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001218", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001218.tgz", - "integrity": "sha512-0ASydOWSy3bB88FbDpJSTt+PfDwnMqrym3yRZfqG8EXSQ06OZhF+q5wgYP/EN+jJMERItNcDQUqMyNjzZ+r5+Q==", + "version": "1.0.30001249", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz", + "integrity": "sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==", "dev": true }, "capture-exit": { @@ -26760,12 +25706,6 @@ } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -26996,9 +25936,9 @@ } }, "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "dev": true }, "combined-stream": { @@ -27331,31 +26271,6 @@ "semver": "7.0.0" }, "dependencies": { - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "electron-to-chromium": { - "version": "1.3.691", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.691.tgz", - "integrity": "sha512-ZqiO69KImmOGCyoH0icQPU3SndJiW93juEvf63gQngyhODO6SpQIPMTOHldtCs5DS5GMKvAkquk230E2zt2vpw==", - "dev": true - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -27610,21 +26525,21 @@ "dev": true }, "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "dev": true, "requires": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" } }, "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", "dev": true, "requires": { "css-declaration-sorter": "^4.0.1", @@ -27655,7 +26570,7 @@ "postcss-ordered-values": "^4.1.2", "postcss-reduce-initial": "^4.0.3", "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", + "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" } }, @@ -27696,9 +26611,9 @@ }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, "requires": { "mdn-data": "2.0.14", @@ -28135,9 +27050,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", @@ -28356,9 +27271,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.595", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.595.tgz", - "integrity": "sha512-JpaBIhdBkF9FLG7x06ONfe0f5bxPrxRcq0X+Sc8vsCt+OPWIzxOD+qM71NEHLGbDfN9Q6hbtHRv4/dnvcOxo6g==", + "version": "1.3.801", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.801.tgz", + "integrity": "sha512-xapG8ekC+IAHtJrGBMQSImNuN+dm+zl7UP1YbhvTkwQn8zf/yYuoxfTSAEiJ9VDD+kjvXaAhNDPSxJ+VImtAJA==", "dev": true }, "elliptic": { @@ -28473,22 +27388,28 @@ } }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.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.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { @@ -29454,15 +28375,6 @@ "universalify": "^0.1.0" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -29513,9 +28425,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -29562,9 +28474,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -29681,11 +28593,20 @@ "dev": true }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -29800,9 +28721,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "hpack.js": { @@ -29829,12 +28750,6 @@ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", "dev": true }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", @@ -30180,12 +29095,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -30348,6 +29257,17 @@ } } }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "intersperse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz", @@ -30422,9 +29342,9 @@ "dev": true }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.3.tgz", + "integrity": "sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg==", "dev": true }, "is-binary-path": { @@ -30438,12 +29358,13 @@ } }, "is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-buffer": { @@ -30453,9 +29374,9 @@ "dev": true }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-ci": { @@ -30586,9 +29507,9 @@ "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" }, "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" }, "is-number": { "version": "3.0.0", @@ -30611,10 +29532,13 @@ } }, "is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-obj": { "version": "2.0.0", @@ -30662,12 +29586,13 @@ } }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-resolvable": { @@ -30683,27 +29608,21 @@ "dev": true }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "has-tostringtag": "^1.0.0" } }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-typedarray": { @@ -31172,10 +30091,11 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", - "dev": true + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "dev": true, + "requires": {} } } }, @@ -31731,33 +30651,6 @@ } } }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "js-beautify": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz", @@ -31860,9 +30753,9 @@ "dev": true }, "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", "dev": true, "requires": { "async-limiter": "~1.0.0" @@ -32141,9 +31034,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.debounce": { "version": "4.0.8", @@ -32497,33 +31390,6 @@ } } }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -32813,9 +31679,9 @@ } }, "node-releases": { - "version": "1.1.66", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", - "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "nopt": { @@ -32936,9 +31802,9 @@ "dev": true }, "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-is": { @@ -32949,29 +31815,6 @@ "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - } } }, "object-keys": { @@ -33021,118 +31864,14 @@ } }, "object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "es-abstract": "^1.18.2" } }, "obuf": { @@ -33299,15 +32038,6 @@ "p-limit": "^2.0.0" } }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", @@ -33604,9 +32334,9 @@ "dev": true }, "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -34152,12 +32882,11 @@ } }, "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", "dev": true, "requires": { - "is-svg": "^3.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "svgo": "^1.0.0" @@ -34588,29 +33317,6 @@ "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - } } }, "regexpp": { @@ -35218,6 +33924,17 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -35767,67 +34484,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", - "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", - "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "strip-ansi": { @@ -36416,15 +35089,15 @@ } }, "unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "unicode-canonical-property-names-ecmascript": { @@ -36840,6 +35513,7 @@ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", "dev": true, + "optional": true, "requires": { "chalk": "^4.1.0", "hash-sum": "^2.0.0", @@ -36851,6 +35525,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, "requires": { "color-convert": "^2.0.1" } @@ -36860,6 +35535,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, + "optional": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -36870,6 +35546,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, "requires": { "color-name": "~1.1.4" } @@ -36878,19 +35555,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "optional": true }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, + "optional": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -36902,6 +35582,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "optional": true, "requires": { "has-flag": "^4.0.0" } @@ -37763,9 +36444,9 @@ } }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "requires": { "async-limiter": "~1.0.0" From 2b7f9a0333f6640e031510a820abce1c40de57f7 Mon Sep 17 00:00:00 2001 From: Mik Date: Tue, 10 Aug 2021 17:47:56 +0200 Subject: [PATCH 51/66] default conf --- sys/ione.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/ione.conf b/sys/ione.conf index 836a4d6f..29543b01 100644 --- a/sys/ione.conf +++ b/sys/ione.conf @@ -17,3 +17,6 @@ Scripts: # Automation scripts to start SnapshotController: check-period: 3600 # Snapshots check frequency in seconds + +TrafficRecorder: + check-period: 3600 \ No newline at end of file From 2b1152fa3f66a6a9ce6ace950787f89ddf8bbce8 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 15:16:10 +0200 Subject: [PATCH 52/66] method fail -> failed --- rake/test_install.rake | 32 ++++++++++++++------------------ rake/tests/Rakefile | 2 +- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/rake/test_install.rake b/rake/test_install.rake index 1649d46b..d65c36c3 100644 --- a/rake/test_install.rake +++ b/rake/test_install.rake @@ -22,7 +22,7 @@ def passed puts "--- " + "Passed".green end -def fail msg +def failed msg puts msg.red exit end @@ -39,7 +39,7 @@ desc "Check if IONe config exists and correct" task :test_config_exists do puts "Checking if config exists" unless Pathname.new("/etc/one/ione.conf").exist? then - fail "ione.conf does not exist on /etc/one/. You can get it from repo." + failed "ione.conf does not exist on /etc/one/. You can get it from repo." end passed @@ -48,7 +48,7 @@ task :test_config_exists do begin YAML.load_file("/etc/one/ione.conf") rescue => e - fail "Failed to parse ione.conf, got: #{e.message}" + failed "Failed to parse ione.conf, got: #{e.message}" end passed end @@ -92,13 +92,13 @@ task :test_configured do db = Sequel.connect(**ops) rescue => e - fail "Can't connect to database, got: #{e.message}" + failed "Can't connect to database, got: #{e.message}" end passed puts "Checking if settings table exists" unless db.table_exists? :settings then - fail "Table :settings doesn't exist" + failed "Table :settings doesn't exist" end passed @@ -129,10 +129,6 @@ task :test_api_root do puts - def fail msg - puts msg.red - end - for uri in @uris do begin puts "Testing #{uri}" @@ -146,14 +142,14 @@ task :test_api_root do http.request(req) end rescue => e - fail "Unable to get response from '/', got: #{r.code} #{e.message}" unless r.code == 401 + failed "Unable to get response from '/', got: #{r.code} #{e.message}" unless r.code == 401 end if uri.scheme == 'http' && r.code == "301" then passed next end unless r.code == "404" then - fail "Unable to get 404 from '/', got: #{r.code} #{r.body}" + failed "Unable to get 404 from '/', got: #{r.code} #{r.body}" end passed @@ -167,10 +163,10 @@ task :test_api_root do http.request(req) end rescue => e - fail "Unable to get response from '/ione/Test', got: #{e.message}" + failed "Unable to get response from '/ione/Test', got: #{e.message}" end if r.code != "200" then - fail "Got #{r.code} response from Test, should be 200." + failed "Got #{r.code} response from Test, should be 200." end passed @@ -185,19 +181,19 @@ task :test_api_root do http.request(req) end rescue => e - fail "Unable to get response from '/ione/Test', got: #{e.message}" + failed "Unable to get response from '/ione/Test', got: #{e.message}" end if r.code != "200" then - fail "Got #{r.code} response from Test, should be 200." + failed "Got #{r.code} response from Test, should be 200." end begin res = JSON.parse r.body r = res['response'] - fail "Wrong response schema: #{res}" if r.nil? - fail "Expected PONG, got: #{r}" unless r == 'PONG' + failed "Wrong response schema: #{res}" if r.nil? + failed "Expected PONG, got: #{r}" unless r == 'PONG' rescue JSON::ParserError - fail "Got un-parseable string: #{r.body}" + failed "Got un-parseable string: #{r.body}" end passed rescue => e diff --git a/rake/tests/Rakefile b/rake/tests/Rakefile index e6d8fb3e..4d79387d 100644 --- a/rake/tests/Rakefile +++ b/rake/tests/Rakefile @@ -6,7 +6,7 @@ def passed puts "--- " + "Passed".green end -def fail msg +def failed msg puts msg.red exit end From 771dac00075de39970c5246e5d7a1b1b345126f5 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 15:26:42 +0200 Subject: [PATCH 53/66] cleanup, resolved in rename --- rake/test_install.rake | 9 --------- 1 file changed, 9 deletions(-) diff --git a/rake/test_install.rake b/rake/test_install.rake index d65c36c3..70f5ef26 100644 --- a/rake/test_install.rake +++ b/rake/test_install.rake @@ -1,15 +1,6 @@ require 'pathname' require 'yaml' -class String - def color *_args - self - end - alias green :color - alias yellow :color - alias red :color -end - task :test_install_deps do require 'colorize' require 'net/http' From bfa5d91bd7bad386aaa6cf5de42c1a2c5f788619 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 15:35:08 +0200 Subject: [PATCH 54/66] fixed VM username logic --- lib/creative_funcs/main.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 3a15ec91..adab8a5c 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -280,7 +280,6 @@ def CreateVMwithSpecs(params, trace = ["#{__method__} method called:#{__LINE__}" LOG_DEBUG "No vCenter configuration found" end - params['username'] = params['username'] || 'Administrator' params['vm_name'] = params['vm_name'] || "#{params['login']}_vm" ###################### Doing some important system stuff ############################################################### @@ -329,6 +328,7 @@ def CreateVMwithSpecs(params, trace = ["#{__method__} method called:#{__LINE__}" trace << "Creating new VM:#{__LINE__ + 1}" onblock(:t, params['templateid']) do | t | t.info! + params['username'] = params['username'] || (t.win? ? 'Administrator' : 'root') specs = "" if !t['/VMTEMPLATE/TEMPLATE/CAPACITY'] && t['/VMTEMPLATE/TEMPLATE/HYPERVISOR'].upcase == "VCENTER" then specs = { From 5c1f67e7cc1ebcb216b8cd8982a6fffd5ec83706 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:03:51 +0200 Subject: [PATCH 55/66] remove unnecessary spacing --- lib/creative_funcs/main.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index adab8a5c..6c1aa0ba 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -280,7 +280,7 @@ def CreateVMwithSpecs(params, trace = ["#{__method__} method called:#{__LINE__}" LOG_DEBUG "No vCenter configuration found" end - params['vm_name'] = params['vm_name'] || "#{params['login']}_vm" + params['vm_name'] = params['vm_name'] || "#{params['login']}_vm" ###################### Doing some important system stuff ############################################################### LOG_AUTO "CreateVMwithSpecs for #{params['login']} Order Accepted! #{params['trial'] == true ? "VM is Trial" : nil}" From 5f623fa20c29d623a05613f40e56cf43a41c72f3 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:07:46 +0200 Subject: [PATCH 56/66] one more intervention into username context --- lib/creative_funcs/main.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 6c1aa0ba..24bb2d02 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -418,7 +418,7 @@ def CreateVMwithSpecs(params, trace = ["#{__method__} method called:#{__LINE__}" NETWORK: "YES", PASSWORD: params['passwd'], SSH_PUBLIC_KEY: "$USER[SSH_PUBLIC_KEY]", - USERNAME: win ? params['username'] : nil + USERNAME: params['username'] } }.to_one_template ) From eeac7d73473f42cb515a13b10c587eb7832e1490 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:08:44 +0200 Subject: [PATCH 57/66] one more intervention into username context --- lib/creative_funcs/main.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 24bb2d02..bee632a9 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -233,6 +233,17 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) trace << "Recovering VM:#{__LINE__}" vm.recover(4) + vm.updateconf( + { + CONTEXT: { + NETWORK: "YES", + PASSWORD: params['passwd'], + SSH_PUBLIC_KEY: "$USER[SSH_PUBLIC_KEY]", + USERNAME: win ? params['username'] : nil + } + }.to_one_template + ) + return true, host.to_i rescue => e LOG_ERROR "Error ocurred while Reinstall: #{e.message}" @@ -408,7 +419,6 @@ def CreateVMwithSpecs(params, trace = ["#{__method__} method called:#{__LINE__}" end if %w(VCENTER KVM).include? params['extra']['type'].upcase then - win = onblock(:t, params['templateid']).win? LOG_DEBUG "Instantiating VM as#{win ? nil : ' not'} Windows" trace << "Setting VM context:#{__LINE__ + 2}" begin From bc5c3bc432b381146a578b26fce0517e5445339a Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:28:59 +0200 Subject: [PATCH 58/66] change password if param given --- lib/creative_funcs/main.rb | 16 ++++++---------- service/objects/vm.rb | 8 ++++++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index bee632a9..4fc3a703 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -212,6 +212,7 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) # Recreates VM - leaves same ID, same IP addresses, amount of resources, etc, but recreates on host # @param [Hash] params # @option params [Integer] :vm + # @option params [String] :passwd (optional) # @return [TrueClass, Integer] - true and host where VM been deployed before recreate def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) params.to_sym! @@ -233,16 +234,11 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) trace << "Recovering VM:#{__LINE__}" vm.recover(4) - vm.updateconf( - { - CONTEXT: { - NETWORK: "YES", - PASSWORD: params['passwd'], - SSH_PUBLIC_KEY: "$USER[SSH_PUBLIC_KEY]", - USERNAME: win ? params['username'] : nil - } - }.to_one_template - ) + if params['passwd'] then + trace << "Changing VM password#{__LINE__}" + vm.passwd params['passwd'] + end + return true, host.to_i rescue => e diff --git a/service/objects/vm.rb b/service/objects/vm.rb index 97d97c18..7df9c3d3 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -530,4 +530,12 @@ def start_vnc def stop_vnc File.delete(File.join('/var/lib/one/sunstone_vnc_tokens/', "one-#{id}")) end + + # Changes VM password in Context(must be changing on VM immediately) + # @param [String] password - new VM password + def passwd password + context = vm.to_hash['VM']['TEMPLATE']['CONTEXT'] + context['PASSWORD'] = password + updateconf({ CONTEXT: context }.to_one_template) + end end From 1686a943d5fc35431863417a9b9c0543924e3f30 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:29:31 +0200 Subject: [PATCH 59/66] deploy VM to the same host if param given --- lib/creative_funcs/main.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 4fc3a703..30c79e73 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -213,6 +213,7 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) # @param [Hash] params # @option params [Integer] :vm # @option params [String] :passwd (optional) + # @option deploy [Boolean] :deploy (optional) # @return [TrueClass, Integer] - true and host where VM been deployed before recreate def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) params.to_sym! @@ -239,6 +240,12 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) vm.passwd params['passwd'] end + if params['deploy'] then + trace << "Waiting for state PENDING to deploy VM:#{__LINE__}" + vm.wait_state("PENDING", 120) + trace << "Deploying VM:#{__LINE__}" + vm.deploy(host.to_i) + end return true, host.to_i rescue => e From 12ad240a299170a6ae226d2ad5a4838e0e536e22 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:29:38 +0200 Subject: [PATCH 60/66] log --- lib/creative_funcs/main.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 30c79e73..12847329 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -217,8 +217,7 @@ def Reinstall(params, trace = ["Reinstall method called:#{__LINE__}"]) # @return [TrueClass, Integer] - true and host where VM been deployed before recreate def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) params.to_sym! - LOG_DEBUG params.merge!({ :method => 'Reinstall' }).debug_out - LOG "Reinstalling VM#{params[:vm]}", 'Reinstall' + LOG "Recreating VM#{params[:vm]}", 'Recreate' trace << "Getting VM:#{__LINE__}" vm = onblock(:vm, params[:vm]) From 7669b51543bfeede0577b31ac6363a342e223987 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:44:37 +0200 Subject: [PATCH 61/66] params to sym --- lib/creative_funcs/main.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/creative_funcs/main.rb b/lib/creative_funcs/main.rb index 12847329..9c86acdf 100644 --- a/lib/creative_funcs/main.rb +++ b/lib/creative_funcs/main.rb @@ -234,12 +234,12 @@ def Recreate(params, trace = ["Recreate method called:#{__LINE__}"]) trace << "Recovering VM:#{__LINE__}" vm.recover(4) - if params['passwd'] then + if params[:passwd] then trace << "Changing VM password#{__LINE__}" - vm.passwd params['passwd'] + vm.passwd params[:passwd] end - if params['deploy'] then + if params[:deploy] then trace << "Waiting for state PENDING to deploy VM:#{__LINE__}" vm.wait_state("PENDING", 120) trace << "Deploying VM:#{__LINE__}" From fd314adf895e1f26665c908dbea0b56780e86a62 Mon Sep 17 00:00:00 2001 From: Mik Date: Mon, 16 Aug 2021 16:47:16 +0200 Subject: [PATCH 62/66] undefined local variable or method vm issue resolve --- service/objects/vm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/objects/vm.rb b/service/objects/vm.rb index 7df9c3d3..f61024a4 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -534,7 +534,7 @@ def stop_vnc # Changes VM password in Context(must be changing on VM immediately) # @param [String] password - new VM password def passwd password - context = vm.to_hash['VM']['TEMPLATE']['CONTEXT'] + context = to_hash['VM']['TEMPLATE']['CONTEXT'] context['PASSWORD'] = password updateconf({ CONTEXT: context }.to_one_template) end From d77859a23d65e5108443b2614618b84aa466bffe Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 18 Aug 2021 15:35:54 +0200 Subject: [PATCH 63/66] class Hash to_s! - deep and deep_merge method --- lib/std++/main.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/std++/main.rb b/lib/std++/main.rb index 7ac2a4e6..a1770994 100644 --- a/lib/std++/main.rb +++ b/lib/std++/main.rb @@ -33,6 +33,9 @@ def to_sym! def to_s! self.keys.each do |key| self[key.to_s] = self.delete key if key.class != String + if self[key.to_s].class == Hash then + self[key.to_s].to_s! + end end self end @@ -122,6 +125,13 @@ def self.from_one_template tmpl end res end + + # Generic #merge method better version + def deep_merge(second) + merger = proc { | _, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 } + self.merge(second, &merger) + end + # @!endgroup end From eb0069b1390a993f015cdb63a54d40dc6a0ee8d1 Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 18 Aug 2021 15:36:18 +0200 Subject: [PATCH 64/66] retrieve VM writtable conf method --- service/objects/vm.rb | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/service/objects/vm.rb b/service/objects/vm.rb index f61024a4..87af3828 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -23,6 +23,16 @@ class OpenNebula::VirtualMachine snapshot-create ) + # VM Template keys updatable(and rewritable) by #updateconf + CONF_KEYS = Set[ + "INPUT", + "RAW", + "OS", + "FEATURES", + "GRAPHICS", + "CONTEXT" + ] + def initialize(xml, client) @vim_vm = nil super(xml, client) @@ -534,8 +544,12 @@ def stop_vnc # Changes VM password in Context(must be changing on VM immediately) # @param [String] password - new VM password def passwd password - context = to_hash['VM']['TEMPLATE']['CONTEXT'] - context['PASSWORD'] = password - updateconf({ CONTEXT: context }.to_one_template) + # Returns VM conf(template parts rewrittable by #updateconf) + def conf + info! + to_hash['VM']['TEMPLATE'].select do | key | + CONF_KEYS === key + end + end end end From f37aeee69838144f39c4b9652883d18b646df43f Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 18 Aug 2021 15:43:21 +0200 Subject: [PATCH 65/66] #retrieve VM writtable conf method --- service/objects/vm.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/service/objects/vm.rb b/service/objects/vm.rb index 87af3828..b1124406 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -551,5 +551,20 @@ def conf CONF_KEYS === key end end + + # + # Safe updateconf method - doesn't delete ANY keys. Merges new conf with actual conf + # + # @param [Hash] new_conf Config keys to change(must be nested) + # @example Updating password only + # ```ruby + # vm.updateconf_safe CONTEXT: PASSWORD: "new_password" + # ``` + # + def updateconf_safe new_conf + curr_conf = conf + updateconf( + curr_conf.deep_merge(new_conf.to_s!).to_one_template + ) end end From 7be738634e2d76912fb8c393ee9e7f578edd7b08 Mon Sep 17 00:00:00 2001 From: Mik Date: Wed, 18 Aug 2021 15:43:44 +0200 Subject: [PATCH 66/66] change passwd via #updateconf_safe --- service/objects/vm.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/service/objects/vm.rb b/service/objects/vm.rb index b1124406..42571d8c 100644 --- a/service/objects/vm.rb +++ b/service/objects/vm.rb @@ -544,6 +544,9 @@ def stop_vnc # Changes VM password in Context(must be changing on VM immediately) # @param [String] password - new VM password def passwd password + updateconf_safe({ CONTEXT: { PASSWORD: password } }) + end + # Returns VM conf(template parts rewrittable by #updateconf) def conf info!