From 31a88401753c710e2727827e10c2885206954c8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 05:58:15 +0000 Subject: [PATCH 001/149] chore(deps): bump vuetify from 2.6.14 to 2.6.15 Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 2.6.14 to 2.6.15. - [Release notes](https://github.com/vuetifyjs/vuetify/releases) - [Commits](https://github.com/vuetifyjs/vuetify/commits/v2.6.15/packages/vuetify) --- updated-dependencies: - dependency-name: vuetify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c8227bca41..e3a8b4d05d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "vue": "^2.7.0", "vue-router": "^3.4.9", "vuelidate": "^0.7.6", - "vuetify": "^2.6.10", + "vuetify": "^2.6.15", "vuex": "^3.6.0", "vuex-router-sync": "^5.0.0" }, @@ -15593,9 +15593,9 @@ } }, "node_modules/vuetify": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.14.tgz", - "integrity": "sha512-nr6wU3uTzhhEPssH23cW0Ee/hCrayp7cjl3nNjM2OmNwiJlV91tZiL1VO3597SqZyjh1xIa+m9J2rpKTSdIlrA==", + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.15.tgz", + "integrity": "sha512-2a6sBSHzivXgi9pZMyHuzTgMyInCkj/BrVwTnoCa1Y/Dnfwj7lkWzgKQDScbGVK0q4vJ+YHoBBrLOmnhz1R0YA==", "funding": { "type": "github", "url": "https://github.com/sponsors/johnleider" @@ -28178,9 +28178,9 @@ "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==" }, "vuetify": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.14.tgz", - "integrity": "sha512-nr6wU3uTzhhEPssH23cW0Ee/hCrayp7cjl3nNjM2OmNwiJlV91tZiL1VO3597SqZyjh1xIa+m9J2rpKTSdIlrA==", + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.15.tgz", + "integrity": "sha512-2a6sBSHzivXgi9pZMyHuzTgMyInCkj/BrVwTnoCa1Y/Dnfwj7lkWzgKQDScbGVK0q4vJ+YHoBBrLOmnhz1R0YA==", "requires": {} }, "vuetify-loader": { diff --git a/package.json b/package.json index fa7232a5ae..9b3d9c173f 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "vue": "^2.7.0", "vue-router": "^3.4.9", "vuelidate": "^0.7.6", - "vuetify": "^2.6.10", + "vuetify": "^2.6.15", "vuex": "^3.6.0", "vuex-router-sync": "^5.0.0" }, From 884879f55a7bab58f18b582256007b0688abde15 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 17 May 2023 07:03:07 +0200 Subject: [PATCH 002/149] fix(messages): Make it more clear that people need to install Nextcloud Bookmarks to use it --- _locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ff84181d11..a4fb06eaea 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -246,7 +246,7 @@ "message": "Nextcloud Bookmarks" }, "DescriptionAdapternextcloudfolders": { - "message": "The option 'Nextcloud Bookmarks' is compatible with at least version v0.14 of the Bookmarks app. It can only sync http and ftp bookmarks." + "message": "The option 'Nextcloud Bookmarks' syncs your bookmarks with the Bookmarks app for Nextcloud. It can only sync http and ftp bookmarks. Make sure you have installed the Bookmarks app from the Nextcloud app store in your Nextcloud." }, "LabelAdapternextcloud": { "message": "Nextcloud Bookmarks (legacy)" From d729020db4c12114c45ce94e77306055faee91ec Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 17 May 2023 11:03:37 +0200 Subject: [PATCH 003/149] ci(issues): Add first message to all issues --- .github/workflows/issues.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index dd28ffc2f0..2f5a005061 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -18,3 +18,28 @@ jobs: with: project: 'https://github.com/floccusaddon/floccus/projects/1' column_name: 'Backlog' + + first_comment: + runs-on: ubuntu-latest + name: Add first comment + steps: + - name: Create comment + uses: peter-evans/create-or-update-comment@v3 + with: + issue-number: ${{ github.event.issue.id }} + body: | + Hello :wave: + + Thank you for taking the time to open this issue with floccus. + I know it's frustrating when software causes problems. + You have made the right choice to come here and open an issue to make sure your problem gets looked at + and if possible solved, either in the code or on your computer. + I'm Marcel and I created floccus and have been maintaining it ever since. + I currently work for Nextcloud which leaves me with less time for side projects like this one + than I used to have. + I still try to answer all issues here, but it sometimes takes a few weeks or a month until I get to it. + Until then, please be patient. If you can you could also look at other issues to see whether you can help + other people with your knowledge and experience or whether others are have faced the same problem. + + I look forward to help you on this issue + Cheers :blue_heart: From be195d0f5b6fb882664ef79828b1d639895363bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 May 2023 09:06:43 +0000 Subject: [PATCH 004/149] chore(deps): bump xml2js and send-intent Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) to 0.5.0 and updates ancestor dependency [send-intent](https://github.com/carsten-klaffke/send-intent). These dependencies need to be updated together. Updates `xml2js` from 0.4.23 to 0.5.0 - [Commits](https://github.com/Leonidas-from-XIV/node-xml2js/commits/0.5.0) Updates `send-intent` from 3.0.12 to 5.0.0 - [Release notes](https://github.com/carsten-klaffke/send-intent/releases) - [Changelog](https://github.com/carsten-klaffke/send-intent/blob/master/CHANGELOG.md) - [Commits](https://github.com/carsten-klaffke/send-intent/commits/v5.0.0) --- updated-dependencies: - dependency-name: xml2js dependency-type: indirect - dependency-name: send-intent dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 338 ++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 219 insertions(+), 121 deletions(-) diff --git a/package-lock.json b/package-lock.json index c8227bca41..1e2d1b8abf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "p-queue": "^5.0.0", "punycode": "^2.1.1", "random": "^2.2.0", - "send-intent": "3.x", + "send-intent": "5.x", "throttle-debounce": "^2.3.0", "vue": "^2.7.0", "vue-router": "^3.4.9", @@ -1772,15 +1772,15 @@ } }, "node_modules/@capacitor/cli": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.7.1.tgz", - "integrity": "sha512-cUEMci4KBb8gwIDXaO9F2Woz1wnugB/vVq2sRVy8+fzOfhmHlxweuH+h9RktDkpceVi+COfxYw/VPjg1wjC1tA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.8.0.tgz", + "integrity": "sha512-Hbs1SKjvyg5wdcMGRt+CzebdgjlnVDjn92WV1p16gsrBwqWm+uDYMNpFQ7vWKALFL9AZCi/r8lXHmuX/HoD2Kw==", "dev": true, "dependencies": { - "@ionic/cli-framework-output": "^2.2.5", - "@ionic/utils-fs": "^3.1.6", - "@ionic/utils-subprocess": "^2.1.11", - "@ionic/utils-terminal": "^2.3.3", + "@ionic/cli-framework-output": "2.2.5", + "@ionic/utils-fs": "3.1.6", + "@ionic/utils-subprocess": "2.1.11", + "@ionic/utils-terminal": "2.3.3", "commander": "^9.3.0", "debug": "^4.3.4", "env-paths": "^2.2.0", @@ -1793,7 +1793,7 @@ "semver": "^7.3.7", "tar": "^6.1.11", "tslib": "^2.4.0", - "xml2js": "^0.4.23" + "xml2js": "^0.5.0" }, "bin": { "cap": "bin/capacitor", @@ -3988,8 +3988,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base": { "version": "0.11.2", @@ -4930,7 +4929,6 @@ "version": "9.5.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, "engines": { "node": "^12.20.0 || >=14" } @@ -5436,7 +5434,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, "engines": { "node": ">=8" } @@ -7399,8 +7396,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "1.2.13", @@ -11278,7 +11274,6 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -11568,6 +11563,37 @@ "node": ">=0.10.0" } }, + "node_modules/path-scurry": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", + "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", + "dependencies": { + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.1.tgz", + "integrity": "sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -13334,58 +13360,76 @@ } }, "node_modules/send-intent": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/send-intent/-/send-intent-3.0.12.tgz", - "integrity": "sha512-p5B0T6SGPhKI9ZRG+C+/kcsj3voP3y4Rlzt/yVTDdADtBjb0TV++SaamRawI6o9fuxIrsf/BHU9SuQwY/OUj/g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/send-intent/-/send-intent-5.0.0.tgz", + "integrity": "sha512-d3moLwVdQlv/lWPR8MYPUv3HufOrfcbyAvELla8DnJZwzLD9vYWF4UlgsEp/l5ADOyNW0KuvRVIE2cuCZqZLxA==", "dependencies": { - "@capacitor/cli": ">= 3 < 4", - "@capacitor/core": ">= 3 < 4" + "@capacitor/cli": "^5.0.0", + "@capacitor/core": "^5.0.0" } }, "node_modules/send-intent/node_modules/@capacitor/cli": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.9.0.tgz", - "integrity": "sha512-NkbVZhYb0oPdh/XArE2ZmOwPFJbla5meShGhv3DxKCXeKn1rt92ile+2xOgtB/j+mL7f9cqQzTQM/11sGQzMAg==", - "dependencies": { - "@ionic/cli-framework-output": "^2.2.1", - "@ionic/utils-fs": "^3.1.5", - "@ionic/utils-subprocess": "^2.1.6", - "@ionic/utils-terminal": "^2.3.0", - "commander": "^6.0.0", - "debug": "^4.2.0", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-5.0.3.tgz", + "integrity": "sha512-VPmd/uKSCYqeLgNTrG2wVaMoCX8lo2UuXFVwP54W4nXPyG6LsDuOKYytkBItTAJrI3KEXdZWyRFbXjIY48/m6g==", + "dependencies": { + "@ionic/cli-framework-output": "^2.2.5", + "@ionic/utils-fs": "^3.1.6", + "@ionic/utils-subprocess": "^2.1.11", + "@ionic/utils-terminal": "^2.3.3", + "commander": "^9.3.0", + "debug": "^4.3.4", "env-paths": "^2.2.0", - "kleur": "^4.1.1", - "native-run": "^1.5.0", - "open": "^7.4.2", - "plist": "^3.0.2", - "prompts": "^2.3.2", - "semver": "^7.3.2", + "kleur": "^4.1.4", + "native-run": "^1.7.2", + "open": "^8.4.0", + "plist": "^3.0.5", + "prompts": "^2.4.2", + "rimraf": "^4.4.1", + "semver": "^7.3.7", "tar": "^6.1.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23" + "tslib": "^2.4.0", + "xml2js": "^0.5.0" }, "bin": { "cap": "bin/capacitor", "capacitor": "bin/capacitor" }, "engines": { - "node": ">=12.4.0" + "node": ">=16.0.0" } }, "node_modules/send-intent/node_modules/@capacitor/core": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.9.0.tgz", - "integrity": "sha512-j1lL0+/7stY8YhIq1Lm6xixvUqIn89vtyH5ZpJNNmcZ0kwz6K9eLkcG6fvq1UWMDgSVZg9JrRGSFhb4LLoYOsw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.0.3.tgz", + "integrity": "sha512-VxzSoFvoiGDmvlKQMbg7ZZh+w3Z223630kZINDOsbs7UZr5gZws7+m26Y9Oc8n2miI737hE6qOf2VU4H/8Tytg==", "dependencies": { "tslib": "^2.1.0" } }, - "node_modules/send-intent/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "node_modules/send-intent/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/send-intent/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, "engines": { - "node": ">= 6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/send-intent/node_modules/lru-cache": { @@ -13399,25 +13443,41 @@ "node": ">=10" } }, - "node_modules/send-intent/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/send-intent/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/send-intent/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/send-intent/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -16122,9 +16182,9 @@ } }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -17510,15 +17570,15 @@ "requires": {} }, "@capacitor/cli": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.7.1.tgz", - "integrity": "sha512-cUEMci4KBb8gwIDXaO9F2Woz1wnugB/vVq2sRVy8+fzOfhmHlxweuH+h9RktDkpceVi+COfxYw/VPjg1wjC1tA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.8.0.tgz", + "integrity": "sha512-Hbs1SKjvyg5wdcMGRt+CzebdgjlnVDjn92WV1p16gsrBwqWm+uDYMNpFQ7vWKALFL9AZCi/r8lXHmuX/HoD2Kw==", "dev": true, "requires": { - "@ionic/cli-framework-output": "^2.2.5", - "@ionic/utils-fs": "^3.1.6", - "@ionic/utils-subprocess": "^2.1.11", - "@ionic/utils-terminal": "^2.3.3", + "@ionic/cli-framework-output": "2.2.5", + "@ionic/utils-fs": "3.1.6", + "@ionic/utils-subprocess": "2.1.11", + "@ionic/utils-terminal": "2.3.3", "commander": "^9.3.0", "debug": "^4.3.4", "env-paths": "^2.2.0", @@ -17531,7 +17591,7 @@ "semver": "^7.3.7", "tar": "^6.1.11", "tslib": "^2.4.0", - "xml2js": "^0.4.23" + "xml2js": "^0.5.0" }, "dependencies": { "lru-cache": { @@ -19254,8 +19314,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base": { "version": "0.11.2", @@ -20006,8 +20065,7 @@ "commander": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" }, "commondir": { "version": "1.0.1", @@ -20375,8 +20433,7 @@ "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { "version": "1.2.0", @@ -21917,8 +21974,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "1.2.13", @@ -24894,7 +24950,6 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -25109,6 +25164,27 @@ "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true }, + "path-scurry": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", + "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", + "requires": { + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" + }, + "minipass": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.1.tgz", + "integrity": "sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw==" + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -26413,49 +26489,64 @@ } }, "send-intent": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/send-intent/-/send-intent-3.0.12.tgz", - "integrity": "sha512-p5B0T6SGPhKI9ZRG+C+/kcsj3voP3y4Rlzt/yVTDdADtBjb0TV++SaamRawI6o9fuxIrsf/BHU9SuQwY/OUj/g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/send-intent/-/send-intent-5.0.0.tgz", + "integrity": "sha512-d3moLwVdQlv/lWPR8MYPUv3HufOrfcbyAvELla8DnJZwzLD9vYWF4UlgsEp/l5ADOyNW0KuvRVIE2cuCZqZLxA==", "requires": { - "@capacitor/cli": ">= 3 < 4", - "@capacitor/core": ">= 3 < 4" + "@capacitor/cli": "^5.0.0", + "@capacitor/core": "^5.0.0" }, "dependencies": { "@capacitor/cli": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.9.0.tgz", - "integrity": "sha512-NkbVZhYb0oPdh/XArE2ZmOwPFJbla5meShGhv3DxKCXeKn1rt92ile+2xOgtB/j+mL7f9cqQzTQM/11sGQzMAg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-5.0.3.tgz", + "integrity": "sha512-VPmd/uKSCYqeLgNTrG2wVaMoCX8lo2UuXFVwP54W4nXPyG6LsDuOKYytkBItTAJrI3KEXdZWyRFbXjIY48/m6g==", "requires": { - "@ionic/cli-framework-output": "^2.2.1", - "@ionic/utils-fs": "^3.1.5", - "@ionic/utils-subprocess": "^2.1.6", - "@ionic/utils-terminal": "^2.3.0", - "commander": "^6.0.0", - "debug": "^4.2.0", + "@ionic/cli-framework-output": "^2.2.5", + "@ionic/utils-fs": "^3.1.6", + "@ionic/utils-subprocess": "^2.1.11", + "@ionic/utils-terminal": "^2.3.3", + "commander": "^9.3.0", + "debug": "^4.3.4", "env-paths": "^2.2.0", - "kleur": "^4.1.1", - "native-run": "^1.5.0", - "open": "^7.4.2", - "plist": "^3.0.2", - "prompts": "^2.3.2", - "semver": "^7.3.2", + "kleur": "^4.1.4", + "native-run": "^1.7.2", + "open": "^8.4.0", + "plist": "^3.0.5", + "prompts": "^2.4.2", + "rimraf": "^4.4.1", + "semver": "^7.3.7", "tar": "^6.1.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23" + "tslib": "^2.4.0", + "xml2js": "^0.5.0" } }, "@capacitor/core": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.9.0.tgz", - "integrity": "sha512-j1lL0+/7stY8YhIq1Lm6xixvUqIn89vtyH5ZpJNNmcZ0kwz6K9eLkcG6fvq1UWMDgSVZg9JrRGSFhb4LLoYOsw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.0.3.tgz", + "integrity": "sha512-VxzSoFvoiGDmvlKQMbg7ZZh+w3Z223630kZINDOsbs7UZr5gZws7+m26Y9Oc8n2miI737hE6qOf2VU4H/8Tytg==", "requires": { "tslib": "^2.1.0" } }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + } }, "lru-cache": { "version": "6.0.0", @@ -26465,19 +26556,26 @@ "yallist": "^4.0.0" } }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "brace-expansion": "^2.0.1" + } + }, + "rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "requires": { + "glob": "^9.2.0" } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "requires": { "lru-cache": "^6.0.0" } @@ -28538,9 +28636,9 @@ "dev": true }, "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" diff --git a/package.json b/package.json index fa7232a5ae..590fe30c78 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "p-queue": "^5.0.0", "punycode": "^2.1.1", "random": "^2.2.0", - "send-intent": "3.x", + "send-intent": "5.x", "throttle-debounce": "^2.3.0", "vue": "^2.7.0", "vue-router": "^3.4.9", From 48b5d07d8023bc65c43daf532a70b0ba012339ff Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 17 May 2023 11:25:52 +0200 Subject: [PATCH 005/149] ci(issues): Add first message to all issues --- .github/workflows/issues.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 2f5a005061..6dd7df7336 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -23,6 +23,26 @@ jobs: runs-on: ubuntu-latest name: Add first comment steps: + - uses: ben-z/actions-comment-on-issue@1.0.2 + with: + message: | + Hello :wave: + + Thank you for taking the time to open this issue with floccus. + I know it's frustrating when software causes problems. + You have made the right choice to come here and open an issue to make sure your problem gets looked at + and if possible solved, either in the code or on your computer. + I'm Marcel and I created floccus and have been maintaining it ever since. + I currently work for Nextcloud which leaves me with less time for side projects like this one + than I used to have. + I still try to answer all issues here, but it sometimes takes a few weeks or a month until I get to it. + Until then, please be patient. If you can you could also look at other issues to see whether you can help + other people with your knowledge and experience or whether others are have faced the same problem. + + I look forward to help you on this issue + Cheers :blue_heart: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create comment uses: peter-evans/create-or-update-comment@v3 with: From 8ceceac6db1f6b599a31dda04fba3eb7420e3d00 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 17 May 2023 12:16:50 +0200 Subject: [PATCH 006/149] ci(issues): Add first message to all issues --- .github/workflows/issues.yml | 23 +---------------------- .github/workflows/tests.yml | 7 +++++++ 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 6dd7df7336..ee1eae3d67 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -1,4 +1,4 @@ -name: Auto-assign Issues to Project +name: New issue workflow on: issues: @@ -42,24 +42,3 @@ jobs: I look forward to help you on this issue Cheers :blue_heart: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Create comment - uses: peter-evans/create-or-update-comment@v3 - with: - issue-number: ${{ github.event.issue.id }} - body: | - Hello :wave: - - Thank you for taking the time to open this issue with floccus. - I know it's frustrating when software causes problems. - You have made the right choice to come here and open an issue to make sure your problem gets looked at - and if possible solved, either in the code or on your computer. - I'm Marcel and I created floccus and have been maintaining it ever since. - I currently work for Nextcloud which leaves me with less time for side projects like this one - than I used to have. - I still try to answer all issues here, but it sometimes takes a few weeks or a month until I get to it. - Until then, please be patient. If you can you could also look at other issues to see whether you can help - other people with your knowledge and experience or whether others are have faced the same problem. - - I look forward to help you on this issue - Cheers :blue_heart: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1900ed0289..546f8dc485 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,6 +6,13 @@ on: branches: - master - develop + paths: + - 'src/**' + - 'test/**' + - 'package.json' + - 'package-lock.json' + - 'webpack*' + - 'gulpfile.js' env: APP_NAME: bookmarks From a7b782a8f55542a07a26523132610bdeac6df112 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 21 May 2023 11:03:35 +0200 Subject: [PATCH 007/149] fix(downloadLogs): Add redacted/full to file name fixes #1320 --- src/lib/Logger.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/Logger.js b/src/lib/Logger.js index 88f14ab075..37617303ee 100644 --- a/src/lib/Logger.js +++ b/src/lib/Logger.js @@ -80,6 +80,8 @@ export default class Logger { packageJson.version + '-' + new Date().toISOString().slice(0, 10) + + '-' + + (anonymous ? 'redacted' : 'full') + '.log', blob ) From 1bc5b880743d11dd4e27718578a02e950c7f8b89 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 21 May 2023 11:49:16 +0200 Subject: [PATCH 008/149] fix(FileUnreadableError): Make error message more clear fixes #1379 --- _locales/en/messages.json | 2 +- src/errors/Error.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index a4fb06eaea..f1b8833622 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -99,7 +99,7 @@ "message": "E033: Redirect detected. Please make sure the server supports the selected sync method and URL you entered is correct doesn't redirect to a different location. If the redirect is part of your setup, you can disable this check in the settings." }, "Error034": { - "message": "E034: Bookmarks file is unreadable. Did you forget to set an encryption passphrase?" + "message": "E034: Remote bookmarks file is unreadable. Did you forget to set an encryption passphrase?" }, "Error035": { "message": "E035: Failed to create the following bookmark on the server: {0}" diff --git a/src/errors/Error.ts b/src/errors/Error.ts index eece9b52f6..ae6670596d 100644 --- a/src/errors/Error.ts +++ b/src/errors/Error.ts @@ -282,7 +282,7 @@ export class RedirectError extends FloccusError { export class FileUnreadableError extends FloccusError { constructor() { - super('E034: Bookmarks file is unreadable. Did you forget to set an encryption passphrase?') + super('E034: Remote bookmarks file is unreadable. Did you forget to set an encryption passphrase?') this.code = 34 Object.setPrototypeOf(this, FileUnreadableError.prototype) } From 23abac6fab856d3e1931b4d74db4d35c5857f27e Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 25 May 2023 15:16:27 +0200 Subject: [PATCH 009/149] chore(ci/issues): Update first issue reponse --- .github/workflows/issues.yml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index ee1eae3d67..09dba50eff 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -3,8 +3,7 @@ name: New issue workflow on: issues: types: [opened] - pull_request: - types: [opened] + env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -28,17 +27,23 @@ jobs: message: | Hello :wave: - Thank you for taking the time to open this issue with floccus. - I know it's frustrating when software causes problems. - You have made the right choice to come here and open an issue to make sure your problem gets looked at - and if possible solved, either in the code or on your computer. + Thank you for taking the time to open this issue with floccus. I know it's frustrating when software + causes problems. You have made the right choice to come here and open an issue to make sure your problem gets looked at + and if possible solved. I'm Marcel and I created floccus and have been maintaining it ever since. I currently work for Nextcloud which leaves me with less time for side projects like this one than I used to have. - I still try to answer all issues here, but it sometimes takes a few weeks or a month until I get to it. - Until then, please be patient. If you can you could also look at other issues to see whether you can help - other people with your knowledge and experience or whether others are have faced the same problem. + I still try to answer all issues and if possible fix all bugs here, but it sometimes takes a while until I get to it. + Until then, please be patient. + Note that GitHub is a place where people meet to make software better. Please see your issue not as a request + for someone else to solve your problems, but as a way to collaborate to make this software better for everyone. + Thus, ff you can, you could also look at other issues to see whether you can help other people with your knowledge + and experience. If you have coding experience it would also be awesome if you could step up to dive into the code and + try to fix the odd bug yourself. Everyone will be thankful for extra helping hands! + One last word: If you feel, at any point, like you need to vent, this is not the place for it; you can go to the forum, + to twitter or somewhere else. But this is a technical issue tracker, so please make sure to + focus on the tech and keep your opinions to yourself. - I look forward to help you on this issue + I look forward to working with you on this issue Cheers :blue_heart: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From ded6aa36ae8fbe3d9f9391c9acb90bc78138803a Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 25 May 2023 15:23:20 +0200 Subject: [PATCH 010/149] chore(ci/issues): Update first issue reponse --- .github/workflows/issues.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 09dba50eff..4f8f2cfa32 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -35,9 +35,10 @@ jobs: than I used to have. I still try to answer all issues and if possible fix all bugs here, but it sometimes takes a while until I get to it. Until then, please be patient. - Note that GitHub is a place where people meet to make software better. Please see your issue not as a request - for someone else to solve your problems, but as a way to collaborate to make this software better for everyone. - Thus, ff you can, you could also look at other issues to see whether you can help other people with your knowledge + Note also that GitHub is a place where people meet to make software better *together*. Nobody here is under any obligation + to help you, solve your problems or deliver on any expectations or demands you may have, but if enough people come together we can + collaborate to make this software better. For everyone. + Thus, if you can, you could also have a look at other issues to see whether you can help other people with your knowledge and experience. If you have coding experience it would also be awesome if you could step up to dive into the code and try to fix the odd bug yourself. Everyone will be thankful for extra helping hands! One last word: If you feel, at any point, like you need to vent, this is not the place for it; you can go to the forum, From ae6b1fd14859fbff2c779e18a8b766080cfbea8c Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 04:37:22 +0000 Subject: [PATCH 011/149] Translate _locales/en/messages.json in pt_BR 100% translated for the source file '_locales/en/messages.json' on the 'pt_BR' language. --- _locales/pt_BR/messages.json | 663 +++++++++++++++++++++++++++++++++++ 1 file changed, 663 insertions(+) create mode 100644 _locales/pt_BR/messages.json diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json new file mode 100644 index 0000000000..b3963d9245 --- /dev/null +++ b/_locales/pt_BR/messages.json @@ -0,0 +1,663 @@ +{ + "Error001": { + "message": "E001: A pasta à ser criada não existe" + }, + "Error002": { + "message": "E002: O favorito à ser atualizado não existe" + }, + "Error003": { + "message": "E003: A pasta a ser removida não existe. Isso é uma anomalia. Parabéns." + }, + "Error004": { + "message": "E004: A pasta destino não existe" + }, + "Error005": { + "message": "E005: A pasta à ser criada não existe" + }, + "Error006": { + "message": "E006: A pasta à atualizar não existe" + }, + "Error007": { + "message": "E007: A pasta à mover não existe" + }, + "Error008": { + "message": "E008: A pasta de onde mover não existe" + }, + "Error009": { + "message": "E009: A pasta para onde mover não existe" + }, + "Error010": { + "message": "E010: Não foi possível encontrar uma pasta para ordenar" + }, + "Error011": { + "message": "E011: O item na ordem das pastas não é um filho: {0}" + }, + "Error012": { + "message": "E012: A ordenação de pastas está a faltar em alguns dos filhos da pasta" + }, + "Error013": { + "message": "E013: A pasta à remover não existe" + }, + "Error014": { + "message": "E014: A pasta pai para remover a pasta especificada não existe." + }, + "Error015": { + "message": "E015: Dados de resposta inesperados do servidor" + }, + "Error016": { + "message": "E016: Tempo limite para o pedido excedido. Verifique a configuração do seu servidor." + }, + "Error017": { + "message": "E017: Erro de Rede: Verifique sua conexão de rede e os detalhes da sua conta" + }, + "Error018": { + "message": "E018: Não foi possível se autenticar com o servidor" + }, + "Error019": { + "message": "E019: Status HTTP {0}. Pedido {1} falhou. Verifique a configuração e o registo de erros do seu servidor." + }, + "Error020": { + "message": "E020: Não foi possível processar a resposta do servidor. O app dos favoritos está instalado aí?" + }, + "Error021": { + "message": "E021: O estado do servidor é inconsistente. A pasta está presente na lista de ordem filha, mas não na estrutura de pastas." + }, + "Error022": { + "message": "E022: A pasta {0} contém supostamente favorito não existente {1}." + }, + "Error023": { + "message": "E023: Impossível remover o ficheiro de segurança, considere a deletar {0} manualmente." + }, + "Error024": { + "message": "E024: Estado HTTP {0} ao tentar determinar o estado do arquivo de segurança {1}." + }, + "Error025": { + "message": "E025: Arquivos de configuração de marcadores não devem começar com uma barra: '/'" + }, + "Error026": { + "message": "E026: Estado HTTP {0}. Erro ao obter favoritos." + }, + "Error027": { + "message": "E027: Processo de sincronização foi interrompido" + }, + "Error028": { + "message": "E028: Não foi possível se autenticar com o servidor" + }, + "Error029": { + "message": "E029: Segurança: A execução da sincronização atual removeria {0}% dos seus favoritos. Recusando-se a executar. Desabilite esta proteção à prova de falhas nas configurações da conta se você quiser prosseguir mesmo assim." + }, + "Error030": { + "message": "E030: Falha ao descriptografar o arquivo de favoritos. A senha pode estar errada ou o arquivo pode estar corrompido." + }, + "Error031": { + "message": "E031: Não foi possível autenticar com o Google Drive. Por favor, conecte o floccus com sua conta do Google novamente." + }, + "Error032": { + "message": "E032: Erro OAuth. Erro de validação de token. Reconecte sua Conta do Google." + }, + "Error033": { + "message": "E033: Redirecionamento detectado. Certifique-se de que o servidor oferece suporte ao método de sincronização selecionado e que o URL inserido está correto e não redireciona para um local diferente. Se o redirecionamento fizer parte da sua configuração, você pode desativar essa verificação nas configurações." + }, + "Error034": { + "message": "E034: O arquivo de favoritos remotos está ilegível. Você esqueceu de definir uma senha de criptografia?" + }, + "Error035": { + "message": "E035: Falha ao criar o seguinte favorito no servidor: {0}" + }, + "LabelWebdavurl": { + "message": "WebDAV URL" + }, + "DescriptionWebdavurl": { + "message": "por exemplo. com nextcloud: https://example.com/remote.php/webdav/" + }, + "LabelNextcloudurl": { + "message": "Nextcloud URL" + }, + "LabelUsername": { + "message": "Usuário" + }, + "LabelPassword": { + "message": "Senha" + }, + "LabelBookmarksfile": { + "message": "Caminho do arquivo de favoritos" + }, + "DescriptionBookmarksfile": { + "message": "um caminho para o arquivo de favoritos relativo ao URL do WebDAV (todas as pastas no caminho já devem existir). por exemplo. coisas_pessoais/favoritos.xbel" + }, + "DescriptionBookmarksfilegoogle": { + "message": "o nome do arquivo de favoritos que residirá em seu Google Drive (certifique-se de que esse nome seja exclusivo em seu Drive)" + }, + "LabelServerfolder": { + "message": "Pasta do servidor" + }, + "DescriptionServerfolder": { + "message": "Este é o prefixo do caminho sob o qual esta conta irá operar no servidor. Deixe em branco para não usar nenhum prefixo." + }, + "LabelLocalfolder": { + "message": "Pasta local" + }, + "DescriptionLocalfolder": { + "message": "Esta é a pasta de favoritos local neste navegador que será sincronizada com o servidor. Observe que alguns navegadores não permitem a criação de novos itens na pasta raiz (por exemplo, Firefox e Google Chrome)" + }, + "LabelRootfolder": { + "message": "Pasta raiz" + }, + "LabelNewfolder": { + "message": "Pasta recém criada" + }, + "LabelOptions": { + "message": "Opções" + }, + "LabelSyncnow": { + "message": "Sincronizar agora" + }, + "LabelCancelsync": { + "message": "Cancelar sincronização" + }, + "LabelAutosync": { + "message": "Sincronização Automática" + }, + "StatusLastsynced": { + "message": "Útima sincronização há: {0}" + }, + "StatusNeversynced": { + "message": "Ainda não sincronizado" + }, + "StatusAllgood": { + "message": "Tudo certo" + }, + "StatusDisabled": { + "message": "Desabilitado" + }, + "StatusError": { + "message": "Erro" + }, + "StatusSyncing": { + "message": "Sincronizando" + }, + "LabelReset": { + "message": "Redefinir" + }, + "DescriptionReset": { + "message": "Redefinir pasta sincronizada para criar uma nova" + }, + "LabelChoosefolder": { + "message": "Escolha uma pasta" + }, + "DescriptionChoosefolder": { + "message": "Defina uma pasta existente para sincronizar" + }, + "LabelRemoveaccount": { + "message": "Remover conta" + }, + "DescriptionRemoveaccount": { + "message": "Excluir esta conta (isso não removerá seus favoritos)" + }, + "LabelSyncfromscratch": { + "message": "Iniciar sincronização do zero" + }, + "LabelResetCache": { + "message": "Redefinir cache" + }, + "DescriptionResetcache": { + "message": "Marque esta caixa para redefinir o cache para garantir que a próxima execução de sincronização não exclua nenhum dado e apenas mescla o servidor e os marcadores locais." + }, + "LabelParallelsync": { + "message": "Acelere a sincronização" + }, + "DescriptionParallelsync": { + "message": "Marque esta caixa para processar várias pastas em paralelo para acelerar a sincronização. Esse recurso é experimental e dificulta a leitura dos logs de depuração." + }, + "LabelStrategy": { + "message": "Estratégia de sincronização" + }, + "DescriptionStrategy": { + "message": "Esta opção determina como sincronizar os favoritos em diferentes dispositivos. Normalmente, você desejará manter as alterações de todos os lados se forem compatíveis, mas às vezes você pode querer sobrescrever as alterações (incluindo adições e exclusões) de outros navegadores ou sobrescrever as alterações feitas localmente." + }, + "LabelStrategydefault": { + "message": "Sempre mescle alterações locais com alterações de outros navegadores (recomendado)" + }, + "LabelStrategyslave": { + "message": "Sempre desfaça as alterações locais e baixe as alterações de outros navegadores" + }, + "LabelStrategyoverwrite": { + "message": "Sempre carregue alterações locais e desfaça alterações de outros navegadores" + }, + "LabelSave": { + "message": "Salvar" + }, + "LabelCancel": { + "message": "Cancelar" + }, + "LabelAdd": { + "message": "Adicionar" + }, + "LabelChange": { + "message": "Mudar" + }, + "LabelRemove": { + "message": "Remover" + }, + "LabelBack": { + "message": "Voltar" + }, + "LabelAdapternextcloudfolders": { + "message": "Nextcloud Bookmarks" + }, + "DescriptionAdapternextcloudfolders": { + "message": "A opção 'Nextcloud Bookmarks' sincroniza seus favoritos com o aplicativo de Favoritos para Nextcloud. Ele só pode sincronizar marcadores http e ftp. Certifique-se de ter instalado o aplicativo Bookmarks da loja de aplicativos Nextcloud em seu Nextcloud." + }, + "LabelAdapternextcloud": { + "message": "Favoritos do Nextcloud (legado)" + }, + "DescriptionAdapternextcloud": { + "message": "A opção legacy é compatível com pelo menos a versão v0.11 da aplicação de marcadores. Irá emular pastas usando tags contento o caminho da pasta. Não é recomendável utilizar esta opção com novas contas." + }, + "LabelAdapterwebdav": { + "message": "Compartilhamento WebDAV" + }, + "DescriptionAdapterwebdav": { + "message": "A opção WebDAV sincroniza seus favoritos armazenando-os em um arquivo no compartilhamento WebDAV fornecido. Não há interface de usuário da web acompanhante para esta opção e você pode usá-la com qualquer servidor compatível com WebDAV. Ele pode sincronizar marcadores http, ftp, dados, arquivos e javascript." + }, + "LabelAddaccount": { + "message": "Adicionar conta" + }, + "LabelSecurecredentials": { + "message": "Proteja suas credenciais" + }, + "LabelSecuredcredentials": { + "message": "Suas credenciais estão seguras" + }, + "LabelOpenintab": { + "message": "Abrir na guia" + }, + "LabelDebuglogs": { + "message": "Logs de depuração" + }, + "LabelFunddevelopment": { + "message": "Apoiar o desenvolvimento" + }, + "DescriptionFunddevelopment": { + "message": "O trabalho no floco é mantido por um modelo de assinatura voluntária. Se você acha que o que eu faço vale a pena, e se você puder gastar algumas moedinhas por mês que não faça falta, por favor, apoie meu trabalho. Além disso, considere dar uma avaliação ao floccus na loja de addons de sua escolha. Obrigado! 💙" + }, + "LabelSelect": { + "message": "Selecionar" + }, + "LabelUntitledfolder": { + "message": "Pasta sem título" + }, + "LabelSetkey": { + "message": "Definir uma senha para o floccus" + }, + "DescriptionSetkey": { + "message": "Ao definir uma senha, você terá que inseri-la sempre que iniciar o navegador, se quiser acessar e sincronizar seus favoritos, alterar suas configurações ou fazer qualquer outra coisa com floccus." + }, + "LabelSetkeybutton": { + "message": "Definir senha" + }, + "LabelKey": { + "message": "Digite sua senha de desbloqueio" + }, + "LabelKey2": { + "message": "Digite sua senha mais uma vez" + }, + "LabelUnlock": { + "message": "Desbloquear o floccus" + }, + "LabelRemovekey": { + "message": "Remover senha" + }, + "LabelRemovedkey": { + "message": "Senha removida" + }, + "LabelSyncinterval": { + "message": "Intervalo de sincronização" + }, + "DescriptionSyncinterval": { + "message": "O intervalo de tempo entre duas sincronizações é executado em minutos. O padrão é 15 minutos." + }, + "LabelChooseadapter": { + "message": "Como você deseja sincronizar?" + }, + "LabelOptionsscreen": { + "message": "{0} opções", + "description": "Title of the options screen. The placeholder holds the account type." + }, + "LabelPaypal": { + "message": "Paypal" + }, + "DescriptionPaypal": { + "message": "Faça uma doação única via Paypal para apoiar o projeto" + }, + "LabelOpencollective": { + "message": "OpenCollective" + }, + "DescriptionOpencollective": { + "message": "Faça uma doação regular via OpenCollective para apoiar o projeto" + }, + "LabelLiberapay": { + "message": "Liberapay" + }, + "DescriptionLiberapay": { + "message": "Faça uma doação regular via Liberapay para apoiar o projeto" + }, + "LabelGithubsponsors": { + "message": "Patrocinadores do GitHub" + }, + "DescriptionGithubsponsors": { + "message": "Faça uma doação regular via Patrocinadores do GitHub para apoiar o projeto" + }, + "LegacyAdapterDeprecation": { + "message": "Este tipo de conta legada foi descontinuada e será removida em breve. Altere para o novo método de sincronização do Nextcloud. Desempenho melhorado e precisão esperam por você." + }, + "LabelUpdated": { + "message": "Floccus foi atualizado" + }, + "DescriptionUpdated": { + "message": "Parabéns, a atualização mais recente do floccus chegou à sua máquina!" + }, + "LabelReleaseNotes": { + "message": "Leia as notas de versão" + }, + "LabelOptionsServerDetails": { + "message": "Detalhes do servidor" + }, + "LabelOptionsFolderMapping": { + "message": "Mapeamento de pasta" + }, + "LabelOptionsSyncBehavior": { + "message": "Comportamento de sincronização" + }, + "LabelOptionsDangerous": { + "message": "Ações perigosas" + }, + "LabelAccountDeleted": { + "message": "Conta excluída" + }, + "DescriptionAccountDeleted": { + "message": "Esta conta foi excluída" + }, + "LabelNoAccount": { + "message": "Nenhuma conta aqui" + }, + "DescriptionNoAccount": { + "message": "Crie uma nova conta para sincronizar seus favoritos ou importar contas de um dispositivo ou navegador diferente." + }, + "LabelLoginFlowStart": { + "message": "Entrar com Nextcloud" + }, + "LabelLoginFlowStop": { + "message": "Abortar o login do Nextcloud" + }, + "LabelLoginFlowError": { + "message": "Falha no login do Nextcloud" + }, + "LabelNewAccount": { + "message": "Nova Conta" + }, + "LabelNestedSync": { + "message": "Contas agrupadas" + }, + "DescriptionNestedSync": { + "message": "Você pode aninhar contas para que uma pasta principal pertença à conta A e uma subpasta às contas A e B. Deseja permitir que outras contas também sincronizem a pasta desta conta?" + }, + "LabelNestedSyncNo": { + "message": "Não, ignore a pasta desta conta em outras contas" + }, + "LabelNestedSyncYes": { + "message": "Sim, inclua a pasta desta conta em outras contas" + }, + "LabelImportExport": { + "message": "Importar/Exportar Contas" + }, + "LabelExport": { + "message": "Exportar contas" + }, + "LabelImport": { + "message": "Importar contas" + }, + "DescriptionExport": { + "message": "Selecione as contas abaixo que você gostaria de exportar para um arquivo, para poder recriar facilmente as mesmas contas em um dispositivo ou navegador diferente." + }, + "DescriptionImport": { + "message": "Importe um arquivo com contas exportadas aqui para recriar contas exportadas em um dispositivo ou navegador diferente. Certifique-se de definir as pastas de sincronização corretas novamente após a importação." + }, + "LabelFolderNotFound": { + "message": "Pasta não encontrada" + }, + "LabelSyncTabs": { + "message": "Sincronizar Abas" + }, + "LabelTabs": { + "message": "Abas" + }, + "LabelSyncDown": { + "message": "Puxar para baixo" + }, + "DescriptionSyncDown": { + "message": "Baixe as alterações de outros navegadores & substitua as alterações locais" + }, + "LabelSyncUp": { + "message": "Empurrar para cima" + }, + "DescriptionSyncUp": { + "message": "Envie as alterações locais & substitua alterações de outros navegadores" + }, + "LabelSyncDownOnce": { + "message": "Puxar para baixo uma vez" + }, + "LabelSyncUpOnce": { + "message": "Empurrar para cima uma vez" + }, + "LabelSyncNormal": { + "message": "Mesclar" + }, + "DescriptionSyncNormal": { + "message": "Mesclar alterações locais com alterações de outros navegadores" + }, + "DescriptionFilesPermission": { + "message": "Certifique-se de dar permissão ao floccus para não apenas usar o aplicativo de favoritos, mas também o aplicativo de arquivos NextCloud." + }, + "DescriptionExtension": { + "message": "Sincronize seus favoritos de forma privada entre navegadores e dispositivos" + }, + "LabelFailsafe": { + "message": "Failsafe" + }, + "DescriptionFailsafe": { + "message": "Algumas vezes erros de configuração ou software podem causar uma remoção de dados inesperada, que são então perdidos. Para prevenir isso de acontecer, o floccus não vai deletar mais de 50% dos seus marcadores de uma vez a não ser que você desative esse failsafe aqui." + }, + "LabelFailsafeon": { + "message": "Ativado. Não delete mais de 50% dos meus marcadores locais sem antes me perguntar. (Recomendado)" + }, + "LabelFailsafeoff": { + "message": "Desativado. Permite remover mais de 50% dos meus marcadores locais sem minha confirmação." + }, + "StatusFailsafeoff": { + "message": "Failsafe desativado. Você corre risco de perda de dados inesperada. É recomendado ativar o failsafe nas configurações de conta." + }, + "LabelAdaptergoogledrive": { + "message": "Google Drive" + }, + "DescriptionAdaptergoogledrive": { + "message": "Sincronize favoritos por meio de um arquivo criptografado armazenado em seu Google Drive. Ele pode sincronizar favoritos http, ftp, dados, arquivos e javascript." + }, + "LabelLogingoogle": { + "message": "Entrar com o Google" + }, + "DescriptionLogingoogle": { + "message": "Conecte sua conta do Google para armazenar o arquivo de sincronização de favoritos em seu Google Drive." + }, + "DescriptionLoggedingoogle": { + "message": "Você conectou sua conta do Google para armazenar o arquivo de sincronização de favoritos em seu Google Drive." + }, + "LabelPassphrase": { + "message": "Senha" + }, + "DescriptionPassphrase": { + "message": "Defina uma senha para criptografar seu arquivo de favoritos. Se você não definir nenhuma senha, nenhuma criptografia será feita." + }, + "LabelClientcert": { + "message": "Enviar credenciais do cliente" + }, + "DescriptionClientcert": { + "message": "Habilite esta opção se seu servidor exigir um certificado de cliente ou cookies para autenticação. Isso pode causar efeitos colaterais indesejados, pois o floccus compartilhará cookies com o perfil normal do seu navegador." + }, + "LabelAllowredirects": { + "message": "Permitir redirecionamentos na URL do servidor" + }, + "DescriptionAllowredirects": { + "message": "Habilite esta opção, se você receber erros de redirecionamento durante a sincronização, que você acredita serem injustificados." + }, + "LabelSearch": { + "message": "Pesquisar favoritos" + }, + "LabelSearchfolder": { + "message": "Pesquisar {0}" + }, + "LabelEdititem": { + "message": "Editar" + }, + "LabelDeleteitem": { + "message": "Remover" + }, + "LabelNobookmarks": { + "message": "Nenhum favorito aqui" + }, + "LabelAddbookmark": { + "message": "Adicionar favorito" + }, + "LabelEditbookmark": { + "message": "Editar favorito" + }, + "LabelAddfolder": { + "message": "Adicionar pasta" + }, + "LabelEditfolder": { + "message": "Editar pasta" + }, + "LabelSlugline": { + "message": "Sincronização privada de favoritos" + }, + "LabelDownloadlogs": { + "message": "Baixar logs" + }, + "LabelDownloadfulllogs": { + "message": "Logs completos" + }, + "LabelDownloadanonymizedlogs": { + "message": "Logs editados" + }, + "DescriptionDownloadlogs": { + "message": "O Floccus registra todas as suas ações em um arquivo de log que você mesmo pode examinar ou enviar aos desenvolvedores para fins de depuração. Em logs redigidos, nomes de pastas e favoritos, bem como URLs, são codificados de forma irreversível usando uma função hash criptográfica. Ao enviar logs redigidos, certifique-se de verificar o arquivo baixado em busca de dados confidenciais que podem não ter sido capturados pelo processo de anonimização." + }, + "ErrorFolderloopselected": { + "message": "Não é possível mover uma pasta para dentro dela mesma" + }, + "ErrorNofolderselected": { + "message": "Nenhuma pasta selecionada" + }, + "LabelAllownetwork": { + "message": "Permitir uso da rede" + }, + "DescriptionAllownetwork": { + "message": "O Flockus pode usar a rede além de se conectar ao seu servidor de sincronização para obter informações adicionais sobre seus favoritos (como ícones, etc.). Aqui você pode ativar esse uso da rede." + }, + "LabelMobilesettings": { + "message": "Configurações para celular" + }, + "LabelContinuefloccus":{ + "message": "Continuar no floccus" + }, + "LabelAbout":{ + "message": "Sobre" + }, + "LabelCurrentversion": { + "message": "Versão atual" + }, + "DescriptionCurrentversion": { + "message": "Sua versão atualmente instalada do floccus é:" + }, + "LabelContributors": { + "message": "Contribuidores" + }, + "DescriptionContributors": { + "message": "Estas pessoas ajudaram a fazer o floccus possível" + }, + "LabelSortcustom": { + "message": "Personalizado" + }, + "LabelSorturl": { + "message": "Link" + }, + "LabelSorttitle": { + "message": "Título" + }, + "LabelSyncmethod": { + "message": "Método de sincronização" + }, + "LabelSyncserver": { + "message": "Servidor de sincronização" + }, + "LabelSyncfolders": { + "message": "Pastas de sincronização" + }, + "LabelSyncbehavior": { + "message": "Comportamento de sincronização" + }, + "LabelContinue": { + "message": "Continuar" + }, + "LabelDone": { + "message": "Feito" + }, + "LabelConnect": { + "message": "Conectar" + }, + "LabelServersetup": { + "message": "Com qual servidor você deseja sincronizar?" + }, + "LabelGoogledrivesetup": { + "message": "Entrar com Google Drive" + }, + "LabelSyncfoldersetup": { + "message": "Quais pastas deseja sincronizar?" + }, + "LabelSyncbehaviorsetup": { + "message": "Como quer que a sincronização funcione?" + }, + "LabelAccountcreated": { + "message": "Conta criada" + }, + "DescriptionNonhttps": { + "message": "Você entrou em um servidor que usa um protocolo inseguro. Recomenda-se usar apenas servidores com suporte para HTTPS." + }, + "LabelFiletype": { + "message": "Formato de arquivo" + }, + "DescriptionFiletype": { + "message": "Você pode escolher qual formato de arquivo deseja usar para armazenar favoritos na nuvem." + }, + "LabelFiletypehtml": { + "message": "HTML, um formato aberto amplamente suportado (experimental)" + }, + "LabelFiletypexbel": { + "message": "XBEL, um formato simples e aberto" + }, + "LabelImportbookmarks": { + "message": "Importar favoritos" + }, + "DescriptionImportbookmarks": { + "message": "Importar um arquivo HTML contendo favoritos para a pasta atual" + }, + "LabelExportBookmarks": { + "message": "Exportar Favoritos" + }, + "DescriptionExportBookmarks" : { + "message": "Você pode exportar todos os favoritos nesta conta como um arquivo HTML compatível com todos os principais navegadores." + }, + "LabelShareitem": { + "message": "Compartilhar" + } +} From 0c464e1c643b2d04d6f4accf8815df5cd75b5fa8 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 04:40:54 +0000 Subject: [PATCH 012/149] Translate _locales/en/messages.json in pt_BR 100% translated for the source file '_locales/en/messages.json' on the 'pt_BR' language. --- _locales/pt_BR/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index b3963d9245..9546d5b61e 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -84,7 +84,7 @@ "message": "E028: Não foi possível se autenticar com o servidor" }, "Error029": { - "message": "E029: Segurança: A execução da sincronização atual removeria {0}% dos seus favoritos. Recusando-se a executar. Desabilite esta proteção à prova de falhas nas configurações da conta se você quiser prosseguir mesmo assim." + "message": "E029: Mecanismo de proteção: A execução da sincronização atual removeria {0}% dos seus favoritos. Recusando-se a executar. Desabilite esta proteção à prova de falhas nas configurações da conta se você quiser prosseguir mesmo assim." }, "Error030": { "message": "E030: Falha ao descriptografar o arquivo de favoritos. A senha pode estar errada ou o arquivo pode estar corrompido." @@ -463,7 +463,7 @@ "message": "Sincronize seus favoritos de forma privada entre navegadores e dispositivos" }, "LabelFailsafe": { - "message": "Failsafe" + "message": "Mecanismo de proteção" }, "DescriptionFailsafe": { "message": "Algumas vezes erros de configuração ou software podem causar uma remoção de dados inesperada, que são então perdidos. Para prevenir isso de acontecer, o floccus não vai deletar mais de 50% dos seus marcadores de uma vez a não ser que você desative esse failsafe aqui." From 1ee1a869ae9c50f961d38a5b8ed8b7557b7a0ded Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 04:41:11 +0000 Subject: [PATCH 013/149] Translate _locales/en/messages.json in pt_BR 100% translated for the source file '_locales/en/messages.json' on the 'pt_BR' language. --- _locales/pt_BR/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 9546d5b61e..3bce14c6cc 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -466,7 +466,7 @@ "message": "Mecanismo de proteção" }, "DescriptionFailsafe": { - "message": "Algumas vezes erros de configuração ou software podem causar uma remoção de dados inesperada, que são então perdidos. Para prevenir isso de acontecer, o floccus não vai deletar mais de 50% dos seus marcadores de uma vez a não ser que você desative esse failsafe aqui." + "message": "Algumas vezes erros de configuração ou software podem causar uma remoção de dados inesperada, que são então perdidos. Para prevenir isso de acontecer, o floccus não vai deletar mais de 50% dos seus marcadores de uma vez a não ser que você desative esse mecanismo de proteção aqui." }, "LabelFailsafeon": { "message": "Ativado. Não delete mais de 50% dos meus marcadores locais sem antes me perguntar. (Recomendado)" From c785225bf8680e897c597252216a3e85b66ec89c Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 04:41:19 +0000 Subject: [PATCH 014/149] Translate _locales/en/messages.json in pt_BR 100% translated for the source file '_locales/en/messages.json' on the 'pt_BR' language. --- _locales/pt_BR/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 3bce14c6cc..6404d76f4e 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -475,7 +475,7 @@ "message": "Desativado. Permite remover mais de 50% dos meus marcadores locais sem minha confirmação." }, "StatusFailsafeoff": { - "message": "Failsafe desativado. Você corre risco de perda de dados inesperada. É recomendado ativar o failsafe nas configurações de conta." + "message": "Failsafe desativado. Você corre risco de perda de dados inesperada. É recomendado ativar o mecanismo de proteção nas configurações de conta." }, "LabelAdaptergoogledrive": { "message": "Google Drive" From 8538e403e4db91b46e411d364bd05fc88fa4eb01 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 30 May 2023 15:03:34 +0200 Subject: [PATCH 015/149] First pass migrating to manifest v3 --- html/background.html | 11 --- lib/chrome-promise.js | 83 --------------------- manifest.json | 19 +++-- package-lock.json | 27 +++---- package.json | 14 +++- src/entries/background-script.js | 8 +- src/entries/options.js | 1 - src/lib/Account.ts | 7 +- src/lib/Controller.ts | 106 ++++++++++++++++++++++++--- src/lib/Logger.js | 8 +- src/lib/adapters/GoogleDrive.ts | 6 +- src/lib/adapters/WebDav.ts | 8 +- src/lib/browser-api.js | 61 ++++++++++++++- src/lib/browser/BrowserAccount.ts | 16 ++-- src/lib/browser/BrowserController.js | 34 +++++---- src/lib/browser/BrowserTree.ts | 6 +- src/lib/interfaces/Controller.ts | 8 +- src/lib/native/NativeAccount.ts | 6 +- src/lib/native/NativeController.js | 34 +++++---- src/lib/serializers/Xbel.ts | 2 +- src/lib/strategies/Default.ts | 2 +- src/ui/plugins/capacitor.js | 9 +-- src/ui/store/actions.js | 6 +- 23 files changed, 275 insertions(+), 207 deletions(-) delete mode 100644 html/background.html delete mode 100644 lib/chrome-promise.js diff --git a/html/background.html b/html/background.html deleted file mode 100644 index 0103f05640..0000000000 --- a/html/background.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Floccus - - - - - - diff --git a/lib/chrome-promise.js b/lib/chrome-promise.js deleted file mode 100644 index ab445ccc85..0000000000 --- a/lib/chrome-promise.js +++ /dev/null @@ -1,83 +0,0 @@ -/*! - * chrome-promise 1.0.7 - * https://github.com/tfoxy/chrome-promise - * - * Copyright 2015 Tomás Fox - * Released under the MIT license - */ - -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define([], factory.bind(null, typeof exports === 'object' ? this : root)); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(this); - } else { - // Browser globals (root is window) - root.ChromePromise = factory(root); - } -}(this, function(root) { - 'use strict'; - var push = Array.prototype.push, - hasOwnProperty = Object.prototype.hasOwnProperty; - - return ChromePromise; - - //////////////// - - function ChromePromise(chrome, Promise) { - chrome = chrome || root.chrome; - Promise = Promise || root.Promise; - - var runtime = chrome.runtime; - - fillProperties(chrome, this); - - //////////////// - - function setPromiseFunction(fn, thisArg) { - - return function() { - var args = arguments; - - return new Promise(function(resolve, reject) { - function callback() { - var err = runtime.lastError; - if (err) { - reject(err); - } else { - resolve.apply(null, arguments); - } - } - - push.call(args, callback); - - fn.apply(thisArg, args); - }); - - }; - - } - - function fillProperties(source, target) { - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - var val = source[key]; - var type = typeof val; - - if (type === 'object' && !(val instanceof ChromePromise) && key.indexOf('on') != 0) { - target[key] = {}; - fillProperties(val, target[key]); - } else if (type === 'function') { - target[key] = setPromiseFunction(val, source); - } else { - target[key] = val; - } - } - } - } - } -})); diff --git a/manifest.json b/manifest.json index bcaecc165d..3bf67dfafc 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,5 @@ { - "manifest_version": 2, + "manifest_version": 3, "name": "floccus bookmarks sync", "short_name": "floccus", "version": "4.19.1", @@ -19,18 +19,21 @@ "default_locale": "en", - "permissions": ["https://*/", "http://*/", "alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"], - "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';", + "permissions": ["alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"], + "host_permissions": [ + "*://*/*" + ], + "content_security_policy": { + "extension_pages": "script-src 'self'; object-src 'self';" + }, "options_ui": { "page": "dist/html/options.html", - "browser_style": false, - "chrome_style": false + "browser_style": false }, - "browser_action": { + "action": { "browser_style": false, - "chrome_style": false, "default_icon": { "48": "icons/logo.png" }, @@ -39,6 +42,6 @@ }, "background": { - "page": "dist/html/background.html" + "service_worker": "dist/js/background-script.js" } } diff --git a/package-lock.json b/package-lock.json index c8227bca41..cfe8e5ac62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,6 @@ "intl-messageformat": "^9.9.1", "js-base64": "^3.7.5", "lodash": "^4.17.20", - "onwakeup": "^0.0.2", "p-queue": "^5.0.0", "punycode": "^2.1.1", "random": "^2.2.0", @@ -4498,9 +4497,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==", + "version": "1.0.30001491", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", + "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", "dev": true, "funding": [ { @@ -4510,6 +4509,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -11269,11 +11272,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/onwakeup": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/onwakeup/-/onwakeup-0.0.2.tgz", - "integrity": "sha512-CNRpi/d+0Q9Ep+gn5L8eRLhKj9itLWnPk3cmYMz9SYlgUSB7HffRr0VkYuvPpCQ0tgFLVLFqlhbLvNao+Yqb4g==" - }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", @@ -19662,9 +19660,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==", + "version": "1.0.30001491", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", + "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", "dev": true }, "caseless": { @@ -24885,11 +24883,6 @@ "mimic-fn": "^4.0.0" } }, - "onwakeup": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/onwakeup/-/onwakeup-0.0.2.tgz", - "integrity": "sha512-CNRpi/d+0Q9Ep+gn5L8eRLhKj9itLWnPk3cmYMz9SYlgUSB7HffRr0VkYuvPpCQ0tgFLVLFqlhbLvNao+Yqb4g==" - }, "open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", diff --git a/package.json b/package.json index fa7232a5ae..392f0327bd 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "intl-messageformat": "^9.9.1", "js-base64": "^3.7.5", "lodash": "^4.17.20", - "onwakeup": "^0.0.2", "p-queue": "^5.0.0", "punycode": "^2.1.1", "random": "^2.2.0", @@ -111,6 +110,17 @@ "> 0.25%", "last 2 versions and supports es6-generators", "Firefox ESR", - "not dead" + "not dead", + "not bb >= 0", + "not and_chr >= 0", + "not and_ff >= 0", + "not and_qq >= 0", + "not and_uc >= 0", + "not ie_mob >= 0", + "not op_mini all", + "not op_mob >= 0", + "not Safari >= 0", + "not KaiOS >= 0", + "not Samsung >= 0" ] } diff --git a/src/entries/background-script.js b/src/entries/background-script.js index 44ee8b19be..0404bb0583 100644 --- a/src/entries/background-script.js +++ b/src/entries/background-script.js @@ -1,8 +1,4 @@ import BrowserController from '../lib/browser/BrowserController' -window.controller = new BrowserController() - -const onload = () => { - window.controller.onLoad() -} -window.addEventListener('load', onload) +const controller = new BrowserController() +controller.onLoad() diff --git a/src/entries/options.js b/src/entries/options.js index dbc22880e1..f2305926c9 100644 --- a/src/entries/options.js +++ b/src/entries/options.js @@ -1,3 +1,2 @@ import app from '../ui' - app() diff --git a/src/lib/Account.ts b/src/lib/Account.ts index 53ed2b5119..7aa33c3a10 100644 --- a/src/lib/Account.ts +++ b/src/lib/Account.ts @@ -8,7 +8,7 @@ import IAccountStorage, { IAccountData, TAccountStrategy } from './interfaces/Ac import { TAdapter } from './interfaces/Adapter' import { IResource, TLocalTree } from './interfaces/Resource' import Controller from './Controller' -import { Device } from '@capacitor/device' +import { Capacitor } from '@capacitor/core' import IAccount from './interfaces/Account' import Mappings from './Mappings' @@ -24,7 +24,7 @@ export default class Account { static singleton : IAccount static async getAccountClass(): Promise { - if ((await Device.getInfo()).platform === 'web') { + if (Capacitor.getPlatform() === 'web') { this.singleton = (await import('./browser/BrowserAccount')).default } else { this.singleton = (await import('./native/NativeAccount')).default @@ -109,7 +109,8 @@ export default class Account { async setData(data:IAccountData):Promise { const controller = await Controller.getSingleton() - await this.storage.setAccountData(data, controller.key) + const key = await controller.getKey() + await this.storage.setAccountData(data, key) this.server.setData(data) } diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index b1681b65c0..d0b2fac64c 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -1,20 +1,106 @@ -import { Device } from '@capacitor/device' import IController from './interfaces/Controller' -export default class Controller { +export default class Controller implements IController { static singleton: IController static async getSingleton():Promise { if (!this.singleton) { - if ((await Device.getInfo()).platform === 'web') { - const browser = (await import('./browser-api')).default - const background = await browser.runtime.getBackgroundPage() - this.singleton = background.controller - } else { - const NativeController = await import('./native/NativeController') - this.singleton = NativeController.default.getSingleton() - } + this.singleton = new Controller } return this.singleton } + + cancelSync(accountId, keepEnabled): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'cancelSync', params: [accountId, keepEnabled]}) + }) + } + + onStatusChange(listener): () => void { + const eventListener = (event) => { + const {type} = event.data + if (type === 'onStatusChange') { + listener() + } + } + navigator.serviceWorker.addEventListener('message', eventListener) + return function() { + navigator.serviceWorker.removeEventListener('message', eventListener) + } + } + + scheduleSync(accountId, wait): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'scheduleSync', params: [accountId, wait]}) + }) + } + + setEnabled(enabled: boolean): void { + navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'setEnabled', params: [enabled]}) + }) + } + + setKey(key): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'setKey', params: [key]}) + }) + } + + syncAccount(accountId, strategy): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'setEnabled', params: [accountId, strategy]}) + }) + } + + unlock(key): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'unlock', params: [key]}) + }) + } + + unsetKey(): Promise { + return navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({type: 'unsetKey', params: []}) + }) + } + + getKey(): Promise { + return new Promise((resolve) => { + const eventListener = (event) => { + if (event.data.type === 'getKeyResponse') { + resolve(event.data.params[0]) + navigator.serviceWorker.removeEventListener('message', eventListener) + } + } + navigator.serviceWorker.addEventListener('message', eventListener) + navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({ type: 'getKey', params: [] }) + }) + }) + } + + getUnlocked(): Promise { + return new Promise((resolve) => { + const eventListener = (event) => { + if (event.data.type === 'getUnlockedResponse') { + resolve(event.data.params[0]) + navigator.serviceWorker.removeEventListener('message', eventListener) + } + } + navigator.serviceWorker.addEventListener('message', eventListener) + navigator.serviceWorker.ready.then((registration) => { + const worker = registration.active + worker.postMessage({ type: 'getUnlocked', params: [] }) + }) + }) + } } diff --git a/src/lib/Logger.js b/src/lib/Logger.js index 37617303ee..8fa7d80033 100644 --- a/src/lib/Logger.js +++ b/src/lib/Logger.js @@ -1,11 +1,11 @@ /* global DEBUG */ -import { Device } from '@capacitor/device' import util from 'util' import * as Parallel from 'async-parallel' import packageJson from '../../package.json' import Crypto from './Crypto' import { Share } from '@capacitor/share' import { Filesystem, Directory, Encoding } from '@capacitor/filesystem' +import { Capacitor } from '@capacitor/core' export default class Logger { static log() { @@ -17,7 +17,7 @@ export default class Logger { } static async persist() { - const Storage = ((await Device.getInfo()).platform === 'web') ? await import('./browser/BrowserAccountStorage') : await import('./native/NativeAccountStorage') + const Storage = (Capacitor.getPlatform() === 'web') ? await import('./browser/BrowserAccountStorage') : await import('./native/NativeAccountStorage') await Storage.default.changeEntry( 'logs', log => { @@ -30,7 +30,7 @@ export default class Logger { } static async getLogs() { - const Storage = ((await Device.getInfo()).platform === 'web') ? await import('./browser/BrowserAccountStorage') : await import('./native/NativeAccountStorage') + const Storage = (Capacitor.getPlatform() === 'web') ? await import('./browser/BrowserAccountStorage') : await import('./native/NativeAccountStorage') return Storage.default.getEntry('logs', []) } @@ -88,7 +88,7 @@ export default class Logger { } static async download(filename, blob) { - if ((await Device.getInfo()).platform === 'web') { + if (Capacitor.getPlatform() === 'web') { const element = document.createElement('a') let objectUrl = URL.createObjectURL(blob) diff --git a/src/lib/adapters/GoogleDrive.ts b/src/lib/adapters/GoogleDrive.ts index 3cc07e1c96..92243d378d 100644 --- a/src/lib/adapters/GoogleDrive.ts +++ b/src/lib/adapters/GoogleDrive.ts @@ -11,7 +11,7 @@ import { OAuthTokenError } from '../../errors/Error' import { OAuth2Client } from '@byteowls/capacitor-oauth2' -import { Device } from '@capacitor/device' +import { Capacitor } from '@capacitor/core' import { Http } from '@capacitor-community/http' const OAuthConfig = { @@ -58,7 +58,7 @@ export default class GoogleDriveAdapter extends CachingAdapter { } static async authorize(interactive = true) { - const { platform } = await Device.getInfo() + const platform = Capacitor.getPlatform() if (platform !== 'web') { const result = await OAuth2Client.authenticate(OAuthConfig) @@ -134,7 +134,7 @@ export default class GoogleDriveAdapter extends CachingAdapter { } async getAccessToken(refreshToken:string) { - const {platform} = await Device.getInfo() + const platform = Capacitor.getPlatform() const credentialType = platform const response = await this.request('POST', 'https://oauth2.googleapis.com/token', diff --git a/src/lib/adapters/WebDav.ts b/src/lib/adapters/WebDav.ts index 7420e8417f..b593fadcc3 100644 --- a/src/lib/adapters/WebDav.ts +++ b/src/lib/adapters/WebDav.ts @@ -14,7 +14,7 @@ import { SlashError } from '../../errors/Error' import { Http } from '@capacitor-community/http' -import { Device } from '@capacitor/device' +import { Capacitor } from '@capacitor/core' import Html from '../serializers/Html' const LOCK_INTERVAL = 2 * 60 * 1000 // Lock every 2mins while syncing @@ -283,8 +283,7 @@ export default class WebDavAdapter extends CachingAdapter { } async uploadFile(url, content_type, data) { - const info = await Device.getInfo() - if (info.platform === 'web') { + if (Capacitor.getPlatform() === 'web') { return this.uploadFileWeb(url, content_type, data) } else { return this.uploadFileNative(url, content_type, data) @@ -352,8 +351,7 @@ export default class WebDavAdapter extends CachingAdapter { } async downloadFile(url) { - const info = await Device.getInfo() - if (info.platform === 'web') { + if (Capacitor.getPlatform() === 'web') { return this.downloadFileWeb(url) } else { return this.downloadFileNative(url) diff --git a/src/lib/browser-api.js b/src/lib/browser-api.js index daac84cb04..807d4c812e 100644 --- a/src/lib/browser-api.js +++ b/src/lib/browser-api.js @@ -1,4 +1,63 @@ -/* global ChromePromise chrome browser */ +/* global chrome browser */ + +const ChromePromise = (function(root) { + 'use strict' + var push = Array.prototype.push, + hasOwnProperty = Object.prototype.hasOwnProperty + + return ChromePromise + + function ChromePromise(chrome, Promise) { + chrome = chrome || root.chrome + Promise = Promise || root.Promise + + var runtime = chrome.runtime + + fillProperties(chrome, this) + + /// ///////////// + + function setPromiseFunction(fn, thisArg) { + return function() { + var args = arguments + + return new Promise(function(resolve, reject) { + function callback() { + var err = runtime.lastError + if (err) { + reject(err) + } else { + resolve.apply(null, arguments) + } + } + + push.call(args, callback) + + fn.apply(thisArg, args) + }) + } + } + + function fillProperties(source, target) { + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + var val = source[key] + var type = typeof val + + if (type === 'object' && !(val instanceof ChromePromise) && key.indexOf('on') !== 0) { + target[key] = {} + fillProperties(val, target[key]) + } else if (type === 'function') { + target[key] = setPromiseFunction(val, source) + } else { + target[key] = val + } + } + } + } + } +})(this || window || self) + let b if (typeof browser === 'undefined' && typeof chrome !== 'undefined') { b = new ChromePromise() diff --git a/src/lib/browser/BrowserAccount.ts b/src/lib/browser/BrowserAccount.ts index d3e3a6ef48..efec72f9e4 100644 --- a/src/lib/browser/BrowserAccount.ts +++ b/src/lib/browser/BrowserAccount.ts @@ -13,12 +13,14 @@ import { UnknownFolderItemOrderError } from '../../errors/Error' import {i18n} from '../native/I18n' +import Controller from '../Controller' export default class BrowserAccount extends Account { static async get(id:string):Promise { const storage = new BrowserAccountStorage(id) - const background = await browser.runtime.getBackgroundPage() - const data = await storage.getAccountData(background.controller.key) + const controller = await Controller.getSingleton() + const key = await controller.getKey() + const data = await storage.getAccountData(key) const tree = new BrowserTree(storage, data.localRoot) return new BrowserAccount(id, storage, await AdapterFactory.factory(data), tree) } @@ -28,8 +30,9 @@ export default class BrowserAccount extends Account { const adapter = await AdapterFactory.factory(data) const storage = new BrowserAccountStorage(id) - const background = await browser.runtime.getBackgroundPage() - await storage.setAccountData(data, background.controller.key) + const controller = await Controller.getSingleton() + const key = await controller.getKey() + await storage.setAccountData(data, key) const tree = new BrowserTree(storage, data.localRoot) return new BrowserAccount(id, storage, adapter, tree) } @@ -68,8 +71,9 @@ export default class BrowserAccount extends Account { } async updateFromStorage():Promise { - const background = await browser.runtime.getBackgroundPage() - const data = await this.storage.getAccountData(background.controller.key) + const controller = await Controller.getSingleton() + const key = await controller.getKey() + const data = await this.storage.getAccountData(key) this.server.setData(data) this.localTree = new BrowserTree(this.storage, data.localRoot) } diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 24b6bebb39..6e8f948ea0 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -6,7 +6,6 @@ import DefunctCryptography from '../DefunctCrypto' import packageJson from '../../../package.json' import BrowserAccountStorage from './BrowserAccountStorage' import uniqBy from 'lodash/uniqBy' -import onwakeup from 'onwakeup' import PQueue from 'p-queue' import Account from '../Account' @@ -64,9 +63,6 @@ export default class BrowserController { this.onchange(localId, details) ) - // Set up onWakeup - onwakeup(() => this.onWakeup()) - // Set up the alarms browser.alarms.create('checkSync', { periodInMinutes: 1 }) @@ -114,6 +110,19 @@ export default class BrowserController { // Set correct badge after waiting a bit setTimeout(() => this.updateStatus(), 3000) + + // Setup service worker messaging + + this.onStatusChange(async() => { + const clientList = await self.clients.matchAll() + clientList.forEach(client => client.postMessage({type: 'onStatusChange', params: []})) + }) + + addEventListener('message', async(event) => { + const {type, params} = event.data + const result = await this[type](...params) + event.source.postMessage({type: type + 'Response', params: [result]}) + }) } setEnabled(enabled) { @@ -199,6 +208,14 @@ export default class BrowserController { await Promise.all(accounts.map(a => a.setData(a.getData()))) } + getKey() { + return Promise.resolve(this.key) + } + + getUnlocked() { + return Promise.resolve(this.unlocked) + } + async onchange(localId, details) { if (!this.enabled) { return @@ -373,13 +390,4 @@ export default class BrowserController { }) ) } - - async onWakeup() { - const accounts = await Account.getAllAccounts() - await Promise.all( - accounts.map(async acc => { - await acc.cancelSync() - }) - ) - } } diff --git a/src/lib/browser/BrowserTree.ts b/src/lib/browser/BrowserTree.ts index 8148c455db..3eec7c09b9 100644 --- a/src/lib/browser/BrowserTree.ts +++ b/src/lib/browser/BrowserTree.ts @@ -90,7 +90,7 @@ export default class BrowserTree implements IResource { }) folder.isRoot = isRoot return folder - } else if (window.location.protocol === 'moz-extension:' && node.type === 'separator') { + } else if (self.location.protocol === 'moz-extension:' && node.type === 'separator') { // Translate mozilla separators to floccus separators return new Tree.Bookmark({ location: ItemLocation.LOCAL, @@ -121,7 +121,7 @@ export default class BrowserTree implements IResource { return } try { - if (window.location.protocol === 'moz-extension:' && url.parse(bookmark.url).hostname === 'separator.floccus.org') { + if (self.location.protocol === 'moz-extension:' && url.parse(bookmark.url).hostname === 'separator.floccus.org') { const node = await this.queue.add(() => browser.bookmarks.create({ parentId: bookmark.parentId, @@ -150,7 +150,7 @@ export default class BrowserTree implements IResource { return } try { - if (window.location.protocol === 'moz-extension:' && url.parse(bookmark.url).hostname === 'separator.floccus.org') { + if (self.location.protocol === 'moz-extension:' && url.parse(bookmark.url).hostname === 'separator.floccus.org') { // noop } else { await this.queue.add(() => diff --git a/src/lib/interfaces/Controller.ts b/src/lib/interfaces/Controller.ts index 9c15ba3e34..9f5f3176a6 100644 --- a/src/lib/interfaces/Controller.ts +++ b/src/lib/interfaces/Controller.ts @@ -1,14 +1,12 @@ export default interface IController { - key: string; - setEnabled(): void; + setEnabled(enabled:boolean): void; setKey(key):Promise; unlock(key):Promise; unsetKey():Promise; - onchange(localId, details):Promise; scheduleSync(accountId, wait):Promise; cancelSync(accountId, keepEnabled):Promise; syncAccount(accountId, strategy):Promise; - updateStatus():Promise; onStatusChange(listener):()=>void; - onLoad():Promise; + getKey():Promise; + getUnlocked():Promise; } diff --git a/src/lib/native/NativeAccount.ts b/src/lib/native/NativeAccount.ts index 0e6ddd6fda..d77c1ad21e 100644 --- a/src/lib/native/NativeAccount.ts +++ b/src/lib/native/NativeAccount.ts @@ -20,7 +20,8 @@ export default class NativeAccount extends Account { static async get(id:string):Promise { const storage = new NativeAccountStorage(id) const controller = await Controller.getSingleton() - const data = await storage.getAccountData(controller.key) + const key = await controller.getKey() + const data = await storage.getAccountData(key) const tree = new NativeTree(storage) await tree.load() return new NativeAccount(id, storage, await AdapterFactory.factory(data), tree) @@ -32,7 +33,8 @@ export default class NativeAccount extends Account { const storage = new NativeAccountStorage(id) const controller = await Controller.getSingleton() - await storage.setAccountData(data, controller.key) + const key = await controller.getKey() + await storage.setAccountData(data, key) const tree = new NativeTree(storage) await tree.load() return new NativeAccount(id, storage, adapter, tree) diff --git a/src/lib/native/NativeController.js b/src/lib/native/NativeController.js index a7aab32030..a34d34763c 100644 --- a/src/lib/native/NativeController.js +++ b/src/lib/native/NativeController.js @@ -5,7 +5,6 @@ import NativeAccountStorage from './NativeAccountStorage' import PQueue from 'p-queue' import Account from '../Account' -import onwakeup from 'onwakeup' const INACTIVITY_TIMEOUT = 1000 * 7 const DEFAULT_SYNC_INTERVAL = 15 @@ -54,9 +53,6 @@ export default class NativeController { this.alarms = new AlarmManager(this) - // Set up onWakeup - onwakeup(() => this.onWakeup()) - // lock accounts when locking is enabled Storage.get({key: 'accountsLocked' }).then(async({value: accountsLocked}) => { @@ -66,6 +62,19 @@ export default class NativeController { this.key = null } }) + + // Setup service worker messaging + + this.onStatusChange(async() => { + const clientList = await self.clients.matchAll() + clientList.forEach(client => client.postMessage({type: 'onStatusChange', params: []})) + }) + + addEventListener('message', async(event) => { + const {type, params} = event.data + const result = await this[type](...params) + event.source.postMessage({type: type + 'Response', params: [result]}) + }) } setEnabled(enabled) { @@ -122,6 +131,14 @@ export default class NativeController { await Promise.all(accounts.map(a => a.setData(a.getData()))) } + getKey() { + return Promise.resolve(this.key) + } + + getUnlocked() { + return Promise.resolve(this.unlocked) + } + async scheduleSync(accountId, wait) { if (wait) { if (this.schedule[accountId]) { @@ -206,15 +223,6 @@ export default class NativeController { }) ) } - - async onWakeup() { - const accounts = await Account.getAllAccounts() - await Promise.all( - accounts.map(async acc => { - await acc.cancelSync() - }) - ) - } } let singleton diff --git a/src/lib/serializers/Xbel.ts b/src/lib/serializers/Xbel.ts index 7a4e807114..0be9e6adef 100644 --- a/src/lib/serializers/Xbel.ts +++ b/src/lib/serializers/Xbel.ts @@ -7,7 +7,7 @@ class XbelSerializer implements Serializer { } deserialize(xbel) { - const xmlDoc = new window.DOMParser().parseFromString( + const xmlDoc = new DOMParser().parseFromString( xbel, 'application/xml' ) diff --git a/src/lib/strategies/Default.ts b/src/lib/strategies/Default.ts index a8820197ae..ab39dc83ac 100644 --- a/src/lib/strategies/Default.ts +++ b/src/lib/strategies/Default.ts @@ -46,7 +46,7 @@ export default class SyncProcess { this.actionsDone = 0 this.actionsPlanned = 0 this.canceled = false - this.isFirefox = window.location.protocol === 'moz-extension:' + this.isFirefox = self.location.protocol === 'moz-extension:' } async cancel() :Promise { diff --git a/src/ui/plugins/capacitor.js b/src/ui/plugins/capacitor.js index c0b16879ab..9724a24e26 100644 --- a/src/ui/plugins/capacitor.js +++ b/src/ui/plugins/capacitor.js @@ -1,17 +1,12 @@ -import { Device } from '@capacitor/device' +import { Capacitor } from '@capacitor/core' import { App } from '@capacitor/app' -let deviceInfo = {} -Device.getInfo().then(info => { - deviceInfo.platform = info.platform -}) - let backButtonListener = null export default { computed: { isBrowser() { - return deviceInfo.platform === 'web' || !deviceInfo.platform + return Capacitor.getPlatform() === 'web' || !Capacitor.getPlatform() }, }, mounted() { diff --git a/src/ui/store/actions.js b/src/ui/store/actions.js index 966dc6a544..62f20bba68 100644 --- a/src/ui/store/actions.js +++ b/src/ui/store/actions.js @@ -10,8 +10,10 @@ import { Base64 } from 'js-base64' export const actionsDefinition = { async [actions.LOAD_LOCKED]({ commit, dispatch, state }) { const controller = await Controller.getSingleton() - commit(mutations.SET_LOCKED, !controller.unlocked) - commit(mutations.SET_SECURED, typeof controller.key === 'string' || !controller.unlocked) + const key = await controller.getKey() + const unlocked = await controller.getUnlocked() + commit(mutations.SET_LOCKED, !unlocked) + commit(mutations.SET_SECURED, typeof key === 'string' || !unlocked) }, async [actions.UNLOCK]({commit, dispatch, state}, key) { const controller = await Controller.getSingleton() From 71f41322b727547f88d29667c5eb5543e557aa98 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 30 May 2023 16:01:47 +0200 Subject: [PATCH 016/149] Manifest v3: Fix browser-api --- html/options.html | 1 - html/test.html | 1 - src/lib/browser-api.js | 9 +++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/html/options.html b/html/options.html index f7a621890d..2be15a0fb3 100644 --- a/html/options.html +++ b/html/options.html @@ -23,7 +23,6 @@
- diff --git a/html/test.html b/html/test.html index 37e7827bf1..0345846406 100644 --- a/html/test.html +++ b/html/test.html @@ -8,7 +8,6 @@
- diff --git a/src/lib/browser-api.js b/src/lib/browser-api.js index 807d4c812e..1d1ce439a6 100644 --- a/src/lib/browser-api.js +++ b/src/lib/browser-api.js @@ -5,8 +5,6 @@ const ChromePromise = (function(root) { var push = Array.prototype.push, hasOwnProperty = Object.prototype.hasOwnProperty - return ChromePromise - function ChromePromise(chrome, Promise) { chrome = chrome || root.chrome Promise = Promise || root.Promise @@ -56,13 +54,16 @@ const ChromePromise = (function(root) { } } } -})(this || window || self) + + return ChromePromise +})(typeof window !== 'undefined' ? window : self) let b if (typeof browser === 'undefined' && typeof chrome !== 'undefined') { - b = new ChromePromise() + b = new ChromePromise(chrome, Promise) b.alarms = chrome.alarms // Don't promisify alarms -- don't make sense, yo! b.browserAction = chrome.browserAction // apparently, they provide no callbacks for these + b.action = chrome.action // apparently, they provide no callbacks for these b.i18n = chrome.i18n } else { b = browser From 8ec03ba430db3b2eaef915aa8cc6286034f712ed Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 30 May 2023 16:02:16 +0200 Subject: [PATCH 017/149] Manifest v3: Fix Controller dispatch --- src/lib/Controller.ts | 15 +++++++++++++-- src/lib/browser/BrowserController.js | 2 +- tsconfig.json | 9 ++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index d0b2fac64c..9a8cb1e952 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -1,11 +1,22 @@ import IController from './interfaces/Controller' +import { Capacitor } from '@capacitor/core' export default class Controller implements IController { static singleton: IController static async getSingleton():Promise { if (!this.singleton) { - this.singleton = new Controller + // eslint-disable-next-line no-undef + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + if (Capacitor.getPlatform() === 'web') { + this.singleton = new (await import('./browser/BrowserController')).default + } else { + this.singleton = new (await import('./native/NativeController')).default + } + return this.singleton + } else { + this.singleton = new Controller + } } return this.singleton } @@ -54,7 +65,7 @@ export default class Controller implements IController { syncAccount(accountId, strategy): Promise { return navigator.serviceWorker.ready.then((registration) => { const worker = registration.active - worker.postMessage({type: 'setEnabled', params: [accountId, strategy]}) + worker.postMessage({type: 'syncAccount', params: [accountId, strategy]}) }) } diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 6e8f948ea0..a88b70fc8a 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -372,7 +372,7 @@ export default class BrowserController { } if (icon[status]) { - await browser.browserAction.setIcon(icon[status]) + await browser.action.setIcon(icon[status]) } } diff --git a/tsconfig.json b/tsconfig.json index ba380126e8..ceb19092ee 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,14 @@ "noImplicitThis": true, "esModuleInterop": true, "resolveJsonModule": true, - "lib": ["DOM" ,"es2015", "es2016", "es2017", "es2019"] + "lib": [ + "DOM", + "es2015", + "es2016", + "es2017", + "es2019", + "webworker" + ] }, "exclude": [ "node_modules", From cd7792c6226124ba536ea6f3fec5c1ab0b1cd9c2 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 30 May 2023 16:02:35 +0200 Subject: [PATCH 018/149] Manifest v3: Fix webpack development config --- webpack.dev.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webpack.dev.js b/webpack.dev.js index ba16e8f4e0..aeb467d607 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -4,7 +4,7 @@ const webpack = require('webpack') module.exports = merge(common, { mode: 'development', - devtool: 'eval-source-map', + devtool: 'cheap-module-source-map', plugins: [ new webpack.DefinePlugin({ 'DEBUG': JSON.stringify(true) From 82a3266a78ee918d6a33adde7ea49d2dabe55ae3 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 31 May 2023 15:57:20 +0200 Subject: [PATCH 019/149] chore(issues): Auto-close issues that have had no activity for 3 months --- .github/stale.yml | 59 ------------------------------------- .github/workflows/stale.yml | 25 ++++++++++++++++ 2 files changed, 25 insertions(+), 59 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 6e2cff3a4c..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,59 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 14 - -# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: 7 - -# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) -onlyLabels: - - 'waiting for more information' - -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: [] - -# Set to true to ignore issues in a project (defaults to false) -exemptProjects: false - -# Set to true to ignore issues in a milestone (defaults to false) -exemptMilestones: false - -# Set to true to ignore issues with an assignee (defaults to false) -exemptAssignees: false - -# Label to use when marking as stale -staleLabel: stale - -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. - -# Comment to post when removing the stale label. -# unmarkComment: > -# Your comment here. - -# Comment to post when closing a stale Issue or Pull Request. -# closeComment: > -# Your comment here. - -# Limit the number of actions per hour, from 1-30. Default is 30 -limitPerRun: 30 - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': -# pulls: -# daysUntilStale: 30 -# markComment: > -# This pull request has been automatically marked as stale because it has not had -# recent activity. It will be closed if no further activity occurs. Thank you -# for your contributions. - -# issues: -# exemptLabels: -# - confirmed diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..a6af953116 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,25 @@ +name: 'Close stale issues and PRs' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v8 + with: + stale-issue-message: | + Hello :wave: + This issue appears to have had no activity for 3 months. We cannot keep track of whether individual issues + have resolved themselves or still require attention without user interaction. We're thus adding the stale label to this issue to schedule + it for getting closed in 5 days time. If you believe this issue is still valid and should be fixed, you can add a comment + or remove the label to avoid it getting closed. + + Cheers :blue_heart: + close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.' + days-before-issue-stale: 90 + days-before-issue-close: 5 + days-before-pr-close: -1 + only-labels: 'waiting for more information' + exempt-issue-labels: 'enhancement' From 0569df5105ce55ac814deceb3e3aac64af39fe11 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 1 Jun 2023 17:27:37 +0200 Subject: [PATCH 020/149] fix(native): Make manifest v3 changes work on android --- src/entries/background-script.js | 6 +- src/lib/Account.ts | 3 + src/lib/Controller.ts | 149 +++++++++++++++++++------------ src/lib/interfaces/Controller.ts | 1 + src/ui/store/native/actions.js | 3 +- src/ui/views/native/Home.vue | 3 - 6 files changed, 99 insertions(+), 66 deletions(-) diff --git a/src/entries/background-script.js b/src/entries/background-script.js index 0404bb0583..c10d8a0f4e 100644 --- a/src/entries/background-script.js +++ b/src/entries/background-script.js @@ -1,4 +1,4 @@ -import BrowserController from '../lib/browser/BrowserController' +import Controller from '../lib/Controller' -const controller = new BrowserController() -controller.onLoad() +Controller.getSingleton() + .then(controller => controller.onLoad()) diff --git a/src/lib/Account.ts b/src/lib/Account.ts index 7aa33c3a10..84f1790733 100644 --- a/src/lib/Account.ts +++ b/src/lib/Account.ts @@ -24,6 +24,9 @@ export default class Account { static singleton : IAccount static async getAccountClass(): Promise { + if (this.singleton) { + return this.singleton + } if (Capacitor.getPlatform() === 'web') { this.singleton = (await import('./browser/BrowserAccount')).default } else { diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index 9a8cb1e952..acd2e64734 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -1,31 +1,45 @@ import IController from './interfaces/Controller' import { Capacitor } from '@capacitor/core' - export default class Controller implements IController { - static singleton: IController + public static singleton: IController + private worker: Worker|null static async getSingleton():Promise { if (!this.singleton) { - // eslint-disable-next-line no-undef - if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { - if (Capacitor.getPlatform() === 'web') { + if (Capacitor.getPlatform() === 'web') { + // eslint-disable-next-line no-undef + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + // If we're on the web and inside a service worker + // load the actual implementation this.singleton = new (await import('./browser/BrowserController')).default } else { - this.singleton = new (await import('./native/NativeController')).default + // otherwise load the proxy + this.singleton = new Controller } - return this.singleton } else { - this.singleton = new Controller + // If we're not on the web, laod the implementation directly + this.singleton = new (await import('./native/NativeController')).default } } return this.singleton } - cancelSync(accountId, keepEnabled): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'cancelSync', params: [accountId, keepEnabled]}) - }) + constructor(worker?: Worker) { + this.worker = worker + } + + async getWorker(): Promise { + return this.worker + ? Promise.resolve(this.worker) + : navigator.serviceWorker.ready.then((registration) => registration.active) + } + + async cancelSync(accountId, keepEnabled): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'cancelSync', params: [accountId, keepEnabled]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } onStatusChange(listener): () => void { @@ -35,83 +49,100 @@ export default class Controller implements IController { listener() } } - navigator.serviceWorker.addEventListener('message', eventListener) + let worker + this.getWorker().then(w => { + worker = w + worker.addEventListener('message', eventListener) + }) return function() { - navigator.serviceWorker.removeEventListener('message', eventListener) + worker.removeEventListener('message', eventListener) } } - scheduleSync(accountId, wait): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'scheduleSync', params: [accountId, wait]}) - }) + async scheduleSync(accountId, wait): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'scheduleSync', params: [accountId, wait]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - setEnabled(enabled: boolean): void { - navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'setEnabled', params: [enabled]}) - }) + async setEnabled(enabled: boolean): Promise { + const worker = await this.getWorker() + const message = {type: 'setEnabled', params: [enabled]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - setKey(key): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'setKey', params: [key]}) - }) + async setKey(key): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'setKey', params: [key]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - syncAccount(accountId, strategy): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'syncAccount', params: [accountId, strategy]}) - }) + async syncAccount(accountId, strategy): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'syncAccount', params: [accountId, strategy]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - unlock(key): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'unlock', params: [key]}) - }) + async unlock(key): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'unlock', params: [key]} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - unsetKey(): Promise { - return navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({type: 'unsetKey', params: []}) - }) + async unsetKey(): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + const message = {type: 'unsetKey', params: []} + worker.postMessage(message) + console.log('Sending message to service worker: ', message) } - getKey(): Promise { + async getKey(): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + // eslint-disable-next-line no-async-promise-executor return new Promise((resolve) => { const eventListener = (event) => { if (event.data.type === 'getKeyResponse') { resolve(event.data.params[0]) - navigator.serviceWorker.removeEventListener('message', eventListener) + worker.removeEventListener('message', eventListener) } } - navigator.serviceWorker.addEventListener('message', eventListener) - navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({ type: 'getKey', params: [] }) - }) + worker.addEventListener('message', eventListener) + const message = { type: 'getKey', params: [] } + worker.postMessage(message) + console.log('Sending message to service worker: ', message) }) } - getUnlocked(): Promise { + async getUnlocked(): Promise { + console.log('Waiting for service worker readiness') + const worker = await this.getWorker() + return new Promise((resolve) => { const eventListener = (event) => { if (event.data.type === 'getUnlockedResponse') { resolve(event.data.params[0]) - navigator.serviceWorker.removeEventListener('message', eventListener) + worker.removeEventListener('message', eventListener) } } - navigator.serviceWorker.addEventListener('message', eventListener) - navigator.serviceWorker.ready.then((registration) => { - const worker = registration.active - worker.postMessage({ type: 'getUnlocked', params: [] }) - }) + worker.addEventListener('message', eventListener) + const message = { type: 'getUnlocked', params: [] } + worker.postMessage(message) + console.log('Sending message to service worker: ', message) }) } + + onLoad() { + // noop + } } diff --git a/src/lib/interfaces/Controller.ts b/src/lib/interfaces/Controller.ts index 9f5f3176a6..fd03e0d5b2 100644 --- a/src/lib/interfaces/Controller.ts +++ b/src/lib/interfaces/Controller.ts @@ -9,4 +9,5 @@ export default interface IController { onStatusChange(listener):()=>void; getKey():Promise; getUnlocked():Promise; + onLoad():void; } diff --git a/src/ui/store/native/actions.js b/src/ui/store/native/actions.js index 593047b65b..b95ca97e4a 100644 --- a/src/ui/store/native/actions.js +++ b/src/ui/store/native/actions.js @@ -108,7 +108,8 @@ export const actionsDefinition = { await commit(mutations.LOAD_TREE, await tree.getBookmarksTree(true)) }, async [actions.CREATE_ACCOUNT]({commit, dispatch, state}, data) { - const account = await Account.create({...(await AdapterFactory.getDefaultValues(data.type)), ...data}) + const defaultData = await AdapterFactory.getDefaultValues(data.type) + const account = await Account.create({...defaultData, ...data}) await dispatch(actions.LOAD_ACCOUNTS) return account.id }, diff --git a/src/ui/views/native/Home.vue b/src/ui/views/native/Home.vue index 330c817c42..145106c2b8 100644 --- a/src/ui/views/native/Home.vue +++ b/src/ui/views/native/Home.vue @@ -10,7 +10,6 @@ import { actions } from '../../store/definitions' import { routes } from '../../NativeRouter' import { SplashScreen } from '@capacitor/splash-screen' import { SendIntent } from 'send-intent' -import Controller from '../../../lib/Controller' import packageJson from '../../../../package.json' import { Preferences as Storage } from '@capacitor/preferences' import { Http } from '@capacitor-community/http' @@ -19,8 +18,6 @@ import Logger from '../../../lib/Logger' export default { name: 'Home', async created() { - const controller = await Controller.getSingleton() - await controller.onLoad() SplashScreen.hide() await this.$store.dispatch(actions.LOAD_ACCOUNTS) From b37e9905ba46838dbe99f3770356ef696ea17c22 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 1 Jun 2023 18:12:56 +0200 Subject: [PATCH 021/149] fix(native): Make manifest v3 changes work on web again --- src/lib/Controller.ts | 21 +++++++++++++++++---- src/lib/browser/BrowserController.js | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index acd2e64734..0f834f22df 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -1,8 +1,15 @@ import IController from './interfaces/Controller' import { Capacitor } from '@capacitor/core' + +interface FloccusWorker { + postMessage(data: any): void + addEventListener(event: string, fn: (event: MessageEvent) => void): void + removeEventListener(event: string, fn: (event: MessageEvent) => void): void +} + export default class Controller implements IController { public static singleton: IController - private worker: Worker|null + private worker: FloccusWorker|null static async getSingleton():Promise { if (!this.singleton) { @@ -24,14 +31,18 @@ export default class Controller implements IController { return this.singleton } - constructor(worker?: Worker) { + constructor(worker?: FloccusWorker) { this.worker = worker } - async getWorker(): Promise { + async getWorker(): Promise { return this.worker ? Promise.resolve(this.worker) - : navigator.serviceWorker.ready.then((registration) => registration.active) + : navigator.serviceWorker.ready.then((registration) => ({ + postMessage: (...args) => registration.active.postMessage(...args), + addEventListener: (...args) => navigator.serviceWorker.addEventListener(...args), + removeEventListener: (...args) => navigator.serviceWorker.removeEventListener(...args) + })) } async cancelSync(accountId, keepEnabled): Promise { @@ -113,6 +124,7 @@ export default class Controller implements IController { return new Promise((resolve) => { const eventListener = (event) => { if (event.data.type === 'getKeyResponse') { + console.log('Message response received', event.data) resolve(event.data.params[0]) worker.removeEventListener('message', eventListener) } @@ -132,6 +144,7 @@ export default class Controller implements IController { const eventListener = (event) => { if (event.data.type === 'getUnlockedResponse') { resolve(event.data.params[0]) + console.log('Message response received', event.data) worker.removeEventListener('message', eventListener) } } diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index a88b70fc8a..567f792a17 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -120,8 +120,10 @@ export default class BrowserController { addEventListener('message', async(event) => { const {type, params} = event.data + console.log('Message received', event.data) const result = await this[type](...params) event.source.postMessage({type: type + 'Response', params: [result]}) + console.log('Sending message', {type: type + 'Response', params: [result]}) }) } From 02feb21b43278ec2879fd8258be961f1c80c1155 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sat, 3 Jun 2023 15:41:27 +0200 Subject: [PATCH 022/149] Fix manifest v3 changes to work in firefox --- src/entries/background-script.js | 6 ++- src/lib/Controller.ts | 70 +++++++++++++++------------- src/lib/browser/BrowserController.js | 28 +++++++---- src/lib/native/NativeController.js | 13 ------ 4 files changed, 60 insertions(+), 57 deletions(-) diff --git a/src/entries/background-script.js b/src/entries/background-script.js index c10d8a0f4e..74cffc0e53 100644 --- a/src/entries/background-script.js +++ b/src/entries/background-script.js @@ -1,4 +1,6 @@ import Controller from '../lib/Controller' +import BrowserController from '../lib/browser/BrowserController' -Controller.getSingleton() - .then(controller => controller.onLoad()) +const controller = new BrowserController +controller.onLoad() +Controller.singleton = controller diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index 0f834f22df..20874862a9 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -3,8 +3,8 @@ import { Capacitor } from '@capacitor/core' interface FloccusWorker { postMessage(data: any): void - addEventListener(event: string, fn: (event: MessageEvent) => void): void - removeEventListener(event: string, fn: (event: MessageEvent) => void): void + addEventListener(fn: (data: any) => void): void + removeEventListener(fn: (data: any) => void): void } export default class Controller implements IController { @@ -14,15 +14,8 @@ export default class Controller implements IController { static async getSingleton():Promise { if (!this.singleton) { if (Capacitor.getPlatform() === 'web') { - // eslint-disable-next-line no-undef - if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { - // If we're on the web and inside a service worker - // load the actual implementation - this.singleton = new (await import('./browser/BrowserController')).default - } else { - // otherwise load the proxy - this.singleton = new Controller - } + // otherwise load the proxy + this.singleton = new Controller } else { // If we're not on the web, laod the implementation directly this.singleton = new (await import('./native/NativeController')).default @@ -36,13 +29,24 @@ export default class Controller implements IController { } async getWorker(): Promise { - return this.worker - ? Promise.resolve(this.worker) - : navigator.serviceWorker.ready.then((registration) => ({ + if (this.worker) { + return Promise.resolve(this.worker) + } + if (navigator.serviceWorker?.controller) { + return navigator.serviceWorker.ready.then((registration) => ({ postMessage: (...args) => registration.active.postMessage(...args), - addEventListener: (...args) => navigator.serviceWorker.addEventListener(...args), - removeEventListener: (...args) => navigator.serviceWorker.removeEventListener(...args) + addEventListener: (fn) => navigator.serviceWorker.addEventListener('message', (event) => fn(event.data)), + removeEventListener: (fn) => navigator.serviceWorker.removeEventListener('message', fn) })) + } + if (Capacitor.getPlatform() === 'web') { + const browser = (await import('../lib/browser-api')).default + return { + postMessage: (data) => browser.runtime.sendMessage(data), + addEventListener: (fn) => browser.runtime.onMessage.addListener(fn), + removeEventListener: (fn) => browser.runtime.onMessage.addListener(fn) + } + } } async cancelSync(accountId, keepEnabled): Promise { @@ -54,19 +58,19 @@ export default class Controller implements IController { } onStatusChange(listener): () => void { - const eventListener = (event) => { - const {type} = event.data - if (type === 'onStatusChange') { + const eventListener = (data) => { + const {type} = data + if (type === 'status:update') { listener() } } let worker this.getWorker().then(w => { worker = w - worker.addEventListener('message', eventListener) + worker.addEventListener(eventListener) }) return function() { - worker.removeEventListener('message', eventListener) + worker.removeEventListener(eventListener) } } @@ -122,14 +126,14 @@ export default class Controller implements IController { const worker = await this.getWorker() // eslint-disable-next-line no-async-promise-executor return new Promise((resolve) => { - const eventListener = (event) => { - if (event.data.type === 'getKeyResponse') { - console.log('Message response received', event.data) - resolve(event.data.params[0]) - worker.removeEventListener('message', eventListener) + const eventListener = (data) => { + if (data.type === 'getKeyResponse') { + console.log('Message response received', data) + resolve(data.params[0]) + worker.removeEventListener(eventListener) } } - worker.addEventListener('message', eventListener) + worker.addEventListener(eventListener) const message = { type: 'getKey', params: [] } worker.postMessage(message) console.log('Sending message to service worker: ', message) @@ -141,14 +145,14 @@ export default class Controller implements IController { const worker = await this.getWorker() return new Promise((resolve) => { - const eventListener = (event) => { - if (event.data.type === 'getUnlockedResponse') { - resolve(event.data.params[0]) - console.log('Message response received', event.data) - worker.removeEventListener('message', eventListener) + const eventListener = (data) => { + if (data.type === 'getUnlockedResponse') { + resolve(data.params[0]) + console.log('Message response received', data) + worker.removeEventListener(eventListener) } } - worker.addEventListener('message', eventListener) + worker.addEventListener(eventListener) const message = { type: 'getUnlocked', params: [] } worker.postMessage(message) console.log('Sending message to service worker: ', message) diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 567f792a17..a47f010023 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -113,18 +113,28 @@ export default class BrowserController { // Setup service worker messaging + // eslint-disable-next-line no-undef + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + addEventListener('message', (event) => this._receiveEvent(event.data, (data) => event.source.postMessage(data))) + } else { + browser.runtime.onMessage.addListener((data) => void (this._receiveEvent(data, (data) => browser.runtime.sendMessage(data)))) + } this.onStatusChange(async() => { - const clientList = await self.clients.matchAll() - clientList.forEach(client => client.postMessage({type: 'onStatusChange', params: []})) + if (self?.clients) { + const clientList = await self.clients.matchAll() + clientList.forEach(client => client.postMessage({ type: 'status:update', params: [] })) + } else { + browser.runtime.sendMessage({data: {type: 'status:update', params: []}}) + } }) + } - addEventListener('message', async(event) => { - const {type, params} = event.data - console.log('Message received', event.data) - const result = await this[type](...params) - event.source.postMessage({type: type + 'Response', params: [result]}) - console.log('Sending message', {type: type + 'Response', params: [result]}) - }) + async _receiveEvent(data, sendResponse) { + const {type, params} = data + console.log('Message received', data) + const result = await this[type](...params) + sendResponse({type: type + 'Response', params: [result]}) + console.log('Sending message', {type: type + 'Response', params: [result]}) } setEnabled(enabled) { diff --git a/src/lib/native/NativeController.js b/src/lib/native/NativeController.js index a34d34763c..d68159556d 100644 --- a/src/lib/native/NativeController.js +++ b/src/lib/native/NativeController.js @@ -62,19 +62,6 @@ export default class NativeController { this.key = null } }) - - // Setup service worker messaging - - this.onStatusChange(async() => { - const clientList = await self.clients.matchAll() - clientList.forEach(client => client.postMessage({type: 'onStatusChange', params: []})) - }) - - addEventListener('message', async(event) => { - const {type, params} = event.data - const result = await this[type](...params) - event.source.postMessage({type: type + 'Response', params: [result]}) - }) } setEnabled(enabled) { From c196442dc82e53e5141bd76a138eff96cbad645a Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sat, 3 Jun 2023 15:42:47 +0200 Subject: [PATCH 023/149] Fix BrowserController#onchange: Don't error out on deleted items --- src/lib/Account.ts | 9 +++++-- src/lib/browser/BrowserController.js | 35 +++++++++++++++++++--------- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/lib/Account.ts b/src/lib/Account.ts index 84f1790733..8a04a84619 100644 --- a/src/lib/Account.ts +++ b/src/lib/Account.ts @@ -124,9 +124,14 @@ export default class Account { async tracksBookmark(localId:string):Promise { if (!(await this.isInitialized())) return false const mappings = await this.storage.getMappings() - return Object.keys(mappings.getSnapshot().LocalToServer.bookmark).some( - (id) => localId === id + const snapshot = mappings.getSnapshot() + const foundBookmark = Object.keys(snapshot.LocalToServer.bookmark).some( + (id) => String(localId) === String(id) ) + const foundFolder = Object.keys(snapshot.LocalToServer.folder).some( + (id) => String(localId) === String(id) + ) + return foundBookmark || foundFolder } async init():Promise { diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index a47f010023..37538d4af0 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -235,11 +235,13 @@ export default class BrowserController { // Debounce this function this.setEnabled(false) + console.log('Changes in browser Bookmarks detected...') + const allAccounts = await BrowserAccount.getAllAccounts() // Check which accounts contain the bookmark and which used to contain (track) it const trackingAccountsFilter = await Promise.all( - allAccounts.map(async account => { + allAccounts.map(account => { return account.tracksBookmark(localId) }) ) @@ -250,22 +252,23 @@ export default class BrowserController { // Now we check the account of the new folder - let ancestors + let containingAccounts = [] try { - ancestors = await BrowserTree.getIdPathFromLocalId(localId) + const ancestors = await BrowserTree.getIdPathFromLocalId(localId) + + containingAccounts = await BrowserAccount.getAccountsContainingLocalId( + localId, + ancestors, + allAccounts + ) } catch (e) { - this.setEnabled(true) - return + console.log('Could not detect containing account from localId ', localId) } - const containingAccounts = await BrowserAccount.getAccountsContainingLocalId( - localId, - ancestors, - allAccounts - ) accountsToSync = uniqBy( accountsToSync.concat(containingAccounts), - acc => acc.id) + acc => acc.id + ) // Filter out accounts that are not enabled .filter(account => account.getData().enabled) // Filter out accounts that are syncing, because the event may stem from the sync run @@ -280,10 +283,12 @@ export default class BrowserController { } async scheduleSync(accountId, wait) { + console.log('called scheduleSync') if (wait) { if (this.schedule[accountId]) { clearTimeout(this.schedule[accountId]) } + console.log('scheduleSync: setting a timeout in ms :', INACTIVITY_TIMEOUT) this.schedule[accountId] = setTimeout( () => this.scheduleSync(accountId), INACTIVITY_TIMEOUT @@ -291,15 +296,20 @@ export default class BrowserController { return } + console.log('getting account') let account = await Account.get(accountId) + console.log('got account') if (account.getData().syncing) { + console.log('Account is already syncing. Not syncing again.') return } if (!account.getData().enabled) { + console.log('Account is not enabled. Not syncing.') return } if (this.waiting[accountId]) { + console.log('Account is already queued to be synced') return } @@ -318,12 +328,15 @@ export default class BrowserController { } async syncAccount(accountId, strategy) { + console.log('Called syncAccount ', accountId) this.waiting[accountId] = false if (!this.enabled) { + console.log('Flocccus controller is not enabled. Not syncing.') return } let account = await Account.get(accountId) if (account.getData().syncing) { + console.log('Account is already syncing. Not triggering another sync.') return } setTimeout(() => this.updateStatus(), 500) From 652838ee5833e93e9bfe8046a828892bfac7b0f1 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sat, 3 Jun 2023 16:37:22 +0200 Subject: [PATCH 024/149] Fix bookmarks cahgne detection --- src/entries/background-script.js | 2 -- src/lib/browser/BrowserAccount.ts | 7 +++++-- src/lib/browser/BrowserController.js | 12 +++++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/entries/background-script.js b/src/entries/background-script.js index 74cffc0e53..f630e6fa5d 100644 --- a/src/entries/background-script.js +++ b/src/entries/background-script.js @@ -1,6 +1,4 @@ -import Controller from '../lib/Controller' import BrowserController from '../lib/browser/BrowserController' const controller = new BrowserController controller.onLoad() -Controller.singleton = controller diff --git a/src/lib/browser/BrowserAccount.ts b/src/lib/browser/BrowserAccount.ts index efec72f9e4..f9090a083e 100644 --- a/src/lib/browser/BrowserAccount.ts +++ b/src/lib/browser/BrowserAccount.ts @@ -133,10 +133,13 @@ export default class BrowserAccount extends Account { allAccounts = allAccounts || (await this.getAllAccounts()) const accountsInvolved = allAccounts - .filter(acc => ancestors.indexOf(acc.getData().localRoot) !== -1) + .filter(acc => ancestors.includes(acc.getData().localRoot)) + .sort((a, b) => + ancestors.indexOf(a.getData().localRoot) - ancestors.indexOf(b.getData().localRoot) + ) .reverse() const lastNesterIdx = accountsInvolved.findIndex(acc => !acc.getData().nestedSync) - return accountsInvolved.slice(0, lastNesterIdx) + return accountsInvolved.slice(0, Math.max(1, lastNesterIdx)) } } diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 37538d4af0..693f9c9e5a 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -1,4 +1,5 @@ import browser from '../browser-api' +import Controller from '../Controller' import BrowserAccount from './BrowserAccount' import BrowserTree from './BrowserTree' import Cryptography from '../Crypto' @@ -49,6 +50,10 @@ export default class BrowserController { this.alarms = new AlarmManager(this) + this.setEnabled(true) + + Controller.singleton = this + // set up change listener browser.bookmarks.onChanged.addListener((localId, details) => this.onchange(localId, details) @@ -250,21 +255,26 @@ export default class BrowserController { // Filter out any accounts that are not tracking the bookmark .filter((account, i) => trackingAccountsFilter[i]) + console.log('onchange', {accountsToSync}) + // Now we check the account of the new folder let containingAccounts = [] try { const ancestors = await BrowserTree.getIdPathFromLocalId(localId) - + console.log('onchange:', {ancestors, allAccounts}) containingAccounts = await BrowserAccount.getAccountsContainingLocalId( localId, ancestors, allAccounts ) } catch (e) { + console.log(e) console.log('Could not detect containing account from localId ', localId) } + console.log('onchange', accountsToSync.concat(containingAccounts)) + accountsToSync = uniqBy( accountsToSync.concat(containingAccounts), acc => acc.id From e5a82f896b117965c6bf564f911cdf990b03c315 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 4 Jun 2023 13:18:00 +0200 Subject: [PATCH 025/149] fix(permissions): Ask for permissions if necessary --- src/errors/Error.ts | 8 ++++++++ src/lib/adapters/GoogleDrive.ts | 18 +++++++++++++++++- src/lib/adapters/NextcloudBookmarks.ts | 10 +++++++++- src/lib/adapters/WebDav.ts | 9 ++++++++- src/ui/store/actions.js | 3 +++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/errors/Error.ts b/src/errors/Error.ts index ae6670596d..fb682aaaea 100644 --- a/src/errors/Error.ts +++ b/src/errors/Error.ts @@ -297,3 +297,11 @@ export class CreateBookmarkError extends FloccusError { Object.setPrototypeOf(this, CreateBookmarkError.prototype) } } + +export class MissingPermissionsError extends FloccusError { + constructor() { + super(`E036: Missing permissions to access the sync server`) + this.code = 36 + Object.setPrototypeOf(this, MissingPermissionsError.prototype) + } +} diff --git a/src/lib/adapters/GoogleDrive.ts b/src/lib/adapters/GoogleDrive.ts index 92243d378d..bf882ca1b2 100644 --- a/src/lib/adapters/GoogleDrive.ts +++ b/src/lib/adapters/GoogleDrive.ts @@ -6,7 +6,7 @@ import Credentials from '../../../google-api.credentials.json' import { AuthenticationError, DecryptionError, FileUnreadableError, - GoogleDriveAuthenticationError, InterruptedSyncError, + GoogleDriveAuthenticationError, InterruptedSyncError, MissingPermissionsError, NetworkError, OAuthTokenError } from '../../errors/Error' @@ -67,6 +67,14 @@ export default class GoogleDriveAdapter extends CachingAdapter { return { refresh_token, username } } + if (platform === 'web') { + const browser = (await import('../browser-api')).default + const origins = ['https://oauth2.googleapis.com', 'https://www.googleapis.com'] + if (!(await browser.permissions.contains({ origins }))) { + throw new MissingPermissionsError() + } + } + // see https://developers.google.com/identity/protocols/oauth2/native-app const challenge = Crypto.bufferToHexstr(await Crypto.getRandomBytes(128)).substr(0, 128) const state = Crypto.bufferToHexstr(await Crypto.getRandomBytes(128)).substr(0, 64) @@ -188,6 +196,14 @@ export default class GoogleDriveAdapter extends CachingAdapter { async onSyncStart() { Logger.log('onSyncStart: begin') + if (Capacitor.getPlatform() === 'web') { + const browser = (await import('../browser-api')).default + const origins = ['https://oauth2.googleapis.com/', 'https://www.googleapis.com/'] + if (!(await browser.permissions.contains({ origins }))) { + throw new MissingPermissionsError() + } + } + this.accessToken = await this.getAccessToken(this.server.refreshToken) let file diff --git a/src/lib/adapters/NextcloudBookmarks.ts b/src/lib/adapters/NextcloudBookmarks.ts index 965af80474..90ed0ec93c 100644 --- a/src/lib/adapters/NextcloudBookmarks.ts +++ b/src/lib/adapters/NextcloudBookmarks.ts @@ -1,5 +1,6 @@ // Nextcloud ADAPTER // All owncloud specifc stuff goes in here +import { Capacitor } from '@capacitor/core' import Adapter from '../interfaces/Adapter' import HtmlSerializer from '../serializers/Html' import Logger from '../Logger' @@ -17,7 +18,7 @@ import { HttpError, InconsistentBookmarksExistenceError, InconsistentServerStateError, - InterruptedSyncError, + InterruptedSyncError, MissingPermissionsError, NetworkError, ParseResponseError, RedirectError, @@ -136,6 +137,13 @@ export default class NextcloudBookmarksAdapter implements Adapter, BulkImportRes } async onSyncStart(): Promise { + if (Capacitor.getPlatform() === 'web') { + const browser = (await import('../browser-api')).default + if (!(await browser.permissions.contains({ origins: [this.server.url + '/'] }))) { + throw new MissingPermissionsError() + } + } + this.canceled = false const startDate = Date.now() const maxTimeout = LOCK_TIMEOUT diff --git a/src/lib/adapters/WebDav.ts b/src/lib/adapters/WebDav.ts index b593fadcc3..40e16daf9d 100644 --- a/src/lib/adapters/WebDav.ts +++ b/src/lib/adapters/WebDav.ts @@ -9,7 +9,7 @@ import { AuthenticationError, DecryptionError, FileUnreadableError, HttpError, InterruptedSyncError, - LockFileError, + LockFileError, MissingPermissionsError, NetworkError, RedirectError, SlashError } from '../../errors/Error' @@ -228,6 +228,13 @@ export default class WebDavAdapter extends CachingAdapter { async onSyncStart(needLock = true) { Logger.log('onSyncStart: begin') + if (Capacitor.getPlatform() === 'web') { + const browser = (await import('../browser-api')).default + if (!(await browser.permissions.contains({ origins: [this.server.url + '/'] }))) { + throw new MissingPermissionsError() + } + } + if (this.server.bookmark_file[0] === '/') { throw new SlashError() } diff --git a/src/ui/store/actions.js b/src/ui/store/actions.js index 62f20bba68..ba9673c6df 100644 --- a/src/ui/store/actions.js +++ b/src/ui/store/actions.js @@ -56,6 +56,7 @@ export const actionsDefinition = { return account.id }, async [actions.IMPORT_ACCOUNTS]({commit, dispatch, state}, accounts) { + await browser.permissions.request({origins: ['*://*/*']}) await Account.import(accounts) await dispatch(actions.LOAD_ACCOUNTS) }, @@ -102,6 +103,7 @@ export const actionsDefinition = { await Logger.downloadLogs(anonymous) }, async [actions.TEST_WEBDAV_SERVER]({commit, dispatch, state}, {rootUrl, username, password}) { + await browser.permissions.request({origins: ['*://*/*']}) let res = await fetch(`${rootUrl}`, { method: 'PROPFIND', credentials: 'omit', @@ -119,6 +121,7 @@ export const actionsDefinition = { return true }, async [actions.TEST_NEXTCLOUD_SERVER]({commit, dispatch, state}, rootUrl) { + await browser.permissions.request({origins: ['*://*/*']}) let res = await fetch(`${rootUrl}/index.php/login/v2`, {method: 'POST', headers: {'User-Agent': 'Floccus bookmarks sync'}}) if (res.status !== 200) { throw new Error(browser.i18n.getMessage('LabelLoginFlowError')) From 585877e9f539ff0fd91427752a17460cb0b98972 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 4 Jun 2023 13:18:00 +0200 Subject: [PATCH 026/149] fix(permissions): Ask for permissions if necessary --- _locales/en/messages.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index f1b8833622..af57d4d7e0 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -104,6 +104,9 @@ "Error035": { "message": "E035: Failed to create the following bookmark on the server: {0}" }, + "Error036": { + "message": "E036: Missing permissions to access the sync server" + }, "LabelWebdavurl": { "message": "WebDAV URL" }, From 393eb940740fb36cd058f94c53d85b03b531f83e Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 4 Jun 2023 16:15:40 +0200 Subject: [PATCH 027/149] [browser] remove unlock passphrase feature it doesn't work anymore with manifest v3 --- src/lib/browser/BrowserController.js | 45 ++++++++-------------------- src/ui/App.vue | 22 -------------- 2 files changed, 12 insertions(+), 55 deletions(-) diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 693f9c9e5a..7f181cd461 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -3,7 +3,6 @@ import Controller from '../Controller' import BrowserAccount from './BrowserAccount' import BrowserTree from './BrowserTree' import Cryptography from '../Crypto' -import DefunctCryptography from '../DefunctCrypto' import packageJson from '../../../package.json' import BrowserAccountStorage from './BrowserAccountStorage' import uniqBy from 'lodash/uniqBy' @@ -129,7 +128,7 @@ export default class BrowserController { const clientList = await self.clients.matchAll() clientList.forEach(client => client.postMessage({ type: 'status:update', params: [] })) } else { - browser.runtime.sendMessage({data: {type: 'status:update', params: []}}) + browser.runtime.sendMessage({type: 'status:update', params: []}) } }) } @@ -174,44 +173,24 @@ export default class BrowserController { async unlock(key) { let d = await browser.storage.local.get({ 'accountsLocked': null }) - let e = await browser.storage.local.get({ 'rekeyAfterUpdate': null }) if (d.accountsLocked) { - if (e.rekeyAfterUpdate) { - let hashedKey = await DefunctCryptography.sha256(key) - let decryptedHash = await DefunctCryptography.decryptAES( - key, - DefunctCryptography.iv, - d.accountsLocked - ) - - if (decryptedHash !== hashedKey) { - throw new Error('The provided key was wrong') - } - - this.unlocked = true - this.key = key - await this.unsetKey() - await this.setKey(key) + let hashedKey = await Cryptography.sha256(key) + let decryptedHash = await Cryptography.decryptAES( + key, + d.accountsLocked, + 'FLOCCUS' + ) - await browser.storage.local.set({ - rekeyAfterUpdate: null - }) - } else { - let hashedKey = await Cryptography.sha256(key) - let decryptedHash = await Cryptography.decryptAES( - key, - d.accountsLocked, - 'FLOCCUS' - ) - - if (decryptedHash !== hashedKey) { - throw new Error('The provided key was wrong') - } + if (decryptedHash !== hashedKey) { + throw new Error('The provided key was wrong') } this.key = key } this.unlocked = true this.setEnabled(true) + + // remove encryption + this.unsetKey() } async unsetKey() { diff --git a/src/ui/App.vue b/src/ui/App.vue index bb3b2ba17a..35d723250a 100644 --- a/src/ui/App.vue +++ b/src/ui/App.vue @@ -34,28 +34,6 @@ {{ t('LabelFunddevelopment') }} - - - mdi-lock-outline - {{ t('LabelSecuredcredentials') }} - - - mdi-lock-open-outline - {{ t('LabelSecurecredentials') }} - - Date: Sun, 4 Jun 2023 18:09:34 +0200 Subject: [PATCH 028/149] fix(ci): Update selenium docker images to v4 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 546f8dc485..47ca532d68 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,7 +26,7 @@ jobs: TEST_HOST: nextcloud SERVER_BRANCH: ${{ matrix.server-version }} NC_APP_VERSION: ${{ matrix.app-version }} - SELENIUM_VERSION: 3 + SELENIUM_VERSION: 4 MYSQL_PASSWORD: root strategy: From 3c790c78126860d454931ef433e508bf8e6a6c99 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 4 Jun 2023 18:12:41 +0200 Subject: [PATCH 029/149] fix(manifest): Use background.scripts --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 3bf67dfafc..7163f23f37 100644 --- a/manifest.json +++ b/manifest.json @@ -42,6 +42,6 @@ }, "background": { - "service_worker": "dist/js/background-script.js" + "scripts": ["dist/js/background-script.js"] } } From 474bd728690361d072a41c7f56d258514d8f9b82 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 19 Jul 2023 18:10:57 +0200 Subject: [PATCH 030/149] tests.yml: Use selenium 4 --- .github/workflows/tests.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 47ca532d68..b55caed8f0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,7 +37,6 @@ jobs: npm-version: [7.x] server-version: ['26'] app-version: ['stable'] - selenium-version: ['3'] floccus-adapter: - fake - nextcloud-bookmarks @@ -93,17 +92,17 @@ jobs: services: hub: - image: selenium/hub:3 + image: selenium/hub:4 ports: - 4444:4444 firefox: - image: selenium/node-firefox:3 + image: selenium/node-firefox:4 env: HUB_HOST: hub HUB_PORT: 4444 options: --shm-size="2g" chrome: - image: selenium/node-chrome:3 + image: selenium/node-chrome:4 env: HUB_HOST: hub HUB_PORT: 4444 From 44648dbf50a51fe5cba85a13178907bd26d04693 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 19 Jul 2023 18:17:40 +0200 Subject: [PATCH 031/149] CI: cancel-in-progress --- .github/workflows/tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b55caed8f0..a61b5125b6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,6 +17,10 @@ on: env: APP_NAME: bookmarks +concurrency: + group: floccus-tests-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: php: runs-on: ubuntu-latest From ed4d6f985fa465abf67b08f8f4eef9d81ef687da Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 19 Jul 2023 18:44:46 +0200 Subject: [PATCH 032/149] package-lock.json: Update selenium-webdriver --- package-lock.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfe8e5ac62..febb101aa6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13279,14 +13279,14 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/selenium-webdriver": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.1.tgz", - "integrity": "sha512-p4MtfhCQdcV6xxkS7eI0tQN6+WNReRULLCAuT4RDGkrjfObBNXMJ3WT8XdK+aXTr5nnBKuh+PxIevM0EjJgkxA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.10.0.tgz", + "integrity": "sha512-hSQPw6jgc+ej/UEcdQPG/iBwwMeCEgZr9HByY/J8ToyXztEqXzU9aLsIyrlj1BywBcStO4JQK/zMUWWrV8+riA==", "dev": true, "dependencies": { - "jszip": "^3.10.0", + "jszip": "^3.10.1", "tmp": "^0.2.1", - "ws": ">=8.11.0" + "ws": ">=8.13.0" }, "engines": { "node": ">= 14.20.0" @@ -26363,14 +26363,14 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "selenium-webdriver": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.1.tgz", - "integrity": "sha512-p4MtfhCQdcV6xxkS7eI0tQN6+WNReRULLCAuT4RDGkrjfObBNXMJ3WT8XdK+aXTr5nnBKuh+PxIevM0EjJgkxA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.10.0.tgz", + "integrity": "sha512-hSQPw6jgc+ej/UEcdQPG/iBwwMeCEgZr9HByY/J8ToyXztEqXzU9aLsIyrlj1BywBcStO4JQK/zMUWWrV8+riA==", "dev": true, "requires": { - "jszip": "^3.10.0", + "jszip": "^3.10.1", "tmp": "^0.2.1", - "ws": ">=8.11.0" + "ws": ">=8.13.0" }, "dependencies": { "tmp": { From b414252b13ff66e8a40290dcd64d92097632c475 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 15:14:59 +0200 Subject: [PATCH 033/149] selenium-runner.js: Add debug logs --- test/selenium-runner.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 6dda58f8c2..2fb7fcf330 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -1,12 +1,18 @@ const fs = require('fs') const url = require('url') const { Builder } = require('selenium-webdriver') +const { Preferences, Level, Type } = require('selenium-webdriver/lib/logging') const { Options: ChromeOptions } = require('selenium-webdriver/chrome') const { Options: FirefoxOptions } = require('selenium-webdriver/firefox') const saveStats = require('./save-stats') const fetch = require('node-fetch') const VERSION = require('../package.json').version ;(async function() { + const loggingPrefs = new Preferences() + loggingPrefs.setLevel(Type.CLIENT, Level.INFO) + loggingPrefs.setLevel(Type.DRIVER, Level.INFO) + loggingPrefs.setLevel(Type.SERVER, Level.INFO) + let driver = await new Builder() .usingServer(`http://localhost:4444/wd/hub`) .forBrowser(process.env.SELENIUM_BROWSER) @@ -26,7 +32,9 @@ const VERSION = require('../package.json').version ) : null ) + .setLoggingPrefs(loggingPrefs) .build() + console.log('Driver built for browser ' + process.env.SELENIUM_BROWSER) try { let id, testUrl switch (await (await driver.getSession()).getCapability('browserName')) { @@ -50,8 +58,7 @@ const VERSION = require('../package.json').version case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `./builds/floccus-build-v${VERSION}.xpi`, - true + `./builds/floccus-build-v${VERSION}.zip` ) await driver.get('about:debugging') await new Promise(resolve => setTimeout(resolve, 10000)) From 70732c31953a68dfb4094d5510d6babf15a4b60f Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 15:33:53 +0200 Subject: [PATCH 034/149] tests.yml: Try to fix selenium docker config --- .github/workflows/tests.yml | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a61b5125b6..839c149f2f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,7 +30,6 @@ jobs: TEST_HOST: nextcloud SERVER_BRANCH: ${{ matrix.server-version }} NC_APP_VERSION: ${{ matrix.app-version }} - SELENIUM_VERSION: 4 MYSQL_PASSWORD: root strategy: @@ -96,20 +95,24 @@ jobs: services: hub: - image: selenium/hub:4 + image: selenium/hub:4.10.0-20230607 ports: + - 4442:4442 + - 4443:4443 - 4444:4444 firefox: - image: selenium/node-firefox:4 + image: selenium/node-firefox:4.10.0-20230607 env: - HUB_HOST: hub - HUB_PORT: 4444 + SE_EVENT_BUS_HOST: hub + SE_EVENT_BUS_PUBLISH_PORT: 4442 + SE_EVENT_BUS_SUBSCRIBE_PORT: 4443 options: --shm-size="2g" chrome: - image: selenium/node-chrome:4 + image: selenium/node-chrome:4.10.0-20230607 env: - HUB_HOST: hub - HUB_PORT: 4444 + SE_EVENT_BUS_HOST: hub + SE_EVENT_BUS_PUBLISH_PORT: 4442 + SE_EVENT_BUS_SUBSCRIBE_PORT: 4443 options: --shm-size="2g" nextcloud: image: nextcloud:${{ matrix.server-version }} @@ -196,6 +199,17 @@ jobs: npm ci npm run build-release --if-present + - name: Wait for Selenium + run: | + apt install -y jq + while ! curl -sSL "http://localhost:4444/wd/hub/status" 2>&1 \ + | jq -r '.value.ready' 2>&1 | grep "true" >/dev/null; do + echo 'Waiting for the Grid' + sleep 1 + done + + echo "Selenium Grid is up - executing tests" + - name: Run tests working-directory: floccus env: From 49469e1fe8b73241a0199d2998640e5f1e0de500 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 15:37:43 +0200 Subject: [PATCH 035/149] tests.yml: Install jq with sudo --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 839c149f2f..e9e46ae488 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -201,7 +201,7 @@ jobs: - name: Wait for Selenium run: | - apt install -y jq + sudo apt install -y jq while ! curl -sSL "http://localhost:4444/wd/hub/status" 2>&1 \ | jq -r '.value.ready' 2>&1 | grep "true" >/dev/null; do echo 'Waiting for the Grid' From c8db960f298d8a0d837de2db65a1fd25c5d646e0 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 15:54:04 +0200 Subject: [PATCH 036/149] selenium-runner.js: Go back to xpi build --- test/selenium-runner.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 2fb7fcf330..c06e2dd3e7 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -58,7 +58,8 @@ const VERSION = require('../package.json').version case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `./builds/floccus-build-v${VERSION}.zip` + `./builds/floccus-build-v${VERSION}.xpi`, + true ) await driver.get('about:debugging') await new Promise(resolve => setTimeout(resolve, 10000)) From fa8ff013455f8326ecc20d45dbc1830f6c3e84f3 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 16:26:28 +0200 Subject: [PATCH 037/149] selenium-runner.js: Enable selenium logging --- test/selenium-runner.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index c06e2dd3e7..3d97bd587f 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -1,12 +1,14 @@ const fs = require('fs') const url = require('url') const { Builder } = require('selenium-webdriver') -const { Preferences, Level, Type } = require('selenium-webdriver/lib/logging') +const { Preferences, Level, Type, installConsoleHandler } = require('selenium-webdriver/lib/logging') const { Options: ChromeOptions } = require('selenium-webdriver/chrome') const { Options: FirefoxOptions } = require('selenium-webdriver/firefox') const saveStats = require('./save-stats') const fetch = require('node-fetch') const VERSION = require('../package.json').version +// Enable SELENIUM logging to console +installConsoleHandler() ;(async function() { const loggingPrefs = new Preferences() loggingPrefs.setLevel(Type.CLIENT, Level.INFO) @@ -58,7 +60,7 @@ const VERSION = require('../package.json').version case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `./builds/floccus-build-v${VERSION}.xpi`, + `${__dirname}/../builds/floccus-build-v${VERSION}.xpi`, true ) await driver.get('about:debugging') From 3ee64534d5c3b328a5bd97883c725636089abcd5 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 16:35:33 +0200 Subject: [PATCH 038/149] selenium-runner.js: Install unzipped extension --- test/selenium-runner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 3d97bd587f..b39cf7823d 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -60,7 +60,7 @@ installConsoleHandler() case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `${__dirname}/../builds/floccus-build-v${VERSION}.xpi`, + `${__dirname}/`, true ) await driver.get('about:debugging') From 3a3da15f0af36fc5086b32f6fe81fea92d5c930c Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 16:51:18 +0200 Subject: [PATCH 039/149] selenium-runner.js: New strategy for getting WebExtensionPolicy --- test/selenium-runner.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index b39cf7823d..84366a5e07 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -60,15 +60,14 @@ installConsoleHandler() case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `${__dirname}/`, + `${__dirname}/../builds/floccus-build-v${VERSION}.zip`, true ) await driver.get('about:debugging') await new Promise(resolve => setTimeout(resolve, 10000)) testUrl = await driver.executeScript(function() { - const extension = WebExtensionPolicy.getByID( - 'floccus@handmadeideas.org' - ) + const extension = WebExtensionPolicy.getActiveExtensions() + .find(({name}) => name === 'floccus bookmarks sync') return extension.extension.baseURL }) if (!testUrl) throw new Error('Could not install extension') From cf65fa7e5ed4a48619294985419bc7194d38b4af Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 17:16:01 +0200 Subject: [PATCH 040/149] Controller.ts: Avoid leaking event listeners --- src/lib/Controller.ts | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index 20874862a9..7b86941179 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -3,8 +3,7 @@ import { Capacitor } from '@capacitor/core' interface FloccusWorker { postMessage(data: any): void - addEventListener(fn: (data: any) => void): void - removeEventListener(fn: (data: any) => void): void + addEventListener(fn: (data: any) => void): () => void } export default class Controller implements IController { @@ -35,16 +34,21 @@ export default class Controller implements IController { if (navigator.serviceWorker?.controller) { return navigator.serviceWorker.ready.then((registration) => ({ postMessage: (...args) => registration.active.postMessage(...args), - addEventListener: (fn) => navigator.serviceWorker.addEventListener('message', (event) => fn(event.data)), - removeEventListener: (fn) => navigator.serviceWorker.removeEventListener('message', fn) + addEventListener: (fn) => { + const listener = (event) => fn(event.data) + navigator.serviceWorker.addEventListener('message', listener) + return () => navigator.serviceWorker.removeEventListener('message', listener) + }, })) } if (Capacitor.getPlatform() === 'web') { const browser = (await import('../lib/browser-api')).default return { postMessage: (data) => browser.runtime.sendMessage(data), - addEventListener: (fn) => browser.runtime.onMessage.addListener(fn), - removeEventListener: (fn) => browser.runtime.onMessage.addListener(fn) + addEventListener: (fn) => { + browser.runtime.onMessage.addListener(fn) + return () => browser.runtime.onMessage.removeListener(fn) + }, } } } @@ -64,13 +68,13 @@ export default class Controller implements IController { listener() } } - let worker + let worker, removeListener this.getWorker().then(w => { worker = w - worker.addEventListener(eventListener) + removeListener = worker.addEventListener(eventListener) }) - return function() { - worker.removeEventListener(eventListener) + return () => { + removeListener && removeListener() } } @@ -130,10 +134,10 @@ export default class Controller implements IController { if (data.type === 'getKeyResponse') { console.log('Message response received', data) resolve(data.params[0]) - worker.removeEventListener(eventListener) + removeEventListener() } } - worker.addEventListener(eventListener) + const removeEventListener = worker.addEventListener(eventListener) const message = { type: 'getKey', params: [] } worker.postMessage(message) console.log('Sending message to service worker: ', message) @@ -149,10 +153,10 @@ export default class Controller implements IController { if (data.type === 'getUnlockedResponse') { resolve(data.params[0]) console.log('Message response received', data) - worker.removeEventListener(eventListener) + removeEventListener() } } - worker.addEventListener(eventListener) + const removeEventListener = worker.addEventListener(eventListener) const message = { type: 'getUnlocked', params: [] } worker.postMessage(message) console.log('Sending message to service worker: ', message) From 7c4bb7ee63bbaf25c455137df050d2ff9909c9af Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 18:08:07 +0200 Subject: [PATCH 041/149] selenium-runner.js: Try to enable host permissions manually --- test/selenium-runner.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 84366a5e07..273e42c305 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -1,6 +1,6 @@ const fs = require('fs') const url = require('url') -const { Builder } = require('selenium-webdriver') +const { Builder, By } = require('selenium-webdriver') const { Preferences, Level, Type, installConsoleHandler } = require('selenium-webdriver/lib/logging') const { Options: ChromeOptions } = require('selenium-webdriver/chrome') const { Options: FirefoxOptions } = require('selenium-webdriver/firefox') @@ -63,6 +63,8 @@ installConsoleHandler() `${__dirname}/../builds/floccus-build-v${VERSION}.zip`, true ) + + // Get extension URL await driver.get('about:debugging') await new Promise(resolve => setTimeout(resolve, 10000)) testUrl = await driver.executeScript(function() { @@ -71,6 +73,12 @@ installConsoleHandler() return extension.extension.baseURL }) if (!testUrl) throw new Error('Could not install extension') + + // Enable permission + await driver.get('about:addons') + await (await driver.findElement(By.name('addon-card'))).click() + await (await driver.findElement(By.id('details-deck-button-permissions'))).click() + await (await driver.findElement(By.id('permission-0'))).click() break default: throw new Error('Unknown browser') From 92083c57b799654956e25d5655d1162d8b2fdf77 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 18:37:14 +0200 Subject: [PATCH 042/149] selenium-runner.js: Try to enable host permissions manually --- test/selenium-runner.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 273e42c305..82320a1deb 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -76,8 +76,11 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') + await driver.sleep(5000) await (await driver.findElement(By.name('addon-card'))).click() + await driver.sleep(2000) await (await driver.findElement(By.id('details-deck-button-permissions'))).click() + await driver.sleep(2000) await (await driver.findElement(By.id('permission-0'))).click() break default: From cb4467769debda66ae34dbb4ab0c6aca266ce039 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 19:34:42 +0200 Subject: [PATCH 043/149] selenium-runner.js: Try to enable host permissions manually --- test/selenium-runner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 82320a1deb..c85bb46196 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -77,7 +77,7 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') await driver.sleep(5000) - await (await driver.findElement(By.name('addon-card'))).click() + await (await driver.findElement(By.css('addon-card'))).click() await driver.sleep(2000) await (await driver.findElement(By.id('details-deck-button-permissions'))).click() await driver.sleep(2000) From fa54fec859fc71b54dfd6241704b5253d6139384 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 23 Jul 2023 20:16:40 +0200 Subject: [PATCH 044/149] selenium-runner.js: Try to enable host permissions manually --- test/selenium-runner.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index c85bb46196..24286b00bf 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -1,6 +1,6 @@ const fs = require('fs') const url = require('url') -const { Builder, By } = require('selenium-webdriver') +const { Builder, By, until } = require('selenium-webdriver') const { Preferences, Level, Type, installConsoleHandler } = require('selenium-webdriver/lib/logging') const { Options: ChromeOptions } = require('selenium-webdriver/chrome') const { Options: FirefoxOptions } = require('selenium-webdriver/firefox') @@ -76,12 +76,12 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') - await driver.sleep(5000) - await (await driver.findElement(By.css('addon-card'))).click() - await driver.sleep(2000) - await (await driver.findElement(By.id('details-deck-button-permissions'))).click() - await driver.sleep(2000) - await (await driver.findElement(By.id('permission-0'))).click() + let card = await driver.wait(until.elementLocated(By.css('addon-card')), 10000) + await card.click() + let menu = await driver.wait(until.elementLocated(By.id('details-deck-button-permissions')), 10000) + await menu.click() + let toggle = await driver.wait(until.elementLocated(By.id('permission-0')), 10000) + await toggle.click() break default: throw new Error('Unknown browser') From 9ee670367919379cc91deb8030d6bdb59d8c60ff Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 2 Aug 2023 14:28:36 +0200 Subject: [PATCH 045/149] Update selenium --- .github/workflows/tests.yml | 7 ++++--- package-lock.json | 12 ++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e9e46ae488..8c26606c87 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -95,20 +95,21 @@ jobs: services: hub: - image: selenium/hub:4.10.0-20230607 + image: selenium/hub:4.11.0-20230801 ports: - 4442:4442 - 4443:4443 - 4444:4444 firefox: - image: selenium/node-firefox:4.10.0-20230607 + image: selenium/node-firefox:4.11.0-20230801 + env: SE_EVENT_BUS_HOST: hub SE_EVENT_BUS_PUBLISH_PORT: 4442 SE_EVENT_BUS_SUBSCRIBE_PORT: 4443 options: --shm-size="2g" chrome: - image: selenium/node-chrome:4.10.0-20230607 + image: selenium/node-chrome:4.11.0-20230801 env: SE_EVENT_BUS_HOST: hub SE_EVENT_BUS_PUBLISH_PORT: 4442 diff --git a/package-lock.json b/package-lock.json index febb101aa6..332a90a1de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13279,9 +13279,9 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/selenium-webdriver": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.10.0.tgz", - "integrity": "sha512-hSQPw6jgc+ej/UEcdQPG/iBwwMeCEgZr9HByY/J8ToyXztEqXzU9aLsIyrlj1BywBcStO4JQK/zMUWWrV8+riA==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.11.1.tgz", + "integrity": "sha512-bvrnr3UZlLScErOmn8gV6cqc+1PYDHn0575CxUR2U14fMWt7OKxSy0lAThhZq4sq4d1HqP8ebz11oiHSlAQ2WA==", "dev": true, "dependencies": { "jszip": "^3.10.1", @@ -26363,9 +26363,9 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "selenium-webdriver": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.10.0.tgz", - "integrity": "sha512-hSQPw6jgc+ej/UEcdQPG/iBwwMeCEgZr9HByY/J8ToyXztEqXzU9aLsIyrlj1BywBcStO4JQK/zMUWWrV8+riA==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.11.1.tgz", + "integrity": "sha512-bvrnr3UZlLScErOmn8gV6cqc+1PYDHn0575CxUR2U14fMWt7OKxSy0lAThhZq4sq4d1HqP8ebz11oiHSlAQ2WA==", "dev": true, "requires": { "jszip": "^3.10.1", From 01b3216af481e683d7e7b55b082de7aec386ecea Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 2 Aug 2023 14:37:02 +0200 Subject: [PATCH 046/149] selenium-runner.js: New try to set permission manually --- test/selenium-runner.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 24286b00bf..6faa37f4f8 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -76,12 +76,19 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') - let card = await driver.wait(until.elementLocated(By.css('addon-card')), 10000) - await card.click() - let menu = await driver.wait(until.elementLocated(By.id('details-deck-button-permissions')), 10000) - await menu.click() - let toggle = await driver.wait(until.elementLocated(By.id('permission-0')), 10000) - await toggle.click() + await driver.sleep(10000) + await driver.executeScript(function() { + document.querySelector('addon-card').click() + }) + await driver.sleep(10000) + await driver.executeScript(function() { + document.querySelector('#details-deck-button-permissions').click() + }) + await driver.sleep(10000) + await driver.executeScript(function() { + document.querySelector('#permission-0').click() + }) + await driver.sleep(5000) break default: throw new Error('Unknown browser') From a8221bf9fd46af4c51f2ef22a0e13eeb48992496 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 2 Aug 2023 14:57:10 +0200 Subject: [PATCH 047/149] selenium-runner.js: New try to set permission manually --- test/selenium-runner.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 6faa37f4f8..1d65ff22f1 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -66,7 +66,7 @@ installConsoleHandler() // Get extension URL await driver.get('about:debugging') - await new Promise(resolve => setTimeout(resolve, 10000)) + await driver.sleep(10000) testUrl = await driver.executeScript(function() { const extension = WebExtensionPolicy.getActiveExtensions() .find(({name}) => name === 'floccus bookmarks sync') @@ -77,6 +77,12 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') await driver.sleep(10000) + console.log(await driver.getPageSource()) + await driver.executeScript(function() { + document.querySelector('button[name=extension]').click() + }) + await driver.sleep(10000) + console.log(await driver.getPageSource()) await driver.executeScript(function() { document.querySelector('addon-card').click() }) From 688bd7f74205b47ac75ca6ab2088c0ef0902f277 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 02:39:12 +0000 Subject: [PATCH 048/149] Translate _locales/en/messages.json in ja 100% translated source file: '_locales/en/messages.json' on 'ja'. --- _locales/ja/messages.json | 663 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 663 insertions(+) create mode 100644 _locales/ja/messages.json diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json new file mode 100644 index 0000000000..365350a2a8 --- /dev/null +++ b/_locales/ja/messages.json @@ -0,0 +1,663 @@ +{ + "Error001": { + "message": "E001: 作成するフォルダーが存在しません" + }, + "Error002": { + "message": "E002: アップデートするブックマークは既に存在しません" + }, + "Error003": { + "message": "E003: 移動するフォルダーが存在しません。" + }, + "Error004": { + "message": "E004: 移動先のフォルダーが存在しません" + }, + "Error005": { + "message": "E005: 作成するフォルダーが存在しません" + }, + "Error006": { + "message": "E006: アップデートするフォルダーが存在しません" + }, + "Error007": { + "message": "E007: 移動するフォルダーが存在しません" + }, + "Error008": { + "message": "E008: 移動元のフォルダーが存在しません" + }, + "Error009": { + "message": "E009: 移動先のフォルダーが存在しません" + }, + "Error010": { + "message": "E010: 並べ替えるフォルダーが見つかりません" + }, + "Error011": { + "message": "E011: フォルダー内のアイテムの順序が、実際の子アイテムとは異なります: {0}" + }, + "Error012": { + "message": "E012: フォルダーのいくつかの子アイテムは、フォルダーの並び順がありません" + }, + "Error013": { + "message": "E013: 削除しようとしているフォルダーは存在しません" + }, + "Error014": { + "message": "E014: フォルダーを削除しようとしている親フォルダーは、存在しません" + }, + "Error015": { + "message": "E015: 予期せぬデータがサーバーから応答されました" + }, + "Error016": { + "message": "E016: リクエストがタイムアウトしました。サーバーの構成を確認してください" + }, + "Error017": { + "message": "E017: ネットワークエラー: ネットワーク接続とアカウントの詳細を確認してください" + }, + "Error018": { + "message": "E018: サーバーで認証できません。" + }, + "Error019": { + "message": "E019: HTTP ステータス {0}。{1} リクエスト失敗。サーバーの構成とログを確認してください。" + }, + "Error020": { + "message": "E020: サーバーの応答を解析できませんでした。本当に、サーバーにブックマークアプリがインストールされていますか?" + }, + "Error021": { + "message": "E021: 一貫性のないサーバーの状態。フォルダーは子のリストにはありますが、フォルダーツリーにはありません" + }, + "Error022": { + "message": "E022: フォルダー {0} に存在しないブックマーク {1} が含まれている可能性があります" + }, + "Error023": { + "message": "E023: ロックファイルをクリアできませんでした。{0} を手動で削除してみてください。" + }, + "Error024": { + "message": "E024: ロックファイル {1} のステータスを確認中に、HTTP ステータス {0} が発生しました" + }, + "Error025": { + "message": "E025: ブックマークファイルの設定は、スラッシュ: '/' で始まってはいけません" + }, + "Error026": { + "message": "E026: HTTP ステータス {0}。ブックマークのフェッチに失敗しました" + }, + "Error027": { + "message": "E027: 同期のプロセスが中断されました" + }, + "Error028": { + "message": "E028: サーバーで認証できません。" + }, + "Error029": { + "message": "E029: フィールセーフ: 現在の同期を実行すると、ブックマーク {0}% が削除されます。続行する場合は、アカウント設定でフィールセーフを無効にしてください。" + }, + "Error030": { + "message": "E030: ブックマークファイルの復号に失敗しました。パスフレーズが間違っているか、ファイルが破損しています。" + }, + "Error031": { + "message": "E031: Google ドライブでクラウドを認証できませんでした。もう一度、floccus を Google アカウントと接続してください。" + }, + "Error032": { + "message": "E032: OAuth エラー。トークンの検証でエラーが発生しました。もう一度、Google アカウントと接続してください。" + }, + "Error033": { + "message": "E033: リダイレクトが検出されました。サーバーが選択した同期の方法に対応していて、入力した URL が正確であることを確認し、間違った場所にリダイレクトされていないことを確認してください。もし、予期した通りにリダイレクトされている場合、設定でリダイレクトの確認を無効にできます。" + }, + "Error034": { + "message": "E034: リモートのブックマークを読み取れません。暗号化パスフレーズを忘れましたか?" + }, + "Error035": { + "message": "E035: 次のブックマークのサーバーへの作成に失敗しました: {0}" + }, + "LabelWebdavurl": { + "message": "WebDAV URL" + }, + "DescriptionWebdavurl": { + "message": "Nextcloud の例: https://example.com/remote.php/webdav/" + }, + "LabelNextcloudurl": { + "message": "Nextcloud URL" + }, + "LabelUsername": { + "message": "ユーザー名" + }, + "LabelPassword": { + "message": "パスワード" + }, + "LabelBookmarksfile": { + "message": "ブックマークファイルのパス" + }, + "DescriptionBookmarksfile": { + "message": "WebDAV URL からのブックマークファイルの相対パス (パスのすべてのフォルダーがすでに存在していなければなりません) 例: personal_stuff/bookmarks.xbel" + }, + "DescriptionBookmarksfilegoogle": { + "message": "Googleドライブに保存するブックマークファイルの名前 (ドライブ内でファイル名が重複していないことを確認してください)" + }, + "LabelServerfolder": { + "message": "サーバーフォルダー" + }, + "DescriptionServerfolder": { + "message": "アカウントがサーバー上で動作するためのパスのプレフィックスです。プレフィックスを使用しない場合は空欄のままにしてください。" + }, + "LabelLocalfolder": { + "message": "ローカルフォルダー" + }, + "DescriptionLocalfolder": { + "message": "このブラウザーからはこのローカル ブックマーク フォルダーがサーバーに同期されます。一部のブラウザー (Firefox、Google Chrome など) はルートフォルダーへの新しいアイテムの作成を許可していないことに注意してください" + }, + "LabelRootfolder": { + "message": "ルートフォルダー" + }, + "LabelNewfolder": { + "message": "新しく作成されたフォルダー" + }, + "LabelOptions": { + "message": "設定" + }, + "LabelSyncnow": { + "message": "今すぐ同期" + }, + "LabelCancelsync": { + "message": "同期をキャンセル" + }, + "LabelAutosync": { + "message": "自動同期" + }, + "StatusLastsynced": { + "message": "最終同期: [0]前" + }, + "StatusNeversynced": { + "message": "まだ同期していません" + }, + "StatusAllgood": { + "message": "同期しました" + }, + "StatusDisabled": { + "message": "無効" + }, + "StatusError": { + "message": "エラー" + }, + "StatusSyncing": { + "message": "同期中" + }, + "LabelReset": { + "message": "リセット" + }, + "DescriptionReset": { + "message": "同期されたフォルダーをリセットして新しいフォルダーを作成する" + }, + "LabelChoosefolder": { + "message": "フォルダーを選択する" + }, + "DescriptionChoosefolder": { + "message": "同期対象の既存のフォルダーを選択する" + }, + "LabelRemoveaccount": { + "message": "アカウントを削除" + }, + "DescriptionRemoveaccount": { + "message": "このアカウントを削除 (ブックマークは削除しません)" + }, + "LabelSyncfromscratch": { + "message": "スクラッチしてから同期をトリガー" + }, + "LabelResetCache": { + "message": "キャッシュをリセット" + }, + "DescriptionResetcache": { + "message": "選択すると、キャッシュがリセットされ、次の同期実行でデータが削除されず、サーバーとローカルのブックマークがマージされるだけになります。" + }, + "LabelParallelsync": { + "message": "同期の高速化" + }, + "DescriptionParallelsync": { + "message": "選択すると、同期の速度を目的として複数のフォルダーを同時に処理します。これは試験運用版の機能で、デバッグログが読みにくくなります。" + }, + "LabelStrategy": { + "message": "同期の方法" + }, + "DescriptionStrategy": { + "message": "この設定は他のデバイス上のブックマークとどのように同期するかを設定します。ふつう、互換性のある限りすべての変更を保持したいと考えるはずです。しかし、変更を他のブラウザーからのデータで上書き (追加と削除の両方を含む) したい場合や、ローカルで作成した変更で上書きしたい場合もあるかもしれません。" + }, + "LabelStrategydefault": { + "message": "常にローカルの変更と他のブラウザーからの変更をマージ (推奨)" + }, + "LabelStrategyslave": { + "message": "常にローカルの変更を取り消し、他のブラウザーから変更をダウンロード" + }, + "LabelStrategyoverwrite": { + "message": "常にローカルの変更をアップロードし、他のブラウザーからの変更を取り消す" + }, + "LabelSave": { + "message": "保存" + }, + "LabelCancel": { + "message": "キャンセル" + }, + "LabelAdd": { + "message": "追加" + }, + "LabelChange": { + "message": "変更" + }, + "LabelRemove": { + "message": "削除" + }, + "LabelBack": { + "message": "戻る" + }, + "LabelAdapternextcloudfolders": { + "message": "Nextcloud Bookmarks" + }, + "DescriptionAdapternextcloudfolders": { + "message": "「Nextcloud Bookmarks」のオプションは Nextclound のブックマークアプリとブックマークを同期します。http と ftp のブックマークのみ同期できます。お使いの Nextcloud でブックマークアプリを Nextcloud アプリストアからインストールしていることを確認してください。" + }, + "LabelAdapternextcloud": { + "message": "Nextcloud Bookmarks (レガシー)" + }, + "DescriptionAdapternextcloud": { + "message": "レガシーオプションは、バージョン 0.11 以降のブックマークアプリに対応しています。フォルダーのパスを含むタグを使用してフォルダーをエミュレートします。新しいアカウントを作成してこちらを使用することはおすすめできません。" + }, + "LabelAdapterwebdav": { + "message": "WebDAV 共有" + }, + "DescriptionAdapterwebdav": { + "message": "WebDAV オプションは、提供された WebDAV 共有のファイルにブックマークを保存して同期します。ウェブ UI はなく、任意の WebDAV 互換サーバーで使用できます。http、ftp、データ、ファイル、JavaScript のブックマークを同期できます。" + }, + "LabelAddaccount": { + "message": "アカウントを追加" + }, + "LabelSecurecredentials": { + "message": "認証情報を保護" + }, + "LabelSecuredcredentials": { + "message": "認証情報は保護されています" + }, + "LabelOpenintab": { + "message": "タブで開く" + }, + "LabelDebuglogs": { + "message": "デバッグログ" + }, + "LabelFunddevelopment": { + "message": "開発資金を支援" + }, + "DescriptionFunddevelopment": { + "message": "任意のサブスクリプションによって floccus の開発を促進できます。私の活動に価値を感じてくださり、大きな苦労なしに数枚のコインを準備できるようなら、開発を支援してください。お使いになったアドオンストアで floccus を評価していただくこともお考えください。ありがとうございます!💙" + }, + "LabelSelect": { + "message": "選択" + }, + "LabelUntitledfolder": { + "message": "名前のないフォルダー" + }, + "LabelSetkey": { + "message": "floccus にパスフレーズを設定" + }, + "DescriptionSetkey": { + "message": "パスフレーズを設定すると、ブックマークを同期したいとき、設定を変更したいときなど floccus に関することをするとき、このパスフレーズをブラウザーを起動するごとに入力する必要があります。" + }, + "LabelSetkeybutton": { + "message": "パスフレーズを設定" + }, + "LabelKey": { + "message": "ロック解除用のパスフレーズを入力してください" + }, + "LabelKey2": { + "message": "パスフレーズをもう一度入力してください" + }, + "LabelUnlock": { + "message": "floccu をロック解除" + }, + "LabelRemovekey": { + "message": "パスフレーズを削除" + }, + "LabelRemovedkey": { + "message": "パスフレーズが削除されました" + }, + "LabelSyncinterval": { + "message": "同期間隔" + }, + "DescriptionSyncinterval": { + "message": "次の同期までの周期 (分)。デフォルトでは 15 分です。" + }, + "LabelChooseadapter": { + "message": "どのように同期しますか?" + }, + "LabelOptionsscreen": { + "message": "{0} 件のオプション", + "description": "Title of the options screen. The placeholder holds the account type." + }, + "LabelPaypal": { + "message": "Paypal" + }, + "DescriptionPaypal": { + "message": "Paypal で 1 回限りの寄付をしてプロジェクトを支援する" + }, + "LabelOpencollective": { + "message": "OpenCollective" + }, + "DescriptionOpencollective": { + "message": "OpenCollective で定期的に寄付をしてプロジェクトを支援する" + }, + "LabelLiberapay": { + "message": "Liberapay" + }, + "DescriptionLiberapay": { + "message": "Liberapay で定期的に寄付をしてプロジェクトを支援する" + }, + "LabelGithubsponsors": { + "message": "GitHub sponsors" + }, + "DescriptionGithubsponsors": { + "message": "GitHub sponsors で定期的に寄付をしてプロジェクトを支援する" + }, + "LegacyAdapterDeprecation": { + "message": "このレガシーアカウントタイプは非推奨になり、間もなく削除されます。新しい Nextcloud の同期方法に変更してください。改善されたパフォーマンスと精度でななたをお待ちしています。" + }, + "LabelUpdated": { + "message": "floccus が更新されました" + }, + "DescriptionUpdated": { + "message": "おめでとうございます。floccus の更新がマシンに到着しました!" + }, + "LabelReleaseNotes": { + "message": "リリース・ノートを読む" + }, + "LabelOptionsServerDetails": { + "message": "サーバーの詳細" + }, + "LabelOptionsFolderMapping": { + "message": "フォルダーの関連付け" + }, + "LabelOptionsSyncBehavior": { + "message": "同期の動作" + }, + "LabelOptionsDangerous": { + "message": "危険なアクション" + }, + "LabelAccountDeleted": { + "message": "アカウントが削除されました" + }, + "DescriptionAccountDeleted": { + "message": "このアカウントは削除されました" + }, + "LabelNoAccount": { + "message": "アカウントがありません" + }, + "DescriptionNoAccount": { + "message": "ブックマークを同期するには、新しいアカウントを作成するか、別の端末やブラウザーからアカウントをインポートしてください。" + }, + "LabelLoginFlowStart": { + "message": "Nextcloud でログイン" + }, + "LabelLoginFlowStop": { + "message": "Nextcloud ログインを中止" + }, + "LabelLoginFlowError": { + "message": "Nectcloud ログインに失敗しました" + }, + "LabelNewAccount": { + "message": "新しいアカウント" + }, + "LabelNestedSync": { + "message": "入れ子アカウント" + }, + "DescriptionNestedSync": { + "message": "親フォルダーがアカウント A に属し、子フォルダーがアカウント A と B に属するというように、アカウントを入れ子にすることができます。他のアカウントにこのアカウントのフォルダーを同期することを許可しますか?" + }, + "LabelNestedSyncNo": { + "message": "いいえ、他のアカウントではこのアカウントのフォルダーを無視します" + }, + "LabelNestedSyncYes": { + "message": "はい、他のアカウントにこのアカウントのフォルダーを含めます" + }, + "LabelImportExport": { + "message": "アカウントのインポート/エクスポート" + }, + "LabelExport": { + "message": "アカウントをエクスポート" + }, + "LabelImport": { + "message": "アカウントをインポート" + }, + "DescriptionExport": { + "message": "次から、ファイルにエクスポートするアカウントを選択してください。同じアカウントを別の端末やブラウザーで簡単に再作成できるようになります。" + }, + "DescriptionImport": { + "message": "別の端末やブラウザーでファイルにエクスポートしたアカウントを再作成できます。インポートした後、正しい同期フォルダーを再設定してください。" + }, + "LabelFolderNotFound": { + "message": "フォルダーが見つかりませんでした" + }, + "LabelSyncTabs": { + "message": "タブを同期" + }, + "LabelTabs": { + "message": "タブ" + }, + "LabelSyncDown": { + "message": "プルダウン" + }, + "DescriptionSyncDown": { + "message": "他のブラウザーの変更をダウンロードしてローカルの変更を上書き" + }, + "LabelSyncUp": { + "message": "プッシュアップ" + }, + "DescriptionSyncUp": { + "message": "ローカルの変更をアップロードして他のブラウザーの変更を上書き" + }, + "LabelSyncDownOnce": { + "message": "一度だけプルダウン" + }, + "LabelSyncUpOnce": { + "message": "一度だけプッシュアップ" + }, + "LabelSyncNormal": { + "message": "マージ" + }, + "DescriptionSyncNormal": { + "message": "ローカルの変更と他のブラウザーの変更をマージ" + }, + "DescriptionFilesPermission": { + "message": "floccus に、ブックマークアプリを使用する権限だけでなく、Nextcloud ファイルアプリを使用する権限も付与していることを確認してください。" + }, + "DescriptionExtension": { + "message": "ブラウザーや端末を超えて、ブックマークをプライベートに同期する" + }, + "LabelFailsafe": { + "message": "フィールセーフ" + }, + "DescriptionFailsafe": { + "message": "設定のエラーやソフトウエアのバグによって、意図しないデータの削除が行われ、データが失われる場合があります。この問題の発生を防ぐため、ここでフィールセーフを無効にしない限り、floccus は一度に 50% 以上のブックマークを削除しません。" + }, + "LabelFailsafeon": { + "message": "有効。確認なしでローカルブックマークの 50% 以上を削除しません。(推奨)" + }, + "LabelFailsafeoff": { + "message": "無効。確認なしでローカルブックマークの 50% 以上を削除することを許可します。" + }, + "StatusFailsafeoff": { + "message": "フィールセーフが無効になりました。意図しないデータ消失のリスクがあります。アカウント設定でフィールセーフを有効にすることを推奨します。" + }, + "LabelAdaptergoogledrive": { + "message": "Google ドライブ" + }, + "DescriptionAdaptergoogledrive": { + "message": "あなたの Google ドライブに保存された、暗号化されたファイルを使用してブックマークを同期します。http、ftp、データ、ファイル、JavaScript のブックマークを同期できます。" + }, + "LabelLogingoogle": { + "message": "Google でログイン" + }, + "DescriptionLogingoogle": { + "message": "Google ドライブにブックマークの同期ファイルを保存するために、Google アカウントに接続してください。" + }, + "DescriptionLoggedingoogle": { + "message": "Google ドライブにブックマークの同期ファイルを保存するために、Google アカウントに接続しました。" + }, + "LabelPassphrase": { + "message": "パスフレーズ" + }, + "DescriptionPassphrase": { + "message": "ブックマークファイルを暗号化するためのパスフレーズを設定してください。パスフレーズを設定しない場合、暗号化は行われません。" + }, + "LabelClientcert": { + "message": "クライアント認証情報を送信する" + }, + "DescriptionClientcert": { + "message": "サーバーが認証にクライアント証明書または Cookie を要求する場合は、このオプションを有効にしてください。floccus は通常のブラウザーのプロファイルと Cookie を共有するため、予期せぬ副作用を引き起こす場合があります。" + }, + "LabelAllowredirects": { + "message": "サーバー URL のリダイレクトを許可する" + }, + "DescriptionAllowredirects": { + "message": "不当と考えられるリダイレクトエラーが同期中に発生する場合は、このオプションを有効にしてください。" + }, + "LabelSearch": { + "message": "ブックマークを検索" + }, + "LabelSearchfolder": { + "message": "検索 {0}" + }, + "LabelEdititem": { + "message": "編集" + }, + "LabelDeleteitem": { + "message": "削除" + }, + "LabelNobookmarks": { + "message": "ブックマークがありません" + }, + "LabelAddbookmark": { + "message": "ブックマークを追加" + }, + "LabelEditbookmark": { + "message": "ブックマークを編集" + }, + "LabelAddfolder": { + "message": "フォルダーを追加" + }, + "LabelEditfolder": { + "message": "フォルダーを編集" + }, + "LabelSlugline": { + "message": "プライベートなブックマーク同期" + }, + "LabelDownloadlogs": { + "message": "ログをダウンロード" + }, + "LabelDownloadfulllogs": { + "message": "完全なログ" + }, + "LabelDownloadanonymizedlogs": { + "message": "編集されたログ" + }, + "DescriptionDownloadlogs": { + "message": "floccus はあなたが調査に利用したり、デバッグの目的で開発者に送信したりするためにすべてのアクションをログファイルに記録しています。編集されたログでは、フォルダーとブックマークの名前、および URL が、暗号化ハッシュ関数を使用して不可逆的にエンコードされます。それでも、編集されたログを送信する際は、匿名化プロセスで処理されかったセンシティブなデータがないか、ダウンロードしたファイルを確認してください。" + }, + "ErrorFolderloopselected": { + "message": "フォルダーをその中に移動することはできません" + }, + "ErrorNofolderselected": { + "message": "フォルダーが選択されていません" + }, + "LabelAllownetwork": { + "message": "ネットワークの使用を許可する" + }, + "DescriptionAllownetwork": { + "message": "floccus は、同期サーバーへの接続とは別にネットワークを使用して、ブックマークに関する追加情報 (アイコンなど) を取得できます。ここで、そのようなネットワークの使用を有効にするか選択します。" + }, + "LabelMobilesettings": { + "message": "モバイルの設定" + }, + "LabelContinuefloccus":{ + "message": "floccus で続行" + }, + "LabelAbout":{ + "message": "floccus について" + }, + "LabelCurrentversion": { + "message": "現在のバージョン" + }, + "DescriptionCurrentversion": { + "message": "あなたが使用中の floccus のバージョン:" + }, + "LabelContributors": { + "message": "貢献者" + }, + "DescriptionContributors": { + "message": "これらの人々が floccus の開発を可能にしました" + }, + "LabelSortcustom": { + "message": "カスタム" + }, + "LabelSorturl": { + "message": "リンク" + }, + "LabelSorttitle": { + "message": "タイトル" + }, + "LabelSyncmethod": { + "message": "同期の方法" + }, + "LabelSyncserver": { + "message": "同期先サーバー" + }, + "LabelSyncfolders": { + "message": "同期するフォルダー" + }, + "LabelSyncbehavior": { + "message": "同期の動作" + }, + "LabelContinue": { + "message": "続行" + }, + "LabelDone": { + "message": "完了" + }, + "LabelConnect": { + "message": "接続" + }, + "LabelServersetup": { + "message": "どのサーバーと同期しますか?" + }, + "LabelGoogledrivesetup": { + "message": "Google ドライブにログイン" + }, + "LabelSyncfoldersetup": { + "message": "どのフォルダーを同期しますか?" + }, + "LabelSyncbehaviorsetup": { + "message": "どのように同期しますか?" + }, + "LabelAccountcreated": { + "message": "アカウントが作成されました" + }, + "DescriptionNonhttps": { + "message": "安全ではないプロトコルを使用するサーバーを入力しました。HTTPS に対応するサーバーの使用を推奨しています。" + }, + "LabelFiletype": { + "message": "ファイルのフォーマット" + }, + "DescriptionFiletype": { + "message": "クラウド上に保存したいファイルのフォーマットを選択できます。" + }, + "LabelFiletypehtml": { + "message": "HTML, 広くサポートされたオープンなフォーマット (試験運用機能)" + }, + "LabelFiletypexbel": { + "message": "XBEL, シンプルでオープンなフォーマット" + }, + "LabelImportbookmarks": { + "message": "ブックマークをインポート" + }, + "DescriptionImportbookmarks": { + "message": "ブックマークを含む HTML ファイルを現在のフォルダーにインポート" + }, + "LabelExportBookmarks": { + "message": "ブックマークをエクスポート" + }, + "DescriptionExportBookmarks" : { + "message": "このアカウントのブックマークを、すべてのメジャーなブラウザーと互換性のある HTML ファイルとしてエクスポートできます。" + }, + "LabelShareitem": { + "message": "共有" + } +} From c62e8d5e9a8a9da0ae95f4fe78720c6232052298 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 15:30:49 +0200 Subject: [PATCH 049/149] remove passphrase feature --- _locales/en/messages.json | 12 ---- src/lib/Account.ts | 5 +- src/lib/Controller.ts | 36 +--------- src/lib/browser/BrowserAccount.ts | 13 +--- src/lib/browser/BrowserController.js | 40 ++--------- src/lib/interfaces/Controller.ts | 3 - src/lib/native/NativeAccount.ts | 9 +-- src/lib/native/NativeController.js | 35 --------- src/ui/App.vue | 3 - src/ui/NativeApp.vue | 3 - src/ui/router.js | 6 -- src/ui/store/actions.js | 10 --- src/ui/store/definitions.js | 1 - src/ui/store/index.js | 1 - src/ui/store/mutations.js | 3 - src/ui/store/native/index.js | 1 - src/ui/store/native/mutations.js | 3 - src/ui/views/SetKey.vue | 102 --------------------------- 18 files changed, 14 insertions(+), 272 deletions(-) delete mode 100644 src/ui/views/SetKey.vue diff --git a/_locales/en/messages.json b/_locales/en/messages.json index af57d4d7e0..6e80e8b09f 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -266,12 +266,6 @@ "LabelAddaccount": { "message": "Add account" }, - "LabelSecurecredentials": { - "message": "Secure your credentials" - }, - "LabelSecuredcredentials": { - "message": "Your credentials are secure" - }, "LabelOpenintab": { "message": "Open in tab" }, @@ -290,12 +284,6 @@ "LabelUntitledfolder": { "message": "Untitled folder" }, - "LabelSetkey": { - "message": "Set a passphrase for floccus" - }, - "DescriptionSetkey": { - "message": "When you set a passphrase you will have to enter this pass phrase everytime you start your browser if you want to access and synchronize your bookmarks, change your settings or do anything else with floccus." - }, "LabelSetkeybutton": { "message": "Set passphrase" }, diff --git a/src/lib/Account.ts b/src/lib/Account.ts index 8a04a84619..6b3a1977d2 100644 --- a/src/lib/Account.ts +++ b/src/lib/Account.ts @@ -7,7 +7,6 @@ import DefaultSyncProcess from './strategies/Default' import IAccountStorage, { IAccountData, TAccountStrategy } from './interfaces/AccountStorage' import { TAdapter } from './interfaces/Adapter' import { IResource, TLocalTree } from './interfaces/Resource' -import Controller from './Controller' import { Capacitor } from '@capacitor/core' import IAccount from './interfaces/Account' import Mappings from './Mappings' @@ -111,9 +110,7 @@ export default class Account { } async setData(data:IAccountData):Promise { - const controller = await Controller.getSingleton() - const key = await controller.getKey() - await this.storage.setAccountData(data, key) + await this.storage.setAccountData(data, null) this.server.setData(data) } diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts index 7b86941179..d208708b49 100644 --- a/src/lib/Controller.ts +++ b/src/lib/Controller.ts @@ -9,6 +9,7 @@ interface FloccusWorker { export default class Controller implements IController { public static singleton: IController private worker: FloccusWorker|null + private key: string|null|undefined static async getSingleton():Promise { if (!this.singleton) { @@ -93,14 +94,6 @@ export default class Controller implements IController { console.log('Sending message to service worker: ', message) } - async setKey(key): Promise { - console.log('Waiting for service worker readiness') - const worker = await this.getWorker() - const message = {type: 'setKey', params: [key]} - worker.postMessage(message) - console.log('Sending message to service worker: ', message) - } - async syncAccount(accountId, strategy): Promise { console.log('Waiting for service worker readiness') const worker = await this.getWorker() @@ -117,33 +110,6 @@ export default class Controller implements IController { console.log('Sending message to service worker: ', message) } - async unsetKey(): Promise { - console.log('Waiting for service worker readiness') - const worker = await this.getWorker() - const message = {type: 'unsetKey', params: []} - worker.postMessage(message) - console.log('Sending message to service worker: ', message) - } - - async getKey(): Promise { - console.log('Waiting for service worker readiness') - const worker = await this.getWorker() - // eslint-disable-next-line no-async-promise-executor - return new Promise((resolve) => { - const eventListener = (data) => { - if (data.type === 'getKeyResponse') { - console.log('Message response received', data) - resolve(data.params[0]) - removeEventListener() - } - } - const removeEventListener = worker.addEventListener(eventListener) - const message = { type: 'getKey', params: [] } - worker.postMessage(message) - console.log('Sending message to service worker: ', message) - }) - } - async getUnlocked(): Promise { console.log('Waiting for service worker readiness') const worker = await this.getWorker() diff --git a/src/lib/browser/BrowserAccount.ts b/src/lib/browser/BrowserAccount.ts index f9090a083e..dc8cff3ea9 100644 --- a/src/lib/browser/BrowserAccount.ts +++ b/src/lib/browser/BrowserAccount.ts @@ -13,14 +13,11 @@ import { UnknownFolderItemOrderError } from '../../errors/Error' import {i18n} from '../native/I18n' -import Controller from '../Controller' export default class BrowserAccount extends Account { static async get(id:string):Promise { const storage = new BrowserAccountStorage(id) - const controller = await Controller.getSingleton() - const key = await controller.getKey() - const data = await storage.getAccountData(key) + const data = await storage.getAccountData(null) const tree = new BrowserTree(storage, data.localRoot) return new BrowserAccount(id, storage, await AdapterFactory.factory(data), tree) } @@ -30,9 +27,7 @@ export default class BrowserAccount extends Account { const adapter = await AdapterFactory.factory(data) const storage = new BrowserAccountStorage(id) - const controller = await Controller.getSingleton() - const key = await controller.getKey() - await storage.setAccountData(data, key) + await storage.setAccountData(data, null) const tree = new BrowserTree(storage, data.localRoot) return new BrowserAccount(id, storage, adapter, tree) } @@ -71,9 +66,7 @@ export default class BrowserAccount extends Account { } async updateFromStorage():Promise { - const controller = await Controller.getSingleton() - const key = await controller.getKey() - const data = await this.storage.getAccountData(key) + const data = await this.storage.getAccountData(null) this.server.setData(data) this.localTree = new BrowserTree(this.storage, data.localRoot) } diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 7f181cd461..03845df266 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -151,26 +151,6 @@ export default class BrowserController { } } - async setKey(key) { - let accounts = await Account.getAllAccounts() - await Promise.all(accounts.map(a => a.updateFromStorage())) - this.key = key - let hashedKey = await Cryptography.sha256(key) - let encryptedHash = await Cryptography.encryptAES( - key, - hashedKey, - 'FLOCCUS' - ) - await browser.storage.local.set({ accountsLocked: encryptedHash }) - if (accounts.length) { - await Promise.all(accounts.map(a => a.setData(a.getData()))) - } - - // ...aand unlock it immediately. - this.unlocked = true - this.setEnabled(true) - } - async unlock(key) { let d = await browser.storage.local.get({ 'accountsLocked': null }) if (d.accountsLocked) { @@ -190,22 +170,16 @@ export default class BrowserController { this.setEnabled(true) // remove encryption - this.unsetKey() - } - - async unsetKey() { - if (!this.unlocked) { - throw new Error('Cannot disable encryption without unlocking first') + this.key = null + await browser.storage.local.set({ accountsLocked: null }) + const accountIds = BrowserAccountStorage.getAllAccounts() + for (let accountId of accountIds) { + const storage = new BrowserAccountStorage(accountId) + const data = await storage.getAccountData(key) + await storage.setAccountData(data, null) } let accounts = await BrowserAccount.getAllAccounts() await Promise.all(accounts.map(a => a.updateFromStorage())) - this.key = null - await browser.storage.local.set({ accountsLocked: null }) - await Promise.all(accounts.map(a => a.setData(a.getData()))) - } - - getKey() { - return Promise.resolve(this.key) } getUnlocked() { diff --git a/src/lib/interfaces/Controller.ts b/src/lib/interfaces/Controller.ts index fd03e0d5b2..9856b2cf7e 100644 --- a/src/lib/interfaces/Controller.ts +++ b/src/lib/interfaces/Controller.ts @@ -1,13 +1,10 @@ export default interface IController { setEnabled(enabled:boolean): void; - setKey(key):Promise; unlock(key):Promise; - unsetKey():Promise; scheduleSync(accountId, wait):Promise; cancelSync(accountId, keepEnabled):Promise; syncAccount(accountId, strategy):Promise; onStatusChange(listener):()=>void; - getKey():Promise; getUnlocked():Promise; onLoad():void; } diff --git a/src/lib/native/NativeAccount.ts b/src/lib/native/NativeAccount.ts index d77c1ad21e..1df69e77cf 100644 --- a/src/lib/native/NativeAccount.ts +++ b/src/lib/native/NativeAccount.ts @@ -3,7 +3,6 @@ import NativeTree from './NativeTree' import AdapterFactory from '../AdapterFactory' import Account from '../Account' import { IAccountData } from '../interfaces/AccountStorage' -import Controller from '../Controller' import { CreateBookmarkError, FailsafeError, FloccusError, @@ -19,9 +18,7 @@ import { i18n } from './I18n' export default class NativeAccount extends Account { static async get(id:string):Promise { const storage = new NativeAccountStorage(id) - const controller = await Controller.getSingleton() - const key = await controller.getKey() - const data = await storage.getAccountData(key) + const data = await storage.getAccountData(null) const tree = new NativeTree(storage) await tree.load() return new NativeAccount(id, storage, await AdapterFactory.factory(data), tree) @@ -32,9 +29,7 @@ export default class NativeAccount extends Account { const adapter = await AdapterFactory.factory(data) const storage = new NativeAccountStorage(id) - const controller = await Controller.getSingleton() - const key = await controller.getKey() - await storage.setAccountData(data, key) + await storage.setAccountData(data, null) const tree = new NativeTree(storage) await tree.load() return new NativeAccount(id, storage, adapter, tree) diff --git a/src/lib/native/NativeController.js b/src/lib/native/NativeController.js index d68159556d..c3e72b841c 100644 --- a/src/lib/native/NativeController.js +++ b/src/lib/native/NativeController.js @@ -68,26 +68,6 @@ export default class NativeController { this.enabled = enabled } - async setKey(key) { - let accounts = await Account.getAllAccounts() - await Promise.all(accounts.map(a => a.updateFromStorage())) - this.key = key - let hashedKey = await Cryptography.sha256(key) - let encryptedHash = await Cryptography.encryptAES( - key, - hashedKey, - 'FLOCCUS' - ) - await Storage.set({ key: 'accountsLocked', value: encryptedHash }) - if (accounts.length) { - await Promise.all(accounts.map(a => a.setData(a.getData()))) - } - - // ...aand unlock it immediately. - this.unlocked = true - this.setEnabled(true) - } - async unlock(key) { let accountsLocked = await Storage.get({ key: 'accountsLocked' }) if (accountsLocked) { @@ -107,21 +87,6 @@ export default class NativeController { this.setEnabled(true) } - async unsetKey() { - if (!this.unlocked) { - throw new Error('Cannot disable encryption without unlocking first') - } - let accounts = await Account.getAllAccounts() - await Promise.all(accounts.map(a => a.updateFromStorage())) - this.key = null - await Storage.set({ key: 'accountsLocked', value: null }) - await Promise.all(accounts.map(a => a.setData(a.getData()))) - } - - getKey() { - return Promise.resolve(this.key) - } - getUnlocked() { return Promise.resolve(this.unlocked) } diff --git a/src/ui/App.vue b/src/ui/App.vue index 35d723250a..c0aa5690ed 100644 --- a/src/ui/App.vue +++ b/src/ui/App.vue @@ -87,9 +87,6 @@ export default { locked() { return this.$store.state.locked }, - secured() { - return this.$store.state.secured - }, routes() { return routes }, diff --git a/src/ui/NativeApp.vue b/src/ui/NativeApp.vue index c87b5e58eb..aae476548b 100644 --- a/src/ui/NativeApp.vue +++ b/src/ui/NativeApp.vue @@ -23,9 +23,6 @@ export default { locked() { return false }, - secured() { - return false - }, background() { return this.$vuetify.theme.dark ? '#000' : '#fff' } diff --git a/src/ui/router.js b/src/ui/router.js index 202d70c5f2..a8d6901f3b 100644 --- a/src/ui/router.js +++ b/src/ui/router.js @@ -2,7 +2,6 @@ import Vue from 'vue' import Router from 'vue-router' import Overview from './views/Overview' import NewAccount from './views/NewAccount' -import SetKey from './views/SetKey' import Update from './views/Update' import ImportExport from './views/ImportExport' import Donate from './views/Donate' @@ -45,11 +44,6 @@ export const router = new Router({ name: 'ABOUT', component: About, }, - { - path: '/set-key', - name: routes.SET_KEY, - component: SetKey, - }, { path: '/update', name: routes.UPDATE, diff --git a/src/ui/store/actions.js b/src/ui/store/actions.js index ba9673c6df..c5e95fe1fc 100644 --- a/src/ui/store/actions.js +++ b/src/ui/store/actions.js @@ -10,10 +10,8 @@ import { Base64 } from 'js-base64' export const actionsDefinition = { async [actions.LOAD_LOCKED]({ commit, dispatch, state }) { const controller = await Controller.getSingleton() - const key = await controller.getKey() const unlocked = await controller.getUnlocked() commit(mutations.SET_LOCKED, !unlocked) - commit(mutations.SET_SECURED, typeof key === 'string' || !unlocked) }, async [actions.UNLOCK]({commit, dispatch, state}, key) { const controller = await Controller.getSingleton() @@ -25,14 +23,6 @@ export const actionsDefinition = { } commit(mutations.SET_LOCKED, false) }, - async [actions.SET_KEY]({commit, dispatch, state}, key) { - const controller = await Controller.getSingleton() - await controller.setKey(key) - }, - async [actions.UNSET_KEY]({commit, dispatch, state}) { - const controller = await Controller.getSingleton() - await controller.unsetKey() - }, async [actions.LOAD_ACCOUNTS]({ commit, dispatch, state }) { commit(mutations.LOADING_START, 'accounts') const accountsArray = await Account.getAllAccounts() diff --git a/src/ui/store/definitions.js b/src/ui/store/definitions.js index 392d96a0ed..d3bdcc2338 100644 --- a/src/ui/store/definitions.js +++ b/src/ui/store/definitions.js @@ -36,7 +36,6 @@ export const mutations = { LOADING_START: 'LOADING_START', LOADING_END: 'LOADING_END', SET_LOCKED: 'SET_LOCKED', - SET_SECURED: 'SET_SECURED', LOAD_ACCOUNTS: 'LOAD_ACCOUNTS', STORE_ACCOUNT_DATA: 'STORE_ACCOUNT_DATA', REMOVE_ACCOUNT: 'REMOVE_ACCOUNT', diff --git a/src/ui/store/index.js b/src/ui/store/index.js index 9f9d31fe68..bf48e8a7bb 100644 --- a/src/ui/store/index.js +++ b/src/ui/store/index.js @@ -13,7 +13,6 @@ export default new Store({ actions: actionsDefinition, state: { locked: false, - secured: false, accounts: {}, loginFlow: { isRunning: false diff --git a/src/ui/store/mutations.js b/src/ui/store/mutations.js index 312e38c78d..066c803bfe 100644 --- a/src/ui/store/mutations.js +++ b/src/ui/store/mutations.js @@ -5,9 +5,6 @@ export const mutationsDefinition = { [mutations.SET_LOCKED](state, locked) { state.locked = locked }, - [mutations.SET_SECURED](state, secured) { - state.secured = secured - }, [mutations.LOAD_ACCOUNTS](state, accounts) { state.accounts = accounts }, diff --git a/src/ui/store/native/index.js b/src/ui/store/native/index.js index 288e6ba2eb..d61eca9e02 100644 --- a/src/ui/store/native/index.js +++ b/src/ui/store/native/index.js @@ -12,7 +12,6 @@ export default new Store({ actions: actionsDefinition, state: { locked: false, - secured: false, accounts: {}, tree: null, loginFlow: { diff --git a/src/ui/store/native/mutations.js b/src/ui/store/native/mutations.js index a48155cbe9..eec378a164 100644 --- a/src/ui/store/native/mutations.js +++ b/src/ui/store/native/mutations.js @@ -5,9 +5,6 @@ export const mutationsDefinition = { [mutations.SET_LOCKED](state, locked) { state.locked = locked }, - [mutations.SET_SECURED](state, secured) { - state.secured = secured - }, [mutations.LOAD_ACCOUNTS](state, accounts) { state.accounts = accounts }, diff --git a/src/ui/views/SetKey.vue b/src/ui/views/SetKey.vue deleted file mode 100644 index 892815ad0b..0000000000 --- a/src/ui/views/SetKey.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - - From 6e76cdd9bd4e1c716774af07377ce082f081822b Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 15:50:19 +0200 Subject: [PATCH 050/149] Fix webdav test names --- src/test/test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/test.js b/src/test/test.js index 336bc6c6d3..689bd4ddae 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -99,12 +99,14 @@ describe('Floccus', function() { type: 'webdav', url: `${SERVER}/remote.php/webdav/`, bookmark_file: 'bookmarks.xbel', + bookmark_file_type: 'xml', ...CREDENTIALS }, { type: 'webdav', url: `${SERVER}/remote.php/webdav/`, bookmark_file: 'bookmarks.xbel', + bookmark_file_type: 'xml', passphrase: random.float(), ...CREDENTIALS }, From c752b11a6f5111ab23cf13951a1bbc8d4070b4e6 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 15:58:04 +0200 Subject: [PATCH 051/149] CI: default tests to ncbm@stable12 --- .github/workflows/tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8c26606c87..cf7ce8c3db 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,8 +38,8 @@ jobs: matrix: node-version: [14.x] npm-version: [7.x] - server-version: ['26'] - app-version: ['stable'] + server-version: ['25'] + app-version: ['stable12'] floccus-adapter: - fake - nextcloud-bookmarks @@ -55,8 +55,8 @@ jobs: - benchmark root browsers: ['firefox'] include: - - app-version: stable12 - server-version: 25 + - app-version: stable + server-version: 26 floccus-adapter: nextcloud-bookmarks test-name: test browsers: firefox From 9f4fc304bcfc7a9bbaa9ddbb85f38a4964e9aac7 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 16:10:33 +0200 Subject: [PATCH 052/149] selenium-runner.js: Don't log page source --- test/selenium-runner.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 1d65ff22f1..1c22d36219 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -77,7 +77,6 @@ installConsoleHandler() // Enable permission await driver.get('about:addons') await driver.sleep(10000) - console.log(await driver.getPageSource()) await driver.executeScript(function() { document.querySelector('button[name=extension]').click() }) From 74b92f425286ff13dd36a54d9050f1e6048910ef Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 16:11:09 +0200 Subject: [PATCH 053/149] NextcloudBookmarks: Do not write lock after onSyncCompleted --- src/lib/adapters/NextcloudBookmarks.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/adapters/NextcloudBookmarks.ts b/src/lib/adapters/NextcloudBookmarks.ts index 90ed0ec93c..a9a01076c0 100644 --- a/src/lib/adapters/NextcloudBookmarks.ts +++ b/src/lib/adapters/NextcloudBookmarks.ts @@ -74,6 +74,7 @@ export default class NextcloudBookmarksAdapter implements Adapter, BulkImportRes private canceled = false private cancelCallback: () => void = null private lockingInterval: any + private ended = false constructor(server: NextcloudBookmarksConfig) { this.server = server @@ -156,15 +157,18 @@ export default class NextcloudBookmarksAdapter implements Adapter, BulkImportRes await this.timeout(base ** i * 1000) } } - this.lockingInterval = setInterval(() => this.acquireLock(), LOCK_INTERVAL) + this.ended = false + this.lockingInterval = setInterval(() => !this.ended && this.acquireLock(), LOCK_INTERVAL) } async onSyncComplete(): Promise { + this.ended = true clearInterval(this.lockingInterval) await this.releaseLock() } async onSyncFail(): Promise { + this.ended = true clearInterval(this.lockingInterval) await this.releaseLock() } From 6a72109cfa13a39cd69bfccc9d096bd0f04b8d4a Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 22 Aug 2023 17:55:56 +0200 Subject: [PATCH 054/149] tests: Always check whether a sync run errored --- src/test/test.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/test/test.js b/src/test/test.js index 689bd4ddae..a51af3e46c 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -329,6 +329,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok const newData = { title: 'blah' } await browser.bookmarks.update(bookmark.id, newData) @@ -383,6 +384,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok await browser.bookmarks.remove(bookmark.id) await account.sync() // update on server @@ -433,6 +435,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok await browser.bookmarks.move(barFolder.id, { parentId: localRoot }) await account.sync() // update on server @@ -706,6 +709,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok await browser.bookmarks.move(barFolder.id, { parentId: localRoot }) await account.sync() // update on server @@ -780,7 +784,6 @@ describe('Floccus', function() { }) await account.sync() // propagate to server - expect(account.getData().error).to.not.be.ok // Sync again, so client can deduplicate @@ -838,6 +841,7 @@ describe('Floccus', function() { }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok expect(account.getData().error).to.not.be.ok @@ -895,6 +899,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok await browser.bookmarks.move(barFolder.id, { parentId: localRoot }) await browser.bookmarks.move(fooFolder.id, { @@ -975,6 +980,7 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok await browser.bookmarks.move(barFolder.id, { parentId: localRoot }) await browser.bookmarks.move(fooFolder.id, { @@ -1159,6 +1165,7 @@ describe('Floccus', function() { if (adapter.onSyncComplete) await adapter.onSyncComplete() await account.sync() // propagate creation + expect(account.getData().error).to.not.be.ok await withSyncConnection(account, async() => { await adapter.removeBookmark({...serverMark, id: serverMarkId}) @@ -2384,6 +2391,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + const originalTree = await getAllBookmarks(account) await account.setData({ ...account.getData(), strategy: 'slave' }) @@ -2419,6 +2428,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + const originalTree = await getAllBookmarks(account) await account.setData({ ...account.getData(), strategy: 'slave' }) @@ -2458,6 +2469,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + const originalTree = await getAllBookmarks(account) await account.setData({ ...account.getData(), strategy: 'slave' }) @@ -2541,6 +2554,7 @@ describe('Floccus', function() { if (adapter.onSyncComplete) await adapter.onSyncComplete() await account.sync() // propage creation + expect(account.getData().error).to.not.be.ok const newServerMark = { ...serverMark, @@ -2598,6 +2612,7 @@ describe('Floccus', function() { if (adapter.onSyncComplete) await adapter.onSyncComplete() await account.sync() // propage creation + expect(account.getData().error).to.not.be.ok await withSyncConnection(account, async() => { await adapter.removeBookmark({...serverMark, id: serverMarkId}) @@ -2855,6 +2870,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + await account.setData({ ...account.getData(), strategy: 'overwrite' @@ -2894,6 +2911,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + await account.setData({ ...account.getData(), strategy: 'overwrite' @@ -2937,6 +2956,8 @@ describe('Floccus', function() { parentId: barFolder.id }) await account.sync() // propagate to server + expect(account.getData().error).to.not.be.ok + await account.setData({ ...account.getData(), strategy: 'overwrite' @@ -3008,6 +3029,7 @@ describe('Floccus', function() { if (adapter.onSyncComplete) await adapter.onSyncComplete() await account.sync() // propage creation + expect(account.getData().error).to.not.be.ok const originalTree = await account.localTree.getBookmarksTree(true) await account.setData({ ...account.getData(), @@ -3051,6 +3073,7 @@ describe('Floccus', function() { if (adapter.onSyncComplete) await adapter.onSyncComplete() await account.sync() // propage creation + expect(account.getData().error).to.not.be.ok const originalTree = await account.localTree.getBookmarksTree(true) await account.setData({ ...account.getData(), From 0874d70752f44d13bb7265bc7a24bff46d6ffe73 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 11:07:19 +0200 Subject: [PATCH 055/149] Fix test "sync root folder ignoring unsupported folders" --- src/test/test.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/test/test.js b/src/test/test.js index a51af3e46c..65d26119e8 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -2175,6 +2175,11 @@ describe('Floccus', function() { }) it('should sync root folder ignoring unsupported folders', async function() { const [root] = await browser.bookmarks.getTree() + + await Promise.all( + root.children.flatMap(child => child.children.map(child => browser.bookmarks.removeTree(child.id))) + ) + const originalFolderId = account.getData().localRoot await account.setData({...account.getData(), localRoot: root.id, }) account = await Account.get(account.id) @@ -2200,6 +2205,7 @@ describe('Floccus', function() { bookmark = {...serverMark, id} }) + const secondBookmarkFolderTitle = root.children[0].title await browser.bookmarks.create({ title: 'url', url: 'http://ur.l/', @@ -2217,7 +2223,7 @@ describe('Floccus', function() { bookmark.parentId = serverTree.children.find(folder => folder.title !== 'foo').id const fooFolder = serverTree.children.find(folder => folder.title === 'foo') await adapter.updateBookmark(new Bookmark(bookmark)) - const secondBookmark = serverTree.children.filter(folder => folder.title !== 'foo')[0].children.find(item => item.type === 'bookmark') + const secondBookmark = serverTree.children.find(folder => folder.title === secondBookmarkFolderTitle).children.find(item => item.type === 'bookmark') secondBookmark.parentId = fooFolder.id await adapter.updateBookmark(secondBookmark) }) @@ -3098,7 +3104,7 @@ describe('Floccus', function() { }) }) context('with two clients', function() { - this.timeout(60 * 60000) // timeout after 20mins + this.timeout(40 * 60000) // timeout after 20mins let account1, account2 beforeEach('set up accounts', async function() { account1 = await Account.create(ACCOUNT_DATA) From 3795a62af5415716347a9c6b0ea183828ef9c601 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 13:33:51 +0200 Subject: [PATCH 056/149] Tests: Increase default timeout to 120s to accomodate nc26 :/ --- src/test/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/test.js b/src/test/test.js index 65d26119e8..5d2d1fde23 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -54,7 +54,7 @@ let expectTreeEqual = function(tree1, tree2, ignoreEmptyFolders, checkOrder = tr } describe('Floccus', function() { - this.timeout(60000) // no test should run longer than 60s + this.timeout(120000) // no test should run longer than 120s this.slow(20000) // 20s is slow const params = (new URL(window.location.href)).searchParams From 19e1580070ccb8661a35f813252f3c7c0a607a1f Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 15:34:34 +0200 Subject: [PATCH 057/149] Fix test: sync root folder ignoring unsupported folders --- src/test/test.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/test/test.js b/src/test/test.js index 5d2d1fde23..e5c8b08cd4 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -2649,6 +2649,11 @@ describe('Floccus', function() { }) it('should sync root folder ignoring unsupported folders', async function() { const [root] = await browser.bookmarks.getTree() + + await Promise.all( + root.children.flatMap(child => child.children.map(child => browser.bookmarks.removeTree(child.id))) + ) + const originalFolderId = account.getData().localRoot await account.setData({...account.getData(), localRoot: root.id, }) account = await Account.get(account.id) @@ -2674,6 +2679,7 @@ describe('Floccus', function() { bookmark = {...serverMark, id} }) + const secondBookmarkFolderTitle = root.children[0].title await browser.bookmarks.create({ title: 'url', url: 'http://ur.l/', @@ -2691,7 +2697,7 @@ describe('Floccus', function() { bookmark.parentId = serverTree.children.find(folder => folder.title !== 'foo').id const fooFolder = serverTree.children.find(folder => folder.title === 'foo') await adapter.updateBookmark(new Bookmark(bookmark)) - const secondBookmark = serverTree.children.filter(folder => folder.title !== 'foo')[0].children.find(item => item.type === 'bookmark') + const secondBookmark = serverTree.children.find(folder => folder.title === secondBookmarkFolderTitle).children.find(item => item.type === 'bookmark') secondBookmark.parentId = fooFolder.id await adapter.updateBookmark(secondBookmark) }) From 5ea4efb97dffd44799526bf768e562715e2ac36e Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 16:24:59 +0200 Subject: [PATCH 058/149] gulpfile: Distinguish between build for chrome and build for firefox --- gulpfile.js | 43 ++++++++++++++++++++++++++++++------- manifest.chrome.json | 40 +++++++++++++++++++++++++++++++++++ manifest.firefox.json | 47 +++++++++++++++++++++++++++++++++++++++++ test/selenium-runner.js | 2 +- 4 files changed, 123 insertions(+), 9 deletions(-) create mode 100644 manifest.chrome.json create mode 100644 manifest.firefox.json diff --git a/gulpfile.js b/gulpfile.js index 83f1df8fc6..1d7036b8ca 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -44,6 +44,7 @@ const paths = { '!key.pem', '!android/**', '!ios/**', + '!manifest*.json' ], views: './html/*.html', nativeHTML: './html/index.html', @@ -53,6 +54,10 @@ const paths = { icons: 'icons/*', dist: './dist/**' } + +paths.chromeZip = [...paths.zip, 'manifest.chrome.json'] +paths.firefoxZip = [...paths.zip, 'manifest.firefox.json'] + const WEBSTORE_ID = 'fnaicdffflnofjppbagibeoednhnbjhg' let WEBSTORE_CREDENTIALS @@ -120,23 +125,45 @@ const build = gulp.parallel(assets, js) const main = gulp.series(build, native) -const zip = function() { +const chromeZip = function() { return gulp - .src(paths.zip, { buffer: false }) - .pipe(gulpZip(`floccus-build-v${VERSION}.zip`)) + .src(paths.chromeZip, { buffer: false }) + .pipe(rename((path) => { + if (path.basename.startsWith('manifest') && path.extname === '.json') { + path.basename = 'manifest' + } + })) + .pipe(gulpZip(`floccus-build-v${VERSION}-chrome.zip`)) + .pipe(gulp.dest(paths.builds)) +} + +const firefoxZip = function() { + return gulp + .src(paths.firefoxZip, { buffer: false }) + .pipe(rename((path) => { + if (path.basename.startsWith('manifest') && path.extname === '.json') { + path.basename = 'manifest' + } + })) + .pipe(gulpZip(`floccus-build-v${VERSION}-firefox.zip`)) .pipe(gulp.dest(paths.builds)) } const xpi = function() { return gulp - .src(paths.zip, { buffer: false }) + .src(paths.firefoxZip, { buffer: false }) + .pipe(rename((path) => { + if (path.basename.startsWith('manifest') && path.extname === '.json') { + path.basename = 'manifest' + } + })) .pipe(gulpZip(`floccus-build-v${VERSION}.xpi`)) .pipe(gulp.dest(paths.builds)) } const crx = function() { return crx3( - fs.createReadStream(`${paths.builds}/floccus-build-v${VERSION}.zip`), + fs.createReadStream(`${paths.builds}/floccus-build-v${VERSION}-chrome.zip`), { keyPath: 'key.pem', crxPath: `${paths.builds}/floccus-build-v${VERSION}.crx`, @@ -144,12 +171,12 @@ const crx = function() { ) } -const release = gulp.series(main, gulp.parallel(zip, xpi), crx) +const release = gulp.series(main, gulp.parallel(firefoxZip, chromeZip, xpi), crx) -const publish = gulp.series(main, zip, function() { +const publish = gulp.series(main, chromeZip, function() { return webstore .uploadExisting( - fs.createReadStream(`${paths.builds}floccus-build-v${VERSION}.zip`) + fs.createReadStream(`${paths.builds}floccus-build-v${VERSION}-chrome.zip`) ) .then(function() { return webstore.publish('default') diff --git a/manifest.chrome.json b/manifest.chrome.json new file mode 100644 index 0000000000..928a03dba4 --- /dev/null +++ b/manifest.chrome.json @@ -0,0 +1,40 @@ +{ + "manifest_version": 3, + "name": "floccus bookmarks sync", + "short_name": "floccus", + "version": "5.0.0", + "description": "__MSG_DescriptionExtension__", + "icons": { + "48": "icons/logo.png", + "64": "icons/logo_64.png", + "128": "icons/logo_128.png" + }, + + "default_locale": "en", + + "permissions": ["alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"], + "host_permissions": [ + "*://*/*" + ], + "content_security_policy": { + "extension_pages": "script-src 'self'; object-src 'self';" + }, + + "options_ui": { + "page": "dist/html/options.html", + "browser_style": false + }, + + "action": { + "browser_style": false, + "default_icon": { + "48": "icons/logo.png" + }, + "default_title": "Open Floccus options", + "default_popup": "dist/html/options.html" + }, + + "background": { + "service_worker": "dist/js/background-script.js" + } +} diff --git a/manifest.firefox.json b/manifest.firefox.json new file mode 100644 index 0000000000..82b117331e --- /dev/null +++ b/manifest.firefox.json @@ -0,0 +1,47 @@ +{ + "manifest_version": 3, + "name": "floccus bookmarks sync", + "short_name": "floccus", + "version": "5.0.0", + "description": "__MSG_DescriptionExtension__", + "icons": { + "48": "icons/logo.png", + "64": "icons/logo_64.png", + "128": "icons/logo_128.png" + }, + + "applications": { + "gecko": { + "id": "floccus@handmadeideas.org", + "strict_min_version": "57.0" + } + }, + + "default_locale": "en", + + "permissions": ["alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"], + "host_permissions": [ + "*://*/*" + ], + "content_security_policy": { + "extension_pages": "script-src 'self'; object-src 'self';" + }, + + "options_ui": { + "page": "dist/html/options.html", + "browser_style": false + }, + + "action": { + "browser_style": false, + "default_icon": { + "48": "icons/logo.png" + }, + "default_title": "Open Floccus options", + "default_popup": "dist/html/options.html" + }, + + "background": { + "scripts": ["dist/js/background-script.js"] + } +} diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 1c22d36219..13fed51f62 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -60,7 +60,7 @@ installConsoleHandler() case 'firefox': // Scrape extension id from firefox addons page await driver.installAddon( - `${__dirname}/../builds/floccus-build-v${VERSION}.zip`, + `${__dirname}/../builds/floccus-build-v${VERSION}-firefox.zip`, true ) From 03cde5a53d4bba2a6c5916b153c18546fa41b3c4 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 16:35:52 +0200 Subject: [PATCH 059/149] CI: test in chrome --- .github/workflows/tests.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cf7ce8c3db..cddaad36e6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,7 +53,9 @@ jobs: test-name: - test - benchmark root - browsers: ['firefox'] + browsers: + - firefox + - chrome include: - app-version: stable server-version: 26 From 135d0c93da3bc3f88e25bb5a6e4f2fbce26d3c5f Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 16:42:39 +0200 Subject: [PATCH 060/149] CI: test in chrome --- test/selenium-runner.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 13fed51f62..593c3aa72a 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -26,12 +26,7 @@ installConsoleHandler() '--no-sandbox', // see https://bugs.chromium.org/p/chromedriver/issues/detail?id=2473 '--remote-debugging-port=9222' ]) - .addExtensions( - fs.readFileSync( - `./builds/floccus-build-v${VERSION}.crx`, - 'base64' - ) - ) + .addExtensions(`./builds/floccus-build-v${VERSION}.crx`) : null ) .setLoggingPrefs(loggingPrefs) From 57f760fa8b7d9f8eef525a8243e3610352a01483 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 23 Aug 2023 17:13:25 +0200 Subject: [PATCH 061/149] Tests: Fix tests in chrome --- src/test/test.js | 17 ++++++++++++++--- test/selenium-runner.js | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/test/test.js b/src/test/test.js index e5c8b08cd4..2592a750e3 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -58,7 +58,7 @@ describe('Floccus', function() { this.slow(20000) // 20s is slow const params = (new URL(window.location.href)).searchParams - let SERVER, CREDENTIALS, ACCOUNTS, APP_VERSION, SEED + let SERVER, CREDENTIALS, ACCOUNTS, APP_VERSION, SEED, BROWSER SERVER = params.get('server') || 'http://localhost' @@ -67,6 +67,7 @@ describe('Floccus', function() { password: params.get('password') || 'admin' } APP_VERSION = params.get('app_version') || 'stable' + BROWSER = params.get('browser') || 'firefox' SEED = (new URL(window.location.href)).searchParams.get('seed') || Math.random() + '' console.log('RANDOMNESS SEED', SEED) @@ -1904,6 +1905,10 @@ describe('Floccus', function() { this.skip() return } + if (BROWSER !== 'firefox') { + this.skip() + return + } const localRoot = account.getData().localRoot expect( @@ -2031,6 +2036,10 @@ describe('Floccus', function() { this.skip() return } + if (BROWSER !== 'firefox') { + this.skip() + return + } const localRoot = account.getData().localRoot expect( @@ -2223,7 +2232,8 @@ describe('Floccus', function() { bookmark.parentId = serverTree.children.find(folder => folder.title !== 'foo').id const fooFolder = serverTree.children.find(folder => folder.title === 'foo') await adapter.updateBookmark(new Bookmark(bookmark)) - const secondBookmark = serverTree.children.find(folder => folder.title === secondBookmarkFolderTitle).children.find(item => item.type === 'bookmark') + // toLowerCase to accomodate chrome (since we normalize the title) + const secondBookmark = serverTree.children.find(folder => folder.title.toLowerCase() === secondBookmarkFolderTitle.toLowerCase()).children.find(item => item.type === 'bookmark') secondBookmark.parentId = fooFolder.id await adapter.updateBookmark(secondBookmark) }) @@ -2697,7 +2707,8 @@ describe('Floccus', function() { bookmark.parentId = serverTree.children.find(folder => folder.title !== 'foo').id const fooFolder = serverTree.children.find(folder => folder.title === 'foo') await adapter.updateBookmark(new Bookmark(bookmark)) - const secondBookmark = serverTree.children.find(folder => folder.title === secondBookmarkFolderTitle).children.find(item => item.type === 'bookmark') + // toLowerCase to accomodate chrome (since we normalize the title) + const secondBookmark = serverTree.children.find(folder => folder.title.toLowerCase() === secondBookmarkFolderTitle.toLowerCase()).children.find(item => item.type === 'bookmark') secondBookmark.parentId = fooFolder.id await adapter.updateBookmark(secondBookmark) }) diff --git a/test/selenium-runner.js b/test/selenium-runner.js index 593c3aa72a..43e73692f6 100644 --- a/test/selenium-runner.js +++ b/test/selenium-runner.js @@ -94,7 +94,7 @@ installConsoleHandler() throw new Error('Unknown browser') } - testUrl += `dist/html/test.html?grep=${process.env.FLOCCUS_TEST}&server=http://${process.env.TEST_HOST}&app_version=${process.env.APP_VERSION}` + testUrl += `dist/html/test.html?grep=${process.env.FLOCCUS_TEST}&server=http://${process.env.TEST_HOST}&app_version=${process.env.APP_VERSION}&browser=${process.env.SELENIUM_BROWSER}` if (process.env.FLOCCUS_TEST.includes('google-drive')) { testUrl += `&password=${process.env.GOOGLE_API_REFRESH_TOKEN}` From 995a53b1b1cfc0aadb9203345ace49cf0baa1c9b Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 25 Aug 2023 16:18:46 +0200 Subject: [PATCH 062/149] XbelSerializer: Use fast-xml-parser instead of DOMParser to allow it to function in service worker --- package-lock.json | 40 ++++++++++++ package.json | 1 + src/lib/adapters/WebDav.ts | 29 ++++++--- src/lib/serializers/Xbel.ts | 123 +++++++++++++++++------------------- src/test/test.js | 4 +- 5 files changed, 122 insertions(+), 75 deletions(-) diff --git a/package-lock.json b/package-lock.json index 332a90a1de..f82cd2cfcc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "cordova-plugin-foreground-service": "^1.1.3", "cordova-plugin-inappbrowser": "^5.0.0", "core-js": "3.x", + "fast-xml-parser": "^4.2.7", "humanize-duration": "^3.25.1", "intl-messageformat": "^9.9.1", "js-base64": "^3.7.5", @@ -6917,6 +6918,27 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-xml-parser": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", + "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -14148,6 +14170,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -21538,6 +21565,14 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-xml-parser": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", + "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "requires": { + "strnum": "^1.0.5" + } + }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -27050,6 +27085,11 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", diff --git a/package.json b/package.json index 392f0327bd..41324639d2 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "cordova-plugin-foreground-service": "^1.1.3", "cordova-plugin-inappbrowser": "^5.0.0", "core-js": "3.x", + "fast-xml-parser": "^4.2.7", "humanize-duration": "^3.25.1", "intl-messageformat": "^9.9.1", "js-base64": "^3.7.5", diff --git a/src/lib/adapters/WebDav.ts b/src/lib/adapters/WebDav.ts index 40e16daf9d..a891739968 100644 --- a/src/lib/adapters/WebDav.ts +++ b/src/lib/adapters/WebDav.ts @@ -145,16 +145,27 @@ export default class WebDavAdapter extends CachingAdapter { let res, lockFreed, i = 0 try { do { - res = await Http.request({ - url: fullUrl, - method: 'DELETE', - headers: { - Authorization: 'Basic ' + authString - }, - webFetchExtra: { + if (Capacitor.getPlatform() === 'web') { + res = await fetch(fullUrl, { + method: 'DELETE', credentials: 'omit', - } - }) + headers: { + Authorization: 'Basic ' + authString + }, + ...(!this.server.allowRedirects && {redirect: 'manual'}), + }) + } else { + res = await Http.request({ + url: fullUrl, + method: 'DELETE', + headers: { + Authorization: 'Basic ' + authString + }, + webFetchExtra: { + credentials: 'omit', + } + }) + } lockFreed = res.status === 200 || res.status === 204 || res.status === 404 if (!lockFreed) { await this.timeout(1000) diff --git a/src/lib/serializers/Xbel.ts b/src/lib/serializers/Xbel.ts index 0be9e6adef..580f9ecc98 100644 --- a/src/lib/serializers/Xbel.ts +++ b/src/lib/serializers/Xbel.ts @@ -1,95 +1,90 @@ import Serializer from '../interfaces/Serializer' import { Bookmark, Folder, ItemLocation } from '../Tree' +import { XMLParser, XMLBuilder } from 'fast-xml-parser' class XbelSerializer implements Serializer { - serialize(folder) { - return this._serializeFolder(folder, '') + serialize(folder: Folder) { + const xbelObj = this._serializeFolder(folder) + const xmlBuilder = new XMLBuilder({format: true, preserveOrder: true, ignoreAttributes: false}) + return xmlBuilder.build(xbelObj) } - deserialize(xbel) { - const xmlDoc = new DOMParser().parseFromString( - xbel, - 'application/xml' - ) - const nodeList = xmlDoc.getElementsByTagName('xbel') - if (!nodeList.length) { + deserialize(xbel: string) { + const parser = new XMLParser({preserveOrder: true, ignorePiTags: true, ignoreAttributes: false}) + const xmlObj = parser.parse(xbel) + + if (!Array.isArray(xmlObj[0].xbel)) { throw new Error( - 'Parse Error: ' + new XMLSerializer().serializeToString(xmlDoc) + 'Parse Error: ' + xbel ) } const rootFolder = new Folder({ id: 0, title: 'root', location: ItemLocation.SERVER }) - this._parseFolder(nodeList[0], rootFolder) + try { + this._parseFolder(xmlObj[0].xbel, rootFolder) + } catch (e) { + throw new Error( + 'Parse Error: ' + e.message + ) + } return rootFolder } - _parseFolder(xbelObj, folder) { + _parseFolder(xbelObj, folder: Folder) { /* parse depth first */ - xbelObj.childNodes.forEach(node => { - let item - if (node.tagName && node.tagName === 'bookmark') { - item = new Bookmark({ - id: parseInt(node.id), - parentId: folder.id, - url: node.getAttribute('href'), - title: node.firstElementChild.textContent, - location: ItemLocation.SERVER, - }) - } else if (node.tagName && node.tagName === 'folder') { - item = new Folder({ - id: parseInt(node.getAttribute('id')), - title: node.firstElementChild.textContent, - parentId: folder.id, - location: ItemLocation.SERVER, - }) - this._parseFolder(node, item) - } else { - return - } + xbelObj + .forEach(node => { + let item + if (typeof node.bookmark !== 'undefined') { + item = new Bookmark({ + id: parseInt(node[':@']['@_id']), + parentId: folder.id, + url: node[':@']['@_href'], + title: node.bookmark[0]['#text'], + location: ItemLocation.SERVER, + }) + } else if (typeof node.folder !== 'undefined') { + item = new Folder({ + id: parseInt(node[':@']['@_id']), + title: node[':@']['@_title'], + parentId: folder.id, + location: ItemLocation.SERVER, + }) + this._parseFolder(node.folder, item) + } else { + return + } - folder.children.push(item) - }) + folder.children.push(item) + }) } - _serializeFolder(folder, indent) { - /* Dummy XML document so we can create XML Elements */ - const xmlDocument = new DOMParser().parseFromString( - '', - 'application/xml' - ) - + _serializeFolder(folder: Folder) { return folder.children .map(child => { if (child instanceof Bookmark) { - const bookmark = xmlDocument.createElement('bookmark') - bookmark.setAttribute('href', child.url) - bookmark.setAttribute('id', String(child.id)) - const title = xmlDocument.createElement('title') - title.textContent = child.title - bookmark.appendChild(title) - return new XMLSerializer().serializeToString( - bookmark - ) + return { + bookmark: [ + {'#text': child.title} + ], + ':@': { + '@_href': child.url, + '@_id': String(child.id) + } + } } if (child instanceof Folder) { - const folder = xmlDocument.createElement('folder') - if ('id' in child) { - folder.setAttribute('id', String(child.id)) + return { + folder: this._serializeFolder(child), + ':@': { + ...('id' in child && {'@_id': String(child.id)}), + '@_title': child.title, + } } - - const title = xmlDocument.createElement('title') - title.textContent = child.title - folder.appendChild(title) - - folder.innerHTML += this._serializeFolder(child, indent + ' ') - return new XMLSerializer().serializeToString( - folder - ) } }) - .join('\r\n' + indent) } } diff --git a/src/test/test.js b/src/test/test.js index 2592a750e3..29ff605601 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -100,14 +100,14 @@ describe('Floccus', function() { type: 'webdav', url: `${SERVER}/remote.php/webdav/`, bookmark_file: 'bookmarks.xbel', - bookmark_file_type: 'xml', + bookmark_file_type: 'xbel', ...CREDENTIALS }, { type: 'webdav', url: `${SERVER}/remote.php/webdav/`, bookmark_file: 'bookmarks.xbel', - bookmark_file_type: 'xml', + bookmark_file_type: 'xbel', passphrase: random.float(), ...CREDENTIALS }, From 199fee1bb8f0a31914e8b32a34659f2f5285b9c6 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 06:43:22 +0000 Subject: [PATCH 063/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 654 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 654 insertions(+) create mode 100644 _locales/zh/messages.json diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json new file mode 100644 index 0000000000..3f7bde1f2e --- /dev/null +++ b/_locales/zh/messages.json @@ -0,0 +1,654 @@ +{ + "Error001": { + "message": "E001:要创建的文件夹不存在" + }, + "Error002": { + "message": "E002:要更新的书签不存在" + }, + "Error003": { + "message": "E003:要移出的文件夹不存在。这是一种反常现象。祝贺你。" + }, + "Error004": { + "message": "E004:要移动到的文件夹不存在" + }, + "Error005": { + "message": "E005:要创建的文件夹不存在" + }, + "Error006": { + "message": "E006:要更新的文件夹不存在" + }, + "Error007": { + "message": "E007:要移动的文件夹不存在" + }, + "Error008": { + "message": "E008:要移出的文件夹不存在" + }, + "Error009": { + "message": "E009:要移动到的文件夹不存在" + }, + "Error010": { + "message": "E010:找不到指定的文件夹" + }, + "Error011": { + "message": "E011:文件夹排序中的项不是实际的子项:{0}" + }, + "Error012": { + "message": "E012:文件夹排序缺少文件夹的某些子项" + }, + "Error013": { + "message": "E013:要删除的文件夹不存在" + }, + "Error014": { + "message": "E014:要删除文件夹的父文件夹不存在" + }, + "Error015": { + "message": "E015:来自服务器的意外响应数据" + }, + "Error016": { + "message": "E016:请求超时。请检查你的服务器设置" + }, + "Error017": { + "message": "E017:网络错误:请检查你的网络连接或者账户详情" + }, + "Error018": { + "message": "E018:无法与服务器进行身份验证。" + }, + "Error019": { + "message": "E019:HTTP状态 {0}。 {1} 请求失败。检查您的服务器配置和日志。" + }, + "Error020": { + "message": "E020:无法解析服务器响应。书签应用程序是否安装在您的服务器上?" + }, + "Error021": { + "message": "E021:服务器状态不一致。文件夹存在于子列表中,但不在文件夹树中" + }, + "Error022": { + "message": "E022:文件夹{0}可能包含不存在的书签{1}" + }, + "Error023": { + "message": "E023:无法清除锁定文件,请考虑手动删除{0}。" + }, + "Error024": { + "message": "E024:在尝试确定锁定文件{1}的状态时,HTTP状态为{0}" + }, + "Error025": { + "message": "E025:书签文件设置不能以斜杠开头:'/'" + }, + "Error026": { + "message": "E026:HTTP status {0}。获取书签失败" + }, + "Error027": { + "message": "E027:同步进程中断" + }, + "Error028": { + "message": "E028:无法与服务器进行身份验证。" + }, + "Error029": { + "message": "E029:安全保护:当前同步操作将删除您书签中 {0}% 的内容。拒绝执行操作。若您需要继续执行本操作,请首先在账户设置中关闭这一安全保护。" + }, + "Error030": { + "message": "E030:无法解密书签文件。密码短语可能错误或者文件可能已损坏。" + }, + "Error031": { + "message": "E031: 无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 google 账户连接。" + }, + "Error032": { + "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐号。" + }, + "Error033": { + "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的 URL 正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" + }, + "Error034": { + "message": "E034:书签文件不可读。您是否忘记设置加密密码短语?" + }, + "Error035": { + "message": "E035: 无法在服务器上创建以下书签: {0}" + }, + "Error036": { + "message": "E036:缺少访问同步服务器的权限" + }, + "LabelWebdavurl": { + "message": "WebDAV URL" + }, + "DescriptionWebdavurl": { + "message": "例如:使用 NextCloud:https://example.com/remote.php/webdav/" + }, + "LabelNextcloudurl": { + "message": "Nextcloud URL" + }, + "LabelUsername": { + "message": "用户名" + }, + "LabelPassword": { + "message": "密码" + }, + "LabelBookmarksfile": { + "message": "书签文件路径" + }, + "DescriptionBookmarksfile": { + "message": "书签文件相对于WebDAV URL的路径(路径中的所有文件夹必须已存在)。例如Personal_Stuff/bookmarks.xbel" + }, + "DescriptionBookmarksfilegoogle": { + "message": "将保存在您的Google Drive中的书签文件的文件名(确保此名称在您的Drive中是唯一的)" + }, + "LabelServerfolder": { + "message": "服务器文件夹" + }, + "DescriptionServerfolder": { + "message": "这是该帐户在服务器上操作时使用的路径前缀。将此保留为空以不使用任何前缀。" + }, + "LabelLocalfolder": { + "message": "本地文件夹" + }, + "DescriptionLocalfolder": { + "message": "这是浏览器中的本地书签文件夹,将与服务器同步。请注意,有些浏览器不允许在根文件夹下创建新项目(例如Firefox和Google Chrome)。" + }, + "LabelRootfolder": { + "message": "根目录" + }, + "LabelNewfolder": { + "message": "新建文件夹" + }, + "LabelOptions": { + "message": "选项" + }, + "LabelSyncnow": { + "message": "立即同步" + }, + "LabelCancelsync": { + "message": "取消同步" + }, + "LabelAutosync": { + "message": "自动同步" + }, + "StatusLastsynced": { + "message": "上次同步: {0} 之前" + }, + "StatusNeversynced": { + "message": "从未同步过" + }, + "StatusAllgood": { + "message": "一切正常" + }, + "StatusDisabled": { + "message": "禁用" + }, + "StatusError": { + "message": "错误" + }, + "StatusSyncing": { + "message": "同步中" + }, + "LabelReset": { + "message": "重置" + }, + "DescriptionReset": { + "message": "重置同步文件夹以创建新文件夹" + }, + "LabelChoosefolder": { + "message": "选择文件夹" + }, + "DescriptionChoosefolder": { + "message": "设置要同步的已存在文件夹" + }, + "LabelRemoveaccount": { + "message": "移除帐号" + }, + "DescriptionRemoveaccount": { + "message": "删除此帐号(此操作不会删除你的书签)" + }, + "LabelSyncfromscratch": { + "message": "从头开始触发同步" + }, + "LabelResetCache": { + "message": "重置缓存" + }, + "DescriptionResetcache": { + "message": "勾选此框可重置高速缓存,以确保下一次同步运行不会删除任何数据,而只是将服务器和本地书签合并在一起" + }, + "LabelParallelsync": { + "message": "加速同步速度" + }, + "DescriptionParallelsync": { + "message": "勾选此框可并行处理多个文件夹,以加快同步速度。此功能是试验性的,使读取调试日志变得更加困难。" + }, + "LabelStrategy": { + "message": "同步策略" + }, + "DescriptionStrategy": { + "message": "此选项确定如何同步不同设备上的书签。通常,您会希望保留来自所有方面的更改(如果它们是兼容的),但有时您可能希望覆盖来自其他浏览器的更改(包括添加和删除),或者覆盖您在本地所做的更改。" + }, + "LabelStrategydefault": { + "message": "始终将本地更改与来自其他浏览器的更改合并(推荐)" + }, + "LabelStrategyslave": { + "message": "始终撤消本地更改并从其他浏览器下载更改" + }, + "LabelStrategyoverwrite": { + "message": "始终上载本地更改并从其他浏览器撤消更改" + }, + "LabelSave": { + "message": "保存" + }, + "LabelCancel": { + "message": "取消" + }, + "LabelAdd": { + "message": "添加" + }, + "LabelChange": { + "message": "修改" + }, + "LabelRemove": { + "message": "移除" + }, + "LabelBack": { + "message": "返回" + }, + "LabelAdapternextcloudfolders": { + "message": "Nextcloud 书签" + }, + "DescriptionAdapternextcloudfolders": { + "message": "“NextCloud书签”选项可以将你的书签与NextCloud的书签应用程序同步。它只能同步http和ftp书签。确保你已经从你的NextCloud应用商店安装了Bookmark应用。" + }, + "LabelAdapternextcloud": { + "message": "Nextcloud 书签(旧版)" + }, + "DescriptionAdapternextcloud": { + "message": "旧版选项与Bookmarks应用程序的最低版本v0.11兼容。它将使用包含文件夹路径的标记来模拟文件夹。不建议将其用于新帐户。" + }, + "LabelAdapterwebdav": { + "message": "WebDAV 分享" + }, + "DescriptionAdapterwebdav": { + "message": "WebDAV选项通过将书签存储在提供的WebDAV共享中的文件中来同步书签。此选项没有附带的web UI,您可以将其与任何WebDAV兼容的服务器一起使用。它可以同步http、ftp、数据、文件和javascript书签。" + }, + "LabelAddaccount": { + "message": "添加帐户" + }, + "LabelOpenintab": { + "message": "在标签页中打开" + }, + "LabelDebuglogs": { + "message": "调试日志" + }, + "LabelFunddevelopment": { + "message": "赞助开发" + }, + "DescriptionFunddevelopment": { + "message": "关于floccus的工作是由自愿订阅模式推动的。如果你认为我做的事情是值得的,如果你每个月能不辛苦地省出几个硬币,请支持我的工作。另外,请考虑给floccus一个评价,你选择的插件商店。谢谢💙" + }, + "LabelSelect": { + "message": "选择" + }, + "LabelUntitledfolder": { + "message": "无标题文件夹" + }, + "LabelSetkeybutton": { + "message": "设置密码短语" + }, + "LabelKey": { + "message": "输入解锁密码短语" + }, + "LabelKey2": { + "message": "再次输入密码短语" + }, + "LabelUnlock": { + "message": "解锁 floccus" + }, + "LabelRemovekey": { + "message": "删除密码短语" + }, + "LabelRemovedkey": { + "message": "密码短语已删除" + }, + "LabelSyncinterval": { + "message": "同步间隔" + }, + "DescriptionSyncinterval": { + "message": "两次同步之间的时间跨度以分钟为单位。默认值为15分钟。" + }, + "LabelChooseadapter": { + "message": "您希望如何同步?" + }, + "LabelOptionsscreen": { + "message": "{0} 选项", + "description": "Title of the options screen. The placeholder holds the account type." + }, + "LabelPaypal": { + "message": "Paypal" + }, + "DescriptionPaypal": { + "message": "通过 Paypal 进行一次性捐赠以支持该项目" + }, + "LabelOpencollective": { + "message": "OpenCollective" + }, + "DescriptionOpencollective": { + "message": "通过OpenCollective定期捐款以支持这个项目" + }, + "LabelLiberapay": { + "message": "Liberapay" + }, + "DescriptionLiberapay": { + "message": "通过Liberapay定期捐款以支持该项目" + }, + "LabelGithubsponsors": { + "message": "GitHub sponsors" + }, + "DescriptionGithubsponsors": { + "message": "通过 GitHub sponsors 定期捐款以支持该项目" + }, + "LegacyAdapterDeprecation": { + "message": "此旧版帐户类型已弃用,很快将被删除。请切换到新的nextcloud同步方法。性能和准确性的提升等着您。" + }, + "LabelUpdated": { + "message": "Floccus已更新" + }, + "DescriptionUpdated": { + "message": "恭喜,最新版本的floccus已经抵达您的设备!" + }, + "LabelReleaseNotes": { + "message": "阅读发行说明" + }, + "LabelOptionsServerDetails": { + "message": "服务器详情" + }, + "LabelOptionsFolderMapping": { + "message": "文件夹映射" + }, + "LabelOptionsSyncBehavior": { + "message": "同步行为" + }, + "LabelOptionsDangerous": { + "message": "危险行为" + }, + "LabelAccountDeleted": { + "message": "帐户已删除" + }, + "DescriptionAccountDeleted": { + "message": "此帐户已被删除" + }, + "LabelNoAccount": { + "message": "这里没有帐户" + }, + "DescriptionNoAccount": { + "message": "创建一个新帐户来同步您的书签或从不同的设备或浏览器导入帐户。" + }, + "LabelLoginFlowStart": { + "message": "登录Nextcloud" + }, + "LabelLoginFlowStop": { + "message": "中止NextCloud登录" + }, + "LabelLoginFlowError": { + "message": "Nextcloud 登录失败" + }, + "LabelNewAccount": { + "message": "新帐户" + }, + "LabelNestedSync": { + "message": "嵌套帐户" + }, + "DescriptionNestedSync": { + "message": "您可以嵌套帐户,以便父文件夹属于帐户A,子文件夹属于帐户A和B。是否允许其他帐户也同步此帐户的文件夹?" + }, + "LabelNestedSyncNo": { + "message": "否,忽略其他帐户中的此帐户的文件夹" + }, + "LabelNestedSyncYes": { + "message": "是,将此帐户的文件夹包括在其他帐户中" + }, + "LabelImportExport": { + "message": "导入/导出 帐户" + }, + "LabelExport": { + "message": "导出帐户" + }, + "LabelImport": { + "message": "导入帐户" + }, + "DescriptionExport": { + "message": "在下面选择您要导出到文件的帐户,以便您可以在不同的设备或浏览器上轻松重新创建相同的帐户。" + }, + "DescriptionImport": { + "message": "在此处导入包含导出帐户的文件,以重新创建在其他设备或浏览器上导出的帐户。请确保在导入后再次设置正确的同步文件夹。" + }, + "LabelFolderNotFound": { + "message": "文件夹未找到" + }, + "LabelSyncTabs": { + "message": "同步选项卡" + }, + "LabelTabs": { + "message": "选项卡" + }, + "LabelSyncDown": { + "message": "拉取" + }, + "DescriptionSyncDown": { + "message": "从其他浏览器下载更改并覆盖本地更改" + }, + "LabelSyncUp": { + "message": "推送" + }, + "DescriptionSyncUp": { + "message": "上传本地更改并覆盖来自其他浏览器的更改" + }, + "LabelSyncDownOnce": { + "message": "拉取一次" + }, + "LabelSyncUpOnce": { + "message": "推送一次" + }, + "LabelSyncNormal": { + "message": "合并" + }, + "DescriptionSyncNormal": { + "message": "将本地更改与来自其他浏览器的更改合并" + }, + "DescriptionFilesPermission": { + "message": "确保您不仅允许floccus使用书签应用程序,还允许使用Nextcloud文件应用程序。" + }, + "DescriptionExtension": { + "message": "跨浏览器和设备私下同步您的书签" + }, + "LabelFailsafe": { + "message": "安全保护" + }, + "DescriptionFailsafe": { + "message": "有时,配置错误或软件错误可能会导致意外删除数据,从而导致数据丢失。为了防止这种情况发生,除非您在此处禁用此故障保护功能,否则floccus不会一次删除超过50%的书签。" + }, + "LabelFailsafeon": { + "message": "已启用。在没有征得我同意的情况下,不要删除超过50%的本地书签。(推荐)" + }, + "LabelFailsafeoff": { + "message": "已禁用。允许删除超过50%的本地书签,而无需与我确认。" + }, + "StatusFailsafeoff": { + "message": "安全保护已禁用。您将面临意外数据丢失的风险。建议在帐户设置中启用安全保护功能。" + }, + "LabelAdaptergoogledrive": { + "message": "Google Drive" + }, + "DescriptionAdaptergoogledrive": { + "message": "通过存储在Google Drive中的加密文件同步书签。它可以同步http、ftp、数据、文件和javascript书签。" + }, + "LabelLogingoogle": { + "message": "登录Google" + }, + "DescriptionLogingoogle": { + "message": "连接您的Google帐户以将书签同步文件存储在您的Google Drive中。" + }, + "DescriptionLoggedingoogle": { + "message": "您已连接到您的Google帐户以将书签同步文件存储在您的Google Drive中。" + }, + "LabelPassphrase": { + "message": "密码短语" + }, + "DescriptionPassphrase": { + "message": "设置用于加密书签文件的密码短语,如果不设置密码短语,则不会运行加密。" + }, + "LabelClientcert": { + "message": "发送客户端凭据" + }, + "DescriptionClientcert": { + "message": "如果您的服务器需要客户端证书或Cookie进行身份验证,请启用此选项。这可能会导致意想不到的副作用,因为floccus会与您的正常浏览器配置文件共享Cookie。" + }, + "LabelAllowredirects": { + "message": "允许服务器URL中的重定向" + }, + "DescriptionAllowredirects": { + "message": "如果在同步过程中遇到您认为不必要的重定向错误,请启用此选项。" + }, + "LabelSearch": { + "message": "搜索书签" + }, + "LabelSearchfolder": { + "message": "搜索 {0}" + }, + "LabelEdititem": { + "message": "编辑" + }, + "LabelDeleteitem": { + "message": "删除" + }, + "LabelNobookmarks": { + "message": "此处没有书签" + }, + "LabelAddbookmark": { + "message": "添加书签" + }, + "LabelEditbookmark": { + "message": "编辑书签" + }, + "LabelAddfolder": { + "message": "添加文件夹" + }, + "LabelEditfolder": { + "message": "编辑文件夹" + }, + "LabelSlugline": { + "message": "私人书签同步" + }, + "LabelDownloadlogs": { + "message": "下载日志" + }, + "LabelDownloadfulllogs": { + "message": "完整日志" + }, + "LabelDownloadanonymizedlogs": { + "message": "已编码的日志" + }, + "DescriptionDownloadlogs": { + "message": "Floccus将其所有操作记录在日志文件中,您可以检查该文件,也可以将其发送给开发人员进行调试。在已编码的日志中,文件夹和书签名称以及URL使用加密散列函数进行不可逆编码。在发送经过编码的日志时,请确保仍然检查下载的文件中是否有可能未被匿名化过程捕获的敏感数据。" + }, + "ErrorFolderloopselected": { + "message": "无法将文件夹移动到自身中" + }, + "ErrorNofolderselected": { + "message": "没有选择文件夹" + }, + "LabelAllownetwork": { + "message": "允许使用网络" + }, + "DescriptionAllownetwork": { + "message": "Floccus除了连接到同步服务器外,还可以使用网络来获取有关书签的其他信息(如图标等)。您可以在此处启用此类网络使用。" + }, + "LabelMobilesettings": { + "message": "Mobile 设置" + }, + "LabelContinuefloccus":{ + "message": "继续到 floccus" + }, + "LabelAbout":{ + "message": "关于" + }, + "LabelCurrentversion": { + "message": "当前版本" + }, + "DescriptionCurrentversion": { + "message": "您当前安装的 floccus 版本为:" + }, + "LabelContributors": { + "message": "贡献者" + }, + "DescriptionContributors": { + "message": "这些人帮助 floccus 成为可能" + }, + "LabelSortcustom": { + "message": "自定义" + }, + "LabelSorturl": { + "message": "链接" + }, + "LabelSorttitle": { + "message": "标题" + }, + "LabelSyncmethod": { + "message": "同步方法" + }, + "LabelSyncserver": { + "message": "同步服务器" + }, + "LabelSyncfolders": { + "message": "同步文件夹" + }, + "LabelSyncbehavior": { + "message": "同步行为" + }, + "LabelContinue": { + "message": "继续" + }, + "LabelDone": { + "message": "完成" + }, + "LabelConnect": { + "message": "连接" + }, + "LabelServersetup": { + "message": "要同步到哪个服务器?" + }, + "LabelGoogledrivesetup": { + "message": "登录 Google Drive" + }, + "LabelSyncfoldersetup": { + "message": "要同步哪些文件夹?" + }, + "LabelSyncbehaviorsetup": { + "message": "希望同步如何工作?" + }, + "LabelAccountcreated": { + "message": "帐户已创建" + }, + "DescriptionNonhttps": { + "message": "您输入的服务器使用了不安全的协议。建议仅使用支持HTTPS的服务器。" + }, + "LabelFiletype": { + "message": "文件格式" + }, + "DescriptionFiletype": { + "message": "您可以选择要用于在云中存储书签的文件格式。" + }, + "LabelFiletypehtml": { + "message": "HTML,一种广泛支持的开放格式(实验性)" + }, + "LabelFiletypexbel": { + "message": "XBEL,一种简单、开放的格式" + }, + "LabelImportbookmarks": { + "message": "导入书签" + }, + "DescriptionImportbookmarks": { + "message": "将包含书签的 HTML 文件导入当前文件夹" + }, + "LabelExportBookmarks": { + "message": "导出书签" + }, + "DescriptionExportBookmarks" : { + "message": "您可以将此帐户中的所有书签导出为与所有主要浏览器兼容的HTML文件。" + }, + "LabelShareitem": { + "message": "分享" + } +} From 13aa9c717302d7c302766b1dd35b6ea68ec27472 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 06:53:18 +0000 Subject: [PATCH 064/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 3f7bde1f2e..9f71998326 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -90,7 +90,7 @@ "message": "E030:无法解密书签文件。密码短语可能错误或者文件可能已损坏。" }, "Error031": { - "message": "E031: 无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 google 账户连接。" + "message": "E031: 无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 Google 账户连接。" }, "Error032": { "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐号。" From 40f260294726af2e635dce3ff4e6bb9bab2b02c3 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 06:53:52 +0000 Subject: [PATCH 065/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 9f71998326..963146891f 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -102,7 +102,7 @@ "message": "E034:书签文件不可读。您是否忘记设置加密密码短语?" }, "Error035": { - "message": "E035: 无法在服务器上创建以下书签: {0}" + "message": "E035: 无法在服务器上创建以下书签:{0}" }, "Error036": { "message": "E036:缺少访问同步服务器的权限" From 307759181d7df1c70404aada97b6d8b6c7d87145 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:05:50 +0000 Subject: [PATCH 066/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 963146891f..710e9db29a 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -93,7 +93,7 @@ "message": "E031: 无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 Google 账户连接。" }, "Error032": { - "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐号。" + "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐户。" }, "Error033": { "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的 URL 正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" From 80c5434af29569726caa2551d447f7f333d38cb7 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:06:05 +0000 Subject: [PATCH 067/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 710e9db29a..14f1151472 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -192,7 +192,7 @@ "message": "设置要同步的已存在文件夹" }, "LabelRemoveaccount": { - "message": "移除帐号" + "message": "移除帐户" }, "DescriptionRemoveaccount": { "message": "删除此帐号(此操作不会删除你的书签)" From 31e760af25a90ba17548f4ff3f0672f22c1aa4d8 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:06:13 +0000 Subject: [PATCH 068/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 14f1151472..dd8a96c6de 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -195,7 +195,7 @@ "message": "移除帐户" }, "DescriptionRemoveaccount": { - "message": "删除此帐号(此操作不会删除你的书签)" + "message": "删除此帐户(此操作不会删除你的书签)" }, "LabelSyncfromscratch": { "message": "从头开始触发同步" From e1f0505a35558dbc1eb36afe1e18ea3aec4c7f8d Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:07:35 +0000 Subject: [PATCH 069/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index dd8a96c6de..ddbd4a1ce4 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -72,7 +72,7 @@ "message": "E024:在尝试确定锁定文件{1}的状态时,HTTP状态为{0}" }, "Error025": { - "message": "E025:书签文件设置不能以斜杠开头:'/'" + "message": "E025:书签文件设置不能以斜杠开头" }, "Error026": { "message": "E026:HTTP status {0}。获取书签失败" From a14f321b53c6be5bd3774a6de48e3350845e2c71 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:08:47 +0000 Subject: [PATCH 070/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index ddbd4a1ce4..52f69dbbc0 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -75,7 +75,7 @@ "message": "E025:书签文件设置不能以斜杠开头" }, "Error026": { - "message": "E026:HTTP status {0}。获取书签失败" + "message": "E026:HTTP状态{0}。获取书签失败" }, "Error027": { "message": "E027:同步进程中断" From 0e855aa5a539fff8db883ef7e9c5a049063abd61 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:09:17 +0000 Subject: [PATCH 071/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 52f69dbbc0..f4ca5f353e 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -90,7 +90,7 @@ "message": "E030:无法解密书签文件。密码短语可能错误或者文件可能已损坏。" }, "Error031": { - "message": "E031: 无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 Google 账户连接。" + "message": "E031:无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 Google 账户连接。" }, "Error032": { "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐户。" From f62884dae719eb983592c3ee05f7921298825fba Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:10:02 +0000 Subject: [PATCH 072/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index f4ca5f353e..270a2072ac 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -93,7 +93,7 @@ "message": "E031:无法使用 Google Drive 进行认证。 请再次将 floccus 与你的 Google 账户连接。" }, "Error032": { - "message": "E032:OAuth 错误。令牌验证错误。请重新关联您的 Google 帐户。" + "message": "E032:OAuth错误。令牌验证错误。请重新关联您的 Google 帐户。" }, "Error033": { "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的 URL 正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" From 4ecc4edaa6a154355e8cdbc82be0ff641a77957f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:10:53 +0000 Subject: [PATCH 073/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 270a2072ac..070540addd 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -96,7 +96,7 @@ "message": "E032:OAuth错误。令牌验证错误。请重新关联您的 Google 帐户。" }, "Error033": { - "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的 URL 正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" + "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的URL正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" }, "Error034": { "message": "E034:书签文件不可读。您是否忘记设置加密密码短语?" From d65c247e36429b7fc99669226d75351d3b367a16 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:11:22 +0000 Subject: [PATCH 074/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 070540addd..e742c033fc 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -126,7 +126,7 @@ "message": "书签文件路径" }, "DescriptionBookmarksfile": { - "message": "书签文件相对于WebDAV URL的路径(路径中的所有文件夹必须已存在)。例如Personal_Stuff/bookmarks.xbel" + "message": "书签文件相对于 WebDAV URL 的路径(路径中的所有文件夹必须已存在)。例如Personal_Stuff/bookmarks.xbel" }, "DescriptionBookmarksfilegoogle": { "message": "将保存在您的Google Drive中的书签文件的文件名(确保此名称在您的Drive中是唯一的)" From 710bf6144e5bdf256f3dd221f634750c0d09d30a Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:11:57 +0000 Subject: [PATCH 075/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index e742c033fc..842779f352 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -129,7 +129,7 @@ "message": "书签文件相对于 WebDAV URL 的路径(路径中的所有文件夹必须已存在)。例如Personal_Stuff/bookmarks.xbel" }, "DescriptionBookmarksfilegoogle": { - "message": "将保存在您的Google Drive中的书签文件的文件名(确保此名称在您的Drive中是唯一的)" + "message": "将保存在您的 Google Drive 中的书签文件的文件名(确保此名称在您的 Google Drive 中是唯一的)" }, "LabelServerfolder": { "message": "服务器文件夹" From e39e7f4d8628c6912098d3d96c6650ef18466995 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:12:09 +0000 Subject: [PATCH 076/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 842779f352..948a386dbb 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -141,7 +141,7 @@ "message": "本地文件夹" }, "DescriptionLocalfolder": { - "message": "这是浏览器中的本地书签文件夹,将与服务器同步。请注意,有些浏览器不允许在根文件夹下创建新项目(例如Firefox和Google Chrome)。" + "message": "这是浏览器中的本地书签文件夹,将与服务器同步。请注意,有些浏览器不允许在根文件夹下创建新项目(例如 Firefox 和 Google Chrome )。" }, "LabelRootfolder": { "message": "根目录" From 3045a837dd3aa066efdb9053b755d46a65862546 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:13:14 +0000 Subject: [PATCH 077/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 948a386dbb..33de4e889c 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -249,7 +249,7 @@ "message": "Nextcloud 书签" }, "DescriptionAdapternextcloudfolders": { - "message": "“NextCloud书签”选项可以将你的书签与NextCloud的书签应用程序同步。它只能同步http和ftp书签。确保你已经从你的NextCloud应用商店安装了Bookmark应用。" + "message": "“ NextCloud 书签” 选项可以将你的书签与 NextCloud 的书签应用程序同步。它只能同步 http 和 ftp 书签。确保你已经从你的 NextCloud 应用商店安装了 Bookmark 应用。" }, "LabelAdapternextcloud": { "message": "Nextcloud 书签(旧版)" From b62b1f1b9c485c86bbb98236f03f43310162c8b9 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:13:23 +0000 Subject: [PATCH 078/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 33de4e889c..3b891591dc 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -249,7 +249,7 @@ "message": "Nextcloud 书签" }, "DescriptionAdapternextcloudfolders": { - "message": "“ NextCloud 书签” 选项可以将你的书签与 NextCloud 的书签应用程序同步。它只能同步 http 和 ftp 书签。确保你已经从你的 NextCloud 应用商店安装了 Bookmark 应用。" + "message": "“NextCloud 书签” 选项可以将你的书签与 NextCloud 的书签应用程序同步。它只能同步 http 和 ftp 书签。确保你已经从你的 NextCloud 应用商店安装了 Bookmark 应用。" }, "LabelAdapternextcloud": { "message": "Nextcloud 书签(旧版)" From 0c3b8ad07343e29143870b7e155a57024013d1e3 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:13:35 +0000 Subject: [PATCH 079/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 3b891591dc..3c4cfdf65d 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -255,7 +255,7 @@ "message": "Nextcloud 书签(旧版)" }, "DescriptionAdapternextcloud": { - "message": "旧版选项与Bookmarks应用程序的最低版本v0.11兼容。它将使用包含文件夹路径的标记来模拟文件夹。不建议将其用于新帐户。" + "message": "旧版选项与 Bookmarks 应用程序的最低版本 v0.11 兼容。它将使用包含文件夹路径的标记来模拟文件夹。不建议将其用于新帐户。" }, "LabelAdapterwebdav": { "message": "WebDAV 分享" From 33b1446242934ebaa9a51fffa6091f348f6575b0 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:14:04 +0000 Subject: [PATCH 080/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 3c4cfdf65d..80fa008164 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -261,7 +261,7 @@ "message": "WebDAV 分享" }, "DescriptionAdapterwebdav": { - "message": "WebDAV选项通过将书签存储在提供的WebDAV共享中的文件中来同步书签。此选项没有附带的web UI,您可以将其与任何WebDAV兼容的服务器一起使用。它可以同步http、ftp、数据、文件和javascript书签。" + "message": "WebDAV 选项通过将书签存储在提供的 WebDAV 共享中的文件中来同步书签。此选项没有附带的 Web UI,您可以将其与任何 WebDAV 兼容的服务器一起使用。它可以同步http、ftp、数据、文件和javascript书签。" }, "LabelAddaccount": { "message": "添加帐户" From e28d85650369abdca688ddfe9483fcf4a3f2dc44 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:14:19 +0000 Subject: [PATCH 081/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 80fa008164..61804a189d 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -249,7 +249,7 @@ "message": "Nextcloud 书签" }, "DescriptionAdapternextcloudfolders": { - "message": "“NextCloud 书签” 选项可以将你的书签与 NextCloud 的书签应用程序同步。它只能同步 http 和 ftp 书签。确保你已经从你的 NextCloud 应用商店安装了 Bookmark 应用。" + "message": "“NextCloud 书签” 选项可以将你的书签与 NextCloud 的书签应用程序同步。它只能同步http和ftp书签。确保你已经从你的 NextCloud 应用商店安装了 Bookmark 应用。" }, "LabelAdapternextcloud": { "message": "Nextcloud 书签(旧版)" From 87b34cb7accebae2e67d350137b7390eb49ae66f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:14:29 +0000 Subject: [PATCH 082/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 61804a189d..d476ebb7e7 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -276,7 +276,7 @@ "message": "赞助开发" }, "DescriptionFunddevelopment": { - "message": "关于floccus的工作是由自愿订阅模式推动的。如果你认为我做的事情是值得的,如果你每个月能不辛苦地省出几个硬币,请支持我的工作。另外,请考虑给floccus一个评价,你选择的插件商店。谢谢💙" + "message": "关于 floccus 的工作是由自愿订阅模式推动的。如果你认为我做的事情是值得的,如果你每个月能不辛苦地省出几个硬币,请支持我的工作。另外,请考虑给 floccus 一个评价,你选择的插件商店。谢谢💙" }, "LabelSelect": { "message": "选择" From 5715a695ef2bee296973377f6cc8d419d8905a10 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:14:41 +0000 Subject: [PATCH 083/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index d476ebb7e7..69b685f46e 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -325,7 +325,7 @@ "message": "OpenCollective" }, "DescriptionOpencollective": { - "message": "通过OpenCollective定期捐款以支持这个项目" + "message": "通过 OpenCollective 定期捐款以支持这个项目" }, "LabelLiberapay": { "message": "Liberapay" From fc6ee206c90b57d5d00e3edf7dbe24677d18241e Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:14:47 +0000 Subject: [PATCH 084/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 69b685f46e..03843ec69d 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -331,7 +331,7 @@ "message": "Liberapay" }, "DescriptionLiberapay": { - "message": "通过Liberapay定期捐款以支持该项目" + "message": "通过 Liberapay 定期捐款以支持该项目" }, "LabelGithubsponsors": { "message": "GitHub sponsors" From c82c122651b958cf2ce60b1d95d287f5b4798f28 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:01 +0000 Subject: [PATCH 085/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 03843ec69d..30126fd2d9 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -340,7 +340,7 @@ "message": "通过 GitHub sponsors 定期捐款以支持该项目" }, "LegacyAdapterDeprecation": { - "message": "此旧版帐户类型已弃用,很快将被删除。请切换到新的nextcloud同步方法。性能和准确性的提升等着您。" + "message": "此旧版帐户类型已弃用,很快将被删除。请切换到新的 NextCloud同步方法。性能和准确性的提升等着您。" }, "LabelUpdated": { "message": "Floccus已更新" From e5c091d1f928604faed38bfb1a8e2bc99c5987c1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:07 +0000 Subject: [PATCH 086/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 30126fd2d9..be5f3b78f7 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -343,7 +343,7 @@ "message": "此旧版帐户类型已弃用,很快将被删除。请切换到新的 NextCloud同步方法。性能和准确性的提升等着您。" }, "LabelUpdated": { - "message": "Floccus已更新" + "message": "Floccus 已更新" }, "DescriptionUpdated": { "message": "恭喜,最新版本的floccus已经抵达您的设备!" From 9999c3b7990fc4f4b6d4f826a18fb292770aedc0 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:15 +0000 Subject: [PATCH 087/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index be5f3b78f7..0db4aada58 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -346,7 +346,7 @@ "message": "Floccus 已更新" }, "DescriptionUpdated": { - "message": "恭喜,最新版本的floccus已经抵达您的设备!" + "message": "恭喜,最新版本的 floccus 已经抵达您的设备!" }, "LabelReleaseNotes": { "message": "阅读发行说明" From ed0672e2cedc42f2e374f94669a6701ff5aefc40 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:23 +0000 Subject: [PATCH 088/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 0db4aada58..0d56488dd7 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -376,7 +376,7 @@ "message": "创建一个新帐户来同步您的书签或从不同的设备或浏览器导入帐户。" }, "LabelLoginFlowStart": { - "message": "登录Nextcloud" + "message": "登录 Nextcloud" }, "LabelLoginFlowStop": { "message": "中止NextCloud登录" From 1c0b7f416e91ec0284434fa8a729b269321a9c48 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:28 +0000 Subject: [PATCH 089/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 0d56488dd7..336a531a5e 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -379,7 +379,7 @@ "message": "登录 Nextcloud" }, "LabelLoginFlowStop": { - "message": "中止NextCloud登录" + "message": "中止 NextCloud 登录" }, "LabelLoginFlowError": { "message": "Nextcloud 登录失败" From 3bc7c9f0d661dd67c67f3c8649c834348eeb97af Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:15:57 +0000 Subject: [PATCH 090/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 336a531a5e..6d8f177fd6 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -448,7 +448,7 @@ "message": "将本地更改与来自其他浏览器的更改合并" }, "DescriptionFilesPermission": { - "message": "确保您不仅允许floccus使用书签应用程序,还允许使用Nextcloud文件应用程序。" + "message": "确保您不仅允许 floccus 使用书签应用程序,还允许使用 NextCloud 文件应用程序。" }, "DescriptionExtension": { "message": "跨浏览器和设备私下同步您的书签" From 01971c690e2563bfeaf7197602c2e5dce100a0a2 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:04 +0000 Subject: [PATCH 091/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 6d8f177fd6..0aec4ce84b 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -457,7 +457,7 @@ "message": "安全保护" }, "DescriptionFailsafe": { - "message": "有时,配置错误或软件错误可能会导致意外删除数据,从而导致数据丢失。为了防止这种情况发生,除非您在此处禁用此故障保护功能,否则floccus不会一次删除超过50%的书签。" + "message": "有时,配置错误或软件错误可能会导致意外删除数据,从而导致数据丢失。为了防止这种情况发生,除非您在此处禁用此故障保护功能,否则 floccus 不会一次删除超过50%的书签。" }, "LabelFailsafeon": { "message": "已启用。在没有征得我同意的情况下,不要删除超过50%的本地书签。(推荐)" From b3dd75edb4d557f103032b8ccd5a76b644b25b86 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:15 +0000 Subject: [PATCH 092/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 0aec4ce84b..0205fed6e1 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -472,7 +472,7 @@ "message": "Google Drive" }, "DescriptionAdaptergoogledrive": { - "message": "通过存储在Google Drive中的加密文件同步书签。它可以同步http、ftp、数据、文件和javascript书签。" + "message": "通过存储在 Google Drive 中的加密文件同步书签。它可以同步http、ftp、数据、文件和javascript书签。" }, "LabelLogingoogle": { "message": "登录Google" From 5d7225b9c96fc689ad31fb32372d7c7dc2a33dcc Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:20 +0000 Subject: [PATCH 093/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 0205fed6e1..a0145fc685 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -475,7 +475,7 @@ "message": "通过存储在 Google Drive 中的加密文件同步书签。它可以同步http、ftp、数据、文件和javascript书签。" }, "LabelLogingoogle": { - "message": "登录Google" + "message": "登录 Google" }, "DescriptionLogingoogle": { "message": "连接您的Google帐户以将书签同步文件存储在您的Google Drive中。" From f7f74d47e993144d117b56ffe64433b18fcec5b7 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:29 +0000 Subject: [PATCH 094/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index a0145fc685..518a039b7f 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -478,7 +478,7 @@ "message": "登录 Google" }, "DescriptionLogingoogle": { - "message": "连接您的Google帐户以将书签同步文件存储在您的Google Drive中。" + "message": "连接您的 Google 帐户以将书签同步文件存储在您的 Google Drive 中。" }, "DescriptionLoggedingoogle": { "message": "您已连接到您的Google帐户以将书签同步文件存储在您的Google Drive中。" From 911135e1628e13b30503e47c2c289421b5b1c917 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:37 +0000 Subject: [PATCH 095/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index 518a039b7f..b222aceafc 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -493,7 +493,7 @@ "message": "发送客户端凭据" }, "DescriptionClientcert": { - "message": "如果您的服务器需要客户端证书或Cookie进行身份验证,请启用此选项。这可能会导致意想不到的副作用,因为floccus会与您的正常浏览器配置文件共享Cookie。" + "message": "如果您的服务器需要客户端证书或Cookie进行身份验证,请启用此选项。这可能会导致意想不到的副作用,因为 floccus 会与您的正常浏览器配置文件共享Cookie。" }, "LabelAllowredirects": { "message": "允许服务器URL中的重定向" From d2cc5fde312f80c455d8843785f0e9583b78b75a Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:45 +0000 Subject: [PATCH 096/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index b222aceafc..a0ecb39e27 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -541,7 +541,7 @@ "message": "已编码的日志" }, "DescriptionDownloadlogs": { - "message": "Floccus将其所有操作记录在日志文件中,您可以检查该文件,也可以将其发送给开发人员进行调试。在已编码的日志中,文件夹和书签名称以及URL使用加密散列函数进行不可逆编码。在发送经过编码的日志时,请确保仍然检查下载的文件中是否有可能未被匿名化过程捕获的敏感数据。" + "message": "Floccus 将其所有操作记录在日志文件中,您可以检查该文件,也可以将其发送给开发人员进行调试。在已编码的日志中,文件夹和书签名称以及URL使用加密散列函数进行不可逆编码。在发送经过编码的日志时,请确保仍然检查下载的文件中是否有可能未被匿名化过程捕获的敏感数据。" }, "ErrorFolderloopselected": { "message": "无法将文件夹移动到自身中" From 360d2d83cbaf2f3108c6cee53e14740cd22308d7 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 07:16:52 +0000 Subject: [PATCH 097/149] Translate _locales/en/messages.json in zh 100% translated source file: '_locales/en/messages.json' on 'zh'. --- _locales/zh/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh/messages.json b/_locales/zh/messages.json index a0ecb39e27..67187ae23b 100644 --- a/_locales/zh/messages.json +++ b/_locales/zh/messages.json @@ -553,7 +553,7 @@ "message": "允许使用网络" }, "DescriptionAllownetwork": { - "message": "Floccus除了连接到同步服务器外,还可以使用网络来获取有关书签的其他信息(如图标等)。您可以在此处启用此类网络使用。" + "message": "Floccus 除了连接到同步服务器外,还可以使用网络来获取有关书签的其他信息(如图标等)。您可以在此处启用此类网络使用。" }, "LabelMobilesettings": { "message": "Mobile 设置" From f27efa5f67bdf6e593e0129785a9c0fdb085470b Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:02:57 +0000 Subject: [PATCH 098/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index fc8d94f76d..f40b1adfce 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -99,11 +99,14 @@ "message": "E033:检测到重定向。请确保服务器支持所选的同步方法,并且您输入的 URL 正确无误,不会重定向到其他位置。如果重定向是设置的一部分,则可以在设置中禁用此检查。" }, "Error034": { - "message": "E034:书签文件不可读。您是否忘记设置加密密码短语?" + "message": "E034: 远程书签文件不可读。请确认是否设置加密密码" }, "Error035": { "message": "E035: 无法在服务器上创建以下书签: {0}" }, + "Error036": { + "message": "E036: 缺少访问同步服务器的权限" + }, "LabelWebdavurl": { "message": "WebDAV URL" }, @@ -246,7 +249,7 @@ "message": "Nextcloud 书签" }, "DescriptionAdapternextcloudfolders": { - "message": "“Nextcloud 书签”选项至少需要Bookmarks app v0.14版本。" + "message": "选项 'Nextcloud 书签' 将您的书签与 Nextcloud 书签应用程序同步。它只能同步 http 和 ftp 书签。确保您已从 Nextcloud 应用商店中安装了书签应用程序。" }, "LabelAdapternextcloud": { "message": "Nextcloud 书签(旧版)" @@ -258,17 +261,11 @@ "message": "WebDAV 分享" }, "DescriptionAdapterwebdav": { - "message": "WebDAV 选项通过将书签存储在提供的 WebDAV 共享中的文件来同步您的书签。 此选项没有附带的 Web UI,您可以将它与任何 WebDAV 兼容的服务器一起使用。 它可以同步 http、ftp、数据和 javascript 书签。" + "message": "WebDAV 选项通过将书签存储在由 WebDAV 提供的共享文件同步书签。该选项不会附带 web UI,可以使用任何兼容 WebDAV 的服务器。可以同步 http、ftp、数据、文件和 Javascript 书签。" }, "LabelAddaccount": { "message": "添加账户" }, - "LabelSecurecredentials": { - "message": "保护您的凭据" - }, - "LabelSecuredcredentials": { - "message": "您的凭证是安全的" - }, "LabelOpenintab": { "message": "在标签页中打开" }, @@ -287,12 +284,6 @@ "LabelUntitledfolder": { "message": "无标题文件夹" }, - "LabelSetkey": { - "message": "為 floccus 設置密碼" - }, - "DescriptionSetkey": { - "message": "设置密码后,每次启动浏览器时,如果要访问和同步书签、更改设置或使用 floccus 执行任何其他操作,都必须输入此密码。" - }, "LabelSetkeybutton": { "message": "設置密碼" }, @@ -481,7 +472,7 @@ "message": "Google Drive" }, "DescriptionAdaptergoogledrive": { - "message": "通过存储在 Google Drive 中的加密文件来同步书签。 它可以同步 http、ftp、数据和 javascript 书签。" + "message": "通过存储在 Google Drive 中的加密文件同步书签。可同步 http、ftp、数据、文件和 Javascript 书签。" }, "LabelLogingoogle": { "message": "使用 Google 登录" @@ -650,5 +641,14 @@ }, "DescriptionImportbookmarks": { "message": "将包含书签的 HTML 文件导入当前文件夹" + }, + "LabelExportBookmarks": { + "message": "导出书签" + }, + "DescriptionExportBookmarks" : { + "message": "您可以将此帐户中的所有书签导出为兼容所有主流浏览器的HTML文件。" + }, + "LabelShareitem": { + "message": "分享" } } From b32f96d3ed0e42d28f4d272ba0ded85f0905fc2f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:04:09 +0000 Subject: [PATCH 099/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f40b1adfce..ecd91961c1 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -261,7 +261,7 @@ "message": "WebDAV 分享" }, "DescriptionAdapterwebdav": { - "message": "WebDAV 选项通过将书签存储在由 WebDAV 提供的共享文件同步书签。该选项不会附带 web UI,可以使用任何兼容 WebDAV 的服务器。可以同步 http、ftp、数据、文件和 Javascript 书签。" + "message": "WebDAV 选项通过将书签存储在由 WebDAV 提供的共享文件同步书签。该选项不会附带 web UI,可以使用任何兼容 WebDAV 的服务器。可同步 http、ftp、数据、文件和 Javascript 书签。" }, "LabelAddaccount": { "message": "添加账户" From 7a77c38f11c233b0e6725479e9fa955e6966e885 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:04:47 +0000 Subject: [PATCH 100/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index ecd91961c1..7257b89ca6 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -646,7 +646,7 @@ "message": "导出书签" }, "DescriptionExportBookmarks" : { - "message": "您可以将此帐户中的所有书签导出为兼容所有主流浏览器的HTML文件。" + "message": "您可以将此帐户中的所有书签导出为兼容所有主流浏览器的 HTML 文件。" }, "LabelShareitem": { "message": "分享" From af51d909904b2c5a2c3ae94062e4f1fb2dbf0b8a Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:10:17 +0000 Subject: [PATCH 101/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 7257b89ca6..409221ba01 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -285,7 +285,7 @@ "message": "无标题文件夹" }, "LabelSetkeybutton": { - "message": "設置密碼" + "message": "设置密码" }, "LabelKey": { "message": "输入解锁密码" @@ -297,10 +297,10 @@ "message": "解锁floccus" }, "LabelRemovekey": { - "message": "刪除密碼" + "message": "删除密码" }, "LabelRemovedkey": { - "message": "密碼已刪除" + "message": "密码已删除" }, "LabelSyncinterval": { "message": "同步间隔" @@ -484,7 +484,7 @@ "message": "您已连接您的 Google 帐户以将书签同步文件存储在您的 Google Drive 中。" }, "LabelPassphrase": { - "message": "密码短语" + "message": "密码" }, "DescriptionPassphrase": { "message": "设置用于加密书签文件的密码短语,如果未设置密码短语,则不会运行加密。" From b36f7f833329ee4999d344e71e258fecdc14123b Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:10:56 +0000 Subject: [PATCH 102/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 409221ba01..345066b4ab 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -343,7 +343,7 @@ "message": "此旧帐户类型已弃用,不久将被删除。请切换到新的 nextcloud 同步方法。性能和准确性的提高正等着您。" }, "LabelUpdated": { - "message": "Floccus已更新" + "message": "Floccus 已更新" }, "DescriptionUpdated": { "message": "恭喜,您的计算机上已经收到了最新的 floccus 更新!" From 37e13d9c40ae197853f6b11b55b9a40a776c85ab Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:11:06 +0000 Subject: [PATCH 103/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 345066b4ab..e9ee47ca61 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -312,7 +312,7 @@ "message": "要如何同步?" }, "LabelOptionsscreen": { - "message": "{0}选项", + "message": "{0} 选项", "description": "Title of the options screen. The placeholder holds the account type." }, "LabelPaypal": { From 084122aba18b2843bfd8e5d704329865d832a4e6 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:11:24 +0000 Subject: [PATCH 104/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index e9ee47ca61..aa98fb5598 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -294,7 +294,7 @@ "message": "再次输入解锁密码" }, "LabelUnlock": { - "message": "解锁floccus" + "message": "解锁 floccus" }, "LabelRemovekey": { "message": "删除密码" From 694acd005f82387e6e61db73e7df52df07042872 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:14:55 +0000 Subject: [PATCH 105/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index aa98fb5598..12f2af7c68 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -111,7 +111,7 @@ "message": "WebDAV URL" }, "DescriptionWebdavurl": { - "message": "例如:使用 NextCloud:https://your-domain.com/remote.php/webdav/" + "message": "例如使用 NextCloud:https://your-domain.com/remote.php/webdav/" }, "LabelNextcloudurl": { "message": "Nextcloud URL" From 07f64593b459270467b4a7a31a064045b7a3a38d Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:15:35 +0000 Subject: [PATCH 106/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 12f2af7c68..e90f9fc2e4 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -201,7 +201,7 @@ "message": "从头开始触发同步" }, "LabelResetCache": { - "message": "重置緩存" + "message": "重置缓存" }, "DescriptionResetcache": { "message": "勾选此框以重置缓存,以确保下一次同步运行不会删除任何数据,只是将服务器和本地书签合并在一起" From 9a10112ca4c9afa108a909a705c6ac08bf918a8e Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 23:22:51 +0000 Subject: [PATCH 107/149] Translate _locales/en/messages.json in zh_CN 100% translated source file: '_locales/en/messages.json' on 'zh_CN'. --- _locales/zh_CN/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index e90f9fc2e4..80bb058863 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -6,7 +6,7 @@ "message": "E002:暂时没有需要更新的书签" }, "Error003": { - "message": "E003:要移出的文件夹不存在。这是一种异常。恭喜你。" + "message": "E003:要移出的文件夹不存在。这是一种异常。恭喜。" }, "Error004": { "message": "E004: 要移入的文件夹不存在" From 644c1da6dc9ccc34d04566eb262fe6e52a144be7 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Fri, 6 Oct 2023 23:51:14 +0000 Subject: [PATCH 108/149] Translate _locales/en/messages.json in de 100% translated source file: '_locales/en/messages.json' on 'de'. --- _locales/de/messages.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/_locales/de/messages.json b/_locales/de/messages.json index a757f22679..8b2acf1be2 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -99,11 +99,14 @@ "message": "E033: Weiterleitung festgestellt. Vergewissern Sie sich, dass der angegebene Server die ausgewählte Synchronisierungsmethode unterstützt und die URL stimmt, die Sie eingegeben haben und nicht auf eine andere URL weiterleitet. Falls die Weiterleitung teil Ihres Server-Setups ist, können Sie diese Kontrolle in den Einstellungen deaktivieren." }, "Error034": { - "message": "E034: Lesezeichendatei ist nicht erreichbar. Haben Sie vergessen eine Verschlüsselungspassphrase anzugeben?" + "message": "E034: Die entfernte Lesezeichendatei ist nicht erreichbar. Haben Sie vergessen eine Verschlüsselungspassphrase anzugeben?" }, "Error035": { "message": "E035: Das folgende Lesezeichen konnte nicht auf dem Server erstellt werden: {0}" }, + "Error036": { + "message": "E036: Fehlende Berechtigungen für den Zugriff auf den Sync-Server" + }, "LabelWebdavurl": { "message": "WebDAV-URL" }, @@ -246,7 +249,7 @@ "message": "Nextcloud Bookmarks" }, "DescriptionAdapternextcloudfolders": { - "message": "Die Option \"Nextcloud Bookmarks\" ist kompatibel mit mindestens Version v0.14 der Bookmarks-App, die nur http- und ftp-Lesezeichen synchronisieren kann." + "message": "Die Option \"Nextcloud-Lesezeichen\" synchronisiert Ihre Lesezeichen mit der Lesezeichen-App für Nextcloud. Es können nur http und ftp Lesezeichen synchronisiert werden. Stellen Sie sicher, dass Sie die Lesezeichen-App aus dem Nextcloud-App-Store in Ihrer Nextcloud installiert haben." }, "LabelAdapternextcloud": { "message": "Nextcloud Bookmarks (alte Version)" @@ -258,17 +261,11 @@ "message": "WebDAV-Freigabe" }, "DescriptionAdapterwebdav": { - "message": "Die WebDAV-Option synchronisiert die Lesezeichen in einer Datei in der angegebenen WebDAV-Freigabe. Es gibt keine Weboberfläche für diese Option und sie kann mit jedem WebDAV-kompatiblen Server genutzt werden. Sie kann http, ftp, Daten und Javascript-Lesezeichen synchronisieren." + "message": "Die WebDAV-Option synchronisiert die Lesezeichen in einer Datei in der angegebenen WebDAV-Freigabe. Es gibt keine Weboberfläche für diese Option und sie kann mit jedem WebDAV-kompatiblen Server genutzt werden. Es können http-, ftp-, Daten-, Datei- und Javascript-Lesezeichen synchronisiert werden." }, "LabelAddaccount": { "message": "Konto hinzufügen" }, - "LabelSecurecredentials": { - "message": "Zugangsdaten absichern" - }, - "LabelSecuredcredentials": { - "message": "Deine Anmeldedaten sind sicher" - }, "LabelOpenintab": { "message": "In Tab öffnen" }, @@ -287,12 +284,6 @@ "LabelUntitledfolder": { "message": "Unbenannter Ordner" }, - "LabelSetkey": { - "message": "Passphrase für Floccus einstellen" - }, - "DescriptionSetkey": { - "message": "Wenn Sie ein Passwort für Floccus setzen, müssen Sie dieses immer beim Browser-Start eingeben, bevor Sie Ihre Lesezeichen synchronisieren oder generell Floccus benutzen können." - }, "LabelSetkeybutton": { "message": "Passphrase einstellen" }, @@ -481,7 +472,7 @@ "message": "Google Drive" }, "DescriptionAdaptergoogledrive": { - "message": "Synchronisieren Sie Lesezeichen mittels einer verschlüsselten Datei, die in Ihrem Google Drive gespeichert wird. Synchronisiert werden können http, ftp, data und javascript Lesezeichen." + "message": "Synchronisieren Sie Lesezeichen mittels einer verschlüsselten Datei, die in Ihrem Google Drive gespeichert wird. Es können http-, ftp-, Daten-, Datei- und Javascript-Lesezeichen synchronisiert werden." }, "LabelLogingoogle": { "message": "Mit Google anmelden" @@ -650,5 +641,14 @@ }, "DescriptionImportbookmarks": { "message": "Importieren einer HTML-Datei mit Lesezeichen in den aktuellen Ordner" + }, + "LabelExportBookmarks": { + "message": "Lesezeichen exportieren" + }, + "DescriptionExportBookmarks" : { + "message": "Sie können alle Lesezeichen in diesem Konto als HTML-Datei exportieren, die mit allen gängigen Browsern kompatibel ist." + }, + "LabelShareitem": { + "message": "Teilen" } } From e96928705ec5e04d72f98c7819f110a676d953ee Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 11 Oct 2023 03:43:13 +0000 Subject: [PATCH 109/149] Translate _locales/en/messages.json in pt_BR 100% translated source file: '_locales/en/messages.json' on 'pt_BR'. --- _locales/pt_BR/messages.json | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 6404d76f4e..ec834d38e1 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -104,6 +104,9 @@ "Error035": { "message": "E035: Falha ao criar o seguinte favorito no servidor: {0}" }, + "Error036": { + "message": "E036: Permissões ausentes para acessar o servidor de sincronização" + }, "LabelWebdavurl": { "message": "WebDAV URL" }, @@ -263,12 +266,6 @@ "LabelAddaccount": { "message": "Adicionar conta" }, - "LabelSecurecredentials": { - "message": "Proteja suas credenciais" - }, - "LabelSecuredcredentials": { - "message": "Suas credenciais estão seguras" - }, "LabelOpenintab": { "message": "Abrir na guia" }, @@ -287,12 +284,6 @@ "LabelUntitledfolder": { "message": "Pasta sem título" }, - "LabelSetkey": { - "message": "Definir uma senha para o floccus" - }, - "DescriptionSetkey": { - "message": "Ao definir uma senha, você terá que inseri-la sempre que iniciar o navegador, se quiser acessar e sincronizar seus favoritos, alterar suas configurações ou fazer qualquer outra coisa com floccus." - }, "LabelSetkeybutton": { "message": "Definir senha" }, From bc462e61fb671f969dd2344762c7bda100e70d93 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 5 Nov 2023 15:20:14 +0100 Subject: [PATCH 110/149] fix(ci/issues): Update ben-z/actions-comment-on-issue --- .github/workflows/issues.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 4f8f2cfa32..5f52e72947 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -3,7 +3,6 @@ name: New issue workflow on: issues: types: [opened] - env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -22,7 +21,7 @@ jobs: runs-on: ubuntu-latest name: Add first comment steps: - - uses: ben-z/actions-comment-on-issue@1.0.2 + - uses: ben-z/actions-comment-on-issue@1.0.3 with: message: | Hello :wave: From 8a5596bbd09c62ae52b65050fe67ea88c924a735 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Sun, 5 Nov 2023 15:26:39 +0100 Subject: [PATCH 111/149] enh: Sync 3s after startup fixes #1392 --- src/lib/browser/BrowserController.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index 03845df266..f6235f8bbc 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -139,6 +139,9 @@ export default class BrowserController { const result = await this[type](...params) sendResponse({type: type + 'Response', params: [result]}) console.log('Sending message', {type: type + 'Response', params: [result]}) + + // checkSync after waiting a bit + setTimeout(() => this.alarms.checkSync(), 3000) } setEnabled(enabled) { From 3b918e744d0e07a0fad2794b4124c0c9b1019104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kry=C5=A1tof=20=C4=8Cern=C3=BD?= Date: Sat, 25 Nov 2023 09:56:15 +0100 Subject: [PATCH 112/149] Fix small case google in messages.json --- _locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 6e80e8b09f..71c32fceae 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -90,7 +90,7 @@ "message": "E030: Failed to decrypt bookmarks file. The passphrase may be wrong or the file may be corrupted." }, "Error031": { - "message": "E031: Could not authenticate with Google Drive. Please connect floccus with your google account again." + "message": "E031: Could not authenticate with Google Drive. Please connect floccus with your Google account again." }, "Error032": { "message": "E032: OAuth error. Token validation error. Please reconnect your Google Account." From 96e01a572e009f31a53d8f7b7ebe81ce21e424e1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Nov 2023 09:25:05 +0000 Subject: [PATCH 113/149] Translate _locales/en/messages.json in cs 100% translated source file: '_locales/en/messages.json' on 'cs'. --- _locales/cs/messages.json | 654 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 654 insertions(+) create mode 100644 _locales/cs/messages.json diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json new file mode 100644 index 0000000000..22db6eb4ba --- /dev/null +++ b/_locales/cs/messages.json @@ -0,0 +1,654 @@ +{ + "Error001": { + "message": "E001: Složka k vytvoření neexistuje" + }, + "Error002": { + "message": "E002: Záložka, která má být aktualizována, už neexistuje" + }, + "Error003": { + "message": "E003: Složka, ze které přesunout, neexistuje. Toto je anomálie. Gratulujeme." + }, + "Error004": { + "message": "E004: Složka, do které přesunout, neexistuje" + }, + "Error005": { + "message": "E005: Složka, ve které vytvořit, neexistuje" + }, + "Error006": { + "message": "E006: Složka, která má být aktualizována, neexistuje" + }, + "Error007": { + "message": "E007: Složka, která má být přesunuta, neexistuje" + }, + "Error008": { + "message": "E008: Složka, ze které přesunout, neexistuje" + }, + "Error009": { + "message": "E009: Složka, do které přesunout, neexistuje" + }, + "Error010": { + "message": "E010: Nedaří se nalézt složku, kterou seřadit" + }, + "Error011": { + "message": "E011: Položka v seřazení složky není skutečně podřazená: {0}" + }, + "Error012": { + "message": "E012: Řazení složky postrádá některé z potomků složky" + }, + "Error013": { + "message": "E013: Složka, která má být odstraněna, neexistuje" + }, + "Error014": { + "message": "E014: Nadřazená složka, ze které složku odstranit, neexistuje" + }, + "Error015": { + "message": "E015: Neočekávaná data v odpovědi ze serveru" + }, + "Error016": { + "message": "E016: Překročen časový limit na vyřízení požadavku. Zkontrolujte nastavení pro vámi využívaný server" + }, + "Error017": { + "message": "E017: Chyba sítě. Zkontrolujte připojení k síti a podrobnosti svého účtu" + }, + "Error018": { + "message": "E018: Nepodařilo se ověřit vůči serveru." + }, + "Error019": { + "message": "E019: HTTP status {0}. Selhalo {1} požadavků. Zkontrolujte vaše nastavení serveru a záznam událostí." + }, + "Error020": { + "message": "E020: Nedaří se zpracovat odpověď ze serveru. Je na serveru nainstalovaná aplikace pro správu záložek?" + }, + "Error021": { + "message": "E021: Nekonzistentní stav serveru. Složka je přítomná v seznamu pořadí potomků ale už ne ve stromu složek" + }, + "Error022": { + "message": "E022: Složka {0} údajně obsahuje neexistující záložku {1}" + }, + "Error023": { + "message": "E023: Nelze odebrat soubor zámku, zvažte ruční odstranění {0}." + }, + "Error024": { + "message": "E024: HTTP stav {0} při pokusu o určení stavu souboru zámku {1}" + }, + "Error025": { + "message": "E025: Je třeba, aby nastavení pro soubor se záložkami nezačínalo na dopředné lomítko: „/“" + }, + "Error026": { + "message": "E026: HTTP stav {0}. Získávání záložek selhalo" + }, + "Error027": { + "message": "E027: Proces synchronizace byl přerušen" + }, + "Error028": { + "message": "E028: Nepodařilo se ověřit vůči serveru." + }, + "Error029": { + "message": "E029: Bezpečnostní pojistka: současná synchronizace by odstranila {0}% vašich záložek. Vykonání odmítnuto. Zakažte tuto bezpečnostní pojistku v nastavení účtu pro pokračování." + }, + "Error030": { + "message": "E030: Dešifrování souboru záložek selhalo. Heslo může být špatně, nebo soubor poškozený." + }, + "Error031": { + "message": "E031: Nelze se ověřit s Google Drive. Prosíme, připojte znovu floccus s vaším Google účtem." + }, + "Error032": { + "message": "E032: Chyba OAuth. Chyba ověření tokenu. Prosíme, připojte znovu svůj Google účet." + }, + "Error033": { + "message": "E033: Zjištěno přesměrování. Prosíme, ujistěte se, že server podporuje vybranou synchronizační metodu a zadaná URL je správně. Pokud je přesměrování součást vašeho nastavení, můžete zakázat ověření přesměrování v nastavení." + }, + "Error034": { + "message": "E034: Vzdálený soubor se záložkami je nečitelný. Nezapomněli jste zadat heslo šifrování?" + }, + "Error035": { + "message": "E035: Chyba při vytváření následující záložky na serveru: {0}" + }, + "Error036": { + "message": "E036: Chybějící oprávnění na přístup k serveru" + }, + "LabelWebdavurl": { + "message": "WebDAV URL" + }, + "DescriptionWebdavurl": { + "message": "např. s nextcloud: https://example.com/remote.php/webdav/" + }, + "LabelNextcloudurl": { + "message": "Nextcloud URL" + }, + "LabelUsername": { + "message": "Uživatelské jméno" + }, + "LabelPassword": { + "message": "Heslo" + }, + "LabelBookmarksfile": { + "message": "Cesta k umístění záložek" + }, + "DescriptionBookmarksfile": { + "message": "cesta k umístění souboru se záložkami, vztažený k WebDAV URL (je třeba, aby všechny složky, uvedené v cestě, už existovaly). např. moje_data/zalozky.xbel" + }, + "DescriptionBookmarksfilegoogle": { + "message": "název souboru se záložkami, pod kterým bude uložen do Google Disk (ujistěte se, že tento název je unikátní napříč Google Diskem)" + }, + "LabelServerfolder": { + "message": "Složka na serveru" + }, + "DescriptionServerfolder": { + "message": "Toto je prefix cesty pod kterým bude tento účet pracovat na serveru. Ponechte prázdné, pokud nemá být prefix použit." + }, + "LabelLocalfolder": { + "message": "Místní složka" + }, + "DescriptionLocalfolder": { + "message": "Toto je místní složka záložek v tomto prohlížeči, která bude synchronizována se serverem. Uvědomte si, že některé prohlížeče nepodporují vytváření nových položek v kořenové složce (například Firefox a Google Chrome)" + }, + "LabelRootfolder": { + "message": "Kořenová složka" + }, + "LabelNewfolder": { + "message": "Nově vytvořená složka" + }, + "LabelOptions": { + "message": "Nastavení" + }, + "LabelSyncnow": { + "message": "Synchronizovat teď" + }, + "LabelCancelsync": { + "message": "Zastavit synchronizaci" + }, + "LabelAutosync": { + "message": "Automatická synchronizace" + }, + "StatusLastsynced": { + "message": "Naposledy synchronizováno před: {0}" + }, + "StatusNeversynced": { + "message": "Zatím nesynchronizováno" + }, + "StatusAllgood": { + "message": "Vše v pořádku" + }, + "StatusDisabled": { + "message": "Vypnuto" + }, + "StatusError": { + "message": "Chyba" + }, + "StatusSyncing": { + "message": "Synchronizuje se" + }, + "LabelReset": { + "message": "Vrátit do výchozího stavu" + }, + "DescriptionReset": { + "message": "Vrátit synchronizovanou složku do výchozího stavu a vytvořit novou" + }, + "LabelChoosefolder": { + "message": "Vybrat složku" + }, + "DescriptionChoosefolder": { + "message": "Použít pro synchronizaci existující složku" + }, + "LabelRemoveaccount": { + "message": "Odstranit účet" + }, + "DescriptionRemoveaccount": { + "message": "Smazat tento účet (toto neodstraní vaše záložky)" + }, + "LabelSyncfromscratch": { + "message": "Vyvolat synchronizaci od znovu" + }, + "LabelResetCache": { + "message": "Smazat mezipaměť" + }, + "DescriptionResetcache": { + "message": "Tuto kolonku zaškrtněte, pokud chcete od znovu vytvořit mezipaměť. Tím bude zaručeno, že při příštím spuštění synchronizace nebudou smazána žádná data a pouze budou sloučeny dohromady záložky ze serveru a ty místní" + }, + "LabelParallelsync": { + "message": "Urychlit synchronizaci" + }, + "DescriptionParallelsync": { + "message": "Zaškrtnutím zapnete souběžné zpracovávání vícero složek, což urychlí synchronizaci. Tato funkce je experimentální a ztěžuje čtení záznamů s ladícími informacemi." + }, + "LabelStrategy": { + "message": "Strategie synchronizace" + }, + "DescriptionStrategy": { + "message": "Tato možnost určuje, jak synchronizovat záložky na jiná zařízení. Většinou budete chtít ponechat změny všech stran, pokud jsou kompatibilní. Ale někdy můžete chtít změny přepsat (zahrnuje přídavky a odstranění) z jiných prohlížečů, nebo přepsat změny udělané místně." + }, + "LabelStrategydefault": { + "message": "Vždy sloučit místní změny se změnami z ostatních prohlížečů (doporučeno)" + }, + "LabelStrategyslave": { + "message": "Vždy zrušit místní změny a stáhnout změny z ostatních prohlížečů." + }, + "LabelStrategyoverwrite": { + "message": "Vždy nahrát místní změny a zrušit změny z ostatních prohlížečů." + }, + "LabelSave": { + "message": "Uložit" + }, + "LabelCancel": { + "message": "Storno" + }, + "LabelAdd": { + "message": "Přidat" + }, + "LabelChange": { + "message": "Změnit" + }, + "LabelRemove": { + "message": "Odebrat" + }, + "LabelBack": { + "message": "Zpět" + }, + "LabelAdapternextcloudfolders": { + "message": "Záložky Nextcloud " + }, + "DescriptionAdapternextcloudfolders": { + "message": "Možnost \"Záložky Nextcloud\" synchronizuje vaše záložky s aplikací Záložky pro Nextcloud. Může synchronizovat jen záložky http a ftp. Ujistěte se, že máte nainstalovanou aplikaci Záložky na vaší instanci Nextcloud." + }, + "LabelAdapternextcloud": { + "message": "Nextcloud Záložky (původní)" + }, + "DescriptionAdapternextcloud": { + "message": "Volba původní je kompatibilní s aplikací záložky verze nejméně 0.11. Bude emulovat složky pomocí štítků obsahujících popis umístění složky. Není doporučeno používat toto pro nové účty." + }, + "LabelAdapterwebdav": { + "message": "WebDAV oddíl" + }, + "DescriptionAdapterwebdav": { + "message": "Možnost WebDAV synchronizuje vaše záložky jejich ukládáním v souboru v poskytnutém WebDAV oddílu. Není žádné webové uživatelské rozhraní pro tuto možnost a můžete ji použít s jakýmkolivkompatibilním WebDAV serverem. Může synchronizovat záložky http, ftp, dat, souborů a javascriptu." + }, + "LabelAddaccount": { + "message": "Přidat účet" + }, + "LabelOpenintab": { + "message": "Otevřít v panelu" + }, + "LabelDebuglogs": { + "message": "Záznamy ladících informací" + }, + "LabelFunddevelopment": { + "message": "Podpořit vývoj" + }, + "DescriptionFunddevelopment": { + "message": "Práce na floccus je poháněna dobrovolným předplatným. Pokud uznáte mou práci za užitečnou a můžete postrádat nějaké drobné bez nesnází, prosím, podpořte mou práci. Též prosím o hodnocení doplňku v obchodu vašeho výběru. Děkuji! 💙" + }, + "LabelSelect": { + "message": "Vybrat" + }, + "LabelUntitledfolder": { + "message": "Nepojmenovaná složka" + }, + "LabelSetkeybutton": { + "message": "Nastavit přístupové heslo" + }, + "LabelKey": { + "message": "Zadejte vaši odemykací heslovou frázi" + }, + "LabelKey2": { + "message": "Zadejte vaši odemykací heslovou frázi podruhé" + }, + "LabelUnlock": { + "message": "Odemknout floccus" + }, + "LabelRemovekey": { + "message": "Odebrat přístupové heslo" + }, + "LabelRemovedkey": { + "message": "Přístupové heslo odebráno" + }, + "LabelSyncinterval": { + "message": "Interval synchronizace" + }, + "DescriptionSyncinterval": { + "message": "Časové rozpětí mezi dvěma synchronizacemi v minutách. Výchozí je 15 minut." + }, + "LabelChooseadapter": { + "message": "Jak chcete synchronizovat?" + }, + "LabelOptionsscreen": { + "message": "{0} možností", + "description": "Title of the options screen. The placeholder holds the account type." + }, + "LabelPaypal": { + "message": "Paypal" + }, + "DescriptionPaypal": { + "message": "Pokud chcete tento projekt podpořit, jednorázově darujte prostřednictvím služby paypal" + }, + "LabelOpencollective": { + "message": "OpenCollective" + }, + "DescriptionOpencollective": { + "message": "Pokud chcete tento projekt podpořit, pravidelně darujte prostřednictvím služby OpenCollective" + }, + "LabelLiberapay": { + "message": "Liberapay" + }, + "DescriptionLiberapay": { + "message": "Pokud chcete tento projekt podpořit, pravidelně darujte prostřednictvím služby Liberapay" + }, + "LabelGithubsponsors": { + "message": "GitHub sponzoři" + }, + "DescriptionGithubsponsors": { + "message": "Pokud chcete tento projekt podpořit, pravidelně darujte prostřednictvím služby GitHub sponsors" + }, + "LegacyAdapterDeprecation": { + "message": "Tento starý typ účtu zastaralý a brzy bude odebrán. Přejděte na novou metodu synchronizace s nextcloud. Čeká vás zlepšený výkon a přesnost." + }, + "LabelUpdated": { + "message": "Floccus byl aktualizován" + }, + "DescriptionUpdated": { + "message": "Gratulujeme, na váš stroj dorazila nejnovější aktualizace doplňku floccus!" + }, + "LabelReleaseNotes": { + "message": "Načíst poznámky k vydání" + }, + "LabelOptionsServerDetails": { + "message": "Podrobnosti o serveru" + }, + "LabelOptionsFolderMapping": { + "message": "Mapování složek" + }, + "LabelOptionsSyncBehavior": { + "message": "Chování synchronizace" + }, + "LabelOptionsDangerous": { + "message": "Nebezpečné akce" + }, + "LabelAccountDeleted": { + "message": "Účet smazán" + }, + "DescriptionAccountDeleted": { + "message": "Tento účet byl smazán" + }, + "LabelNoAccount": { + "message": "Nejsou zde žádné účty" + }, + "DescriptionNoAccount": { + "message": "Vytvořit nový účet pro synchronizaci vašich záložek nebo importovat účet z jiného zařízení či prohlížeče." + }, + "LabelLoginFlowStart": { + "message": "Přihlásit se pomocí Nextcloud" + }, + "LabelLoginFlowStop": { + "message": "O přihlášení pomocí Nextcloud" + }, + "LabelLoginFlowError": { + "message": "Přihlášení pomocí Nextcloud selhalo" + }, + "LabelNewAccount": { + "message": "Nový účet" + }, + "LabelNestedSync": { + "message": "Vnořené účty" + }, + "DescriptionNestedSync": { + "message": "Můžete vnořovat účty, aby nadřazená složka patřila účtu A a podsložka účtu A a B. Chcete povolit ostatním účtům i synchronizaci složky tohoto účtu?" + }, + "LabelNestedSyncNo": { + "message": "Ne, vynechat složky tohoto účtu v jiných účtech." + }, + "LabelNestedSyncYes": { + "message": "Ano, zahnout složky tohoto účtu v jiných účtech." + }, + "LabelImportExport": { + "message": "Importovat/exportovat účty" + }, + "LabelExport": { + "message": "Exportovat účty" + }, + "LabelImport": { + "message": "Importovat účty" + }, + "DescriptionExport": { + "message": "Vyberte účty, které byste chtěli exportovat do souboru, abyste mohli jednoduše přidat tyto účty v jiném zařízení nebo prohlížeči." + }, + "DescriptionImport": { + "message": "Importujte soubor s exportovanými účty pro přidání účtů exportovaných na jiném zařízení nebo prohlížeči. Prosíme, ujistěte se, že po importu nastavíte správné synchronizační složky." + }, + "LabelFolderNotFound": { + "message": "Složka nenalezena" + }, + "LabelSyncTabs": { + "message": "Synchronizovat panely" + }, + "LabelTabs": { + "message": "Panely" + }, + "LabelSyncDown": { + "message": "Stáhnout data" + }, + "DescriptionSyncDown": { + "message": "Stáhnout změny z ostatních prohlížečů a přepsat lokální změny" + }, + "LabelSyncUp": { + "message": "Nahrát data" + }, + "DescriptionSyncUp": { + "message": "Nahrát lokální změny a přepsat změny z ostatních prohlížečů" + }, + "LabelSyncDownOnce": { + "message": "Stáhnout data jednou" + }, + "LabelSyncUpOnce": { + "message": "Nahrát data jednou" + }, + "LabelSyncNormal": { + "message": "Sloučit" + }, + "DescriptionSyncNormal": { + "message": "Sloučit lokální změny se změnami z ostatních prohlížečů" + }, + "DescriptionFilesPermission": { + "message": "Zajistěte, abyste doplňku floccus udělili oprávnění nejen pro používání aplikace Záložky, ale také Nextcloud aplikaci Soubory." + }, + "DescriptionExtension": { + "message": "Synchronizovat vaše záložky soukromě napříč prohlížeči a zařízeními" + }, + "LabelFailsafe": { + "message": "Pojistka" + }, + "DescriptionFailsafe": { + "message": "Občas se stává, že chybná nastavení nebo chyby v software mohou způsobit nezamýšlené odebrání dat, která jsou tím ztracena. Abychom tomu zabránili, doplněk floccus nesmaže více než 50% vašich záložek najednou, pokud zde tuto pojistku nevypnete." + }, + "LabelFailsafeon": { + "message": "Zapnuto. Nemazat více než 50% mých místních záložek, aniž by se mne nejdříve nezeptalo (doporučeno)." + }, + "LabelFailsafeoff": { + "message": "Vypnuto. Umožnit odebrání více než 50% mých místních záložek aniž by ode mne bylo žádáno o potvrzení." + }, + "StatusFailsafeoff": { + "message": "Pojistka vypnuta. Riskujete nezamýšlenou ztrátu dat. Je doporučeno zapnout pojistku v nastaveních účtu." + }, + "LabelAdaptergoogledrive": { + "message": "Google Disk" + }, + "DescriptionAdaptergoogledrive": { + "message": "Synchronizovat záložky přes zašifrovaný soubor uložený ve vašem Google Drive. Může synchronizovat záložky http, ftp, dat a javascriptu." + }, + "LabelLogingoogle": { + "message": "Přihlášení pomocí Google" + }, + "DescriptionLogingoogle": { + "message": "Připojte váš Google účet pro ukládání synchronizačního souboru záložek na váš Google Drive." + }, + "DescriptionLoggedingoogle": { + "message": "Připojili jste váš Google účet pro ukládání synchronizačního souboru záložek na váš Google Drive." + }, + "LabelPassphrase": { + "message": "Přístupové heslo" + }, + "DescriptionPassphrase": { + "message": "Nastavte heslo pro šifrování vašeho souboru záložek. Pokud žádné nenastavíte, soubor nebude šifrován." + }, + "LabelClientcert": { + "message": "Poslat klientské přístupové údaje" + }, + "DescriptionClientcert": { + "message": "Povolte tuto možnost, pokud server vyžaduje klientský certifikát nebo cookies pro ověření. Může to způsobit nečekané vedlejší účinky, protože floccus bude sdílet cookies s vašim profilem prohlížeče." + }, + "LabelAllowredirects": { + "message": "Povolit přesměrování v URL serveru" + }, + "DescriptionAllowredirects": { + "message": "Povolte tuto možnost, pokud dostáváte chyby přesměrování při synchronizaci, u kterých věříte, že jsou nezaručené." + }, + "LabelSearch": { + "message": "Hledat v záložkách" + }, + "LabelSearchfolder": { + "message": "Hledat {0}" + }, + "LabelEdititem": { + "message": "Upravit" + }, + "LabelDeleteitem": { + "message": "Odstranit" + }, + "LabelNobookmarks": { + "message": "Nejsou tu žádné záložky" + }, + "LabelAddbookmark": { + "message": "Přidat záložku" + }, + "LabelEditbookmark": { + "message": "Upravit záložku" + }, + "LabelAddfolder": { + "message": "Přidat složku" + }, + "LabelEditfolder": { + "message": "Upravit složku" + }, + "LabelSlugline": { + "message": "Soukromá synchronizace záložek" + }, + "LabelDownloadlogs": { + "message": "Stáhnout záznam událostí" + }, + "LabelDownloadfulllogs": { + "message": "Celý záznam událostí" + }, + "LabelDownloadanonymizedlogs": { + "message": "Anonymizovaný záznam událostí" + }, + "DescriptionDownloadlogs": { + "message": "Floccus zaznamenává všechny akce do souboru se záznamem událostí, který můžete sami zkontrolovat nebo jej zaslat vývojářům pro účely odhalení chyby. V anonymizovaném záznamu událostí jsou, názvy složek, záložek a stejně tak i URL adresy, nevratně zakódované pomocí kryptografických hašovacích funkcí. Když odesíláte anonymizovaný záznam událostí, ujistěte se, že stažený soubor neobsahuje žádná citlivá data, která nemusela být podchycena v anonymizačním procesu." + }, + "ErrorFolderloopselected": { + "message": "Nelze přesunout složku do sebe samé" + }, + "ErrorNofolderselected": { + "message": "Není vybrána složka" + }, + "LabelAllownetwork": { + "message": "Umožnit využívání sítě" + }, + "DescriptionAllownetwork": { + "message": "Folccus může použít síť mimo připojení k vašemu synchronizačnímu serveru i pro získání dalších informací o vašich záložkách (jako ikony). Zde můžete dovolit toto využití sítě." + }, + "LabelMobilesettings": { + "message": "Nastavení pro mobilní platformu" + }, + "LabelContinuefloccus":{ + "message": "Pokračovat do floccus" + }, + "LabelAbout":{ + "message": "O floccus" + }, + "LabelCurrentversion": { + "message": "Aktuální verze" + }, + "DescriptionCurrentversion": { + "message": "Vámi nainstalovaná verze floccus je:" + }, + "LabelContributors": { + "message": "Přispěvatelé" + }, + "DescriptionContributors": { + "message": "Díky těmto lidem mohl floccus vzniknout" + }, + "LabelSortcustom": { + "message": "Vlastní" + }, + "LabelSorturl": { + "message": "Odkaz" + }, + "LabelSorttitle": { + "message": "Název" + }, + "LabelSyncmethod": { + "message": "Metoda synchronizace" + }, + "LabelSyncserver": { + "message": "Synchronizační server" + }, + "LabelSyncfolders": { + "message": "Synchronizovat složky" + }, + "LabelSyncbehavior": { + "message": "Chování synchronizace" + }, + "LabelContinue": { + "message": "Pokračovat" + }, + "LabelDone": { + "message": "Hotovo" + }, + "LabelConnect": { + "message": "Připojit" + }, + "LabelServersetup": { + "message": "Se kterým serverem chcete synchronizovat?" + }, + "LabelGoogledrivesetup": { + "message": "Přihlášení do Google Disk" + }, + "LabelSyncfoldersetup": { + "message": "Které složky chcete synchronizovat?" + }, + "LabelSyncbehaviorsetup": { + "message": "Jak chcete, aby synchronizace fungovala?" + }, + "LabelAccountcreated": { + "message": "Účet vytvoření" + }, + "DescriptionNonhttps": { + "message": "Byl zadán server, který používá nezabezpečený protokol. Je doporučeno používat pouze servery podporujícíc HTTPS." + }, + "LabelFiletype": { + "message": "Formát souboru" + }, + "DescriptionFiletype": { + "message": "Můžete si vybrat formát ukládání záložek v online úložišti." + }, + "LabelFiletypehtml": { + "message": "HTML, široce podporovaný a otevřený formát (experimentální)" + }, + "LabelFiletypexbel": { + "message": "XBEL, jednoduchý otevřený formát" + }, + "LabelImportbookmarks": { + "message": "Naimportovat záložky" + }, + "DescriptionImportbookmarks": { + "message": "Naimportovat HTML soubor se záložkami do stávající složky" + }, + "LabelExportBookmarks": { + "message": "Exportovat záložky" + }, + "DescriptionExportBookmarks" : { + "message": "Můžete exportovat všechny záložky tohoto účtu ve formátu HTML, který je kompatibilní se všemi hlavními prohlížeči." + }, + "LabelShareitem": { + "message": "Sdílet" + } +} From 106d5224f1a2d25989ff912087fe6ab8fb0fa64b Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 25 Nov 2023 09:28:32 +0000 Subject: [PATCH 114/149] Translate _locales/en/messages.json in cs 100% translated source file: '_locales/en/messages.json' on 'cs'. --- _locales/cs/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 22db6eb4ba..3f2cac6289 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -204,7 +204,7 @@ "message": "Smazat mezipaměť" }, "DescriptionResetcache": { - "message": "Tuto kolonku zaškrtněte, pokud chcete od znovu vytvořit mezipaměť. Tím bude zaručeno, že při příštím spuštění synchronizace nebudou smazána žádná data a pouze budou sloučeny dohromady záložky ze serveru a ty místní" + "message": "Tuto kolonku zaškrtněte pro smazání mezipaměti. Tím bude zaručeno, že při příštím spuštění synchronizace nebudou smazána žádná data a pouze budou sloučeny dohromady záložky ze serveru a ty místní" }, "LabelParallelsync": { "message": "Urychlit synchronizaci" From 60014f4a5412fea1f62c66e960b7ec5c2bf3cbbe Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 5 Dec 2023 19:20:40 +0100 Subject: [PATCH 115/149] fix(NewAccount): Store passphrase for google-drive account correctly fixes #1398 --- src/ui/views/NewAccount.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/views/NewAccount.vue b/src/ui/views/NewAccount.vue index ecd434f323..93d0219160 100644 --- a/src/ui/views/NewAccount.vue +++ b/src/ui/views/NewAccount.vue @@ -360,6 +360,7 @@ export default { ...((this.adapter === 'webdav' || this.adapter === 'google-drive') && {bookmark_file_type: this.bookmark_file_type}), ...(this.adapter === 'google-drive' && {refreshToken: this.refreshToken}), ...(this.passphrase && {passphrase: this.passphrase}), + ...(this.adapter === 'google-drive' && this.passphrase && {password: this.passphrase}), ...(this.isBrowser && {localRoot: this.localRoot}), syncInterval: this.syncInterval, strategy: this.strategy, From b8eb5f144c96e8949eecbf383b1c986a88e0d926 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 5 Dec 2023 19:21:52 +0100 Subject: [PATCH 116/149] fix(OptionSyncFolder): Make more clear what each option does and the implications of that see #1436 --- _locales/en/messages.json | 19 ++++++++++++++----- src/ui/components/OptionSyncFolder.vue | 13 ++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 71c32fceae..28b26d7127 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -132,16 +132,22 @@ "message": "the file name of the bookmarks file that will reside in your Google Drive (make sure this name is unique in your Drive)" }, "LabelServerfolder": { - "message": "Server folder" + "message": "Server target" }, "DescriptionServerfolder": { - "message": "This is the path prefix under which this account will operate on the server. Leave this empty to use no prefix at all." + "message": "When syncing, your bookmarks in this browser will be stored as links under this path on the server. Note, that this path represents a folder in the Nextcloud Bookmarks app, not a folder in Nextcloud Files. Leave this empty to just put all links in the topmost folder on the server." + }, + "LabelLocaltarget": { + "message": "Local target" + }, + "DescriptionLocaltarget": { + "message": "Choose here, whether you want to sync browser bookmarks, or browser tabs." }, "LabelLocalfolder": { - "message": "Local folder" + "message": "Bookmarks folder" }, "DescriptionLocalfolder": { - "message": "This is the local bookmarks folder in this browser that will be synced to the server. Note that some browser don't allow creating new items under the root folder (e.g. Firefox and Google Chrome)" + "message": "Bookmarks in this bookmarks folder will be stored as links on the server and links on the server will be stored as bookmarks in this bookmarks folder in this browser." }, "LabelRootfolder": { "message": "Root folder" @@ -418,7 +424,10 @@ "message": "Folder not found" }, "LabelSyncTabs": { - "message": "Sync Tabs" + "message": "Browser tabs" + }, + "DescriptionSyncTabs": { + "message": "Links that are stored on the server will be opened as browser tabs in your browser and existing open browser tabs are stored as links on your server. Note that depending how many links are stored on the server, since they will all be opened as tabs on the next sync run, this may possibly overwhelm your browser." }, "LabelTabs": { "message": "Tabs" diff --git a/src/ui/components/OptionSyncFolder.vue b/src/ui/components/OptionSyncFolder.vue index c86b2c72e0..3c5a445b14 100644 --- a/src/ui/components/OptionSyncFolder.vue +++ b/src/ui/components/OptionSyncFolder.vue @@ -2,10 +2,7 @@
- {{ t('LabelLocalfolder') }} -
-
- {{ t('DescriptionLocalfolder') }} + {{ t('LabelLocaltarget') }}
+
+ {{ t('DescriptionLocalfolder') }} +
+
+ {{ t('DescriptionSyncTabs') }} +
Date: Wed, 6 Dec 2023 09:32:51 +0000 Subject: [PATCH 117/149] Translate _locales/en/messages.json in gl 100% translated source file: '_locales/en/messages.json' on 'gl'. --- _locales/gl/messages.json | 663 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 663 insertions(+) create mode 100644 _locales/gl/messages.json diff --git a/_locales/gl/messages.json b/_locales/gl/messages.json new file mode 100644 index 0000000000..479cced041 --- /dev/null +++ b/_locales/gl/messages.json @@ -0,0 +1,663 @@ +{ + "Error001": { + "message": "E001: O cartafol no que crear non existe" + }, + "Error002": { + "message": "E002: O marcador para actualizar xa non existe" + }, + "Error003": { + "message": "E003: O cartafol do que se debe mover non existe. Isto é unha anomalía. Parabéns." + }, + "Error004": { + "message": "E004: O cartafol ao que mover non existe" + }, + "Error005": { + "message": "E005: O cartafol no que crear non existe" + }, + "Error006": { + "message": "E006: O cartafol para actualizar non existe" + }, + "Error007": { + "message": "E007: O cartafol para mover non existe" + }, + "Error008": { + "message": "E008: O cartafol do que se debe mover non existe." + }, + "Error009": { + "message": "E009: O cartafol ao que mover non existe" + }, + "Error010": { + "message": "E010: Non foi posíbel atopar o cartafol para ordenar" + }, + "Error011": { + "message": "E011: O elemento na ordenación do cartafol non é un fillo real: {0}" + }, + "Error012": { + "message": "E012: Na ordenación do cartafol faltan algúns dos fillos do cartafol" + }, + "Error013": { + "message": "E013: O cartafol para retirar non existe" + }, + "Error014": { + "message": "E014: O cartafol principal do que eliminar o cartafol non existe" + }, + "Error015": { + "message": "E015: Datos de resposta non agardados do servidor" + }, + "Error016": { + "message": "E016: Esgotouse o tempo de espera da solicitude. Comprobe a configuración do servidor" + }, + "Error017": { + "message": "E017: Erro de rede: Comprobe a conexión de rede e os detalles da súa conta" + }, + "Error018": { + "message": "E018: Non foi posíbel autenticar co servidor." + }, + "Error019": { + "message": "E019: Estado HTTP {0}. Fallo na solicitude {1}. Comprobe a configuración e o rexistro do servidor." + }, + "Error020": { + "message": "E020: Non foi posíbel analizar a resposta do servidor. Está instalada no servidor a aplicación de marcadores?" + }, + "Error021": { + "message": "E021: Estado do incoherente do servidor. O cartafol está presente na lista de cartafoles secundarios mais non na árbore de cartafoles" + }, + "Error022": { + "message": "E022: O cartafol {0} supostamente contén un marcador {1} inexistente" + }, + "Error023": { + "message": "E023: Non é posíbel borrar o ficheiro de bloqueo, considere eliminar {0} manualmente." + }, + "Error024": { + "message": "E024: Estado HTTP {0} ao tentar determinar o estado do ficheiro de bloqueo {1}" + }, + "Error025": { + "message": "E025: A configuración do ficheiro de marcadores non debe comezar cunha barra: «/»" + }, + "Error026": { + "message": "E026: Estado HTTP {0}. Produciuse un erro ao recuperar os marcadores" + }, + "Error027": { + "message": "E027: O proceso de sincronización foi interrompido" + }, + "Error028": { + "message": "E028: Non foi posíbel autenticar co servidor." + }, + "Error029": { + "message": "E029: A proba de fallos: a execución de sincronización actual eliminaría o {0}% dos marcadores. Rexeitouse a execución. Desactive esta función de seguranza na configuración da conta se quere continuar de todos os xeitos." + }, + "Error030": { + "message": "E030: Produciuse un fallo ao descifrar o ficheiro de marcadores. É posíbel que a frase de contrasinal sexa incorrecta ou que o ficheiro estea estragado." + }, + "Error031": { + "message": "E031: Non foi posíbel autenticar con Google Drive. Conecte Floccus coa súa conta de Google de novo." + }, + "Error032": { + "message": "E032: Erro de OAuth. Produciuse un erro de validación do testemuño. Volva conectar a súa conta de Google." + }, + "Error033": { + "message": "E033: Detectouse unha redirección. Asegúrese de que o servidor admite o método de sincronización seleccionado e que o URL que introduciu sexa correcto e non redirixa a unha localización diferente. Se a redirección forma parte da súa configuración, pode desactivar esta comprobación na configuración." + }, + "Error034": { + "message": "E034: O ficheiro remoto de marcadores non é lexíbel. Esqueceu definir unha frase de contrasinal de cifrado?" + }, + "Error035": { + "message": "E035: Produciuse un erro ao crear o seguinte marcador no servidor: {0}" + }, + "Error036": { + "message": "E036: Faltan permisos para acceder ao servidor de sincronización" + }, + "LabelWebdavurl": { + "message": "URL de WebDAV" + }, + "DescriptionWebdavurl": { + "message": "p. ex. con Nextcloud: https://example.com/remote.php/webdav/" + }, + "LabelNextcloudurl": { + "message": "URL de Nextcloud" + }, + "LabelUsername": { + "message": "Nome de usuario" + }, + "LabelPassword": { + "message": "Contrasinal" + }, + "LabelBookmarksfile": { + "message": "Ruta do ficheiro de marcadores" + }, + "DescriptionBookmarksfile": { + "message": "unha ruta ao ficheiro de marcadores relativo ao URL de WebDAV (xa deben existir todos os cartafoles da ruta). p. ex. cousas_persoais/bookmarks.xbel" + }, + "DescriptionBookmarksfilegoogle": { + "message": "o nome do ficheiro de marcadores que residirá no seu Google Drive (asegúrese de que este nome é único no seu Drive)" + }, + "LabelServerfolder": { + "message": "Servidor de destino" + }, + "DescriptionServerfolder": { + "message": "Ao sincronizar, os marcadores neste navegador almacenaranse como ligazóns nesta ruta no servidor. Teña en conta que esta ruta representa un cartafol na aplicación Marcadores de Nextcloud, non un cartafol en Ficheiros de Nextcloud. Deixe isto baleiro para poñer todas as ligazóns no cartafol superior do servidor." + }, + "LabelLocaltarget": { + "message": "Destino local" + }, + "DescriptionLocaltarget": { + "message": "Escolla aquí se quere sincronizar os marcadores ou as lapelas do navegador." + }, + "LabelLocalfolder": { + "message": "Cartafol de marcadores" + }, + "DescriptionLocalfolder": { + "message": "Os marcadores deste cartafol de marcadores almacenaranse como ligazóns no servidor e as ligazóns do servidor almacenaranse como marcadores neste cartafol de marcadores neste navegador." + }, + "LabelRootfolder": { + "message": "Cartafol raíz" + }, + "LabelNewfolder": { + "message": "Cartafol recén creado" + }, + "LabelOptions": { + "message": "Opcións" + }, + "LabelSyncnow": { + "message": "Sincronizar agora" + }, + "LabelCancelsync": { + "message": "Cancelar a sincronización" + }, + "LabelAutosync": { + "message": "Sincronización automática" + }, + "StatusLastsynced": { + "message": "Última sincronización: hai {0}" + }, + "StatusNeversynced": { + "message": "Aínda sen sincronizar" + }, + "StatusAllgood": { + "message": "Todo ben" + }, + "StatusDisabled": { + "message": "Desactivado" + }, + "StatusError": { + "message": "Erro" + }, + "StatusSyncing": { + "message": "Sincronizando" + }, + "LabelReset": { + "message": "Restabelecer" + }, + "DescriptionReset": { + "message": "Restabelecer o cartafol sincronizado para crear un novo" + }, + "LabelChoosefolder": { + "message": "Escoller un cartafol" + }, + "DescriptionChoosefolder": { + "message": "Definir un cartafol existente para sincronizar" + }, + "LabelRemoveaccount": { + "message": "Retirar a conta" + }, + "DescriptionRemoveaccount": { + "message": "Eliminar esta conta (isto non eliminará os marcadores)" + }, + "LabelSyncfromscratch": { + "message": "Activar a sincronización dende cero" + }, + "LabelResetCache": { + "message": "Restabelecer a caché" + }, + "DescriptionResetcache": { + "message": "Marque esta caixa para restabelecer a caché para que a seguinte execución de sincronización non elimine ningún dato e só combine os marcadores locais e o servidor." + }, + "LabelParallelsync": { + "message": "Acelerar a sincronización" + }, + "DescriptionParallelsync": { + "message": "Marque esta caixa para procesar varios cartafoles en paralelo para acelerar a sincronización. Esta función é experimental e dificulta a lectura dos rexistros de depuración." + }, + "LabelStrategy": { + "message": "Estratexia de sincronización" + }, + "DescriptionStrategy": { + "message": "Esta opción determina como sincronizar os marcadores en diferentes dispositivos. Normalmente quererá manter os cambios de todos os lados se son compatíbeis, mais ás veces pode querer sobrescribir os cambios (incluíndo engadidos e eliminacións) doutros navegadores ou sobrescribir os cambios que teña feito localmente." + }, + "LabelStrategydefault": { + "message": "Combinar sempre os cambios locais cos cambios doutros navegadores (recomendado)" + }, + "LabelStrategyslave": { + "message": "Desfacer sempre os cambios locais e descargar os cambios doutros navegadores" + }, + "LabelStrategyoverwrite": { + "message": "Enviar sempre os cambios locais e desfacer os cambios doutros navegadores" + }, + "LabelSave": { + "message": "Gardar" + }, + "LabelCancel": { + "message": "Cancelar" + }, + "LabelAdd": { + "message": "Engadir" + }, + "LabelChange": { + "message": "Cambiar" + }, + "LabelRemove": { + "message": "Retirar" + }, + "LabelBack": { + "message": "Artrás" + }, + "LabelAdapternextcloudfolders": { + "message": "Marcadores de Nextcloud" + }, + "DescriptionAdapternextcloudfolders": { + "message": "A opción «Marcadores de Nextcloud» sincroniza os marcadores coa aplicación Marcadores de Nextcloud. Só pode sincronizar os marcadores http e ftp. Asegúrese de ter instalado a aplicación Marcadores da tenda de aplicacións de Nextcloud na súa instancia de Nextcloud." + }, + "LabelAdapternextcloud": { + "message": "Marcadores de Nextcloud (herdados)" + }, + "DescriptionAdapternextcloud": { + "message": "A opción herdada é compatíbel polo menos coa versión v0.11 da aplicación Marcadores. Emulará cartafoles usando etiquetas que conteñan a ruta do cartafol. Non se recomenda usar isto para contas novas." + }, + "LabelAdapterwebdav": { + "message": "Compartir con WebDAV" + }, + "DescriptionAdapterwebdav": { + "message": "A opción WebDAV sincroniza os marcadores almacenándoos nun ficheiro no recurso compartido WebDAV fornecido. Non hai unha interface de usuario web para esta opción e pode usala con calquera servidor compatíbel con WebDAV. Pode sincronizar os marcadores http, ftp, datos, ficheiros e javascript." + }, + "LabelAddaccount": { + "message": "Engadir unha conta" + }, + "LabelOpenintab": { + "message": "Abrir na lapela" + }, + "LabelDebuglogs": { + "message": "Rexistros de depuración" + }, + "LabelFunddevelopment": { + "message": "Recadación de fondos" + }, + "DescriptionFunddevelopment": { + "message": "O traballo en Floccusfloccus fomentase cun modelo de subscrición voluntaria. Se pensa que o que fago paga a pena e pode dispoñer dalgún carto cada mes sen dificultades, apoie o meu traballo. Ademais, considere darlle a Floccus unha valoración na tenda de engadidos da súa escolle. Grazas!💙" + }, + "LabelSelect": { + "message": "Seleccionar" + }, + "LabelUntitledfolder": { + "message": "Cartafol sen título" + }, + "LabelSetkeybutton": { + "message": "Definir a frase de contrasinal" + }, + "LabelKey": { + "message": "Introduza a frase de contrasinal de desbloqueo" + }, + "LabelKey2": { + "message": "Introduza a frase de contrasinal por segunda vez" + }, + "LabelUnlock": { + "message": "Desbloquear Floccus" + }, + "LabelRemovekey": { + "message": "Retirar a frase de contrasinal" + }, + "LabelRemovedkey": { + "message": "Retirouse a frase de contrasinal" + }, + "LabelSyncinterval": { + "message": "Intervalo de sincronización" + }, + "DescriptionSyncinterval": { + "message": "O intervalo de tempo entre dúas sincronizacións en minutos. O predeterminado é 15 minutos." + }, + "LabelChooseadapter": { + "message": "Como quere sincronizar?" + }, + "LabelOptionsscreen": { + "message": "{0} opcións", + "description": "Title of the options screen. The placeholder holds the account type." + }, + "LabelPaypal": { + "message": "Paypal" + }, + "DescriptionPaypal": { + "message": "Faga unha única doazón a través de PayPal para colaborar co proxecto" + }, + "LabelOpencollective": { + "message": "OpenCollective" + }, + "DescriptionOpencollective": { + "message": "Faga unha doazón regular a través de OpenCollective para colaborar co proxecto" + }, + "LabelLiberapay": { + "message": "Liberapay" + }, + "DescriptionLiberapay": { + "message": "Faga unha doazón regular a través de Liberapay para colaborar co proxecto" + }, + "LabelGithubsponsors": { + "message": "Patrocinadores de GitHub" + }, + "DescriptionGithubsponsors": { + "message": "Faga unha doazón regular a través dos patrocinadores de GitHub para colaborar co proxecto" + }, + "LegacyAdapterDeprecation": { + "message": "Este tipo de conta herdado está en desuso e vai ser eliminado en pouco tempo. Cambie ao novo método de sincronización de Nextcloud. Agárdanlle melloras de rendemento e precisión." + }, + "LabelUpdated": { + "message": "Floccus foi actualizado" + }, + "DescriptionUpdated": { + "message": "Parabéns, a última actualización de Floccus xa está na súa máquina." + }, + "LabelReleaseNotes": { + "message": "Lea as notas de publicación" + }, + "LabelOptionsServerDetails": { + "message": "Detalles do servidor" + }, + "LabelOptionsFolderMapping": { + "message": "Asignación de cartafoles" + }, + "LabelOptionsSyncBehavior": { + "message": "Comportamento da sincronización" + }, + "LabelOptionsDangerous": { + "message": "Accións perigosas" + }, + "LabelAccountDeleted": { + "message": "Conta eliminada" + }, + "DescriptionAccountDeleted": { + "message": "Esta conta foi eliminada" + }, + "LabelNoAccount": { + "message": "Aquí non hai ningunha conta" + }, + "DescriptionNoAccount": { + "message": "Crea unha conta nova para sincronizar os marcadores ou importar contas dende un dispositivo ou navegador diferente." + }, + "LabelLoginFlowStart": { + "message": "Acceder con Nextcloud" + }, + "LabelLoginFlowStop": { + "message": "Interromper o acceso a Nextcloud" + }, + "LabelLoginFlowError": { + "message": "Produciuse n fallo ao acceder a Nextcloud" + }, + "LabelNewAccount": { + "message": "Nova conta" + }, + "LabelNestedSync": { + "message": "Contas aniñadas" + }, + "DescriptionNestedSync": { + "message": "Pode aniñar contas para que un cartafol principal pertenza á conta A e un subcartafol á conta A e B. Quere permitir que outras contas sincronicen tamén o cartafol desta conta?" + }, + "LabelNestedSyncNo": { + "message": "Non, ignorar o cartafol desta conta noutras contas" + }, + "LabelNestedSyncYes": { + "message": "Si, incluír o cartafol desta conta noutras contas" + }, + "LabelImportExport": { + "message": "Importar/Exportar contas" + }, + "LabelExport": { + "message": "Exportar contas" + }, + "LabelImport": { + "message": "Importar contas" + }, + "DescriptionExport": { + "message": "Seleccione a seguir as contas que quere exportar a un ficheiro, de xeito que poida volver crear doadamente as mesmas contas nun dispositivo ou navegador diferente." + }, + "DescriptionImport": { + "message": "Importe aquí un ficheiro coas contas exportadas para volver crear contas exportadas nun dispositivo ou navegador diferente. Asegúrese de configurar de novo os cartafoles de sincronización correctos após importar." + }, + "LabelFolderNotFound": { + "message": "Non se atopou o cartafol" + }, + "LabelSyncTabs": { + "message": "Lapelas do navegador" + }, + "DescriptionSyncTabs": { + "message": "As ligazóns que se almacenan no servidor abriranse como lapelas do navegador no seu navegador e as lapelas abertas existentes almacénanse como ligazóns no seu servidor. Teña en conta que, dependendo de cantas ligazóns se almacenen no servidor, abriranse todas na seguinte sincronización, isto podería desbordar o seu navegador." + }, + "LabelTabs": { + "message": "Lapelas" + }, + "LabelSyncDown": { + "message": "Empurrar cara abaixo" + }, + "DescriptionSyncDown": { + "message": "Descarga os cambios doutros navegadores e sobrescribe os cambios locais" + }, + "LabelSyncUp": { + "message": "Empurrar cara arriba" + }, + "DescriptionSyncUp": { + "message": "Envia os cambios locais e sobrescribe os cambios doutros navegadores" + }, + "LabelSyncDownOnce": { + "message": "Empurrar un cara abaixo" + }, + "LabelSyncUpOnce": { + "message": "Empurrar un cara arriba" + }, + "LabelSyncNormal": { + "message": "Combinar" + }, + "DescriptionSyncNormal": { + "message": "Combinar os cambios locais cos cambios doutros navegadores" + }, + "DescriptionFilesPermission": { + "message": "Asegúrese de dar permiso a Floccus non só para usar a aplicación de marcadores senón tamén a aplicación de ficheiros de Nextcloud." + }, + "DescriptionExtension": { + "message": "Sincronizar os marcadores de forma privada en navegadores e dispositivos" + }, + "LabelFailsafe": { + "message": "A proba de fallos" + }, + "DescriptionFailsafe": { + "message": "Ás veces, os erros de configuración ou os erros de software poden provocar a eliminación involuntaria de datos, que após se perden. Para evitar que isto suceda, Floccus non eliminará máis do 50% dos marcadores dunha soa vez, a non ser que desactive aquí esta «a proba de fallos»." + }, + "LabelFailsafeon": { + "message": "Activado. Non eliminar máis do 50% dos marcadores locais sen preguntar antes. (Recomendado)" + }, + "LabelFailsafeoff": { + "message": "Desactivado. Permitir a eliminación de máis do 50% dos marcadores locais sen preguntar para confirmar." + }, + "StatusFailsafeoff": { + "message": "A proba de fallos desactivada. Corre o risco de perder datos de xeito involuntario. Recoméndase activar a proba de fallos na configuración da conta." + }, + "LabelAdaptergoogledrive": { + "message": "Google Drive" + }, + "DescriptionAdaptergoogledrive": { + "message": "Sincroniza os marcadores mediante un ficheiro cifrado que se almacena no seu Google Drive. Pode sincronizar os marcadores http, ftp, datos, ficheiros e javascript." + }, + "LabelLogingoogle": { + "message": "Acceder con Google" + }, + "DescriptionLogingoogle": { + "message": "Conecte a súa conta de Google para almacenar o ficheiro de sincronización dos marcadores no seu Google Drive." + }, + "DescriptionLoggedingoogle": { + "message": "Conectou a súa conta de Google para almacenar o ficheiro de sincronización dos marcadores no seu Google Drive." + }, + "LabelPassphrase": { + "message": "Frase de contrasinal" + }, + "DescriptionPassphrase": { + "message": "Definir unha frase de contrasinal para cifrar o ficheiro de marcadores; se non estabelece ningunha frase de contrasinal, non se executará ningún cifrado." + }, + "LabelClientcert": { + "message": "Enviar as credenciais do cliente" + }, + "DescriptionClientcert": { + "message": "Active esta opción se o seu servidor require un certificado de cliente ou cookies para a autenticación. Isto pode causar efectos secundarios non desexados, xa que Floccus compartirá cookies co seu perfil de navegador normal." + }, + "LabelAllowredirects": { + "message": "Permitir redireccións no URL do servidor" + }, + "DescriptionAllowredirects": { + "message": "Active esta opción se recibe erros de redirección durante a sincronización, que cree que non son xustificados." + }, + "LabelSearch": { + "message": "Buscar marcadores" + }, + "LabelSearchfolder": { + "message": "Buscar {0}" + }, + "LabelEdititem": { + "message": "Editar" + }, + "LabelDeleteitem": { + "message": "Eliminar" + }, + "LabelNobookmarks": { + "message": "Aquí non hai marcadores" + }, + "LabelAddbookmark": { + "message": "Engadir un marcador" + }, + "LabelEditbookmark": { + "message": "Editar o marcador" + }, + "LabelAddfolder": { + "message": "Engadir un cartafol" + }, + "LabelEditfolder": { + "message": "Editar o cartafol" + }, + "LabelSlugline": { + "message": "Sincronización de marcadores privados" + }, + "LabelDownloadlogs": { + "message": "Descargar rexistros" + }, + "LabelDownloadfulllogs": { + "message": "Rexistros completos" + }, + "LabelDownloadanonymizedlogs": { + "message": "Rexistros redactados" + }, + "DescriptionDownloadlogs": { + "message": "Floccus rexistra todas as súas accións nun ficheiro de rexistro que pode examinar vostede mesmo ou enviar aos desenvolvedores para fins de depuración. Nos rexistros redactados, os nomes de cartafoles e marcadores, así como os URL, codifícanse de xeito irreversíbel mediante unha función de resumo criptográfico. Cando envíe rexistros redactados, asegúrese de comprobar tamén o ficheiro descargado na busca de datos confidenciais que quizais non poderían non ter sido detectados polo proceso de anonimización." + }, + "ErrorFolderloopselected": { + "message": "Non é posíbel mover un cartafol cara a si mesmo" + }, + "ErrorNofolderselected": { + "message": "Non se seleccionou ningún cartafol" + }, + "LabelAllownetwork": { + "message": "Permitir o uso da rede" + }, + "DescriptionAllownetwork": { + "message": "Floccus pode usar a rede ademais de para conectarse ao seu servidor de sincronización, para obter información adicional sobre os teus marcadores (como iconas, etc.). Aquí pode activar o uso da rede." + }, + "LabelMobilesettings": { + "message": "Axustes do móbil" + }, + "LabelContinuefloccus":{ + "message": "Continúar a floco" + }, + "LabelAbout":{ + "message": "Sobre" + }, + "LabelCurrentversion": { + "message": "Versión actual" + }, + "DescriptionCurrentversion": { + "message": "A versión instalada actualmente de Floccus é:" + }, + "LabelContributors": { + "message": "Colaboradores" + }, + "DescriptionContributors": { + "message": "Estas persoas axudaron a facer posíbel Floccus" + }, + "LabelSortcustom": { + "message": "Personalizado" + }, + "LabelSorturl": { + "message": "Ligazón" + }, + "LabelSorttitle": { + "message": "Título" + }, + "LabelSyncmethod": { + "message": "Método de sincronización" + }, + "LabelSyncserver": { + "message": "Servidor de sincronización" + }, + "LabelSyncfolders": { + "message": "Sincronizar cartafoles" + }, + "LabelSyncbehavior": { + "message": "Comportamento da sincronización" + }, + "LabelContinue": { + "message": "Continuar" + }, + "LabelDone": { + "message": "Feito" + }, + "LabelConnect": { + "message": "Conectar" + }, + "LabelServersetup": { + "message": "Con que servidor quere sincronizar?" + }, + "LabelGoogledrivesetup": { + "message": "Acceder a Google Drive" + }, + "LabelSyncfoldersetup": { + "message": "Que cartafoles quere sincronizar?" + }, + "LabelSyncbehaviorsetup": { + "message": "Como quere que funcione a sincronización?" + }, + "LabelAccountcreated": { + "message": "Conta creada" + }, + "DescriptionNonhttps": { + "message": "Introduciu un servidor que usa un protocolo inseguro. Recoméndase utilizar só servidores compatíbeis con HTTPS." + }, + "LabelFiletype": { + "message": "Formato de ficheiro" + }, + "DescriptionFiletype": { + "message": "Pode escoller o formato de ficheiro que quere usar para almacenar os marcadores na nube." + }, + "LabelFiletypehtml": { + "message": "HTML, un formato aberto amplamente admitido (experimental)" + }, + "LabelFiletypexbel": { + "message": "XBEL, un formato sinxelo e aberto" + }, + "LabelImportbookmarks": { + "message": "Importar marcadores" + }, + "DescriptionImportbookmarks": { + "message": "Importar un ficheiro HTML que conteña marcadores ao cartafol actual" + }, + "LabelExportBookmarks": { + "message": "Exportar marcadores" + }, + "DescriptionExportBookmarks" : { + "message": "Pode exportar todos os marcadores desta conta como ficheiro HTML compatíbel con todos os principais navegadores." + }, + "LabelShareitem": { + "message": "Compartir" + } +} From 079bc4fa7cc89168e5e5d185795970db28e0526c Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 6 Dec 2023 20:08:39 +0100 Subject: [PATCH 118/149] fix(OptionSyncInterval): Allow setting to 5min fixes #1414 --- src/ui/components/OptionSyncInterval.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/components/OptionSyncInterval.vue b/src/ui/components/OptionSyncInterval.vue index f37830f62f..e25563d833 100644 --- a/src/ui/components/OptionSyncInterval.vue +++ b/src/ui/components/OptionSyncInterval.vue @@ -53,7 +53,7 @@ export default { const newDelta = Math.abs(value - this.value) if (currentDelta > newDelta) return index else return closestIndex - }, 0) || this.syncIntervalSteps.indexOf(15) + }, 0) }, syncIntervalStep(step) { this.$emit('input', this.syncIntervalSteps[step]) From 65b5d050209f218dc8c339b71220f0b5fda76574 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 6 Dec 2023 20:18:38 +0100 Subject: [PATCH 119/149] fix(Options): Allow turning auto-sync back on fixes #1438 Signed-off-by: Marcel Klehr --- src/ui/components/OptionsGoogleDrive.vue | 10 +++++++++- src/ui/components/OptionsNextcloudBookmarks.vue | 10 +++++++++- src/ui/components/OptionsWebdav.vue | 10 +++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/ui/components/OptionsGoogleDrive.vue b/src/ui/components/OptionsGoogleDrive.vue index d401a5c788..a5020a5bb7 100644 --- a/src/ui/components/OptionsGoogleDrive.vue +++ b/src/ui/components/OptionsGoogleDrive.vue @@ -81,6 +81,14 @@ {{ t('LabelOptionsSyncBehavior') }} + @@ -130,7 +138,7 @@ import OptionExportBookmarks from './OptionExportBookmarks.vue' export default { name: 'OptionsGoogleDrive', components: { OptionExportBookmarks, OptionPassphrase, OptionAllowNetwork, OptionDownloadLogs, OptionFailsafe, OptionSyncFolder, OptionDeleteAccount, OptionSyncStrategy, OptionResetCache, OptionSyncInterval, OptionNestedSync }, - props: ['username', 'password', 'refreshToken', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'bookmark_file', 'nestedSync', 'failsafe'], + props: ['username', 'password', 'refreshToken', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'bookmark_file', 'nestedSync', 'failsafe', 'enabled'], data() { return { panels: [0, 1], diff --git a/src/ui/components/OptionsNextcloudBookmarks.vue b/src/ui/components/OptionsNextcloudBookmarks.vue index e963f694b8..68460b2c14 100644 --- a/src/ui/components/OptionsNextcloudBookmarks.vue +++ b/src/ui/components/OptionsNextcloudBookmarks.vue @@ -72,6 +72,14 @@ {{ t('LabelOptionsSyncBehavior') }} + @@ -131,7 +139,7 @@ import OptionExportBookmarks from './OptionExportBookmarks.vue' export default { name: 'OptionsNextcloudBookmarks', components: { OptionExportBookmarks, OptionAllowNetwork, OptionDownloadLogs, OptionAllowRedirects, OptionClientCert, OptionFailsafe, OptionNestedSync, NextcloudLogin, OptionSyncFolder, OptionDeleteAccount, OptionSyncStrategy, OptionResetCache, OptionSyncInterval }, - props: ['url', 'username', 'password', 'includeCredentials', 'serverRoot', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'nestedSync', 'failsafe', 'allowRedirects'], + props: ['url', 'username', 'password', 'includeCredentials', 'serverRoot', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'nestedSync', 'failsafe', 'allowRedirects', 'enabled'], data() { return { panels: [0, 1] diff --git a/src/ui/components/OptionsWebdav.vue b/src/ui/components/OptionsWebdav.vue index f2c46307cc..8c37dc5a55 100644 --- a/src/ui/components/OptionsWebdav.vue +++ b/src/ui/components/OptionsWebdav.vue @@ -81,6 +81,14 @@ {{ t('LabelOptionsSyncBehavior') }} + @@ -140,7 +148,7 @@ import OptionExportBookmarks from './OptionExportBookmarks.vue' export default { name: 'OptionsWebdav', components: { OptionExportBookmarks, OptionAllowNetwork, OptionDownloadLogs, OptionAllowRedirects, OptionClientCert, OptionFailsafe, OptionSyncFolder, OptionDeleteAccount, OptionSyncStrategy, OptionResetCache, OptionSyncInterval, OptionNestedSync, OptionFileType }, - props: ['url', 'username', 'password','passphrase', 'includeCredentials', 'serverRoot', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'bookmark_file', 'nestedSync', 'failsafe', 'allowRedirects', 'bookmark_file_type'], + props: ['url', 'username', 'password','passphrase', 'includeCredentials', 'serverRoot', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'bookmark_file', 'nestedSync', 'failsafe', 'allowRedirects', 'bookmark_file_type', 'enabled'], data() { return { panels: [0, 1], From 5aca2d08df7c616ca6b248925addc1c91b980679 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 11:19:09 +0100 Subject: [PATCH 120/149] enh: upgrade to capacitor 5 Signed-off-by: Marcel Klehr --- android/.idea/compiler.xml | 2 +- android/app/build.gradle | 1 + android/app/capacitor.build.gradle | 4 +- android/app/src/main/AndroidManifest.xml | 2 +- android/build.gradle | 3 +- android/gradle.properties | 3 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/variables.gradle | 20 +- ios/.gitignore | 2 +- ios/App/App.xcodeproj/project.pbxproj | 8 +- .../AppIcon.appiconset/AppIcon-20x20@1x.png | Bin 10915 -> 0 bytes .../AppIcon.appiconset/AppIcon-20x20@2x-1.png | Bin 10980 -> 0 bytes .../AppIcon.appiconset/AppIcon-20x20@2x.png | Bin 10980 -> 0 bytes .../AppIcon.appiconset/AppIcon-20x20@3x.png | Bin 10569 -> 0 bytes .../AppIcon.appiconset/AppIcon-29x29@1x.png | Bin 10610 -> 0 bytes .../AppIcon.appiconset/AppIcon-29x29@2x-1.png | Bin 10598 -> 0 bytes .../AppIcon.appiconset/AppIcon-29x29@2x.png | Bin 10595 -> 0 bytes .../AppIcon.appiconset/AppIcon-29x29@3x.png | Bin 10899 -> 0 bytes .../AppIcon.appiconset/AppIcon-40x40@1x.png | Bin 10980 -> 0 bytes .../AppIcon.appiconset/AppIcon-40x40@2x-1.png | Bin 10380 -> 0 bytes .../AppIcon.appiconset/AppIcon-40x40@2x.png | Bin 10381 -> 0 bytes .../AppIcon.appiconset/AppIcon-40x40@3x.png | Bin 11699 -> 0 bytes .../AppIcon.appiconset/AppIcon-60x60@2x.png | Bin 11699 -> 0 bytes .../AppIcon.appiconset/AppIcon-60x60@3x.png | Bin 12865 -> 0 bytes .../AppIcon.appiconset/AppIcon-76x76@1x.png | Bin 11501 -> 0 bytes .../AppIcon.appiconset/AppIcon-76x76@2x.png | Bin 12381 -> 0 bytes .../AppIcon-83.5x83.5@2x.png | Bin 12533 -> 0 bytes .../AppIcon.appiconset/Contents.json | 126 +- package-lock.json | 16735 ++-------------- package.json | 24 +- 30 files changed, 2169 insertions(+), 14763 deletions(-) delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png delete mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png diff --git a/android/.idea/compiler.xml b/android/.idea/compiler.xml index fb7f4a8a46..b589d56e9f 100644 --- a/android/.idea/compiler.xml +++ b/android/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index 33a0d3e1b9..37aafdb5df 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace "org.handmadeideas.floccus" compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "org.handmadeideas.floccus" diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index 61349d3444..d73deb7748 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -2,8 +2,8 @@ android { compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b31a8c4131..de068c3fed 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + > 1vwc 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

giWw7#WaLCO&&)oNc<2sn-!e zjCeK$Q^FG2X~_H8w6F*duxL6USgP(AM1}i8_@)UJz%%XjotRvS$kKY+4h0y^${(M$ z-XITmC1M#z8O;$%dIz2e+e%;1p%~g`p=dv3yK8>_Lo72p;3|!aI_;r(g)>^e**#l zD5?6mJHT!saJ-I)n@Bfh{x8jK{JcoGGQXvq5zxq81L2I+^}`^{{fsSOez#x{IKQe2 zg^~{xPk=(;9C&?Du5MVUk23#HUMPP5tXqno_a_8*OPSxw$dp$DjY06rO3F$CCA55y zUef$36ue3pxD(V&Q~P%cd`p?%8HaO+N=bQpdrNxDNTM+}r9cn}L<%S^B`qz1M@V3O z-Ea;*5^h+5Gm76hG!a-B2I-DNqTP7UI2|0(o;YQGe*8G^@8tMVn3fN|^LGbl?Vt2m z99&8d-;l*04;~;T4FoDk0Hr0QAyU8E<428*{;+n#{;nckPbnV=iBD|@*I%PLqk`k9zzBHm8$WcK? z_9xYuu+U4UddmFLlE6QEOkEvtPG}5DncooU=IQh2fCUnTFvmHZi3XCFlYu~_WgtLV zpd3h6=1pfnT+FTBp3>P`VPpjTRRE>4wFIhn zmSN_e?(VKg1m@p``B$R+UvR(J|DKfplliZ(->fyz?!NfqbjF!@yZuM^e*yfB!4L^U zxM9)%DfC|}<= zBiG+j;BSHd$*zCo`dbS8E$~0t_5V#Sia&3S5pMVkJ#YMt?@W7AH2$WU)X_jk6L5O= z&2A}7#P^(Y*S&@X04N#GeguHDbXI&P8BWhgi)@vIhk`-c`G`gx|7heyPxF$6LSOkq zWoPrttoO382||}1)4J4H1uRUO(NXd_s#Tk)7$eM}N5fob$_#0*@@UYPCCHaP?>Q6aayf2J1JOHX{Lcxe zOk=jGoJ2$06|+a!gWT)Or1Q)M#54})g ziK$I;aTBU{|L6neI&pF_=%abhWa|L1R5@KenGR#Fz}e=Qr6s?Vrg1WKV-l-)3bPSh zx)u2}5FO%Cr$Z!{f_dU9`X;7IN#|u0N9X4!0!r*N-77u-^R9_8`u%QCKuJ>PTB1Dg z5E)i#cjBthy?_f1GK`)KldfFb(2;s>SFpBg^7(lRnWpVRi)i&Zphr#A0xq9aF)<>( zFZlzHDA3j|eQ94W5zJ!=*dl_naG-?l1h>pyIxxGO@RgQ~A)^Ag7R@enx45Vr$nYJ^ zh)sGDkgq0b$6s5iOlAMfs@trWH1jhxSk5pR_2D~>0m=bTxJw+rXlGWEw0f{aINq8h z&(xf6x3#fh>{l1Ie)`k}d4sJFPie9$c4WGFsf8;zNHY$5AGQ%rI+IslypkhZM{R62aHb+fS#7IW`(+a G@P7fxsFNH3 diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png deleted file mode 100644 index a5c599e84c84b0a250106c5acf0af8196e42dced..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10980 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 ZJPi%WJHQ)%fGa3~mYTk5qq0NP{{dm4hPMC! diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png deleted file mode 100644 index 63d4be3b145daba5567dff52450099494f42d6ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10980 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 diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png deleted file mode 100644 index 2af561d3c7a7aefe4f8e0cec6263d26c8a3ea3c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10610 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 PIssq?ruvn-&Jq6yGfd(D diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png deleted file mode 100644 index cb8d8f1a8c4d7062e421108bf49217ef69475822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10598 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 diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png deleted file mode 100644 index 6f95bdfe90664ddccd135f31e45b419806293981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10595 zcmeHrcRZY1*Y-p=dW+5wonb~dL86!F9KDS(7-a@CT11O3L&l{dCtl6edl}L_xyhE``?-Q&CI>`zSgzYeeJdOo_og|8E8=f*?<55fJ#SO z-30#&JN=N6;J@b@bcFx_Mv|*$mN*l50La@HWvBQpi0NRv@y7RqrbkB-Csqd2 z$nwfv6U86Cy-L(v(m%e9=1?jcDqBI?5$Jg6Ay2H~%Gt|4L@~QH~@4-$;!CvUXv$O-uiS5Xm zL0H3PUYQw+T~HUA$Cw(1p70>nX@XL1Bu%6dY*O?}L1hjmqYqvSy$Q%T@Yy_epxCub zxx`ifc=*S)-TPmCUgjG*xLZxj%)d5tAlv_VxEqx9m6Jo+g0U%VZu(YeUCzN~W5ZOi zy@i}_;k}PZWu;@>OattK{D!@qz)R^43qB#CuuI)EO>T$#?+ruES9p9^*Ho!5CVIC9 zZCF@}K|2{l51`_(!e#4+Rh{WWr4{+!2z{mXA-9o)&i;;^`DN=C?DRs(k@bI?J|ROAO!a>2mw+dJr{9~7bCBAnHw zT}c!ip|7Z+;A^esSHI;1=KK6$E1X>o~2@Llmh*rgx?- z6cfG{L!W2G>hix}vl*&C)T8PRE^4RWlb%$+AeL_SN#8Ki<)i0p=@Lmy4F7u<^9pP1 zh*z4KZ>&BuQpIu6tM(bco(FzEZuTfxA0TEz z2Wr5%Hin({re#^*+IF||=&~0^gV86C4}K{0{g{b(LDASAcS&__!R>iZMUgdz|2~zw zKPK2gN9PIC#{+QPp7j|H*-pm6Cn|%M)g;M!xJXcNz!``ITk{qmWlR0SHDx5>mhm0 znj)|u$GS8e{G!(H&GU~{C7gq(YZqZxW-RlT#d4oPR)RkdVAgLJW_GV%bakRs6_v52 zFmEV~tF&BwrRPu>+1Sc)KcD!6D@A?!a?j$Z^2XGt;K}T(Tp4Q{S1?igTT}HEb~RK* zT@O^Y?YinFwv(%Wg3>4&85WTFV7$0XA+ZIS^Rjl&tdLIJlgo`kcl@NsE?B75pbP6I z+Q2+Rvr86SNhF%YF;eI*h^4>!;meo9F3HL6`u(X9>#D(XJro17@cW`m zP#R_W5HZ2wcT}!-y?R5{6gkRdse?UoYgeh3Js&?^_O`@z2_8f}m~q=ug~6MLFK{-6 zRM-w=n!niQVSdcic%WICYof=-B?P~IJX{P6x;}FIU7i>p%L^m5NvXYY7$4g%db5RY zaA3m+`YI^d8XJM!6Y!Ao5+Mr`7l&6(ZW!vSzTMDEe3Vc8EfY#-N=#;F0dynyCciv1 zOQhVivo$1}iyjKS8bzqPocd{uq`!RQdQ+ZUy_rBw-Cg3gq6_Rx!QHn%tbfS(P0R`A zxb-@a17KpgT4%c{MtsyyGFA1eWX()5KztxSeeDVC?)8Ld&*6bwchvm^1|M2>NMEe7 z)jcL5_3YKq2CRbq!p-)XMbgw7hVd98>%_Q$z9g+J)lQ|#Sns75IuE}^r%vX3vuw?q zg#vGj+0S`>E2qdDo+2P+>0bTB$OwEVUm)Ba{*Vbs!3@q07B@*$rC|cty|J<<2%xF; z5+62BsJk)3L23V9Ho~>DU_?5&;qu1#G*zoo=W`ovbT%6ump%1~!`ds0%IzvgmI zb#YZqi;HV6TaPaLc1*~;A|l)f<3ZvS^=20(NWj@26ztX}iC&r`{;{BRQ&q5{c5L0I zC}ou(w{Nqpw&DtTL4uMk5$m~tr!JFTEl2%#AFJ#;<|cAil-SQ0!_y`P^#TyV8-;ad zYypscqV}FghT(&1EK-2LIyS{wn+>*CtH8i&_KwYEx ze7$>e)PSZMn@?pePe~gxhKus%`|H#%6|vdTY*5u30=EKOg2|ppTwuy0=oXCW^4XKi zV;`-G-r0XL$ph)9G@=r&R;@p}DeLX4eZdGpB(TCsQtByQ{u(w~sj<^>T~#~L@p=c7 zp;>fmK|4@8kht*es&7Z0fH`_SO&M;OC_!OkTa5r@rc7~>odC00-^bIRBk9thsBR@) z3g~z0ki>Rm^A?69UQ#4Tm_1?D1#Xwt<|sD4A}jrfy_v zWs?|}Z*dX7Us;a0y)Lyw3Il=6eBE=js2unB6^i-<^(hl*{)mWR!v>TDt6v>GD8(Be zsf4VNx+|D4B{yWp{0jCmueU~HyXkdQI!Di;=<}F0XX!ycn_H?7{s{~5^O-M<-lrCn zh()uM&zp@T^}XEGvrT$wA+M5bm(uE{9lJ>WaLXi_!C>VgY5mje|t# zIq?EF*5R=kot@{CeS>RT9MrOLd>k1&_nJOQ&svzO-+m*39V<2oa{o>uC_)&YH>X$4 zqU_Ghv+K6BE@M0o;AjvKbhqwo0aJmJo5iYG);Z!^3%dC~cYbUG1WrnjQFT?{r7-P> zsI|$F$V$3~hj}I1jIP*D4GKv^cD-|91g*5vLj_r&(Pq()xu65fsi9pQF> zSDi>5&TYT_3ge^08E+QhG|#tB?ziei#7Ot}mI02@yV;aUt6fC$?kxx4@koqNc$RJa zr|>r@`C(vNwK!O4&8ZtQ3;5FVt;Hi3z%eG}WI;4_++ye9$x>;;O+%E-O4}N;K*vCI zRjXvkha2HW2Xmte5n~Z05SO=5zqvR>>u;yV40Yk4kQ- zEg&1)Y4N2xOgLwz(#zXDO_OTF&mM&%JeS*-P*pVbJyx7&XGrJ`b#3JZ#9oRj{o6(# z23GGqHaC_d!0Uc_x)=%&9r@MVl4FB1^gV(p6~Qm%Zf2wGg!Ym2)eV#uNgQfnW~?;b zR9}8j+P5VbOY$C{3kLCCdCGHhvQzJgR26wEt*rkJz^jaFG1XMEtw&4Dv6XIIidySk zt<3p5w?r%EefrYjD~c`|#KA1=&at6Iof=Ep9B_^&SB)YNee! zX}!E0$7o+hEOoAJarFR*BKlA)@ZB+0)7?%uLIrwYazJ7KCHVr+Ak#zIM9qZp?fl!c zD&gV5)XG_z((?Y?q>4P2lymT@XLDB+CBzhuM)=i?grveNSeMgpp~qf$N7w|0%xC*_ zy_h^uy#tjHI_j8u{fbjWYCPXDO*t(<@pHjlDJko%I@b?mK_szZ9pV%vWK`m}w4(+p zEDbw8bUix+Wz;c>$p}w|%Zq6)%kp zuDFGe``}QovVQwv%wqF6U{Qs*8&j6|%+#XGyZ;bgC6M8;?Tw@-^yAHr-N&OEDK62DfZ zb(oe*c%GguwfOFUr}i^q0>A4T?l~QcP~K?vr#y#AZw6eL>WRJ<-s7v=5shyaN%0ex z=F7N|PN3@;47ix=bAh}4)7Iobj*p_9c$YOn?URQ6kJ`?6U5CQ?-{q)!v4r}t|8^Nf zQ+UtIAem8t;G>2=%O}xGS|ZtRxVTcRUIBOYN46vR>fc=P5FC$OXm5OGWGfCG=3IBq z7nW4fmY}?FRO=Hrd*@{$Z);QIBJh2XdKN0Sv6*nt`I<;4;L-UQ&MoK^l}N|hW#bbs zLZ-$Mnqbzg)crWg_q+v!LJ11SKCy#uA$3kbG_XOcn3+6Tvq003R5Wdvr-T6-L0dOT zd{c0Qx{$0uRf0Gss=r@qUZ@eFYt`FM!;#4v=mSZ(C5@PYpYv^}95*4JDmq7am)Bgc z-5cwa`_>_@;d$W`F;bW4fi0%TYr^%_7z>h3PU1%1y~wMq&9{MtF@;T9==2nm`%HlI zq78)1ek_cM!qiC$5fyJkorHM>e&c1PEnIoNrhc4Uin>I#NZs5NWi1VuXc z`_)sJ)9NBy^xHe^(#9rBYWWg))hH(rn$r)q&i5`>B(g36-P;cJ#LkPT?t0d>PQAHe z@0YsZe=ei-^;}5mP*f9emrFHOhB#jAR{uy(cRxD06G_l?Zqoq;@#WO9XrqrM_~`LQ z1f*O$=NTyFnsG4saB)vhEPnU$mq1p9$>KZ&AMgWH`p3m$&laF=agj0euEYXWY3lGj zpYhEI?X4od!)!fv?XHW9S{+`dokL$4!n$6!C}0&hIDflg6HGMRu%4agI2$Mx z1Rnp?@&>S5@N^)%twxG@G1E!?^~LIbhTKUhlyuFE)rV}K@(+A-#bC=dfsiBl8j3nh z49~%{=UfmValI=oXyiKpZTxV^q(PnkmUJeC7c9Br>FfS+iVIY$Hu{}u_WYw?$At%E z2W@9;qn2j-`RK{a$t$he&aZu?*CAe6rc`hKj80IA&!gaWy2RnVH@}$2ODf+?5OHZd zm|e831kCpNH^EXhc3bgt3>o$u&j}y2jiYwdsd0MHp#{|-O7bI$bmowxHi(oxl~zLh z#9Pho%{7+k-0yzOl*$5>87fT-k*bQ$R2Ai4HLC?M8~Us|DdEs{9{RQW7a_k9#^lRt z>GthLe;}vgVSKyLu0Sx`WziKEIUqnEhkE?;)^_rqOFCmhvDm5${NuH8lrnpR@^dc@6F}Um&-eYvcMFT5uqkt+S!ULPH#F zoX)&&FeVUfclF`}V%8{o4@L$%&&94lh~n6JfX=E)3IkzW^2DM6M^r3^=dwe{`MP@8 z<%u;io0*943aaluD}7TX?5UoUS{HKl#2p%LNMBRS(SuEA%e6jNug%yUIDRY)W4TdW zgnV%>Z18ru>Fv++D0}wN6gZqN+0Zk`(ueMuBfwZ(b%q6$ZglIFKsX=d^OpN;9AUCK zl~BjC_JUSI?!4FMS-1|X^`^mkf}-yixnuI=?~qt(aIM!BD|w{dKMJ4*=PGHAmAxP>6~cX{F_jy`4`34ANM0Xe1+YQEL6zrS5_`OPjl|ja%LgikD@GUt1mDc zUQ+42O-Vi&3ct3#^o&mX`U=z**Aq{hB-eWIxX=z1WvxKm!Qr!ZB>lZ~ANoMl9_YpA zowPGn^l7VQ{6PKiS|9bD=j3ISE~OoiJx-&YE4h&MJ&6$F$6(^^j8Hm$OyHwAqL*#i zVb7M6`&<%rzW_HAkH{Pu4+7Fm6qFy0NGBFvD6*tbYjpgWNBSOU>7jZ&AbZ}nY9I+0 zo-*c>Vy)+`4!VEK3pSnVyPy8)#`wuAXS$Hc6~A`cf>$cS+m7%#n)R3qlD5=}vF%zp zy4D`Tz-$`s7ld;BjE)+~C$}nI+mB@2RWi?Usr-sAdhxMeYpJ4emCxAsQukn< zPY{1D;G?ol!?e7>_1GyMdGFL&D*Kn($*)+ZnCp3=dU_UoxWUlN*Oy23m8`eoxUw2D zUfnwyE}iH#SXJ%?HaNlf-`kSy`fU|I{w>UAx3hGHV*g|he(d11!Cmof?Oxam=L2MS z7`CU$;ptHTqxBX4Fv}J3r#4VQ;02*1#d|8WHfc2bnz=xhj1ZU_i(GKN3=AVX4?g)F{J&XaA! z^umFzjaD_zQPZhJSujC3@aE&-uV1e+FI!D7pKvtlPCJJig7T0r;B**TLoaLCa>%@p zs19&jVY^I)nJ;wl#pf^V%lBGC^H^mhKLyPTRT+JDtdF#MYZNaSk4SiE{OZ!$)0Utc z&#WI*jVK*bv<7)0GuNa^Q`&g%fK6-)>k`k8p_I5yg6(69y zo`lS!Ui#C7;sN0&f_9R8TEMojbn+;98Ae6HbuZ4_0MBiHt>4wt2>WehJYG8)A>VZ&j=Dnm0R1AdS z3A~UvI4ID|6ODxhD)FB2!tmFp-4eW@GYHN@iPuu!2&9JbMS`TorNtp&jX;#YB(E|M zr0DDH0y9z9{G9^dQsQ;P;k;oI5&;1L;sH|P7++TjsDgrm1VmCoQWA_ufU!Yn96S(= z#$Gt3_{pJ;#3FoA-Z&Hn4Laq7J7N5AO1!-IanSGN_)&yLAinc=2dC{bdMwUaLI>ZF z#@`PfAR!5X$b%u0U`YjuU+wXu`ucxZqp`oMh}Tmh5biAj6^BT8dHtIO7N_C=r@z0n zz?$Jt$|X#YSd5=90;%DTMB^^}>eSoQ5BsZ6KP>XJ>nv_hXBP>4P-mWhwb9biH~Pco zR7O{nm-m^)Df(BWGvW`Nx1X=)8O9kQf%HUr;RC_qnW6uN$J_s5@Rzr9Mt&v~OdW&p zJ7v*PSK>Vl0OpKApqyc6mo73$XD1n1c`y_yCkd8D%E*G{U0j^O5EoemI8;hfRzU&z z3zZHUi-V&P$Wtmjxi|{Xqkxc;bb>+}nS zp)U%b+HlWbqdKK>##6x|QV?kcBor(OfhypskP2Wp!o>xQbdi#gM8ajH;ZBlgRHwqi zRE%_#cqPRlfA$!8!f`GbUoRzIJrvq6@XrA=lo!$z2R{`JDk~$UpdhILfy&~&$jJQ( zGDrGi@mYJy35AG5<y4QF7a^J$^{UMi|^SBbNxqQrj!|36HoZkPb{e~;%+=pQU9 zzPJF4uZN+pp_4ljf&0%qe+B-7$ppVhVR61eI{(E@{a-l6pJ}O$x5fAd{o>yg>GQMo zb0zUaok;}(omDRkjyP3Oi5Cm^M>?NP0ba+SLkKrG+7*dkCV#JyfAypOB3B}| zM}i@6X?d_T0`3BqmvoW_Bcze|Yor1~O8RHU|G|#MxZncdzDN~Ud=cU28DBzY^9&L? z%QE4Ak0rnji4Rf~A_;>)cz;eWNKxW+CH&XzDW0ws`ueb61yDR)OJF*u8D{F|?d^#| z`u@8x|4Nkq5AGNH-;?scGXE9!(^?JV9fU7VH=JPr`ain=3*b)%Jrn|o#$x_c=)XdK z%JR#GfsgrTAATdk?`sl&Y;3=$#cAdIFTQ?HxBo>CcCE>)5;lg<+jkzAAuf zF9A8#Llv1alHme2vq*O%su!~bG451pnL_l2%x{*|apA2Zv(@Bd;FfNhW5KMV%>!u% zYS*tIle^nW7aKLrYsW2vN^ff>>(qGkKd92D(7;~X#U?g;n~y9{+qxj$>&i{TcD~0X zq_!OplIKy~#2Sljaww~G2GcYIl~tZ^G?4pIpkX|J>=?CPI+$QPHsR&(U-4M0Pc-s3 zzBOI?&lefZDaoH;A*~HFcA5|NO5P-fVnsS)9QD%q=&ud6vNf%B^se0B)_HzXKuzyB zF~?Hqw$X7}LuX!+OQzk210T?gx@=9Nm2%*j2-XGZ98a^)-K`r4@bh28x+MGgW zbM(0V)k5upjr07YcG)cE%=GO3Kv?faHmtTM~nFkR(oV7yF#<4W3j zTUGVt*+yp5QzX;U;~MKj_sZar1v^fAJs_ym3G0v=acS_Q%8}MHBoARW+t`!I?l~<* z{$$bkoP^Ox<1fTI%Dc9F5*`H^A$L%5e(R4=mNF@T{Ei!xH(eH8ryOo;SP|wXE$O&W zOqv`yWH{P2+$i9>ncs9z8{ z*bd7_wN1C@U+$V35!q1jH4`dd3F4pKF61kJ#ZvCJCFntH9@zcVCjX^T4c diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png deleted file mode 100644 index ab090f042e9deb0aa5bb887d7bec893a1f3ecc4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10899 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 HwF&w^7m0+k diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png deleted file mode 100644 index 0c895c8bdc72e2e7e26ad7f41f56d3107baf67fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10980 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 WftiPRLyfqC0%)n}t5z!8h5sM*%8LpB diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png deleted file mode 100644 index 487535b7f1d07985a346afc499e5d805a09d8711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10380 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 KX;iB@g#I5UF`GsJ diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png deleted file mode 100644 index 56ddf6adc53828573e9a2973c24b5ce14e855b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11699 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 Aw*UYD diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png deleted file mode 100644 index f7a4eef2b42bca4aca2729906d392f05ee7d24ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12865 zcmeHtWmufawk{6A-3bII3D$Vy4nc!EG|-LHNCOSQ-3czi3GM`f2A70Dkl;>&1wxR7 z;BcDE?3vm3?z_*~&vVbefv202wcb_r)>`$|s*fm5bwxaEYHTDVBs^s$IW5HB#=8#| z2I5SM4aWLV*t|vc`>-SK_PaIUqT zu`EO=QMP~J`%8~r8jUtA_HtqMKK z6Y}?uPWXB-HmmF=))ilRD%V>#OG9NEVAOl5aA`GoJ!F2JJ+n7(OXm;Fm;1tx@leEA znMGpkS|H?8K&z@5%~&z>2bHlz6C=3UoKp@;Joci z_&K?X_fVuz*EK^Ebm;vy&-q^Wrn|!VHor1zlfYV(6+BbSam4r{d^`}U_CSaXM z#XL{n2CNrc39RgWrxf$ac1=De@iGzfq~=IYrO{Gj8-*o{*NQro7`y^+3T&&fUKwy_ zDXt8B*SSt~o&gMV{`c=-XqL!IQQD`!9-4scd6m z->GYB$)8A%U1Eer*3%>_hvCX87qciob=NyA*-#H=0ig`>4C>XCF$STrXjb!#&=f8Wyx~&mk)iGRA$!XYjLG9o?Y%{z3 z+Hu)0L0m&(6NyAIKG%ORGc7oXRIfTS!>AebUCW_)$!9UOvU$~Y+h%6P@OtxzpdoF= z@V!RKmDu$NwPMKb5NA@K^7rh-dJ_^V{V^o;9C4faQlnQkAKb|mOE`=mNu%y0>c_E( zz4jcC?7rQw|Tw6gvD5a#$r z)pW}?qG3mr8^;i1#Dl{l)lC!6ZF9u$6Hq6A^>z~TS(Y~W+MM39yJES6QkzY)$+xBNKb@gu|aH6 zx@Vjss(ht&Xl}Oc@Vx19!?9kQQyF(>ZRRX7+8CE^T$=KO13&HeJ|t2?shhMuB6u~1 z3Orxp+Kr7#Vhxj@URaZ!JT0kmQkbI=3bi|MyMMCC(v`C>K*qnv_KwpvmG_t`5)-yr z{@I8IEmq9?F}Ju^8Ya_*D=69+SX2X-ddM=^gwODD!_;9RZ9ze4E_T88$Xj9lot}8< zVh*lpLhLvar!#o0p*hvm*HJ_KP=0rj9S|AAzqeFbRl+4O?5xwj#7<1O3%kd&nvC4* z>nB6U41DJ-8=l0e6RpaNif>$jS8eshd)w#dp2L~{8q`cVAo=4KM=CRRV6(z!zUs%^ zgc1*RYHELy&L^W)b72Oizl#_i5?Uy3c_#GHQ^QG*%#4uf(ZXb^0fZ0$+g?W{O+>mm zXP+=lQRt%C*s6O_p*NiVZ~-s!bvDu>`t7`(M|MwnkKW?!wz_lTSk_sS!UXs*9rxW@ z`r>`JjnZO;+)v-}6)umcSD*%^EHaDuqg5n5^TU=MD+Em*PCQEmlScPDt&6)#JqB%K zQwC{4rF`tg59?-tqz*?_$;V=|p;(OHE4^|s*yM=YxtpAxq;?CZ)=j_Cdy1nU?S#_B z?f7(C*Kw>NUeG8oe$<^jXxN2?#diyk<@!LaK$MCicE<(Rc8$DntY&0woa9qr*lTtN z$vJ^#!Rx(QU1uqecNM4BlOh1`z+);ibjmiSEW%{meIf?6GT6o3hm72udMBCV)PN1T z9ZkxUG`_0V$86YD4zdLd(jxtDq^Co?(@VXFB}ik*fhDPGK3W9|=@=*#aX5B!K0VDi zf?QcX6SoT{GyS%{Bc$H?>;6`SHWWs%ahJsIZ*f0lKUi6N;6eO|kjt^@cp$a>+oPof zgchyGXtHJ=vMs0FbQCvjuRe6LV+Ll;)VFhmf$W~DbzkgGDP;$;#VoyjNktCiaDK>` zKE0h51{Pj9L^_;$SXL2ADpJM(JAQ|QrPR#C%l?s%pfGkOg;K7=a<}AKPcC?3T&Pu7 zTFI#(BqmeEIoeu^|2WH4KI*n3^boA(cQF4>(~CQdst*Os_4b<|+0h%p40SeOw3H4- zS3l)Y1`aR>;PRJx^Qh4-So^_VBZwH z&U(jSrb|PxU51}1M2_gmTg{9KxzbL;-to7UMzwC1MMd3_Nk)>$q%^2ao|XHv50AdK z--;tkgO+kLf-n~;uw@1njYZQqc@*$w+bN=G z(8(@+r1OA(JYG&k^D(!^BoDr-GyEu>CU<_o#heW1`rb-7{p4t}*`{YW zQ&*lDr^Y_P?Xqn%(^c?Lz(h;&y?N2lhmXpF#Im%iO5waexst(HIhAsQ$TYcSh3Gr3 zYbJx1Ov94qQ)m;w-u-bosST2?5FW28!O-V@LGE=Bi*9@?2?L%U>9-%oACkiolW>*! zHM^pb*YG%lqv^c{^zafx?U5Xk+VOSp>w*-b`pZSK`e!+#h#Vnj#7Q`7>I=#g=|JU< z@y4{gMk}E(VBM2&#~m15H8XigTbe6n(KG={#CQlrCRMS0c+DQ39PRz*YVSjG!1?^!k*9f545zw_zE~C?)Z*Et+|pvXJMFcwjPxrkzd#l6DjEw z8s@XHl@)~yAQ}pxaU|({+09ua6_k$S+wI?oLWb$h_@G?ut=%Uknv34)1^IUcagN%e z)O7w1`y9xlyiCaH|$5(3Ya3J z&*5aN67o9Q*+dq?2Xo*<#JwQ8sb*B*^Luc*TTC(Qw;3oiQVUD<-o$ANC{4*=h8%Wo zs93EYr3oqox(CEicL(A`78l&uTH*URzZ15WNYF1V!Tkd8YW zOzf|O9io4XV$InZy$W#bUv;|)#`=On?ar~I0P+mL)exj8gpl>w7_UQuRF zv20Q$DW3bMADujAC2fzJ-%9rsFeJ{sJxrtb3nU8mBF3Ii%mvyHNcC=6QVmKa%Q`0u z`UfLZW2vFYAkgVM5BYBRDJAKDM{}00ZP#4_)%+-XN@n4`KyP`;y`Km zpLppq>a&x}oZySw7K74nDjQygAq{6h}D?{K%GB5%Y7sKtPbzTi%zdh!m3CBG;!aUL3mt#)Z2rQBl}@5@qBsBRwgpX z6O$C)Iu1Gw_8KHjh5l~Y>TDZXl87(y*hgVyZ}7K(Y34)nxi%$orh1cFgClL}))gp( zwN;p6L>8=76bX6<-abJqn2)A*b&&QO3GMFzkEObTwj71TcMK)x3%1Z1&j{Z~E`M#fS6=l)$e^+qMZQe+ z!2n2n6m=LTS9jo>plz~W-Bb7K+h&!#j+Djj?Kk`s#|VvvDya_*8`dhZ5+mKksUOX0 z!kT_`Mw4?Zq^|TuzE50tWKa)b!WQ3ea29tSHZ?wS>O#iSy`XeeIj5XfknEmu!q*=n zd4_(&KzR>RS6Q`Ry8}dSNoDkXIEWE@vbn|3qLN)t6THPG>XM zuEE)6#cf2a$uqQ}>AYm`@2?*;8k41OICFb=rBLr5_^T&e8oiXfAzy8b*A^VuGX~gB z<=8@r<7ng+ya^^S_;D@K)uviUPHn#gap9Mkvq-@m0(Y(tA|cQD*xLA?m5ERc8A2&( z=^CRSD5k-2EIZX}s-SR!aC$!vb3fTSJDQ_|0Km8Vt9hnVyrCj=nm2f?SUH&igU@sXM0|}vbcH?^|2{J(v$A3f7`u8=E%YN z!@d;u;Fg+5+%E-4f`mA<#ZwG{+#|tNUz;>(5_0ZyjY+9Rs$R#iqhgG)*I@(&ii@0T2n+7Ny`c1vnaY_b zQto$#SOZbe``rLWsWR?Rx8+RfDkl7|QnIC!M&uJ{EP?t24|f({1`l*;)jGn$q3j)T z*u{apk6p!_6w*^ES5_1aW%Y(!CSdK*q48PQR$(}M5cPtA167(~Dbn z=iu{h;%PhBor`DCL-Ty{-Dt)pA+$h3creWI%GNJ6IkXZ+yj!qNa>tGI5|YvH-ruGDoNN1NkL4Yq ze39=M#xO=VMmCXm;m?eQud`7UpojJr$sh=eB76$1jW&o6lycDbPFSdcIo5;5}yRl(|r$?VBK$eWh{*10Gh)Ji8+u3QU|1)V*2J zt@fMq_?c}a9`ECWMyRo(3quMNxyleLxzwKke;tc+lIZZQZ!?t)OR!;TVF+PVH`l%R z-7y7rJd81>W@I?O%#Sx#Ua%L!DWqr~=rU5fOEhGC7Lfpx3zvM+S2HOc1?!mnl;P(O ztY(EJ54O#1UG{g%|kVEgsdFdel{#a>vg0X1XZ)i=5o*DVrc%VU8v_J zBi}T4Ymd;A`}x5lu~VOf++88k0ww0^r3bv@FqZ&R*>B{1S$b{sy2>)u(X6Y9NymF% zX1mn$gPdCW@;~c-K8Yf0F8{$IgEPDRW#Qs_dPhJZ#XtPaO=On`k|BDzZu@Wy>~3Bcfg5RdJ<${1&puQpym)D$}FHzGr{}7LHgM| zZ$0oZJ|*{aqQ#P(I&$pJjur>Q?e6nM=f{yRj^kYyNqD2_6k)3RC)@e2rFQ)N+;_j0 zVa>>SEq;ONvdWC!mf}{KIsKLICoch!S z{UPaJ%-0(v*B5|_^D+?C*0>CDONAU}Co8L|EGzquTPnoeRJLEDxKf`K?SQ#)jMhWC zuMCVC1wcbWG9r^kZ22-m`!GE^Rj%t`Ry^hCn4&c!mqV-i-L+3ul_8Z3SpI>+KoO2M zrKnpKY)(rt;cr9j&l1|b0=u4qD&_?+%Cf*OlkYuvVNBL$PSj5*6KSDfSt7v}%>j?E zeRg){L$PhRvVBAQ=E;h6paw%OxD7-ECDd>-0&e?#Vt=HJeI#;JCQZTYztQ&fm}a}M z&p($+0Pw~86MMbpSBusV!*`ldY*ALx6;C@Q_ZoV=V_q4R*UyNbp|W2uMBx@EHU;z&vC7Bt{zn6zC=T$v_d9=FH&*knncF>gawm$Sm6T!lEYk%GBj zU-RO^4p2thoC4?u4ConU?pPBC@Fz01_vSloWL*;1Ki2c*&PTMXZ(c= zM3nEExfvOLiNGAh84c7l8DybuU0@RXI_#FaK6KAxA z!CZjc++JQ@TwZ)!P&XTHUJ(%yZXN(P0Kkcm;B@zPhJoOm&hAWi5Wiu_f!(d#>|9`W zP-liaOpqni118SMi0Ehd9UReXB@ah5{%+u|{tMn6X3edPsPH4^gAm{b@bCz8@&Gsi zBHVw~NA#+x{h{sb{yU2ZKDpr_7j9lI9&RV6f6{P=$$S23?_X-T>mY7#xwXLVP!BgN zu)HVO8OHQiqb`mf?tiuE;SRoQ`ZaDxYX~=DP`@nyRYy@-P4f?(I~r~5oLqis+)4jc z(%R||ITsH%$6qqmR@`7muoGe+?g(Vwf09S&|Do_Nr}GQ^7g0btsFlYZin5$IgFWQsA}iz0spf@$Ic0?4Flbg#w#emCn5q60`LkT3OoXT z3h9B}+!0=Thsn#s#Vh=)$Jz?0fItKxyvNQ7WCP}Qaklx@ffzGT)(s4TLEUtqP)Bjb zyD>4`ss4%u2C?709HHW zuF#L*MAjs;DMR7)VkSEys*AgIj{H@E%7UXOLMr@P6$H+h0?f!+k zg6@`ISQx}902Y8CJWBxKZ4f~bPHTQ)5o=yPK_LOb-+b&3bayBO<^^&COWPoV2(iwH z5c;*w4D7$WjN_lj;$;g)4Dt~V0La6`_}lU_h;iTTg#VbH*xg=%2&TUhAa=Kx0G01N zOxwf7#nBGz_Rqxp!%_Ypa(~hP-6{V&^}mY!rY#F~@kRuvElk79`QMuV7lOYbsM=Y9 zoe_D6H3ct_>YAD_OAbLbYcIQ8iSn?2R$!D;tPE>-Hk|^F)URS<&bXg ze)HdyCL>zzxhNUBBO&3C+6tnqAWT-?*H*4QuF zG_0_+>nkp7k0~&!Xu>wgw=^Wze9#zaB14*_3dmGuBZ^}k*E!j zR#soRI?LtTzKVa6#C%WATV_;N3O6fKnuOPu5ku|IQh$Eb?`?<@CI7G9UnQatRt&X& zlq|>pEXmh?Hl_CY2JM=C-_3xg)|*QKq;W&7x3KZo*#7STPR{T6GXXiRC08Wnq!XD(R5 z+cX$>v5pbzMhXgDMv6&HEPXPNj)AA16sXZIbC%B%xIYvOuMtm5mGt_;BMvcv$oN%L z36Now>0BA|?BEKE6LomaMc|G4ckIRye3=Eb>x78t8@OB->*=I^Iqw6Fzl&mHrnS9i z@iD^e>Lp8dviawPy=a%qGfNYRN!;r2_ktl35e6o`xl9sOzO|UQpQ9dqa_B6Q3mIZv zbQvwy3m?tbP*EcONq6-5%YN|qx1Gc4FP^cqdj0u0%EDRQd(V7$w#A`l{sEP2Ms;f!$H5)1Odrxl%<>^M&P*3pzu`Z9#~ z>eD{g72>@o!}c)!H2L~OK($u$-@g29CthFH$>$spJ z1-92GY*O9UMbvxWXv5p=nL_lkLfBARuBW*g`_Ee^G6(H+ZL@Tv-g67`*%qJeeDoi& z-L)Q}5H|Gn(qq}(d+dGsrku)s{YbfcNsWuv0SB;S;yFn+*s%)OvZjqvHmIA3(rE9+ z1yXqXKJ~RKA{l);m|gV-bT8%waP3H*3dVI$k>u>gLA~Qk%&SRKCp_lEjlG=6L1J8> ze%0zkobCtqJ=Ko^InfsTg8F8@+|gab^?RE1oj(+WDoNMgWRjgtwpiAT%MMJ_^dvPe zJ%0K;La2THOAKJA;Q4cAvF7P8S>9Z<=woTQUUy>?&Eu~5XgZM<@tpy@fQ{Y95nUry z-5%I<;-sxIm%+Tg+Zy-N*pi1{x2zKkQo>$e-P}H_6CHUf%hldTd{bAOE^Q+lAsRdM z^UNS;ByInjY_q=in9O-_$e0n6QqR)+ylNcN=*pnJFJ!gF@-gcWU9|F9 zSAuVbrw2!fgt4&~Wt`{|{0bgf%>MS`^wLG!ublDq_t9Z+JHoRa+Lu}!ooKAcccLZ~ zOv;nH8q$||8$BLbJx&p~)rX?3I@tGB<*WqHud&eNzUd7;SkVic-O>ehnBA0}(h>0N zyrI8zxz2jsF^|iuFBY)*Wv|aD4%=f|!7)RddHD&Xi^k}1#!o(hcrnk7RM6J?TwlJNk z(x&hW5hLLrO=a6%rNh~}qUHRW+&gXDUblfNxkvIftWwp$=X+gBbD#JEd4EoA8ZXc6s~N}E1^R$C%HHkbU=5n zK`JP>>-hU@=Evz-`o0EMHveUjMtVn1dYj%^*7P2;im~PVTi@{*?(gLe1$w4VgGqL& zGAjZ*c>RY4+L$x2%|Qv8CTg(oLZn%3X8&A)04mN^f1Bif)p%Ez=DaJ1oF; zWuKcTG_T#f=tvyf*zjMStf+R6JG$)9NQ;o~6C&AVD2@o-d+t81Xe4{AS7eDq55RM)oNw+6MC+|*Nlr}^}mVIfi+dM6;y$;k`% zc47)SfG77&zF!Yz?#1&{`^d=i&KKC9(Rikl2TIMnAXltGFGE%W#JXRc@WpwfSam+n zdmUbXkyG;(?aijvnD{@eW)=O8F_!ldKD{GZ?}$1tM#rzp zGLJ(C&quYncC=(%URa&|RIo7{6kDT#woXjbBy#U``4f*+W>mh%t26X~JDUk?&2KDc zS)a(^e0woS(yha<$Wk@8lrz(Zri{Mq3&_ytC18KGd)VuX`Hd@`ZFle<`Qx?;{HEwf z?iIQAcX!pHYO}oQDwbhi#JXo~sWuLp2G$mLblka%6PhRdBdyzh^#` zlx40_w|x;4udPz3VlHD$2$HQ4Wf)@v(O-A4tC@13 zsVW`9B^$zhYIZVMf7@biGQN+E3rtNtcYo9*AF)mGvQw)z*S4pZ=1~ja{n{ubuO;7D zoM>Pmdw1CPwPiB7WS(hQ*v}2UT@O6+$63RvhFtHBWp+*!2hf(OG-pujny0DwqP?Zc zvk4)R@+jPW_E*)u>_Ar6PZFTLA#^xt@w}WN^VU?7;7Qy=l)xc z@K%5D9XtdRu!Io2|z{(qxy1QO#Jm z)UY`9;<=DI+gf^V=L2G54+KG*?zC_#dk*pyTZ-dOq7NhGcJ7J*0v~vy(F7)F!mO(< zv#q~sAT}KEfY%+Op2HWV@-}3~UZ{dBfI;rV6r&47eT>Z+S$dK5xOc$u!&G)=gn|R~ z@%Mbil(O$zfswS5!Vv2`QPMH7otTHX-X5Ca_E&2eiLF2L1K)d27q@kY^32~y$V4WN zux#{bV5>BGd%LKcPbN#+n`M#Mq)6v@kL!ZNt2+F>Yzu$B18TcN$SVh#8EmT+!dlZw zH}|EJ97?uE9-A2^2IeDMOb!foNN5%oK}L=#pH>l({K!}z?2t4l)gW!>%PsdtVb4=} z_`@=|rhe~L=f~&7HufJzjw@b&=|`*9D|hjF)5L&p)b>a~A960@7_4WD)B=euw!k;3 z_|+8mu_DPwf&WYXBbAf0vBdCTk-&E~Qzn_OKIZ~aVMeJf`N(TE+-c-f(k6|wUOfcn zX9dbX`AsaJ?4A~r{@7$1g?AS`YAG8N@OK$`TXSLb>MURP;o6OZ6S^1ASf~2v-pKsP z89VB574S$JwOiK%A|_^H{`_g}>PnnhKnkCG+VXMOrwxi_*b4LFF7A2~#Ujq}npwH_ zQE`zW%(xzdCOtM#{l(J4i<#w13Vkw=X-E?T0gu&(8pWDN%D}D05RAb2*|c@N%5cSO zYrf^GL66VT+85AC`~}A;ivg$9x(fK3a!GQJ-6qe@)cieaBn3Pn#4Azu%|y2KG}D)g zeRETiIUmmM%^A};!hKVMB$0_r^on|gpz2VYir5gnN?ilNq6!A?%|x-8C6n;o;~zf6 z4T^|UaZj?jn!hBt@VoaGfXTU~kog*2Z;HZF!0u>7zmn(Ua2ba%&PiceXl&S#j~-0a@-rN8$$Mqj-A)0 zld$Au!V4gih(^8orMD0B@|>jTyOHgz<@saGVU_-+0S@DF)VuRh;plzD0Wgu*Z>C7V z=jtr}p@G^b1)X^WH`+CXxo06baUEV6H|qn+dLwxzxs!g>A|(7s{hx?m(;ZsQ$KPLB z)9&uH)dX!;d&bgpj`39(;`m4T zRwdRV5^y}tj6D5vOPrf$f`Z1G{5yP1`!T0R)sk_wi*7CY`ULjBe@6J9S+ zQgxjvd;do!-_JyCX-CP8z8LybD`>|1*Tlw^8N<`-9B3pC6MDC8J-$thH8`ILL)Mx-mr#fTdXX7kvRRyE5e6BH(VPm5UBDrN-(mnmEd^JA0Qt{M w>d(^uET=*wX}@PzztXi|dDd@<8&UvfZ%8?$o_tIJk!2z&%d5-P$XEpb7tOzF{Qv*} diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png deleted file mode 100644 index aadb6086b40047f58415ce8d806528c7da21eb81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11501 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 TO6Y$H007igbd;+VZ6p2*%w+a% diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png deleted file mode 100644 index a621ef7447ac5fb2e8c341802aa959d9d53a0239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12533 zcmeHtbzIcl*6+|rBZ@R5-9vYGx0HYk!vI4w3?-e?NJeu3U}I7PU$skqT-@6#9X*r&;K`4Q(eCcYb{e zrOK#M;@d47pAqRxv7u$NAFPSOAPJ?~9a!|hC#h#gG;3oh7kAg=wN_@f1N<)- z&%N8@hd?zIhh#@9^G_JAHky4GnQnX`KeBYLFQSc-E*rDX&N|u_e9X%!3-3-`ye?s$ zr6vAG!u;^XR_)->xq;;T_uY0AD%XT>)P`B@2D_|oUnq4|#9|SX-iwAN>NV?0v1eI^ zsar-QLlPjZn0o<*nHsGQuyuzG5@krjrO1op&rMQikL$6Hq*#$(56lP`|PpE2-0nzx-y`_R%q>xspL;E&Q$rF#!@=-Ffo&hNQ#4BDg= zmUBIJJQ46%tPP4ZYua!8Ny8k5rke#n{s<|~_J3bE{rWTfWZJ%I!N1RDdeQi5|3s)Z zb2(tjTOfW`S&Ay(lRz<#tx;)d+Fb^-sQk>M$~mBguu*W zWUL&_(2gBGPbuCrC2!nM*DTIIs(2rWyWc!W$1ONGYxhfP*cWfgiRow^hfstatYsxU zUZ%Vl-hbJ7W0QMx6Lc|LD3XBwrF4U*B-Ye|Qo z4-((FmYeE6Qo!KOUqe2_C3hGIK~D7r!#fZcQ5~?A1+W zN8DIzemoxV)(c6=r%m2u@zIV^c|6&+nVbF5nk`jhYud?YLi{O|ynp-v=jURMX4iYT z?OJoaQ&}rKv&Akbuh`CNI8SiU?3mQd@4ymuSm{jD-ozA4Bg(wd(6S&g9~a%}pau=z z^ANOk9U4Hx*(hn0RknUL@s!7cX}%Dv@>x;t@UV~THA40T88B~Ewif6iedRhuA7VaV zk-qTo7T?XZTZOPzv2@wdGArV~4Txbr={c znV!mjQO=mph&Ytd9G7;hYe(#sJPUiu8TZJ;rwrZ<^k@5dwQ|@V--3cHI6Kcf8lSOC zcSq(g7CxqPa91>bjIO^xtn!|U?}h-^G;=tc07d&@&QMl)j9TGqKAY#Z-CiTPCoqzj zE?DCf!M)CDfy@X_wguAXWg$k6wV+yE$9p1x0fDzi;nso#eo6u-e9=tbl$`5RN|Vgj zjP?b`4GHhhfrRmcBsA1?C*x1?yN1#ux(ucF%x(ZhlV`j^0Sn=?dTImKG!*8EuH}e;lzw|~}7k6)zKdXp~zyX?@_VzUw@q?pogIouckxJ+Xw4;0} zqP`cWYD#QnC?b5_b+wRrbJJvwPob$FtRXR?X5Q7IK)?&pi`+C11*ITM67`2FL?qjF zWMdPt1Tr6*5i*|hRB%CB6sm#`2mNd7S1CG2*C;aQ3vKSC9>5SBG$MyRQ%& z>s@5%xUm^VPko+<9eW@aytqUH-*Y*wi1W0EVLHEH5XhECdoJupZGUH~vn;6gOgJBB zA(H{{ZMeB{AjQ%PF7k;bK5`Z4P^#NCs!k-|YQf{;mNp(fujM}PViV@0T2g#go~>_H zPxb{RZZ}P#8g2P0+QYlj&%XA}15q@4qqRkS4J`@Uy6k|ytWlcX)w1$d6BK5u@|WXO zvsin0Cy{eK5%Plt6ZsgZLc?QID`Lc^8vY+x0*A^2&8mW)tA|i5un20q(UFxcn}_Rt z?@@ILskCC^TNgcT}sQY&Sy^uSXwJY z=phX%sP)x{08T~4z&Ejg$expA;NaGpxH24T+%wPKgKa(0eCZ>J!nS}wTYP-am>LN| z{ki|zS9~Vlsuw%KWF>?dbBbxo058F+kW~eu5jaup+opQ9>(|5z>pyXAUdYigHwT#c zYZZ`VYw{{7(pF|VYTx(dE)20G`({~Xb(|kEu4wKe^S&&xMV;{jpnnI0R$E9v4)*uLi3axDJGKDD=!CN1DZbfujZjL+=|o&bMWwsA#_Ao07rNR1@X$ zJ-b{ngrpD(@#!Q6}Lsi}k%y&37pJh;{MBw2SpYxfLfLtF)~d*1LnDN*Hlpc3&M z=YjWayoTOz@iWXG*onMj?6RaB|2X6)LjuZ$88+YG3&{6p){|2RlwVnd*vv+ndVIUUWGcgpqcj<&zXQ)&`xq)$>CG^Jx9Yvp?WGfxeKOAjauX%j6zBCW?^{sx0Ee+rrF^$m7 z>`-%>HFstQsa#gm5nvoHO!-LxP_5bknB%D3lgqMA`0?1Ark}7bGsw!EY?s3@Uvt?E zYc$*C&3_hBN44SR>i6oVUy7{bsWBWF8R`ibHQ*L0UNNQXai}3d$KzItlEeJoGT(hE zAHRA8dN&=ySXTXtpHyRe`Oc>?`GuFNf*5b&GK-1_PBlTrgC94VfEX4pR0socx4?al ztFCxrn{`8>)PcL_@~}y2{l_GdW8JdkQ5DZVW3nXm3O0>l)krNQfg|rKy!V(Q_OVg-)dqfQDu30CDnh~nC$|$8Rl%kV7Ag`d_W^#wCMb}|tH;N?-!z*h zWd-V?k;gsRmOim#w8ENQk@xg>igzOJ4lL`3`v@gA5#ww0K07Pj#^H^7-n-wz!8BYy zJ~kYyA9Y~E7dGU@@N!lUQ$G2FE2%5Lub%HI*1cp6G<+hn89%m{UpkIab z_~O);`!(M)!1si@=Vq!+qd+K(2mPz_E^2djEzXA>)k>obzEYhBS)szl(Gd!t2nFAh z=B!-WVC<>g@rzi-R5bZUq3%TO;=1_FQ?4-$q=g4#qFQ)am@l1BKKcd99}op-s~7#b z#^OVOPX3y6nc5sLKh!Ib|9GeFD&!O9VfKdpS52z7wd(o7b%EFE5V^rI*~zEA+(Hc9 z4QP1JBFVp5(Tbwn1tDvcuw(f{v_VfFNvD~Ygt@q8)ti?S7({u@6j`?M`I0$X4Qbwm zv*t|3E2c)2HMnPPRWsJK95LCDyOgR;`la7~9GeM@PwoJME1Ycn^i=$mblGInKVT(t z)@QtSme63R5a9OCTf4g{X`qZw0WOLAXj!2)ws+sJ4VST+9iChk=R$1Flico|61n9| z)9$;E^V#@RBktWUP0uM4nokmnzh6Fm#cG`Nr|ri!K-%pSrWc^k-=4qM`n+mMiWBq1 zi(c3@&?H@LoUl(wD%E-a{MCS=f8*i%>kVt4^B;ja=eekik0<~Ez?wCuT)qE}Kffu`}wI z&-Pv@Bweq+F6vBW`f%@be%oN_NK(|1xI0c*x{i)Gs8WoABYn7HbryW@4YrKT+;Rb~ zwmNq9Q&2_l!QHTATfr=<&SEPjT=wXgM3*j!3xATb zCLN7kN*DA>%NetG^zX;G1Mr3}S1Z{m(@9+gaHG>z!$(`N`~FiQ45|-A76TDiZ0O!V$vi{qs4skZ8NJcX6p1R zI*bprU^HL=p3YTTuu>lM3V0S&DvZmxF0+s_ZP--=4d>f&8Rj>XEX37l8`6f>cv7iBM_%=MZ)oa;^}0YZa) zWVH0>fa|Zz0*WyKf`guJ-WrUT-&@*??q2^eHP^dyX53h@j@URPbU)eCH zze$P0aBxRCxx`A9zPNvrgw9a;CdoHg5SQxb-WXl~3n?7*2x`IV{K*>@6u;&9DQp8* zY3s0`9W}FEOD5+h5|^9>S7XuvXW3;Rx zS$+u;%DvK5@18u4)@7sK1Jb4Ci5e5#CpN9eQ79p@3p1cr=ei1J!dHokezk1k@)c6E zyS!Ra9#Rg(_74;m6=7{vj=WLB;j|PNKIm)niEr}^?9u_3%?V(ZWIzj&?mWzVe82Sx z@mnI<2n$8aB1z^bRr6^( zrX_yh_If)))4%XzCA_6e19PaFZ0FAHYoP4=)O9MB%j zIBG1Sad`$_Gn?@;DB+ABKfvk!N$#gdu-%3sYwzS->6ax5Am3$kN28)brB@g937n8M7<>Fe({PTzuyjn=zzZ<2zv=SBMoh!oHHB>>FLSk$;agkw*m2ph=_o=c|p9qoJa(xo3|4J?8WKi zMt@832Zub=4FZR`AYjf;z*|nRrL#Lif{qS35B!rHISWznLJt0^;I{vZ-VI>|QbBh3 zk?TPMK)l@C!kpZ^oV+5S-{q0B8XA9>c5?gEi%5ThyudCX9xiT>qvJnFxFHlg{?hkP zCEWCp4{|}eP&a3HI0UNT0d+#q|E|=p#X|A0rz|6SmpF6S5dFGq>W zJ44)WSybdD=xz-VwQ`2QtVDl(<%958gN1}GIjx0+tvLCGMR+*D!opBaD41JN1PT?j zg7ORgMy2B9h5$Q3ptn>=axNH>2g=85ZDnZ*<`e*fp`838JWx)skd+mu0F;*x$_wS= z=jRpqjY10!Lxwik;diTUsjQGxU~8l~R!}G>L;%do$AN9MStZ2Q2fs*7gcwLfN!(m7Z_@Fn<#&#iY(X$^s6fl`d8rpjY-ee z+0*I&j^{7v-&thf2v29Yy%t={(hdqi{A-?n2L3yfF0x3uA>iIB|IMQQ7o7MXVX2Ii zb%uNYre6>0`bY1NO5yQGrF#&E~enIGM#o>kiBfFckHNq1NhsxL> zlL)!b$Q1gu&p?)6QO5d@Xir-x(nxl0UQuptx<9rTC=R-0he{15*98E*fB8j#fgQSxv3 z_do9XkGuXY5Byu;|3ue+-1TpH;NJrOC%XQ>xeMp7t1;9G`9seWdGTfEo|Q*lnlUZa zl;i<7x3Aoe;w0qA9T#O|Hvj;a;>6jgNsIh0T&nMucjW$-tM+kThrGbYlyl$LAi(9{8NT^xc!! zZL4j}d+G4XK<1tTap>EJID#m7S)tmRvLbhoE&T3p?FPdi{a@{%3ie-ZauU(6{;!sW z`QcwJl8A*_#ZuoPc)4b-gL}Tc+T+5a;ipB-&k4J;-hGmlub7=TZ58^A^=v3G6OZAsrrdv#~0g-oa9RTlg$Ez!}~m1EjTDJS@e`IJ1Gb^KU3 zuMBQcXmVZ0(6dK}={1+hl#!#g`S&<-60qblqTuhvVo8N)X2(M{_Wc=fq2#LVlFYPd zF(!lLRlbk6x;rRGX16pu^X3!pVJwz$uS8v!Ci5){8_b8nD2GdMfiUv2yVa%Qgs(6Q zbw<5bGV2J2D|pwEUk;(;-0MCS`Ef^QV8~x$Yv3uf)4ViKTPZH!yI{J`{Ca+tUu4Tj z2u9{`$&t=*j_<~Op02VxNK-cUa7D8vITmLl%tir@dtt~=nkCEd-u>dN8U|pLm+NEP zY2&NnZ(aw#t(;rZNCHw4qukUo?;BN6{fSWk6N$C2o`6Wrk(M;!wbU@ za}b`{E6SR9`-P;&@-e%p@lB|F9X7|(C%h_BsQ(qReNr*Wk(W{DwAs2DDY38-sF2fekH$2#JH!G85}B`NJlMAD$&;gP0#8yCCNOP*ah6~VR# zV-8Mlx7qmK;U$Fq*e&tDPJMOSe0`;p^8E`R!RMMr8m*7QFq4Q1%BsGh?^u>=400bk z*BY2W85KF}iIZCoj<%>d$yz$^%(n?s-HS`}ROgi?3Y=SW`+AD*_p$R!w4T`jeR1!8 zUleC-v(lzg*V~XZ01&(TbL9JyI~UhS3<;CgXR9mj_+H;aqf^6r=C>l}H25*hCYOVH zH?$l?#Hb`W7REz`GDMunU#GeG5Z4vwB6X-PV(s4xGN}`D-Pl8%fBiD37)8#=<8wDw za{DO!oWqEoCiLt=Uc99Sg?+3UW-M%}ISx6HhbUw9M$u`vwB7%HictQBhb#w0_w6Re zauqwx!%$ygVkqK&(0lYPMekmakd(uFKP==vD_Sb5jW0HfDTO_LR=m=h&wnqYo=0kg zi%!JT7bdqO$j*rya>Dp@n3YEnk?bLT@2LC9?pIaFaho18X*k-=<0E_dECn~n8?%r* z>tw1ohK7HktgeI3=GkDmxEPlv>5~JfAj=GzkK#*6$%~T`@$)BEo0(brA$qWNCuQ)i z1e+C`wN`i;x;USCeEK`%@v{3z^jkl%9MdjPCcSH;=90wfQqK2d#PP_Ve>#JEi29yS z?7E$Q9zoEQrMWRt&|k!Ok<>9$GLdtC!Gy&F2t{bR>bhbr!S+X{JG~=9957ncK{^*PH}Z*;Hr2s4%1cIN9DYz$Q&&YU z`xei0v)JaXX;JAI3as@;amA(Wj*hFqyn>_qAnGU>`&n|k_(KFd72)jxr{6$ICAC) z*{fm}@kuCIH!-}A7f5HbuebZXbEg^Ac$yZS-t^xr4!knBV0yJKm6L=TI%Y_jMc(hLK{qi3JcmsOfJ!zZ0%-vny>D z{n$i=vXaKwY-T2VaO?peMX*x_!^m)aR{1xJoqIuLevTgojh&DBRfltsD?;G5vZ2bb zs~x9}=+l@ieYaOq{<#ifEpAz0r{n>V^7xP(_i$q@@TU{=nKn{8z0e$WGpOQti^pVn zN+C0(?gc}9y)hJ+K;{=YPw&P%(7uZg+J}DcGS1G8VG`Nsw5?bA*ykIZ-d_Ieh4kA? z%xZkyIWfd_nISa9OIhy9^u>&$RfqPZDCH8hXm9jYQMxjm-r&CCYPazC9-E#fkh7Mi z`_)+E1wXv8d9_RTW&2dHR;S$y>2cq7ai+={egApB`#afr~qip0hXm=#$eD}+CIE6tt^zZkdjZJ7CL=RW;@N&MvG$9H2y)Ngxs?Q z%it#tiZZF9s}TeGi((BUPRBzNicDM2^)c*3H{9e;*DFc)v0Fx5})E!{i5lxMSB$I3(^ z8tJ>CwlM>bUoo?ke;X&yDMN~(h*01?x^stqJC3Em>y$^XxJwgNWQq-A^8t*cNJo`X z{YZUd1(Hk$N0oNX`<9m&zZvh7*-F0W7rH3D0Bi*+to~y$F}_HrZLH5@W#kmbDbr=Vr|*H5EM= z)WLAi@g0X-7nRps?jDCaR!0|l6~STYq72QbVg-+=r8r0B!vjM}>znS4>2q-k;b|tB zYwD$94k;BeA$n5`ZnU*WQ`FR2WFqtZd#KAuzlC9J3JSgNG>&gY?^3*)Bp0!@{myHt zIxJOWwL1N!?iD>Vz+ut8XD>U3iGd$kg?u|*fXA)Nso?O2#AXKv(t}}x+6EP6aS1MZ zTb|xjy;lYnbH|@Ux#A+~P0NY7Pj<&o-NQPtAVxt10UbO^m72kp8yd#_>V|!a$OW^H zzHxr73?52~h6i*~2*nck2|38a+3us#a1QlKw6Jxed|+2lMbR4W4^w4*YoH0}SAMke zBg&ses9KutX6zGej-?+T)TUZ{D8w!oD`l__(Jc#h4)Gn^wV$LH{VdCyd9h`y<8Bx* zY>CbYxaQ`#F9jNj-R5J!cmFX*(f*_E+Q`C+mOtIwR~v_hl`m{+Y){3APyR*z&`w|U zeCE-4lV)cr!`j?Rsh4f*9SZk#R}dQ<^~Tuxv?ovS^A(sf!y9U?TU{hf?YWeUTPT|` zmtHb3r{S1{%ih$qj65Zm%!7GNI4#`MiPyqa+8)#G!chaqK&zAV`$ny=@UbNDUPZoz zgqeu*PGRe%9?$nd=xl_LXY!%nL|iceBLBUT%7%KWX3)|?R;;U`we&-In*;^*jlCk| zuQtLihrYop>h@l-G}z3+Xcn0Ly1HD z=L5D9QO}Cx%Hu|?)LstGC22k*WTrF|_85)aB_XJ&yMW2l^6E2M_$QFgJlN$fQhwGx zJWCr!E(Fifde)1j_Ka|3-<;n_qFVH_y6v*sN4~iouSPdd7rTF)&0?I@;zRj3NH0V@ zgyP4XUCARqF>2~2_}w=t6#tKR0OXzE*InR`%LNPbUzZGq^dCa=&&xN(ZoaZ0uR{P8 M1x@+avKGPr1*WI9TL1t6 diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json index 7287c8bc7f..905798df6c 100644 --- a/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,116 +1,14 @@ { - "images" : [ - { - "filename" : "AppIcon-20x20@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "AppIcon-20x20@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "AppIcon-29x29@2x-1.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "AppIcon-29x29@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "AppIcon-40x40@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "AppIcon-40x40@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "AppIcon-60x60@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "AppIcon-60x60@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "filename" : "AppIcon-20x20@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "filename" : "AppIcon-20x20@2x-1.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "AppIcon-29x29@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "AppIcon-29x29@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "AppIcon-40x40@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "filename" : "AppIcon-40x40@2x-1.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "AppIcon-76x76@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "filename" : "AppIcon-76x76@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "AppIcon-83.5x83.5@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "filename" : "AppIcon-512@2x.png", - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" + "images" : [ + { + "filename" : "AppIcon-512@2x.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 540cb55e21..475b50f274 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "floccus", "version": "4.19.1", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -11,16 +11,16 @@ "dependencies": { "@byteowls/capacitor-oauth2": "4.x", "@capacitor-community/http": "^1.4.1", - "@capacitor/android": "4.x", - "@capacitor/app": "4.x", - "@capacitor/core": "4.x", - "@capacitor/device": "4.x", - "@capacitor/filesystem": "^4.1.4", - "@capacitor/ios": "4.x", - "@capacitor/network": "4.x", - "@capacitor/preferences": "4.x", - "@capacitor/share": "4.x", - "@capacitor/splash-screen": "4.x", + "@capacitor/android": "^5.0.0", + "@capacitor/app": "^5.0.0", + "@capacitor/core": "^5.0.0", + "@capacitor/device": "^5.0.0", + "@capacitor/filesystem": "^5.0.0", + "@capacitor/ios": "^5.0.0", + "@capacitor/network": "^5.0.0", + "@capacitor/preferences": "^5.0.0", + "@capacitor/share": "^5.0.0", + "@capacitor/splash-screen": "^5.0.0", "async-lock": "^1.2.8", "async-parallel": "^1.2.3", "batching-toposort": "^1.2.0", @@ -49,7 +49,7 @@ "devDependencies": { "@babel/core": "7.x", "@babel/preset-env": "7.x", - "@capacitor/cli": "4.x", + "@capacitor/cli": "^5.0.0", "@mdi/font": "^6.6.96", "@types/node": "^14.14.37", "@typescript-eslint/eslint-plugin": "^5.2.0", @@ -98,13 +98,22 @@ "webpack-merge": "^4.2.2" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -112,47 +121,48 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", + "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.5", + "@babel/parser": "^7.23.5", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -163,12 +173,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -177,78 +187,61 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -258,13 +251,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -274,142 +268,128 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -419,122 +399,121 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -542,9 +521,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -553,12 +532,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -568,14 +547,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -584,232 +563,27 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, @@ -817,22 +591,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -897,12 +655,27 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -911,6 +684,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1025,30 +810,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1057,13 +841,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1072,13 +859,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1087,21 +876,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1110,14 +891,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1126,13 +906,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1141,29 +922,116 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1173,13 +1041,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1189,12 +1073,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1204,14 +1088,30 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1221,12 +1121,28 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1236,12 +1152,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1251,13 +1167,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1267,14 +1183,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1284,15 +1200,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1302,13 +1218,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1318,13 +1234,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1334,12 +1250,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1349,13 +1316,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1365,12 +1365,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1380,12 +1414,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1395,13 +1429,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1411,12 +1445,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1426,12 +1460,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1441,13 +1475,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1457,12 +1491,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1472,12 +1506,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1487,12 +1521,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1502,12 +1536,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1517,13 +1567,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1532,39 +1582,44 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.5.tgz", + "integrity": "sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1574,45 +1629,61 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1622,19 +1693,17 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/regjsgen": { @@ -1644,45 +1713,45 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", + "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1691,13 +1760,13 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1705,9 +1774,9 @@ } }, "node_modules/@byteowls/capacitor-oauth2": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@byteowls/capacitor-oauth2/-/capacitor-oauth2-4.0.0.tgz", - "integrity": "sha512-uGbl0bx7729UR4CD81UOvDfDc7FzCUlV7IU1D0rMJAd58hANPMWfj7BpmWQ++uUvA251NvjUL3yB6Jwj4C1z/A==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@byteowls/capacitor-oauth2/-/capacitor-oauth2-4.0.2.tgz", + "integrity": "sha512-9D8/pXVUf43HzUY0N4CATLGN4ldpsnj3dVfL3RPix6i3hbqitsoOdgHaWTNv4Iwjz4s+onF+DK/2f2z1kHX3Ag==", "peerDependencies": { "@capacitor/core": ">=4" } @@ -1756,40 +1825,39 @@ } }, "node_modules/@capacitor/android": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-4.7.1.tgz", - "integrity": "sha512-WRyP50HDfZVW/xiCHh8MMFSO30AqiLVLrCmBwNsMYSldzBbhSaU06YJXU41jJjXR2yu6E3/H6r8hNU2gec4RKA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.5.1.tgz", + "integrity": "sha512-WTnPnpaEvTtaEtTNRbh06Y1afF7A4plY/4uajAL0WW8tdR1FxieadF357yKGiAT6CudI/B+eOu6rxn6qWuphKg==", "peerDependencies": { - "@capacitor/core": "^4.7.0" + "@capacitor/core": "^5.5.0" } }, "node_modules/@capacitor/app": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-4.1.1.tgz", - "integrity": "sha512-SJcJA1rhFQyeH6eLfUEbdKkHzAwzahJNVPNXmU88fdmXpMgM2dJGzZj1vrm6e21aQq+Z4aBVLJ2RCdj92zD7wg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-5.0.6.tgz", + "integrity": "sha512-6ZXVdnNmaYILasC/RjQw+yfTmq2ZO7Q3v5lFcDVfq3PFGnybyYQh+RstBrYri+376OmXOXxBD7E6UxBhrMzXGA==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@capacitor/cli": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.8.0.tgz", - "integrity": "sha512-Hbs1SKjvyg5wdcMGRt+CzebdgjlnVDjn92WV1p16gsrBwqWm+uDYMNpFQ7vWKALFL9AZCi/r8lXHmuX/HoD2Kw==", - "dev": true, + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-5.5.1.tgz", + "integrity": "sha512-/oGd2IIc+k1H/fc7tUzP7vqMtZi0gNcJ4/4wUE2kzAnETxxxHXMM/2V62KfjCby/OOAzJbtI7n5OPlnWE9un1A==", "dependencies": { - "@ionic/cli-framework-output": "2.2.5", - "@ionic/utils-fs": "3.1.6", - "@ionic/utils-subprocess": "2.1.11", - "@ionic/utils-terminal": "2.3.3", + "@ionic/cli-framework-output": "^2.2.5", + "@ionic/utils-fs": "^3.1.6", + "@ionic/utils-subprocess": "^2.1.11", + "@ionic/utils-terminal": "^2.3.3", "commander": "^9.3.0", "debug": "^4.3.4", "env-paths": "^2.2.0", "kleur": "^4.1.4", - "native-run": "^1.6.0", + "native-run": "^1.7.3", "open": "^8.4.0", "plist": "^3.0.5", "prompts": "^2.4.2", - "rimraf": "^3.0.2", + "rimraf": "^4.4.1", "semver": "^7.3.7", "tar": "^6.1.11", "tslib": "^2.4.0", @@ -1800,14 +1868,13 @@ "capacitor": "bin/capacitor" }, "engines": { - "node": ">=12.4.0" + "node": ">=16.0.0" } }, "node_modules/@capacitor/cli/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -1816,10 +1883,9 @@ } }, "node_modules/@capacitor/cli/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1833,71 +1899,70 @@ "node_modules/@capacitor/cli/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@capacitor/core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-4.7.1.tgz", - "integrity": "sha512-NZcsyPNt1avNELnKuD5OsL/O/ejQxlw9UkLUEuiptPPAEwS8WJ1gGabaEBbCb2wNA/nPfrGH+ZC2LGhlpMlLeg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.5.1.tgz", + "integrity": "sha512-VG6Iv8Q7ZAbvjodxpvjcSe0jfxUwZXnvjbi93ehuJ6eYP8U926qLSXyrT/DToZq+F6v/HyGyVgn3mrE/9jW2Tg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@capacitor/device": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-4.1.0.tgz", - "integrity": "sha512-BlcYb6e6m+vC1SxeyUDIUGfuNXdKEcpFPDCs/kxk2SByFc/BkvXeoy4NjY4qmTderGELofX9bta5Iy9JV7rGUg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-5.0.6.tgz", + "integrity": "sha512-tmjK0H8IKbDLMcmzZzJPbV+9yLkKJ76QOdz4A7fZAOYx2GnFHsFngxldq/wKotGAJuDX/ih3ZzHNrzVguzlv2g==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@capacitor/filesystem": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-4.1.4.tgz", - "integrity": "sha512-ivko1RNK4hq63xhMacq8D6D97N5/SAafTsrmY/pghYrG6Cl2SEY0+IgRu7V9/VWeN3FSplyUPucjUTAFQxXN5g==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-5.1.4.tgz", + "integrity": "sha512-10EM1KvFMs+pTzxkcflspzxBWcX9sOnS9nTP5Afjr5hn4OxLrwTFySw2Z12Uv6jdN4OnhY3jXtDKXPljXvXILg==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.1.1" } }, "node_modules/@capacitor/ios": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-4.7.1.tgz", - "integrity": "sha512-8VPxVoqj8E8e4lwPphAZ6ZdOtfQNC+DfUNafjyF+Y/hWu7xMBaElDnCqfSIVKtLUoJud8Ke7yONgMTHnNE+C9A==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-5.5.1.tgz", + "integrity": "sha512-h00qt8u32t8eEbIkuG4IjR0r34YZC0sIXglDH8fRDdA84xDkTybmz3WtdpRWDzh6ukE2RIY7rmD7p410WSJ2yA==", "peerDependencies": { - "@capacitor/core": "^4.7.0" + "@capacitor/core": "^5.5.0" } }, "node_modules/@capacitor/network": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-4.1.0.tgz", - "integrity": "sha512-GMJ6LmxmrFA55rAaYxgm4tKSZyUmuLRreQz5Gdu0P09Ja8abSjmXa/DX16gOu1I1+wqHWm2rRI6nPkeUH55Ibw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-5.0.6.tgz", + "integrity": "sha512-E//cq9NEvFFiLyptK0ha4B8OytdWpSqvtUo5L2uiqcoADWUnl5d7aK45M09eyd347HchICeEdIkO31n6CNxyYA==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@capacitor/preferences": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@capacitor/preferences/-/preferences-4.0.2.tgz", - "integrity": "sha512-HgcRkMdVHSIV3TeQLZFmCaCeMWQ25wLyZZ7dA2f8Rw81Q1Nroxsi7HxTEGNqrWKSN9PNKBJD8vChr6eB2GNtZg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/preferences/-/preferences-5.0.6.tgz", + "integrity": "sha512-aDe4wGTVSAIue6XXdUFgyz7SGszxK/Ptt/iWTydMpzc1PlZXw1XTTnciM+S+SLLNZFzXlkpXT3wMnh9t0DojUA==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@capacitor/share": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-4.1.1.tgz", - "integrity": "sha512-srk1/8mz9U84Eyz7R0Wh76IhTAl+CaU5Q43rbwwDhjp5Q/NhNl9yNLGRZBRmV8qlyVMH7K5R2Se/VozM8CKJ/g==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-5.0.6.tgz", + "integrity": "sha512-/dVOW7kcuuD7hWB9Z1drArIpEk+5JCoMnMrAs2c7CLp3q5PeaXNJjTkGr6RJ1OtMhsHyXc6DAFwQ4frFkmZsgw==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@capacitor/splash-screen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-4.2.0.tgz", - "integrity": "sha512-XtGqM7J/yVEl/tKksKa7l1B6IDzhq4JJkadRuT8ohf/N7fD/1z45+id/4twM2Vnsxazh1fur2gq8rma7HaXMEw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-5.0.6.tgz", + "integrity": "sha512-9B8wSm89D+LlshFw8B+mjPU8pJNf1WOx2mkMjMvcH0/EqxNaE+ZaO8lPCX+9WvWSEZs3O3l11qiSnOFHeK0t9A==", "peerDependencies": { - "@capacitor/core": "^4.0.0" + "@capacitor/core": "^5.0.0" } }, "node_modules/@discoveryjs/json-ext": { @@ -1910,9 +1975,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -1925,9 +1990,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1954,9 +2019,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2054,34 +2119,34 @@ "dev": true }, "node_modules/@ionic/cli-framework-output": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.5.tgz", - "integrity": "sha512-YeDLTnTaE6V4IDUxT8GDIep0GuRIFaR7YZDLANMuuWJZDmnTku6DP+MmQoltBeLmVvz1BAAZgk41xzxdq6H2FQ==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.7.tgz", + "integrity": "sha512-/BXeclqu3y+bsBF7VFRS9xtNbrXf2JYCj/LeJoyLpWA9PeXNfvFrn91W2lwS2HVDjEDWKl4Ye6edJDdtn76EnA==", "dependencies": { - "@ionic/utils-terminal": "2.3.3", + "@ionic/utils-terminal": "2.3.4", "debug": "^4.0.0", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-array": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", - "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-fs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.6.tgz", - "integrity": "sha512-eikrNkK89CfGPmexjTfSWl4EYqsPSBh0Ka7by4F0PLc1hJZYtJxUZV3X4r5ecA8ikjicUmcbU7zJmAjmqutG/w==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", "dependencies": { "@types/fs-extra": "^8.0.0", "debug": "^4.0.0", @@ -2089,71 +2154,71 @@ "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-object": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", - "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-process": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.10.tgz", - "integrity": "sha512-mZ7JEowcuGQK+SKsJXi0liYTcXd2bNMR3nE0CyTROpMECUpJeAvvaBaPGZf5ERQUPeWBVuwqAqjUmIdxhz5bxw==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.11.tgz", + "integrity": "sha512-Uavxn+x8j3rDlZEk1X7YnaN6wCgbCwYQOeIjv/m94i1dzslqWhqIHEqxEyeE8HsT5Negboagg7GtQiABy+BLbA==", "dependencies": { - "@ionic/utils-object": "2.1.5", - "@ionic/utils-terminal": "2.3.3", + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.4", "debug": "^4.0.0", "signal-exit": "^3.0.3", "tree-kill": "^1.2.2", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-stream": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", - "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.6.tgz", + "integrity": "sha512-4+Kitey1lTA1yGtnigeYNhV/0tggI3lWBMjC7tBs1K9GXa/q7q4CtOISppdh8QgtOhrhAXS2Igp8rbko/Cj+lA==", "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-subprocess": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.11.tgz", - "integrity": "sha512-6zCDixNmZCbMCy5np8klSxOZF85kuDyzZSTTQKQP90ZtYNCcPYmuFSzaqDwApJT4r5L3MY3JrqK1gLkc6xiUPw==", - "dependencies": { - "@ionic/utils-array": "2.1.5", - "@ionic/utils-fs": "3.1.6", - "@ionic/utils-process": "2.1.10", - "@ionic/utils-stream": "3.1.5", - "@ionic/utils-terminal": "2.3.3", + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.14.tgz", + "integrity": "sha512-nGYvyGVjU0kjPUcSRFr4ROTraT3w/7r502f5QJEsMRKTqa4eEzCshtwRk+/mpASm0kgBN5rrjYA5A/OZg8ahqg==", + "dependencies": { + "@ionic/utils-array": "2.1.6", + "@ionic/utils-fs": "3.1.7", + "@ionic/utils-process": "2.1.11", + "@ionic/utils-stream": "3.1.6", + "@ionic/utils-terminal": "2.3.4", "cross-spawn": "^7.0.3", "debug": "^4.0.0", "tslib": "^2.0.1" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@ionic/utils-terminal": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.3.tgz", - "integrity": "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.4.tgz", + "integrity": "sha512-cEiMFl3jklE0sW60r8JHH3ijFTwh/jkdEKWbylSyExQwZ8pPuwoXz7gpkWoJRLuoRHHSvg+wzNYyPJazIHfoJA==", "dependencies": { "@types/slice-ansi": "^4.0.0", "debug": "^4.0.0", @@ -2166,26 +2231,27 @@ "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10.3.0" + "node": ">=16.0.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -2201,43 +2267,29 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@mdi/font": { @@ -2281,78 +2333,70 @@ "node": ">= 8" } }, - "node_modules/@sentry/core": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.44.0.tgz", - "integrity": "sha512-ELiHCEbFv7JJmoXKhIekdUmwN+g88Pyorp2+35QBRxqQQSazmTtAft99zcYvRJewgZUbnQALfzkLtoP+kFwaow==", + "node_modules/@sentry-internal/tracing": { + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.85.0.tgz", + "integrity": "sha512-p3YMUwkPCy2su9cm/3+7QYR4RiMI0+07DU1BZtht9NLTzY2O87/yvUbn1v2yHR3vJQTy/+7N0ud9/mPBFznRQQ==", "dev": true, "dependencies": { - "@sentry/types": "7.44.0", - "@sentry/utils": "7.44.0", - "tslib": "^1.9.3" + "@sentry/core": "7.85.0", + "@sentry/types": "7.85.0", + "@sentry/utils": "7.85.0" }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/@sentry/core": { + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.85.0.tgz", + "integrity": "sha512-DFDAc4tWmHN5IWhr7XbHCiyF1Xgb95jz8Uj/JTX9atlgodId1UIbER77qpEmH3eQGid/QBdqrlR98zCixgSbwg==", + "dev": true, + "dependencies": { + "@sentry/types": "7.85.0", + "@sentry/utils": "7.85.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/@sentry/node": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.44.0.tgz", - "integrity": "sha512-PS1amdIcc7AM7OJ5ue17ZI/3yivBI4EcluEmCP8Jlirx9WH9AQKqv+5ijZ/2wNKwgMrDWm/pmtzUzxl54vKR3w==", + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.85.0.tgz", + "integrity": "sha512-uiBtRW9G017NHoCXBlK3ttkTwHXLFyI8ndHpaObtyajKTv3ptGIThVEn7DuK7Pwor//RjwjSEEOa7WDK+FdMVQ==", "dev": true, "dependencies": { - "@sentry/core": "7.44.0", - "@sentry/types": "7.44.0", - "@sentry/utils": "7.44.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" + "@sentry-internal/tracing": "7.85.0", + "@sentry/core": "7.85.0", + "@sentry/types": "7.85.0", + "@sentry/utils": "7.85.0", + "https-proxy-agent": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@sentry/types": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.44.0.tgz", - "integrity": "sha512-BkyZNgadBUJzd1cyp23jPPQ+Pak2RUeEUmFX61QIeS35TAjJRBFsrzdhry2oIfiBZhhCKRTmvEX1fBVOL1gQ9w==", + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.85.0.tgz", + "integrity": "sha512-R5jR4XkK5tBU2jDiPdSVqzkmjYRr666bcGaFGUHB/xDQCjPsjk+pEmCCL+vpuWoaZmQJUE1hVU7rgnVX81w8zg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.44.0.tgz", - "integrity": "sha512-OcLm7QRtsLfCtB/IEd/8jv2ZDmQlfIkY26P/vTBgpHaf52k+s+EC38I8q6yUAFskKcJbGE8y0xhkwg28ITiEwA==", + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.85.0.tgz", + "integrity": "sha512-JZ7seNOLvhjAQ8GeB3GYknPQJkuhF88xAYOaESZP3xPOWBMFUN+IO4RqjMqMLFDniOwsVQS7GB/MfP+hxufieg==", "dev": true, "dependencies": { - "@sentry/types": "7.44.0", - "tslib": "^1.9.3" + "@sentry/types": "7.85.0" }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@sindresorhus/is": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", @@ -2390,9 +2434,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2400,9 +2444,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -2410,29 +2454,29 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/fs-extra": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", - "integrity": "sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { @@ -2451,23 +2495,23 @@ } }, "node_modules/@types/node": { - "version": "14.18.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.38.tgz", - "integrity": "sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew==" + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true }, "node_modules/@types/slice-ansi": { @@ -2476,17 +2520,17 @@ "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", - "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/type-utils": "5.55.0", - "@typescript-eslint/utils": "5.55.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", @@ -2522,9 +2566,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2543,14 +2587,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", - "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { @@ -2570,13 +2614,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", - "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2587,13 +2631,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", - "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.55.0", - "@typescript-eslint/utils": "5.55.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -2614,9 +2658,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", - "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2627,13 +2671,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", - "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2666,9 +2710,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2687,17 +2731,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", - "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -2725,9 +2769,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2746,12 +2790,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", - "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -2769,9 +2813,9 @@ "dev": true }, "node_modules/@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz", + "integrity": "sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==", "dependencies": { "@babel/parser": "^7.18.4", "postcss": "^8.4.14", @@ -2854,148 +2898,148 @@ "dev": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -3035,6 +3079,14 @@ } } }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -3069,9 +3121,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -3115,9 +3167,9 @@ } }, "node_modules/all-contributors-cli": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.24.0.tgz", - "integrity": "sha512-7oSKr2PnqxsOotuSwciltcFTS1eVRdjR0cn99hbElfff7gRQBShVhsf/XBprY41sLcgqTk0l0MKgKv6QNgZdMg==", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.26.1.tgz", + "integrity": "sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw==", "dev": true, "dependencies": { "@babel/runtime": "^7.7.6", @@ -3136,6 +3188,9 @@ }, "engines": { "node": ">=4" + }, + "optionalDependencies": { + "prettier": "^2" } }, "node_modules/all-contributors-cli/node_modules/ansi-styles": { @@ -3309,42 +3364,17 @@ "node": ">=0.10.0" } }, - "node_modules/anymatch/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/anymatch/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/anymatch/node_modules/is-extendable": { @@ -3523,15 +3553,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -3625,15 +3655,34 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3644,14 +3693,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3661,6 +3710,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -3689,13 +3759,13 @@ "dev": true }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, "node_modules/assert-plus": { @@ -3708,18 +3778,18 @@ } }, "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "dependencies": { - "inherits": "2.0.1" + "inherits": "2.0.3" } }, "node_modules/assertion-error": { @@ -3749,9 +3819,9 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/async-done": { @@ -3906,42 +3976,42 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-runtime": { @@ -4020,51 +4090,17 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/base64-js": { @@ -4104,9 +4140,9 @@ } }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "engines": { "node": ">=0.6" } @@ -4265,20 +4301,23 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dev": true, "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" } }, "node_modules/browserify-sign/node_modules/readable-stream": { @@ -4305,9 +4344,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -4317,13 +4356,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -4411,9 +4454,9 @@ } }, "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "dev": true, "dependencies": { "clone-response": "^1.0.2", @@ -4454,13 +4497,14 @@ } }, "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==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4497,9 +4541,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001491", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", - "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", "dev": true, "funding": [ { @@ -4523,18 +4567,18 @@ "dev": true }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -4573,10 +4617,13 @@ "dev": true }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -4912,9 +4959,9 @@ } }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/combined-stream": { @@ -4944,10 +4991,13 @@ "dev": true }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -4980,6 +5030,7 @@ "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", "dev": true, "dependencies": { "bluebird": "^3.1.1" @@ -4995,20 +5046,11 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -5086,9 +5128,9 @@ } }, "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5096,12 +5138,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.21.5" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", @@ -5210,15 +5252,15 @@ } }, "node_modules/css-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.19", + "postcss": "^8.4.21", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-local-by-default": "^4.0.3", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", @@ -5248,9 +5290,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5281,9 +5323,9 @@ } }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/d": { "version": "1.0.1", @@ -5324,9 +5366,9 @@ } }, "node_modules/decache": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.1.tgz", - "integrity": "sha512-ohApBM8u9ygepJCjgBrEZSSxPjc0T/PJkD+uNyxXPkqudyUpdXpwJYp0VISm2WrPVzASU6DZyIi6BWdyw7uJ2Q==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", + "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", "dev": true, "dependencies": { "callsite": "^1.0.0" @@ -5434,6 +5476,20 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -5443,11 +5499,12 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -5480,9 +5537,9 @@ } }, "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -5615,9 +5672,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==", + "version": "1.4.607", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.607.tgz", + "integrity": "sha512-YUlnPwE6eYxzwBnFmawA8LiLRfm70R2aJRIUv0n03uHt/cUzzYACOogmvk8M2+hVzt/kB80KJXx7d5f5JofPvQ==", "dev": true }, "node_modules/elementtree": { @@ -5690,12 +5747,13 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" @@ -5710,9 +5768,9 @@ } }, "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -5731,25 +5789,26 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -5757,19 +5816,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -5779,32 +5842,32 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -5967,14 +6030,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -6024,9 +6087,9 @@ "dev": true }, "node_modules/eslint-import-resolver-webpack/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -6086,9 +6149,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -6131,26 +6194,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -6249,17 +6314,17 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", - "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", + "version": "9.19.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz", + "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==", "dev": true, "dependencies": { - "eslint-utils": "^3.0.0", + "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", "xml-name-validator": "^4.0.0" }, "engines": { @@ -6269,33 +6334,6 @@ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-plugin-vue/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-vue/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6309,9 +6347,9 @@ } }, "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6367,12 +6405,15 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/@babel/code-frame": { @@ -6455,9 +6496,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6500,9 +6541,9 @@ } }, "node_modules/eslint/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6810,57 +6851,23 @@ "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -6888,9 +6895,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6916,17 +6923,17 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", - "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } ], "dependencies": { @@ -7010,9 +7017,9 @@ } }, "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -7129,42 +7136,17 @@ "node": ">=0.10.0" } }, - "node_modules/findup-sync/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/findup-sync/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/findup-sync/node_modules/is-extendable": { @@ -7271,22 +7253,38 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/flush-write-stream": { @@ -7427,7 +7425,7 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, "hasInstallScript": true, "optional": true, @@ -7443,21 +7441,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -7500,23 +7501,24 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7710,9 +7712,9 @@ } }, "node_modules/global-agent/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7876,10 +7878,10 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/growl": { @@ -8201,13 +8203,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -8231,12 +8230,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8364,6 +8363,18 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -8465,9 +8476,9 @@ } }, "node_modules/humanize-duration": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.28.0.tgz", - "integrity": "sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A==" + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.31.0.tgz", + "integrity": "sha512-fRrehgBG26NNZysRlTq1S+HPtDpp3u+Jzdc/d5A4cEzOD86YLAkDaJyJg8krSdCi7CJ+s7ht3fwRj8Dl+Btd0w==" }, "node_modules/iconv-lite": { "version": "0.4.24", @@ -8514,9 +8525,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -8529,9 +8540,9 @@ "dev": true }, "node_modules/immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", "dev": true }, "node_modules/import-fresh": { @@ -8696,13 +8707,13 @@ } }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -8752,27 +8763,15 @@ } }, "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-array-buffer": { @@ -8854,39 +8853,27 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-date-object": { @@ -8905,17 +8892,16 @@ } }, "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-docker": { @@ -9131,16 +9117,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -9503,9 +9485,9 @@ "dev": true }, "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -9820,12 +9802,12 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lowercase-keys": { @@ -9837,12 +9819,6 @@ "node": ">=8" } }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9965,42 +9941,17 @@ "node": ">= 0.10" } }, - "node_modules/matchdep/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/matchdep/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/matchdep/node_modules/is-extendable": { @@ -10299,9 +10250,9 @@ } }, "node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -10555,9 +10506,9 @@ } }, "node_modules/mocha/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -10724,9 +10675,9 @@ "dev": true }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, @@ -10790,42 +10741,17 @@ "node": ">=0.10.0" } }, - "node_modules/nanomatch/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/nanomatch/node_modules/is-extendable": { @@ -10862,9 +10788,9 @@ } }, "node_modules/native-run": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.7.2.tgz", - "integrity": "sha512-2aahC8iXIO8BcvEukVMrYwL5sXurkuIGyQgfSGBto832W6ejV+cB5Ww+2/CRxmyozhbxARJ2OMpEGPV8sTqsrQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.7.4.tgz", + "integrity": "sha512-yDEwTp66vmXpqFiSQzz4sVQgyq5U58gGRovglY4GHh12ITyWa6mh6Lbpm2gViVOVD1JYFtYnwcgr7GTFBinXNA==", "dependencies": { "@ionic/utils-fs": "^3.1.6", "@ionic/utils-terminal": "^2.3.3", @@ -10931,9 +10857,9 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -10988,9 +10914,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -11006,9 +10932,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -11104,15 +11030,6 @@ "node": "*" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -11149,9 +11066,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11179,13 +11096,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -11211,6 +11128,35 @@ "node": ">=0.10.0" } }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", @@ -11250,14 +11196,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -11307,17 +11253,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -11584,12 +11530,12 @@ } }, "node_modules/path-scurry": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", - "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.0" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -11599,21 +11545,13 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "engines": { "node": "14 || >=16.14" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.1.tgz", - "integrity": "sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -11799,15 +11737,16 @@ } }, "node_modules/plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", "dependencies": { + "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" }, "engines": { - "node": ">=6" + "node": ">=10.4.0" } }, "node_modules/plugin-error": { @@ -11884,9 +11823,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -11895,10 +11834,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -11919,9 +11862,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -11966,9 +11909,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -11985,9 +11928,15 @@ "dev": true }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12005,9 +11954,9 @@ } }, "node_modules/prettier": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.5.tgz", - "integrity": "sha512-3gzuxrHbKUePRBB4ZeU08VNkUcqEHaUaouNt0m7LGP4Hti/NuB07C7PPTM/LkWqXoJYJn2McEo5+kxPNrtQkLQ==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -12132,9 +12081,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -12148,16 +12097,6 @@ "node": ">=0.6" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -12383,42 +12322,17 @@ "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/readdirp/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/readdirp/node_modules/is-extendable": { @@ -12497,9 +12411,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -12509,15 +12423,15 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -12574,14 +12488,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -12804,12 +12718,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -12966,20 +12880,69 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dependencies": { - "glob": "^7.1.3" + "glob": "^9.2.0" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -13008,9 +12971,9 @@ } }, "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/run-async": { @@ -13063,6 +13026,30 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -13112,9 +13099,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.59.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.59.3.tgz", - "integrity": "sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ==", + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -13125,7 +13112,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/sass-loader": { @@ -13240,9 +13227,9 @@ } }, "node_modules/sass/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -13327,19 +13314,34 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/selenium-webdriver": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.11.1.tgz", - "integrity": "sha512-bvrnr3UZlLScErOmn8gV6cqc+1PYDHn0575CxUR2U14fMWt7OKxSy0lAThhZq4sq4d1HqP8ebz11oiHSlAQ2WA==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.16.0.tgz", + "integrity": "sha512-IbqpRpfGE7JDGgXHJeWuCqT/tUqnLvZ14csSwt+S8o4nJo3RtQoE9VR4jB47tP/A8ArkYsh/THuMY6kyRP6kuA==", "dev": true, "dependencies": { "jszip": "^3.10.1", "tmp": "^0.2.1", - "ws": ">=8.13.0" + "ws": ">=8.14.2" }, "engines": { "node": ">= 14.20.0" } }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/selenium-webdriver/node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -13353,9 +13355,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -13388,131 +13390,6 @@ "@capacitor/core": "^5.0.0" } }, - "node_modules/send-intent/node_modules/@capacitor/cli": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-5.0.3.tgz", - "integrity": "sha512-VPmd/uKSCYqeLgNTrG2wVaMoCX8lo2UuXFVwP54W4nXPyG6LsDuOKYytkBItTAJrI3KEXdZWyRFbXjIY48/m6g==", - "dependencies": { - "@ionic/cli-framework-output": "^2.2.5", - "@ionic/utils-fs": "^3.1.6", - "@ionic/utils-subprocess": "^2.1.11", - "@ionic/utils-terminal": "^2.3.3", - "commander": "^9.3.0", - "debug": "^4.3.4", - "env-paths": "^2.2.0", - "kleur": "^4.1.4", - "native-run": "^1.7.2", - "open": "^8.4.0", - "plist": "^3.0.5", - "prompts": "^2.4.2", - "rimraf": "^4.4.1", - "semver": "^7.3.7", - "tar": "^6.1.11", - "tslib": "^2.4.0", - "xml2js": "^0.5.0" - }, - "bin": { - "cap": "bin/capacitor", - "capacitor": "bin/capacitor" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/send-intent/node_modules/@capacitor/core": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.0.3.tgz", - "integrity": "sha512-VxzSoFvoiGDmvlKQMbg7ZZh+w3Z223630kZINDOsbs7UZr5gZws7+m26Y9Oc8n2miI737hE6qOf2VU4H/8Tytg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/send-intent/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/send-intent/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/send-intent/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send-intent/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/send-intent/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/send-intent/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send-intent/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -13555,6 +13432,35 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -13765,60 +13671,26 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" + "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" @@ -13852,9 +13724,9 @@ "dev": true }, "node_modules/snyk": { - "version": "1.1122.0", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1122.0.tgz", - "integrity": "sha512-/hpzJAHZskxt0YPgjR7EsZPDOXHCbA14aHyv5vmJTfZQndTAkWhXBw1Nx/PGHMNsCa0BXrL4ruSVd6/bfaxpdg==", + "version": "1.1260.0", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1260.0.tgz", + "integrity": "sha512-LnUsIPkDprwo4Y9w9or1Y0zvBOIxVJbqSYmKm6+ehdmpmo9I/NuTyVj+iF+A4n+r6ljOCcD3WOPP/JA4uvo7gw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -13961,9 +13833,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/split-string": { @@ -14016,9 +13888,9 @@ } }, "node_modules/split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "engines": { "node": ">= 10.x" } @@ -14030,9 +13902,9 @@ "dev": true }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -14142,14 +14014,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -14159,28 +14031,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14317,13 +14189,13 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -14338,13 +14210,13 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/terser": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", - "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", + "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -14356,16 +14228,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -14390,9 +14262,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -14417,9 +14289,9 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -14613,42 +14485,17 @@ "node": ">=0.10.0" } }, - "node_modules/to-regex/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/to-regex/node_modules/is-extendable": { @@ -14675,15 +14522,6 @@ "node": ">=0.10.0" } }, - "node_modules/to-regex/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-through": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", @@ -14724,15 +14562,16 @@ } }, "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -14792,9 +14631,9 @@ "dev": true }, "node_modules/ts-loader/node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -14826,9 +14665,9 @@ } }, "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14840,6 +14679,15 @@ "node": ">=10" } }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/ts-loader/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14892,9 +14740,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -14980,6 +14828,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -15139,9 +15038,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -15213,9 +15112,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -15225,6 +15124,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -15232,7 +15135,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -15255,21 +15158,36 @@ "dev": true }, "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -15310,9 +15228,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", "dev": true }, "node_modules/v8flags": { @@ -15429,6 +15347,12 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-sourcemap/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, "node_modules/vinyl-sourcemap/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -15448,18 +15372,18 @@ "dev": true }, "node_modules/vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz", + "integrity": "sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==", "dependencies": { - "@vue/compiler-sfc": "2.7.14", + "@vue/compiler-sfc": "2.7.15", "csstype": "^3.1.0" } }, "node_modules/vue-eslint-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", - "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", + "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -15481,9 +15405,9 @@ } }, "node_modules/vue-eslint-parser/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15493,9 +15417,9 @@ } }, "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -15503,17 +15427,20 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -15544,9 +15471,9 @@ } }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15571,9 +15498,9 @@ "dev": true }, "node_modules/vue-loader": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz", - "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==", + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", "dev": true, "dependencies": { "@vue/component-compiler-utils": "^3.1.0", @@ -15590,6 +15517,9 @@ "cache-loader": { "optional": true }, + "prettier": { + "optional": true + }, "vue-template-compiler": { "optional": true } @@ -15678,9 +15608,9 @@ } }, "node_modules/vuetify": { - "version": "2.6.15", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.15.tgz", - "integrity": "sha512-2a6sBSHzivXgi9pZMyHuzTgMyInCkj/BrVwTnoCa1Y/Dnfwj7lkWzgKQDScbGVK0q4vJ+YHoBBrLOmnhz1R0YA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.7.1.tgz", + "integrity": "sha512-DVFmRsDtYrITw9yuGLwpFWngFYzEgk0KwloDCIV3+vhZw+NBFJOSzdbttbYmOwtqvQlhDxUyIRQolrRbSFAKlg==", "funding": { "type": "github", "url": "https://github.com/sponsors/johnleider" @@ -15722,9 +15652,9 @@ } }, "node_modules/vuetify-loader/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15770,22 +15700,22 @@ "dev": true }, "node_modules/webpack": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz", - "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -15794,9 +15724,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -15894,12 +15824,13 @@ } }, "node_modules/webpack-cli/node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -15925,9 +15856,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15937,18 +15868,18 @@ } }, "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -15959,9 +15890,9 @@ } }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -16026,23 +15957,22 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16104,20 +16034,11 @@ } }, "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workerpool": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", @@ -16177,9 +16098,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, "engines": { "node": ">=10.0.0" @@ -16417,12419 +16338,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", - "dev": true - }, - "@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", - "dev": true, - "requires": { - "@babel/types": "^7.21.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@byteowls/capacitor-oauth2": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@byteowls/capacitor-oauth2/-/capacitor-oauth2-4.0.0.tgz", - "integrity": "sha512-uGbl0bx7729UR4CD81UOvDfDc7FzCUlV7IU1D0rMJAd58hANPMWfj7BpmWQ++uUvA251NvjUL3yB6Jwj4C1z/A==", - "requires": {} - }, - "@capacitor-community/http": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@capacitor-community/http/-/http-1.4.1.tgz", - "integrity": "sha512-+pCkBXrwfm97UfjOgjV950H/qZ8SE36Mrcb46BlL1ps3VIsGuIO+AulL8GqTC6LewheRVtGJpRspNtneXQotNA==", - "requires": { - "@capacitor/android": "^3.0.0", - "@capacitor/core": "^3.0.0", - "@capacitor/filesystem": "^1.0.0", - "@capacitor/ios": "^3.0.0" - }, - "dependencies": { - "@capacitor/android": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.9.0.tgz", - "integrity": "sha512-YTPyrh1NozEuYXWGtfqN27TLXUrLbZX9fggyd4JQ1yMaUZTmLPm5dCuznONhQ49aPkJnUJB02JfpHy/qGwa2Lw==", - "requires": {} - }, - "@capacitor/core": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.9.0.tgz", - "integrity": "sha512-j1lL0+/7stY8YhIq1Lm6xixvUqIn89vtyH5ZpJNNmcZ0kwz6K9eLkcG6fvq1UWMDgSVZg9JrRGSFhb4LLoYOsw==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@capacitor/filesystem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.1.0.tgz", - "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==", - "requires": {} - }, - "@capacitor/ios": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.9.0.tgz", - "integrity": "sha512-GezPCJIujRHnF4wbrKJx6Q/mgFz0f9rmh/steTTXQZI+nEl6mHk6NWh8235p7YbhonYi5WD0rFNirrjGg1EaGw==", - "requires": {} - } - } - }, - "@capacitor/android": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-4.7.1.tgz", - "integrity": "sha512-WRyP50HDfZVW/xiCHh8MMFSO30AqiLVLrCmBwNsMYSldzBbhSaU06YJXU41jJjXR2yu6E3/H6r8hNU2gec4RKA==", - "requires": {} - }, - "@capacitor/app": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-4.1.1.tgz", - "integrity": "sha512-SJcJA1rhFQyeH6eLfUEbdKkHzAwzahJNVPNXmU88fdmXpMgM2dJGzZj1vrm6e21aQq+Z4aBVLJ2RCdj92zD7wg==", - "requires": {} - }, - "@capacitor/cli": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-4.8.0.tgz", - "integrity": "sha512-Hbs1SKjvyg5wdcMGRt+CzebdgjlnVDjn92WV1p16gsrBwqWm+uDYMNpFQ7vWKALFL9AZCi/r8lXHmuX/HoD2Kw==", - "dev": true, - "requires": { - "@ionic/cli-framework-output": "2.2.5", - "@ionic/utils-fs": "3.1.6", - "@ionic/utils-subprocess": "2.1.11", - "@ionic/utils-terminal": "2.3.3", - "commander": "^9.3.0", - "debug": "^4.3.4", - "env-paths": "^2.2.0", - "kleur": "^4.1.4", - "native-run": "^1.6.0", - "open": "^8.4.0", - "plist": "^3.0.5", - "prompts": "^2.4.2", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "tar": "^6.1.11", - "tslib": "^2.4.0", - "xml2js": "^0.5.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@capacitor/core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-4.7.1.tgz", - "integrity": "sha512-NZcsyPNt1avNELnKuD5OsL/O/ejQxlw9UkLUEuiptPPAEwS8WJ1gGabaEBbCb2wNA/nPfrGH+ZC2LGhlpMlLeg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@capacitor/device": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-4.1.0.tgz", - "integrity": "sha512-BlcYb6e6m+vC1SxeyUDIUGfuNXdKEcpFPDCs/kxk2SByFc/BkvXeoy4NjY4qmTderGELofX9bta5Iy9JV7rGUg==", - "requires": {} - }, - "@capacitor/filesystem": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-4.1.4.tgz", - "integrity": "sha512-ivko1RNK4hq63xhMacq8D6D97N5/SAafTsrmY/pghYrG6Cl2SEY0+IgRu7V9/VWeN3FSplyUPucjUTAFQxXN5g==", - "requires": {} - }, - "@capacitor/ios": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-4.7.1.tgz", - "integrity": "sha512-8VPxVoqj8E8e4lwPphAZ6ZdOtfQNC+DfUNafjyF+Y/hWu7xMBaElDnCqfSIVKtLUoJud8Ke7yONgMTHnNE+C9A==", - "requires": {} - }, - "@capacitor/network": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-4.1.0.tgz", - "integrity": "sha512-GMJ6LmxmrFA55rAaYxgm4tKSZyUmuLRreQz5Gdu0P09Ja8abSjmXa/DX16gOu1I1+wqHWm2rRI6nPkeUH55Ibw==", - "requires": {} - }, - "@capacitor/preferences": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@capacitor/preferences/-/preferences-4.0.2.tgz", - "integrity": "sha512-HgcRkMdVHSIV3TeQLZFmCaCeMWQ25wLyZZ7dA2f8Rw81Q1Nroxsi7HxTEGNqrWKSN9PNKBJD8vChr6eB2GNtZg==", - "requires": {} - }, - "@capacitor/share": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-4.1.1.tgz", - "integrity": "sha512-srk1/8mz9U84Eyz7R0Wh76IhTAl+CaU5Q43rbwwDhjp5Q/NhNl9yNLGRZBRmV8qlyVMH7K5R2Se/VozM8CKJ/g==", - "requires": {} - }, - "@capacitor/splash-screen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-4.2.0.tgz", - "integrity": "sha512-XtGqM7J/yVEl/tKksKa7l1B6IDzhq4JJkadRuT8ohf/N7fD/1z45+id/4twM2Vnsxazh1fur2gq8rma7HaXMEw==", - "requires": {} - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@eslint-community/eslint-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@formatjs/ecma402-abstract": { - "version": "1.11.4", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", - "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", - "requires": { - "@formatjs/intl-localematcher": "0.2.25", - "tslib": "^2.1.0" - } - }, - "@formatjs/fast-memoize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", - "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@formatjs/icu-messageformat-parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", - "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", - "requires": { - "@formatjs/ecma402-abstract": "1.11.4", - "@formatjs/icu-skeleton-parser": "1.3.6", - "tslib": "^2.1.0" - } - }, - "@formatjs/icu-skeleton-parser": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", - "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", - "requires": { - "@formatjs/ecma402-abstract": "1.11.4", - "tslib": "^2.1.0" - } - }, - "@formatjs/intl-localematcher": { - "version": "0.2.25", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", - "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@ionic/cli-framework-output": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.5.tgz", - "integrity": "sha512-YeDLTnTaE6V4IDUxT8GDIep0GuRIFaR7YZDLANMuuWJZDmnTku6DP+MmQoltBeLmVvz1BAAZgk41xzxdq6H2FQ==", - "requires": { - "@ionic/utils-terminal": "2.3.3", - "debug": "^4.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-array": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", - "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", - "requires": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-fs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.6.tgz", - "integrity": "sha512-eikrNkK89CfGPmexjTfSWl4EYqsPSBh0Ka7by4F0PLc1hJZYtJxUZV3X4r5ecA8ikjicUmcbU7zJmAjmqutG/w==", - "requires": { - "@types/fs-extra": "^8.0.0", - "debug": "^4.0.0", - "fs-extra": "^9.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-object": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", - "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", - "requires": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-process": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.10.tgz", - "integrity": "sha512-mZ7JEowcuGQK+SKsJXi0liYTcXd2bNMR3nE0CyTROpMECUpJeAvvaBaPGZf5ERQUPeWBVuwqAqjUmIdxhz5bxw==", - "requires": { - "@ionic/utils-object": "2.1.5", - "@ionic/utils-terminal": "2.3.3", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "tree-kill": "^1.2.2", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-stream": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", - "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", - "requires": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-subprocess": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.11.tgz", - "integrity": "sha512-6zCDixNmZCbMCy5np8klSxOZF85kuDyzZSTTQKQP90ZtYNCcPYmuFSzaqDwApJT4r5L3MY3JrqK1gLkc6xiUPw==", - "requires": { - "@ionic/utils-array": "2.1.5", - "@ionic/utils-fs": "3.1.6", - "@ionic/utils-process": "2.1.10", - "@ionic/utils-stream": "3.1.5", - "@ionic/utils-terminal": "2.3.3", - "cross-spawn": "^7.0.3", - "debug": "^4.0.0", - "tslib": "^2.0.1" - } - }, - "@ionic/utils-terminal": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.3.tgz", - "integrity": "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ==", - "requires": { - "@types/slice-ansi": "^4.0.0", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "slice-ansi": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "tslib": "^2.0.1", - "untildify": "^4.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@mdi/font": { - "version": "6.9.96", - "resolved": "https://registry.npmjs.org/@mdi/font/-/font-6.9.96.tgz", - "integrity": "sha512-z3QVZStyHVwkDsFR7A7F2PIvZJPWgdSFw4BEEy2Gc9HUN5NfK9mGbjgaYClRcbMWiYEV45srmiYtczmBtCqR8w==", - "dev": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sentry/core": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.44.0.tgz", - "integrity": "sha512-ELiHCEbFv7JJmoXKhIekdUmwN+g88Pyorp2+35QBRxqQQSazmTtAft99zcYvRJewgZUbnQALfzkLtoP+kFwaow==", - "dev": true, - "requires": { - "@sentry/types": "7.44.0", - "@sentry/utils": "7.44.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/node": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.44.0.tgz", - "integrity": "sha512-PS1amdIcc7AM7OJ5ue17ZI/3yivBI4EcluEmCP8Jlirx9WH9AQKqv+5ijZ/2wNKwgMrDWm/pmtzUzxl54vKR3w==", - "dev": true, - "requires": { - "@sentry/core": "7.44.0", - "@sentry/types": "7.44.0", - "@sentry/utils": "7.44.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/types": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.44.0.tgz", - "integrity": "sha512-BkyZNgadBUJzd1cyp23jPPQ+Pak2RUeEUmFX61QIeS35TAjJRBFsrzdhry2oIfiBZhhCKRTmvEX1fBVOL1gQ9w==", - "dev": true - }, - "@sentry/utils": { - "version": "7.44.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.44.0.tgz", - "integrity": "sha512-OcLm7QRtsLfCtB/IEd/8jv2ZDmQlfIkY26P/vTBgpHaf52k+s+EC38I8q6yUAFskKcJbGE8y0xhkwg28ITiEwA==", - "dev": true, - "requires": { - "@sentry/types": "7.44.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sindresorhus/is": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", - "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@types/eslint": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "@types/fs-extra": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", - "integrity": "sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==", - "requires": { - "@types/node": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "14.18.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.38.tgz", - "integrity": "sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew==" - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "@types/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", - "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/type-utils": "5.55.0", - "@typescript-eslint/utils": "5.55.0", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/parser": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", - "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", - "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", - "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.55.0", - "@typescript-eslint/utils": "5.55.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", - "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", - "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/visitor-keys": "5.55.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", - "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.55.0", - "@typescript-eslint/types": "5.55.0", - "@typescript-eslint/typescript-estree": "5.55.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", - "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.55.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "@vue/compiler-sfc": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", - "requires": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", - "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "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.36", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2 || ^2.0.0", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "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 - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "all-contributors-cli": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.24.0.tgz", - "integrity": "sha512-7oSKr2PnqxsOotuSwciltcFTS1eVRdjR0cn99hbElfff7gRQBShVhsf/XBprY41sLcgqTk0l0MKgKv6QNgZdMg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6", - "async": "^3.1.0", - "chalk": "^4.0.0", - "didyoumean": "^1.2.1", - "inquirer": "^7.3.3", - "json-fixer": "^1.6.8", - "lodash": "^4.11.2", - "node-fetch": "^2.6.0", - "pify": "^5.0.0", - "yargs": "^15.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "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" - } - } - } - }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true - }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true - }, - "async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" - }, - "async-parallel": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/async-parallel/-/async-parallel-1.2.3.tgz", - "integrity": "sha512-FWKFY4Gk8lNobUdjTY7rOjk30yfCdzQ1nbNX/dWV94RaAlBa0clGYGqXORYjdYRaylq+HDyIDzq6smVu2L0P1g==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "batching-toposort": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/batching-toposort/-/batching-toposort-1.2.0.tgz", - "integrity": "sha512-HDf0OOv00dqYGm+M5tJ121RTzX0sK9fxzBMKXYsuQrY0pKSOJjc5qa0DUtzvCGkgIVf1YON2G1e/MHEdHXVaRQ==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true - }, - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "requires": { - "big-integer": "1.6.x" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "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" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001491", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", - "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "chrome-webstore-upload": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/chrome-webstore-upload/-/chrome-webstore-upload-0.4.4.tgz", - "integrity": "sha512-2afVQYCVfLAwYPPuCqKLivDl/CZcaRbmxHOq8B6oG1CbOPWncKl7yJR0G9LOu2wPfRprIEv3QGVQw3qRxuiBEw==", - "dev": true, - "requires": { - "got": "11.5.2" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "dev": true, - "requires": { - "bluebird": "^3.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true - }, - "copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "requires": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, - "cordova-plugin-background-mode": { - "version": "git+ssh://git@github.com/brunochikuji/cordova-plugin-background-mode.git#5df0632fdd40d4e1f35fff3a632202824b70929d", - "from": "cordova-plugin-background-mode@https://github.com/brunochikuji/cordova-plugin-background-mode#master" - }, - "cordova-plugin-device": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.1.0.tgz", - "integrity": "sha512-FU0Lw1jZpuKOgG4v80LrfMAOIMCGfAVPumn7AwaX9S1iU/X3OPZUyoKUgP09q4bxL35IeNPkqNWVKYduAXZ1sg==" - }, - "cordova-plugin-foreground-service": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cordova-plugin-foreground-service/-/cordova-plugin-foreground-service-1.1.3.tgz", - "integrity": "sha512-/C2Z8w9JIfAaLeXP290msQP9jcHR+CAJYbp6/x+mS21VtvS2Ug0upKsgjEzzSzRnt08Mr8kuwCV7juUd6eCWcw==" - }, - "cordova-plugin-inappbrowser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-5.0.0.tgz", - "integrity": "sha512-MqnpmUQ/iy6hxtIGDdlIhy8aNi1pNanLATpbnkk7uCqW9YQ4rH/dGK9zESbZ50pUi2A2D2QMjBXNV175TJK5OQ==" - }, - "core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==" - }, - "core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crx3": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/crx3/-/crx3-1.1.3.tgz", - "integrity": "sha512-E4c3y/2ak83wAGN4h9Q8j3A2ii4bpRVf2vxinYYy+wJs8pyscMfEnKGzhgngZcRfOhUMr7/sxzy+lTZmQ/4KpQ==", - "dev": true, - "requires": { - "mri": "^1.1.6", - "pbf": "^3.2.1", - "yazl": "^2.5.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decache": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.1.tgz", - "integrity": "sha512-ohApBM8u9ygepJCjgBrEZSSxPjc0T/PJkD+uNyxXPkqudyUpdXpwJYp0VISm2WrPVzASU6DZyIi6BWdyw7uJ2Q==", - "dev": true, - "requires": { - "callsite": "^1.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "dev": true - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-to-chromium": { - "version": "1.4.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==", - "dev": true - }, - "elementtree": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", - "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", - "requires": { - "sax": "1.1.4" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "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 - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-import-resolver-webpack": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.2.tgz", - "integrity": "sha512-7Jnm4YAoNNkvqPaZkKdIHsKGmv8/uNnYC5QsXkiSodvX4XEEfH2AKOna98FK52fCDXm3q4HzuX+7pRMKkJ64EQ==", - "dev": true, - "requires": { - "array-find": "^1.0.0", - "debug": "^2.6.9", - "enhanced-resolve": "^0.9.1", - "find-root": "^1.1.0", - "has": "^1.0.3", - "interpret": "^1.2.0", - "lodash": "^4.17.15", - "node-libs-browser": "^1.0.0 || ^2.0.0", - "resolve": "^1.13.1", - "semver": "^5.7.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - } - } - }, - "eslint-plugin-mocha": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-6.3.0.tgz", - "integrity": "sha512-Cd2roo8caAyG21oKaaNTj7cqeYRWW1I2B5SfpKRp0Ip1gkfwoR1Ow0IGlPWnNjzywdF4n+kHL8/9vM6zCJUxdg==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "ramda": "^0.27.0" - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - } - }, - "eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true - }, - "eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true, - "requires": {} - }, - "eslint-plugin-vue": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", - "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "requires": { - "type": "^2.7.2" - }, - "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fast-xml-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", - "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", - "requires": { - "strnum": "^1.0.5" - } - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.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==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gist-client": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/gist-client/-/gist-client-1.1.1.tgz", - "integrity": "sha512-a0DUWDcjsYy6tVOp2+xK/1e7NRb0t7jqdxTcW8wIv1K3xxL27olwaGLsNQdYNAGw72B5rTFQaOPew1ipgFYxWw==", - "dev": true, - "requires": { - "co": "^4.6.0", - "lodash": "^4.17.4", - "request": "^2.83.0", - "request-promise-native": "^1.0.5", - "snyk": "^1.231.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "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" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, - "requires": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.5.2.tgz", - "integrity": "sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==", - "dev": true, - "requires": { - "@sindresorhus/is": "^3.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.0", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } - }, - "gulp-rename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", - "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", - "dev": true - }, - "gulp-tap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gulp-tap/-/gulp-tap-1.0.1.tgz", - "integrity": "sha512-VpCARRSyr+WP16JGnoIg98/AcmyQjOwCpQgYoE35CWTdEMSbpgtAIK2fndqv2yY7aXstW27v3ZNBs0Ltb0Zkbg==", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "gulp-zip": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-5.1.0.tgz", - "integrity": "sha512-XZr/y91IliK/SpR74g3TkZejGkGEmK7CSDjSghT1jXshgO+dFvpLIz9w9fpuwkew6i7k4F+G24TubNgq1ISzEw==", - "dev": true, - "requires": { - "get-stream": "^5.2.0", - "plugin-error": "^1.0.1", - "through2": "^3.0.1", - "vinyl": "^2.1.0", - "yazl": "^2.5.1" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "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", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "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 - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "humanize-duration": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.28.0.tgz", - "integrity": "sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true - }, - "immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "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" - } - } - } - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "intl-messageformat": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", - "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", - "requires": { - "@formatjs/ecma402-abstract": "1.11.4", - "@formatjs/fast-memoize": "1.2.1", - "@formatjs/icu-messageformat-parser": "2.1.0", - "tslib": "^2.1.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "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.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-regex": { - "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "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.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.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": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-fixer": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.15.tgz", - "integrity": "sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.18.9", - "chalk": "^4.1.2", - "pegjs": "^0.10.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "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" - } - } - } - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" - }, - "klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "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", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "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" - } - } - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "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" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "requires": { - "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", - "dev": true - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "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 - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==" - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "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 - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "native-run": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.7.2.tgz", - "integrity": "sha512-2aahC8iXIO8BcvEukVMrYwL5sXurkuIGyQgfSGBto832W6ejV+cB5Ww+2/CRxmyozhbxARJ2OMpEGPV8sTqsrQ==", - "requires": { - "@ionic/utils-fs": "^3.1.6", - "@ionic/utils-terminal": "^2.3.3", - "bplist-parser": "^0.3.2", - "debug": "^4.3.4", - "elementtree": "^0.1.7", - "ini": "^3.0.1", - "plist": "^3.0.6", - "split2": "^4.1.0", - "through2": "^4.0.2", - "tslib": "^2.4.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } - } - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, - "ow": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz", - "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA==" - }, - "ow-lite": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz", - "integrity": "sha512-5PorMvUhPJACq2HOX54idr9TkRKPhzXIEu7DlM1iiVQoKC4rR8FAJND3bkOOiyGOgq6Ve7vh32o8Pfimr7tM4Q==" - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-queue": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-5.0.0.tgz", - "integrity": "sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==", - "requires": { - "eventemitter3": "^3.1.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, - "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 - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true - }, - "path-scurry": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", - "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", - "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" - }, - "minipass": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.1.tgz", - "integrity": "sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw==" - } - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dev": true, - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pegjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "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" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.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" - } - } - } - }, - "plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true - }, - "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "dependencies": { - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.5.tgz", - "integrity": "sha512-3gzuxrHbKUePRBB4ZeU08VNkUcqEHaUaouNt0m7LGP4Hti/NuB07C7PPTM/LkWqXoJYJn2McEo5+kxPNrtQkLQ==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "dependencies": { - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - } - } - }, - "protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", - "dev": true - }, - "random": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/random/-/random-2.2.0.tgz", - "integrity": "sha512-4HBR4Xye4jJ41QBi6RfIaO1yKQpxVUZafQtdE6NvvjzirNlwWgsk3tkGLTbQtWUarF4ofZsUVEmWqB1TDQlkwA==", - "requires": { - "babel-runtime": "^6.26.0", - "ow": "^0.4.0", - "ow-lite": "^0.0.2", - "seedrandom": "^3.0.5" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dev": true, - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "dev": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - } - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "requires": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - } - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass": { - "version": "1.59.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.59.3.tgz", - "integrity": "sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==" - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" - }, - "selenium-webdriver": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.11.1.tgz", - "integrity": "sha512-bvrnr3UZlLScErOmn8gV6cqc+1PYDHn0575CxUR2U14fMWt7OKxSy0lAThhZq4sq4d1HqP8ebz11oiHSlAQ2WA==", - "dev": true, - "requires": { - "jszip": "^3.10.1", - "tmp": "^0.2.1", - "ws": ">=8.13.0" - }, - "dependencies": { - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.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 - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "send-intent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/send-intent/-/send-intent-5.0.0.tgz", - "integrity": "sha512-d3moLwVdQlv/lWPR8MYPUv3HufOrfcbyAvELla8DnJZwzLD9vYWF4UlgsEp/l5ADOyNW0KuvRVIE2cuCZqZLxA==", - "requires": { - "@capacitor/cli": "^5.0.0", - "@capacitor/core": "^5.0.0" - }, - "dependencies": { - "@capacitor/cli": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-5.0.3.tgz", - "integrity": "sha512-VPmd/uKSCYqeLgNTrG2wVaMoCX8lo2UuXFVwP54W4nXPyG6LsDuOKYytkBItTAJrI3KEXdZWyRFbXjIY48/m6g==", - "requires": { - "@ionic/cli-framework-output": "^2.2.5", - "@ionic/utils-fs": "^3.1.6", - "@ionic/utils-subprocess": "^2.1.11", - "@ionic/utils-terminal": "^2.3.3", - "commander": "^9.3.0", - "debug": "^4.3.4", - "env-paths": "^2.2.0", - "kleur": "^4.1.4", - "native-run": "^1.7.2", - "open": "^8.4.0", - "plist": "^3.0.5", - "prompts": "^2.4.2", - "rimraf": "^4.4.1", - "semver": "^7.3.7", - "tar": "^6.1.11", - "tslib": "^2.4.0", - "xml2js": "^0.5.0" - } - }, - "@capacitor/core": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.0.3.tgz", - "integrity": "sha512-VxzSoFvoiGDmvlKQMbg7ZZh+w3Z223630kZINDOsbs7UZr5gZws7+m26Y9Oc8n2miI737hE6qOf2VU4H/8Tytg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "requires": { - "glob": "^9.2.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "requires": { - "type-fest": "^0.13.1" - }, - "dependencies": { - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "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" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "snyk": { - "version": "1.1122.0", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1122.0.tgz", - "integrity": "sha512-/hpzJAHZskxt0YPgjR7EsZPDOXHCbA14aHyv5vmJTfZQndTAkWhXBw1Nx/PGHMNsCa0BXrL4ruSVd6/bfaxpdg==", - "dev": true, - "requires": { - "@sentry/node": "^7.36.0", - "global-agent": "^3.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "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 - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", - "dev": true - }, - "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "terser": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", - "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "throttle-debounce": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", - "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" - }, - "ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "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 - }, - "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "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 - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true - } - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - } - } - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - } - } - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "vue": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", - "requires": { - "@vue/compiler-sfc": "2.7.14", - "csstype": "^3.1.0" - } - }, - "vue-eslint-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", - "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", - "dev": true - }, - "vue-loader": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz", - "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==", - "dev": true, - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "vue-router": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", - "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==" - }, - "vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "dev": true, - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", - "dev": true - }, - "vuelidate": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==" - }, - "vuetify": { - "version": "2.6.15", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.15.tgz", - "integrity": "sha512-2a6sBSHzivXgi9pZMyHuzTgMyInCkj/BrVwTnoCa1Y/Dnfwj7lkWzgKQDScbGVK0q4vJ+YHoBBrLOmnhz1R0YA==", - "requires": {} - }, - "vuetify-loader": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/vuetify-loader/-/vuetify-loader-1.9.2.tgz", - "integrity": "sha512-8PP2w7aAs/rjA+Izec6qY7sHVb75MNrGQrDOTZJ5IEnvl+NiFhVpU2iWdRDZ3eMS842cWxSWStvkr+KJJKy+Iw==", - "dev": true, - "requires": { - "acorn": "^8.4.1", - "acorn-walk": "^8.2.0", - "decache": "^4.6.0", - "file-loader": "^6.2.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - } - } - }, - "vuex": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", - "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", - "requires": {} - }, - "vuex-router-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz", - "integrity": "sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w==", - "requires": {} - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "webpack": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz", - "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} - }, - "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } - } - }, - "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - } - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "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" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.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" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } } } diff --git a/package.json b/package.json index 51b2414d3a..4accc106cf 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@babel/core": "7.x", "@babel/preset-env": "7.x", - "@capacitor/cli": "4.x", + "@capacitor/cli": "^5.0.0", "@mdi/font": "^6.6.96", "@types/node": "^14.14.37", "@typescript-eslint/eslint-plugin": "^5.2.0", @@ -72,16 +72,16 @@ "dependencies": { "@byteowls/capacitor-oauth2": "4.x", "@capacitor-community/http": "^1.4.1", - "@capacitor/android": "4.x", - "@capacitor/app": "4.x", - "@capacitor/core": "4.x", - "@capacitor/device": "4.x", - "@capacitor/filesystem": "^4.1.4", - "@capacitor/ios": "4.x", - "@capacitor/network": "4.x", - "@capacitor/preferences": "4.x", - "@capacitor/share": "4.x", - "@capacitor/splash-screen": "4.x", + "@capacitor/android": "^5.0.0", + "@capacitor/app": "^5.0.0", + "@capacitor/core": "^5.0.0", + "@capacitor/device": "^5.0.0", + "@capacitor/filesystem": "^5.0.0", + "@capacitor/ios": "^5.0.0", + "@capacitor/network": "^5.0.0", + "@capacitor/preferences": "^5.0.0", + "@capacitor/share": "^5.0.0", + "@capacitor/splash-screen": "^5.0.0", "async-lock": "^1.2.8", "async-parallel": "^1.2.3", "batching-toposort": "^1.2.0", @@ -124,4 +124,4 @@ "not KaiOS >= 0", "not Samsung >= 0" ] -} +} \ No newline at end of file From c48c4306e100c4d1541233ffed14acc8364907a2 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 13:08:42 +0100 Subject: [PATCH 121/149] fix(NativeApp): Reset account syncing state on app start Signed-off-by: Marcel Klehr --- src/ui/NativeApp.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/NativeApp.vue b/src/ui/NativeApp.vue index aae476548b..dc8aa62311 100644 --- a/src/ui/NativeApp.vue +++ b/src/ui/NativeApp.vue @@ -32,6 +32,7 @@ export default { this.$store.dispatch(actions.LOAD_ACCOUNTS) }, 5000) const controller = await Controller.getSingleton() + controller.onLoad() controller.onStatusChange(() => { this.$store.dispatch(actions.LOAD_ACCOUNTS) }) From bfaf67ceb3c844df70bc461a6bf2b725b87bc3ea Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 13:27:26 +0100 Subject: [PATCH 122/149] fix(NewAccount): Let user know they can close the tab afterward Signed-off-by: Marcel Klehr --- _locales/en/messages.json | 3 +++ src/ui/views/NewAccount.vue | 1 + 2 files changed, 4 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 28b26d7127..d25026534c 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -630,6 +630,9 @@ "LabelAccountcreated": { "message": "Account created" }, + "DescriptionAccountcreated": { + "message": "Your account has been created. You can close this tab now." + }, "DescriptionNonhttps": { "message": "You have entered a server that uses an insecure protocol. It is recommended to only use servers with support for HTTPS." }, diff --git a/src/ui/views/NewAccount.vue b/src/ui/views/NewAccount.vue index 93d0219160..304d344532 100644 --- a/src/ui/views/NewAccount.vue +++ b/src/ui/views/NewAccount.vue @@ -276,6 +276,7 @@

{{ t('LabelAccountcreated') }} mdi-check
+
{{t('DescriptionAccountcreated')}}
From 0bac8e613cd9eea929f895362fe05bbc525f8f75 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 13:30:33 +0100 Subject: [PATCH 123/149] fix(messages): "Accounts" are now "profiles" Signed-off-by: Marcel Klehr --- _locales/en/messages.json | 48 +++++++++++++++++++-------------------- src/errors/Error.ts | 4 ++-- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index d25026534c..fecc7807ee 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -198,10 +198,10 @@ "message": "Set an existing folder to sync" }, "LabelRemoveaccount": { - "message": "Remove account" + "message": "Remove profile" }, "DescriptionRemoveaccount": { - "message": "Delete this account (this will not remove your bookmarks)" + "message": "Delete this profile (this will not remove your bookmarks)" }, "LabelSyncfromscratch": { "message": "Trigger sync from scratch" @@ -261,7 +261,7 @@ "message": "Nextcloud Bookmarks (legacy)" }, "DescriptionAdapternextcloud": { - "message": "The legacy option is compatible with at least version v0.11 of the Bookmarks app. It will emulate folders using tags containing the folder path. It is not recommended to use this for new accounts." + "message": "The legacy option is compatible with at least version v0.11 of the Bookmarks app. It will emulate folders using tags containing the folder path. It is not recommended to use this for new profiles." }, "LabelAdapterwebdav": { "message": "WebDAV share" @@ -270,7 +270,7 @@ "message": "The WebDAV option syncs your bookmarks by storing them in a file in the provided WebDAV share. There is no accompanying web UI for this option and you can use it with any WebDAV-compatible server. It can sync http, ftp, data, file and javascript bookmarks." }, "LabelAddaccount": { - "message": "Add account" + "message": "Add profile" }, "LabelOpenintab": { "message": "Open in tab" @@ -319,7 +319,7 @@ }, "LabelOptionsscreen": { "message": "{0} options", - "description": "Title of the options screen. The placeholder holds the account type." + "description": "Title of the options screen. The placeholder holds the profile type." }, "LabelPaypal": { "message": "Paypal" @@ -346,7 +346,7 @@ "message": "Make a regular donation via GitHub sponsors to support the project" }, "LegacyAdapterDeprecation": { - "message": "This legacy account type is deprecated and will soon be removed. Please switch to the new nextcloud sync method. Improved performance and accuracy await you." + "message": "This legacy profile type is deprecated and will soon be removed. Please switch to the new nextcloud sync method. Improved performance and accuracy await you." }, "LabelUpdated": { "message": "Floccus was updated" @@ -370,16 +370,16 @@ "message": "Dangerous actions" }, "LabelAccountDeleted": { - "message": "Account deleted" + "message": "Profile deleted" }, "DescriptionAccountDeleted": { - "message": "This account was deleted" + "message": "This profile was deleted" }, "LabelNoAccount": { - "message": "No accounts here" + "message": "No profiles here" }, "DescriptionNoAccount": { - "message": "Create a new account to sync your bookmarks or import accounts from a different device or browser." + "message": "Create a new profile to sync your bookmarks or import profiles from a different device or browser." }, "LabelLoginFlowStart": { "message": "Sign in with Nextcloud" @@ -391,34 +391,34 @@ "message": "Nextcloud login failed" }, "LabelNewAccount": { - "message": "New Account" + "message": "New Profile" }, "LabelNestedSync": { - "message": "Nested accounts" + "message": "Nested profiles" }, "DescriptionNestedSync": { - "message": "You can nest accounts so that a parent folder belongs to account A and a sub folder to account A and B. Do you want to allow other accounts to sync this account's folder as well?" + "message": "You can nest profiles so that a parent folder belongs to profile A and a sub folder to profile A and B. Do you want to allow other profiles to sync this profile's folder as well?" }, "LabelNestedSyncNo": { - "message": "No, ignore this account's folder in other accounts" + "message": "No, ignore this profile's folder in other profiles" }, "LabelNestedSyncYes": { - "message": "Yes, include this account's folder in other accounts" + "message": "Yes, include this profile's folder in other profiles" }, "LabelImportExport": { - "message": "Import/Export Accounts" + "message": "Import/Export Profiles" }, "LabelExport": { - "message": "Export accounts" + "message": "Export profiles" }, "LabelImport": { - "message": "Import accounts" + "message": "Import profiles" }, "DescriptionExport": { - "message": "Select accounts below that you would like to export to a file, so you can easily re-create the same accounts on a different device or browser." + "message": "Select profiles below that you would like to export to a file, so you can easily re-create the same profiles on a different device or browser." }, "DescriptionImport": { - "message": "Import a file with exported accounts here to re-create accounts exported on a different device or browser. Please make sure to set the correct sync folders again after importing." + "message": "Import a file with exported profiles here to re-create profiles exported on a different device or browser. Please make sure to set the correct sync folders again after importing." }, "LabelFolderNotFound": { "message": "Folder not found" @@ -475,7 +475,7 @@ "message": "Disabled. Allow the removal of more than 50% of my local bookmarks without confirming with me." }, "StatusFailsafeoff": { - "message": "Failsafe disabled. You are at risk for unintended data loss. It is recommended to enable the failsafe in the account settings." + "message": "Failsafe disabled. You are at risk for unintended data loss. It is recommended to enable the failsafe in the profile settings." }, "LabelAdaptergoogledrive": { "message": "Google Drive" @@ -628,10 +628,10 @@ "message": "How do you want syncing to work?" }, "LabelAccountcreated": { - "message": "Account created" + "message": "Profile created" }, "DescriptionAccountcreated": { - "message": "Your account has been created. You can close this tab now." + "message": "Your profile has been created. You can close this tab now." }, "DescriptionNonhttps": { "message": "You have entered a server that uses an insecure protocol. It is recommended to only use servers with support for HTTPS." @@ -658,7 +658,7 @@ "message": "Export Bookmarks" }, "DescriptionExportBookmarks" : { - "message": "You can export all bookmarks in this account as a HTML file compatible with all major browsers." + "message": "You can export all bookmarks in this profile as a HTML file compatible with all major browsers." }, "LabelShareitem": { "message": "Share" diff --git a/src/errors/Error.ts b/src/errors/Error.ts index fb682aaaea..9c67899443 100644 --- a/src/errors/Error.ts +++ b/src/errors/Error.ts @@ -131,7 +131,7 @@ export class RequestTimeoutError extends FloccusError { export class NetworkError extends FloccusError { constructor() { - super('E017: Network error: Check your network connection and your account details') + super('E017: Network error: Check your network connection and your profile details') this.code = 17 Object.setPrototypeOf(this, NetworkError.prototype) } @@ -241,7 +241,7 @@ export class FailsafeError extends FloccusError { public percent: number constructor(percent:number) { - super(`E029: Failsafe: The current sync run would delete ${percent}% of your bookmarks. Refusing to execute. Disable this failsafe in the account settings if you want to proceed anyway.`) + super(`E029: Failsafe: The current sync run would delete ${percent}% of your bookmarks. Refusing to execute. Disable this failsafe in the profile settings if you want to proceed anyway.`) this.code = 29 this.percent = percent Object.setPrototypeOf(this, FailsafeError.prototype) From 0f99ab7bc228c241d37175d0f26d668c0925677b Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 13:49:20 +0100 Subject: [PATCH 124/149] Update ci matrix Signed-off-by: Marcel Klehr --- .github/workflows/tests.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cddaad36e6..bd58e5a9ee 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,8 +38,8 @@ jobs: matrix: node-version: [14.x] npm-version: [7.x] - server-version: ['25'] - app-version: ['stable12'] + server-version: ['27'] + app-version: ['stable'] floccus-adapter: - fake - nextcloud-bookmarks @@ -57,36 +57,29 @@ jobs: - firefox - chrome include: - - app-version: stable - server-version: 26 - floccus-adapter: nextcloud-bookmarks - test-name: test - browsers: firefox - node-version: 14.x - npm-version: 7.x - app-version: master - server-version: 26 + server-version: 27 floccus-adapter: nextcloud-bookmarks test-name: test browsers: firefox node-version: 14.x npm-version: 7.x - app-version: master - server-version: 26 + server-version: 27 floccus-adapter: nextcloud-bookmarks test-name: benchmark root browsers: firefox node-version: 14.x npm-version: 7.x - app-version: master - server-version: 26 + server-version: 27 floccus-adapter: nextcloud-bookmarks-old test-name: benchmark root browsers: firefox node-version: 14.x npm-version: 7.x - app-version: stable - server-version: 26 + server-version: 27 floccus-adapter: fake-noCache test-name: test browsers: firefox From c97cf5dc59be2cba97129315fe349c46dd0a1a5c Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 14:39:07 +0100 Subject: [PATCH 125/149] fix(ci): Update node.js to v20 Signed-off-by: Marcel Klehr --- .github/workflows/build.yml | 4 ++-- .github/workflows/tests.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f77ecea12..b545d2e686 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,8 +13,8 @@ jobs: strategy: matrix: - node-versions: [14.x] - npm-version: [7.x] + node-versions: [20.x] + npm-version: [10.x] name: node${{ matrix.node-versions }} steps: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bd58e5a9ee..4fd033ac51 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,8 +36,8 @@ jobs: # do not stop on another job's failure fail-fast: false matrix: - node-version: [14.x] - npm-version: [7.x] + node-versions: [20.x] + npm-version: [10.x] server-version: ['27'] app-version: ['stable'] floccus-adapter: From 4bfcdb4e1fc10a9aa230290c713a1ac28faf2a91 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 14:46:00 +0100 Subject: [PATCH 126/149] fix(ci): Update java to v17 Signed-off-by: Marcel Klehr --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b545d2e686..fabee57d25 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,11 @@ jobs: - name: Set up npm ${{ matrix.npm-version }} run: npm i -g npm@"${{ matrix.npm-version }}" + - uses: actions/setup-java@v4 + with: + distribution: 'oracle' + java-version: '17' + - name: Cache node modules uses: actions/cache@v1 env: From a327e76063ba7df39de43a2438631e83643643e4 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 15:06:20 +0100 Subject: [PATCH 127/149] fix(ci): Fix node version Signed-off-by: Marcel Klehr --- .github/workflows/build.yml | 6 +++--- .github/workflows/tests.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fabee57d25..992e6060b5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,17 +13,17 @@ jobs: strategy: matrix: - node-versions: [20.x] + node-version: [20.x] npm-version: [10.x] name: node${{ matrix.node-versions }} steps: - uses: actions/checkout@v2 - - name: Set up node ${{ matrix.node-versions }} + - name: Set up node ${{ matrix.node-version }} uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node-versions }} + node-version: ${{ matrix.node-version }} - name: Set up npm ${{ matrix.npm-version }} run: npm i -g npm@"${{ matrix.npm-version }}" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4fd033ac51..494425689e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,7 +36,7 @@ jobs: # do not stop on another job's failure fail-fast: false matrix: - node-versions: [20.x] + node-version: [20.x] npm-version: [10.x] server-version: ['27'] app-version: ['stable'] From 7d984db30267fad621d943a77b80e21202c11476 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 15:28:05 +0100 Subject: [PATCH 128/149] fix(BrowserController): Set unlocked to true by default to avoid showing the unlock prompt in error due to a race condition Signed-off-by: Marcel Klehr --- src/lib/browser/BrowserController.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js index f6235f8bbc..d63af60bc9 100644 --- a/src/lib/browser/BrowserController.js +++ b/src/lib/browser/BrowserController.js @@ -49,6 +49,7 @@ export default class BrowserController { this.alarms = new AlarmManager(this) + this.unlocked = true this.setEnabled(true) Controller.singleton = this From 6b57da9665cdaf46a5b1e010394427296a094af1 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 15:38:03 +0100 Subject: [PATCH 129/149] feat(private tabs): Avoid syncing private tabs fixes #1425 Signed-off-by: Marcel Klehr --- src/lib/LocalTabs.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/LocalTabs.ts b/src/lib/LocalTabs.ts index b9c461ca6f..f9f545021a 100644 --- a/src/lib/LocalTabs.ts +++ b/src/lib/LocalTabs.ts @@ -16,9 +16,10 @@ export default class LocalTabs implements IResource { } async getBookmarksTree():Promise { - const tabs = await browser.tabs.query({ + let tabs = await browser.tabs.query({ windowType: 'normal' // no devtools or panels or popups }) + tabs = tabs.filter(tab => !tab.incognito) return new Folder({ title: '', From abc58be4b88c58685cb338fa8a019f6247713b4d Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 15:39:11 +0100 Subject: [PATCH 130/149] fix(LocalTabs): Do activate all tabs upon creating them Signed-off-by: Marcel Klehr --- src/lib/LocalTabs.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/LocalTabs.ts b/src/lib/LocalTabs.ts index f9f545021a..e59ec02fad 100644 --- a/src/lib/LocalTabs.ts +++ b/src/lib/LocalTabs.ts @@ -57,7 +57,10 @@ export default class LocalTabs implements IResource { windowId: typeof bookmark.parentId === 'string' ? parseInt(bookmark.parentId) : bookmark.parentId, url: bookmark.url, // Only firefox allows discarded prop - ...(typeof browser.BookmarkTreeNodeType !== 'undefined' && { discarded: true }) + ...(typeof browser.BookmarkTreeNodeType !== 'undefined' && { discarded: true }), + active: false, + // Only chrome-like browsers allow select prop + ...(typeof browser.BookmarkTreeNodeType === 'undefined' && { selected: false }), }) ) return node.id From 65d1a00ae2736f1a4a08ec8ed1809889b51013c5 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 16:10:47 +0100 Subject: [PATCH 131/149] fix(LocalTabs): Don't use selected prop to create tab Signed-off-by: Marcel Klehr --- src/lib/LocalTabs.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/LocalTabs.ts b/src/lib/LocalTabs.ts index e59ec02fad..4a3b8a9de3 100644 --- a/src/lib/LocalTabs.ts +++ b/src/lib/LocalTabs.ts @@ -59,8 +59,6 @@ export default class LocalTabs implements IResource { // Only firefox allows discarded prop ...(typeof browser.BookmarkTreeNodeType !== 'undefined' && { discarded: true }), active: false, - // Only chrome-like browsers allow select prop - ...(typeof browser.BookmarkTreeNodeType === 'undefined' && { selected: false }), }) ) return node.id From 512bef672d505d99ed73a3749100f50f442d7805 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 16:10:47 +0100 Subject: [PATCH 132/149] enh(ci): Use cascading jobs to save time Signed-off-by: Marcel Klehr --- .github/workflows/tests.yml | 98 +++++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 30 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 494425689e..c42a78c81b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,9 +22,58 @@ concurrency: cancel-in-progress: true jobs: - php: + init: runs-on: ubuntu-latest + strategy: + # do not stop on another job's failure + fail-fast: false + matrix: + node-version: [ 20.x ] + npm-version: [ 10.x ] + + steps: + - name: Checkout floccus + uses: actions/checkout@v2 + with: + path: floccus + + - name: Set up node ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Set up npm ${{ matrix.npm-version }} + run: npm i -g npm@"${{ matrix.npm-version }}" + + - name: Cache node modules + uses: actions/cache@v1 + env: + cache-name: cache-node-modules + with: + path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Install dependencies & build + working-directory: floccus + run: | + npm ci + npm run build-release --if-present + + - name: Save context + uses: buildjet/cache/save@v3 + with: + key: selenium-context-${{ github.run_id }} + path: ./ + + selenium: + runs-on: ubuntu-latest + needs: init + env: SELENIUM_HUB_HOST: hub TEST_HOST: nextcloud @@ -129,10 +178,13 @@ jobs: MYSQL_ROOT_PASSWORD: ${{env.MYSQL_PASSWORD}} steps: - - name: Checkout floccus - uses: actions/checkout@v2 + + - name: Restore context + uses: buildjet/cache/restore@v3 with: - path: floccus + fail-on-cache-miss: true + key: selenium-context-${{ github.run_id }} + path: ./ - name: Checkout bookmarks app uses: actions/checkout@v2 @@ -169,32 +221,6 @@ jobs: [ $NEXT_WAIT_TIME -lt 25 ] if: matrix.floccus-adapter != 'fake' - - name: Set up node ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Set up npm ${{ matrix.npm-version }} - run: npm i -g npm@"${{ matrix.npm-version }}" - - - name: Cache node modules - uses: actions/cache@v1 - env: - cache-name: cache-node-modules - with: - path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - - name: Install dependencies & build - working-directory: floccus - run: | - npm ci - npm run build-release --if-present - - name: Wait for Selenium run: | sudo apt install -y jq @@ -216,3 +242,15 @@ jobs: APP_VERSION: ${{ matrix.app-version }} run: | npm run test + + summary: + runs-on: ubuntu-latest + needs: [ init, selenium ] + + if: always() + + name: selenium-summary + + steps: + - name: Summary status + run: if ${{ needs.init.result != 'success' || ( needs.selenium.result != 'success' && needs.selenium.result != 'skipped' ) }}; then exit 1; fi From e1645957c7565a1293ab77e27431c48ccfa57a51 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 17:39:01 +0100 Subject: [PATCH 133/149] enh(ci/tests): Improve job name Signed-off-by: Marcel Klehr --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c42a78c81b..b4c9a56670 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -135,7 +135,7 @@ jobs: node-version: 14.x npm-version: 7.x - name: ${{matrix.floccus-adapter}}:${{ matrix.test-name}} nc@${{ matrix.server-version }} bm@${{ matrix.app-version }} ${{ matrix.browsers }} + name: ${{ matrix.browsers }} bm@${{ matrix.app-version }} ${{matrix.floccus-adapter}}:${{ matrix.test-name}} services: hub: From f96b3d2674bf786a59d9888ab2cd787cdf124b05 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 8 Dec 2023 08:52:16 +0100 Subject: [PATCH 134/149] [ios] fix(sharing) Fix share target --- ios/App/App.xcodeproj/project.pbxproj | 18 ++-- ios/App/App/App.entitlements | 10 ++ ios/App/App/AppDelegate.swift | 2 +- ios/App/App/Info.plist | 4 + ios/App/Floccus New Bookmark/Info.plist | 34 +++--- .../ShareViewController.swift | 35 +++--- ios/App/Podfile.lock | 100 ++++++++++++++++++ 7 files changed, 160 insertions(+), 43 deletions(-) create mode 100644 ios/App/App/App.entitlements create mode 100644 ios/App/Podfile.lock diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 86180fea78..852e1c9d36 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -33,7 +33,7 @@ /* Begin PBXCopyFilesBuildPhase section */ 1899960C29CCBA1B00ABC3E8 /* Embed Foundation Extensions */ = { isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; + buildActionMask = 12; dstPath = ""; dstSubfolderSpec = 13; files = ( @@ -382,10 +382,10 @@ MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.handmadeideas.floccus; + PRODUCT_BUNDLE_IDENTIFIER = "org.handmadeideas.floccus.new-bookmark"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "March 23 v3"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "March 23 New Bookmark v2"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -415,10 +415,10 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MARKETING_VERSION = 1.0; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.handmadeideas.floccus; + PRODUCT_BUNDLE_IDENTIFIER = "org.handmadeideas.floccus.new-bookmark"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "March 23 v3"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "March 23 New Bookmark v2"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -546,9 +546,11 @@ DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = BW96RCL7W9; INFOPLIST_FILE = App/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Floccus; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 4.17.1; + MARKETING_VERSION = 5.0.0; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = org.handmadeideas.floccus; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -573,9 +575,11 @@ DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = BW96RCL7W9; INFOPLIST_FILE = App/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Floccus; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 4.17.1; + MARKETING_VERSION = 5.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.handmadeideas.floccus; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/ios/App/App/App.entitlements b/ios/App/App/App.entitlements new file mode 100644 index 0000000000..dbddf38990 --- /dev/null +++ b/ios/App/App/App.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.org.handmadeideas.floccus + + + diff --git a/ios/App/App/AppDelegate.swift b/ios/App/App/AppDelegate.swift index 0f90c05569..df4df885ea 100644 --- a/ios/App/App/AppDelegate.swift +++ b/ios/App/App/AppDelegate.swift @@ -12,7 +12,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { return true } - + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { var success = true if CAPBridge.handleOpenUrl(url, options) { diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index 412e063553..7bfdde9759 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -52,6 +52,10 @@ CFBundleURLTypes + CFBundleTypeRole + Viewer + CFBundleURLName + CFBundleURLSchemes org.handmadeideas.floccus diff --git a/ios/App/Floccus New Bookmark/Info.plist b/ios/App/Floccus New Bookmark/Info.plist index 1fc787888f..ecc43f3f92 100644 --- a/ios/App/Floccus New Bookmark/Info.plist +++ b/ios/App/Floccus New Bookmark/Info.plist @@ -4,23 +4,6 @@ NSExtension - NSExtensionActivationRule - - NSExtensionActivationSupportsFileWithMaxCount - 5 - NSExtensionActivationSupportsImageWithMaxCount - 5 - NSExtensionActivationSupportsMovieWithMaxCount - 5 - NSExtensionActivationSupportsText - - NSExtensionActivationSupportsWebPageWithMaxCount - 1 - NSExtensionActivationSupportsWebURLWithMaxCount - 1 - NSExtensionActivationUsesStrictMatching - - NSExtensionAttributes NSExtensionActivationRule @@ -31,5 +14,22 @@ NSExtensionPointIdentifier com.apple.share-services + NSExtensionActivationRule + + NSExtensionActivationSupportsFileWithMaxCount + 5 + NSExtensionActivationSupportsImageWithMaxCount + 5 + NSExtensionActivationSupportsMovieWithMaxCount + 5 + NSExtensionActivationSupportsText + + NSExtensionActivationSupportsWebPageWithMaxCount + 1 + NSExtensionActivationSupportsWebURLWithMaxCount + 1 + NSExtensionActivationUsesStrictMatching + + diff --git a/ios/App/Floccus New Bookmark/ShareViewController.swift b/ios/App/Floccus New Bookmark/ShareViewController.swift index 0c90bf0315..45b4fe70d0 100644 --- a/ios/App/Floccus New Bookmark/ShareViewController.swift +++ b/ios/App/Floccus New Bookmark/ShareViewController.swift @@ -1,4 +1,3 @@ - // // ShareViewController.swift // mindlib @@ -51,20 +50,20 @@ class ShareViewController: UIViewController { let copyFileUrl = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.org.handmadeideas.floccus")! - .absoluteString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! + "/" + url! + .absoluteString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! + url! .lastPathComponent.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! try? Data(contentsOf: url!).write(to: URL(string: copyFileUrl)!) return copyFileUrl } - func saveScreenshot(_ image: UIImage) -> String { + func saveScreenshot(_ image: UIImage, _ index: Int) -> String { let fileManager = FileManager.default let copyFileUrl = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.org.handmadeideas.floccus")! .absoluteString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! - + "/screenshot.png" + + "/screenshot_\(index).png" do { try image.pngData()?.write(to: URL(string: copyFileUrl)!) return copyFileUrl @@ -118,23 +117,23 @@ class ShareViewController: UIViewController { return shareItem } - fileprivate func handleTypeImage(_ attachment: NSItemProvider) + fileprivate func handleTypeImage(_ attachment: NSItemProvider, _ index: Int) async throws -> ShareItem { let data = try await attachment.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil) let shareItem: ShareItem = ShareItem() - switch data { - case let image as UIImage: - shareItem.title = "screenshot" - shareItem.type = "image/png" - shareItem.url = self.saveScreenshot(image) - case let url as URL: - shareItem.title = url.lastPathComponent - shareItem.type = "image/" + url.pathExtension.lowercased() - shareItem.url = self.createSharedFileUrl(url) - default: - print("Unexpected image data:", type(of: data)) + switch data { + case let image as UIImage: + shareItem.title = "screenshot_\(index)" + shareItem.type = "image/png" + shareItem.url = self.saveScreenshot(image, index) + case let url as URL: + shareItem.title = url.lastPathComponent + shareItem.type = "image/" + url.pathExtension.lowercased() + shareItem.url = self.createSharedFileUrl(url) + default: + print("Unexpected image data:", type(of: data)) } return shareItem } @@ -150,7 +149,7 @@ class ShareViewController: UIViewController { of: ShareItem.self, body: { taskGroup in - for attachment in extensionItem.attachments! { + for (index, attachment) in extensionItem.attachments!.enumerated() { if attachment.hasItemConformingToTypeIdentifier(kUTTypeURL as String) { taskGroup.addTask { return try await self.handleTypeUrl(attachment) @@ -165,7 +164,7 @@ class ShareViewController: UIViewController { } } else if attachment.hasItemConformingToTypeIdentifier(kUTTypeImage as String) { taskGroup.addTask { - return try await self.handleTypeImage(attachment) + return try await self.handleTypeImage(attachment, index) } } } diff --git a/ios/App/Podfile.lock b/ios/App/Podfile.lock new file mode 100644 index 0000000000..25f39f6cf8 --- /dev/null +++ b/ios/App/Podfile.lock @@ -0,0 +1,100 @@ +PODS: + - ByteowlsCapacitorOauth2 (4.0.2): + - Capacitor + - OAuthSwift (= 2.2.0) + - Capacitor (5.5.1): + - CapacitorCordova + - CapacitorApp (5.0.6): + - Capacitor + - CapacitorCommunityHttp (1.4.1): + - Capacitor + - CapacitorCordova (5.5.1) + - CapacitorDevice (5.0.6): + - Capacitor + - CapacitorFilesystem (5.1.4): + - Capacitor + - CapacitorNetwork (5.0.6): + - Capacitor + - CapacitorPreferences (5.0.6): + - Capacitor + - CapacitorShare (5.0.6): + - Capacitor + - CapacitorSplashScreen (5.0.6): + - Capacitor + - CordovaPlugins (5.5.1): + - CapacitorCordova + - CordovaPluginsResources (0.0.105) + - OAuthSwift (2.2.0) + - SendIntent (0.0.1): + - Capacitor + +DEPENDENCIES: + - "ByteowlsCapacitorOauth2 (from `../../node_modules/@byteowls/capacitor-oauth2`)" + - "Capacitor (from `../../node_modules/@capacitor/ios`)" + - "CapacitorApp (from `../../node_modules/@capacitor/app`)" + - "CapacitorCommunityHttp (from `../../node_modules/@capacitor-community/http`)" + - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" + - "CapacitorDevice (from `../../node_modules/@capacitor/device`)" + - "CapacitorFilesystem (from `../../node_modules/@capacitor/filesystem`)" + - "CapacitorNetwork (from `../../node_modules/@capacitor/network`)" + - "CapacitorPreferences (from `../../node_modules/@capacitor/preferences`)" + - "CapacitorShare (from `../../node_modules/@capacitor/share`)" + - "CapacitorSplashScreen (from `../../node_modules/@capacitor/splash-screen`)" + - CordovaPlugins (from `../capacitor-cordova-ios-plugins`) + - CordovaPluginsResources (from `../capacitor-cordova-ios-plugins`) + - SendIntent (from `../../node_modules/send-intent`) + +SPEC REPOS: + trunk: + - OAuthSwift + +EXTERNAL SOURCES: + ByteowlsCapacitorOauth2: + :path: "../../node_modules/@byteowls/capacitor-oauth2" + Capacitor: + :path: "../../node_modules/@capacitor/ios" + CapacitorApp: + :path: "../../node_modules/@capacitor/app" + CapacitorCommunityHttp: + :path: "../../node_modules/@capacitor-community/http" + CapacitorCordova: + :path: "../../node_modules/@capacitor/ios" + CapacitorDevice: + :path: "../../node_modules/@capacitor/device" + CapacitorFilesystem: + :path: "../../node_modules/@capacitor/filesystem" + CapacitorNetwork: + :path: "../../node_modules/@capacitor/network" + CapacitorPreferences: + :path: "../../node_modules/@capacitor/preferences" + CapacitorShare: + :path: "../../node_modules/@capacitor/share" + CapacitorSplashScreen: + :path: "../../node_modules/@capacitor/splash-screen" + CordovaPlugins: + :path: "../capacitor-cordova-ios-plugins" + CordovaPluginsResources: + :path: "../capacitor-cordova-ios-plugins" + SendIntent: + :path: "../../node_modules/send-intent" + +SPEC CHECKSUMS: + ByteowlsCapacitorOauth2: 86f9a61aa413119226b12aabc5d03f185e9e1d28 + Capacitor: 9da0a2415e3b6098511f8b5ffdb578d91ee79f8f + CapacitorApp: 024e1b1bea5f883d79f6330d309bc441c88ad04a + CapacitorCommunityHttp: 7be90668527ef14ee10d08135b0e00fac9cf8247 + CapacitorCordova: e128cc7688c070ca0bfa439898a5f609da8dbcfe + CapacitorDevice: 2c968f98a1ec4d22357418c1521e7ddc46c675e6 + CapacitorFilesystem: af704badfbc69f6f8623d9ed313e5490e3723dcb + CapacitorNetwork: d80b3e79bef6ec37640ee2806c19771f07ff2d0c + CapacitorPreferences: f03954bcb0ff09c792909e46bff88e3183c16b10 + CapacitorShare: cd41743331cb71d217c029de54b681cbd91e0fcc + CapacitorSplashScreen: 5fa2ab5e46cf5cc530cf16a51c80c7a986579ccd + CordovaPlugins: ed4ad4b471e30dae7a9f57ee30aed67e71f69a3d + CordovaPluginsResources: 1b3992e05cb6336d2850cd77dd5e3054f2f76f96 + OAuthSwift: 75efbb5bd9a4b2b71a37bd7e986bf3f55ddd54c6 + SendIntent: 0a17b6984c4f27e9dfa56513267ba2c044a5a6c8 + +PODFILE CHECKSUM: 43c910b75a1189f19703b70db7029424c839ab8a + +COCOAPODS: 1.12.0 From 8a5496b497e25d7627e12a6944fe3e5615039582 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Thu, 7 Dec 2023 21:02:51 +0100 Subject: [PATCH 135/149] fix(AddBookmarkIntent): Close intent after saving bookmark Signed-off-by: Marcel Klehr --- src/ui/views/native/AddBookmarkIntent.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/views/native/AddBookmarkIntent.vue b/src/ui/views/native/AddBookmarkIntent.vue index 50843d6ad7..1f91692176 100644 --- a/src/ui/views/native/AddBookmarkIntent.vue +++ b/src/ui/views/native/AddBookmarkIntent.vue @@ -77,6 +77,7 @@ import { routes } from '../../NativeRouter' import { actions } from '../../store/native' import { Bookmark } from '../../../lib/Tree' import DialogChooseFolder from '../../components/native/DialogChooseFolder' +import { SendIntent } from 'send-intent' export default { name: 'AddBookmarkIntent', @@ -169,6 +170,7 @@ export default { accountId: this.id, bookmark: new Bookmark({ id: null, parentId: this.temporaryParent, title: this.title, url: this.url }) }) + SendIntent.finish(); await this.$router.push({name: routes.TREE, params: {accountId: this.id}}) }, onTriggerFolderChooser() { From 55b12d88fa243af591d36d86612d1894a5b43cf3 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 8 Dec 2023 09:12:43 +0100 Subject: [PATCH 136/149] fix(ImportExport): Trigger alert when import is done fixes #1409 Signed-off-by: Marcel Klehr --- _locales/en/messages.json | 3 +++ src/ui/views/ImportExport.vue | 1 + 2 files changed, 4 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index fecc7807ee..586e64592b 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -662,5 +662,8 @@ }, "LabelShareitem": { "message": "Share" + }, + "LabelImportsuccessful": { + "message": "Successfully imported profile(s)" } } diff --git a/src/ui/views/ImportExport.vue b/src/ui/views/ImportExport.vue index bee6455be5..15d73d6449 100644 --- a/src/ui/views/ImportExport.vue +++ b/src/ui/views/ImportExport.vue @@ -114,6 +114,7 @@ export default { try { const accounts = JSON.parse(await file.text()) await this.$store.dispatch('IMPORT_ACCOUNTS', accounts) + alert(this.t('LabelImportsuccessful')) } catch (e) { alert(e.message) } From 4e58e808c61d5a68923ddbedebdc675e3fbb12a4 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 8 Dec 2023 09:20:29 +0100 Subject: [PATCH 137/149] fix(OptionsWebdav): properly import OptionsPassphrase component Signed-off-by: Marcel Klehr --- src/ui/components/OptionsWebdav.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ui/components/OptionsWebdav.vue b/src/ui/components/OptionsWebdav.vue index 8c37dc5a55..e5824ca620 100644 --- a/src/ui/components/OptionsWebdav.vue +++ b/src/ui/components/OptionsWebdav.vue @@ -144,10 +144,11 @@ import OptionDownloadLogs from './OptionDownloadLogs' import OptionAllowNetwork from './native/OptionAllowNetwork' import OptionFileType from './OptionFileType' import OptionExportBookmarks from './OptionExportBookmarks.vue' +import OptionPassphrase from './OptionPassphrase.vue' export default { name: 'OptionsWebdav', - components: { OptionExportBookmarks, OptionAllowNetwork, OptionDownloadLogs, OptionAllowRedirects, OptionClientCert, OptionFailsafe, OptionSyncFolder, OptionDeleteAccount, OptionSyncStrategy, OptionResetCache, OptionSyncInterval, OptionNestedSync, OptionFileType }, + components: { OptionExportBookmarks, OptionAllowNetwork, OptionDownloadLogs, OptionAllowRedirects, OptionClientCert, OptionFailsafe, OptionSyncFolder, OptionDeleteAccount, OptionSyncStrategy, OptionResetCache, OptionSyncInterval, OptionNestedSync, OptionFileType, OptionPassphrase }, props: ['url', 'username', 'password','passphrase', 'includeCredentials', 'serverRoot', 'localRoot', 'allowNetwork', 'syncInterval', 'strategy', 'bookmark_file', 'nestedSync', 'failsafe', 'allowRedirects', 'bookmark_file_type', 'enabled'], data() { return { From 9e62b359e5ba64e0eb86d2bf206222d998670a1f Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 8 Dec 2023 09:31:11 +0100 Subject: [PATCH 138/149] fix(OptionsSyncFolder): show spinner while running getTree Signed-off-by: Marcel Klehr --- src/ui/components/OptionSyncFolder.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ui/components/OptionSyncFolder.vue b/src/ui/components/OptionSyncFolder.vue index 3c5a445b14..ae07b81e23 100644 --- a/src/ui/components/OptionSyncFolder.vue +++ b/src/ui/components/OptionSyncFolder.vue @@ -11,8 +11,8 @@