From 8e8a92f1b129951eaf4f862d393f05aa7b7304c0 Mon Sep 17 00:00:00 2001 From: the-superpirate Date: Fri, 30 Apr 2021 16:05:39 +0300 Subject: [PATCH] - feat(nexus): Refactoring Cognitron 2 internal commit(s) GitOrigin-RevId: bdefcb9130693f1bc6c56d23d44fc4e41ff4672d --- BUILD.bazel | 15 - README.md | 35 +- WORKSPACE | 2 - apps/README.md | 15 + apps/nexus-bot/docker-compose.yaml | 29 + apps/nexus-cognitron-web/README.md | 22 + .../nexus-cognitron-web/docker-compose.yaml | 8 +- .../nexus-cognitron-web/envoy.yaml | 0 library/configurator/__init__.py | 8 +- media/ancient-tech.jpg | Bin 0 -> 149055 bytes nexus/bot/BUILD.bazel | 18 + nexus/cognitron/.gitignore | 3 +- nexus/cognitron/BUILD.bazel | 3 - nexus/cognitron/README.md | 26 +- nexus/cognitron/web/BUILD.bazel | 17 +- nexus/cognitron/web/README.md | 2 +- nexus/cognitron/web/components/document.vue | 3 +- .../cognitron/web/components/search-list.vue | 13 +- nexus/cognitron/web/components/v-footer.vue | 23 + nexus/cognitron/web/components/v-header.vue | 2 + .../web/components/v-scimag-search-item.vue | 71 + nexus/cognitron/web/components/v-scimag.vue | 48 +- ...rch-item.vue => v-scitech-search-item.vue} | 24 +- nexus/cognitron/web/components/v-scitech.vue | 38 +- .../{v-tr-link.vue => v-tr-multi-link.vue} | 18 +- nexus/cognitron/web/layouts/default.vue | 1 + nexus/cognitron/web/nuxt.config.js | 14 +- .../web/pages/documents/_schema/_id.vue | 10 +- nexus/cognitron/web/pages/index.vue | 95 +- nexus/cognitron/web/plugins/helpers.js | 1 - nexus/cognitron/web/plugins/meta-api.js | 41 +- nexus/cognitron/web/plugins/utils.js | 24 - nexus/meta_api/BUILD.bazel | 4 +- nexus/meta_api/js/client/index.js | 24 +- nexus/meta_api/proto/BUILD.bazel | 8 - nexus/meta_api/proto/documents_service.proto | 12 - nexus/meta_api/proto/documents_service_pb2.py | 108 +- .../proto/documents_service_pb2_grpc.py | 33 - nexus/meta_api/services/documents.py | 24 +- nexus/meta_api/services/search.py | 13 +- nexus/models/proto/BUILD.bazel | 8 - nexus/pylon/sources/base.py | 2 +- nexus/views/js/BUILD.bazel | 11 + nexus/views/js/base.js | 132 ++ nexus/views/js/helpers.js | 42 + nexus/views/js/index.js | 2 + nexus/views/js/scimag.js | 76 + nexus/views/js/scitech.js | 21 + nexus/views/js/utils.js | 24 + papers-please/02-knowledge-must-flow.md | 0 papers-please/02-new-conditions.md | 20 + papers-please/03-roadmap.md | 17 +- papers-please/04-community-roadmap.md | 13 + papers-please/04-shared-destiny.md | 0 .../__init__.py => papers-please/05-dream.md | 0 .../{98-new-conditions.md => 06-armory.md} | 18 +- papers-please/99-development.md | 22 + rules/nodejs/package.json | 2 + rules/nodejs/yarn.lock | 1660 ++++++++++++++--- 59 files changed, 2152 insertions(+), 773 deletions(-) create mode 100644 apps/README.md create mode 100644 apps/nexus-bot/docker-compose.yaml create mode 100644 apps/nexus-cognitron-web/README.md rename nexus/cognitron/docker-compose.yml => apps/nexus-cognitron-web/docker-compose.yaml (78%) rename nexus/cognitron/nexus-meta-api-envoy.yaml => apps/nexus-cognitron-web/envoy.yaml (100%) create mode 100644 media/ancient-tech.jpg delete mode 100644 nexus/cognitron/BUILD.bazel create mode 100644 nexus/cognitron/web/components/v-footer.vue create mode 100644 nexus/cognitron/web/components/v-scimag-search-item.vue rename nexus/cognitron/web/components/{search-item.vue => v-scitech-search-item.vue} (58%) rename nexus/cognitron/web/components/{v-tr-link.vue => v-tr-multi-link.vue} (65%) create mode 100644 nexus/views/js/BUILD.bazel create mode 100644 nexus/views/js/base.js create mode 100644 nexus/views/js/helpers.js create mode 100644 nexus/views/js/index.js create mode 100644 nexus/views/js/scimag.js create mode 100644 nexus/views/js/scitech.js create mode 100644 nexus/views/js/utils.js delete mode 100644 papers-please/02-knowledge-must-flow.md create mode 100644 papers-please/02-new-conditions.md create mode 100644 papers-please/04-community-roadmap.md delete mode 100644 papers-please/04-shared-destiny.md rename nexus/cognitron/__init__.py => papers-please/05-dream.md (100%) rename papers-please/{98-new-conditions.md => 06-armory.md} (50%) diff --git a/BUILD.bazel b/BUILD.bazel index 68e7094..5a12b96 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -20,18 +20,3 @@ platform( ], ) - -load("@rules_rust//proto:toolchain.bzl", "rust_proto_toolchain") - -rust_proto_toolchain( - name = "proto-toolchain-impl", - grpc_plugin = "//rules/rust/cargo:cargo_bin_protoc_gen_rust_grpc", - proto_plugin = "//rules/rust/cargo:cargo_bin_protoc_gen_rust", - protoc = "@com_google_protobuf//:protoc", -) - -toolchain( - name = "proto-toolchain", - toolchain = ":proto-toolchain-impl", - toolchain_type = "@rules_rust//proto:toolchain", -) diff --git a/README.md b/README.md index b890015..fa3995b 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,16 @@ # Hyperboria +![Ancient Tech](media/ancient-tech.jpg) + ## Introduction -Hyperboria repository is a pack of tools for dealing with SciMag and SciTech collections. +Hyperboria is a monorepository of tools aimed to enhance availability of science. -It consists of configurable [`search engine`](nexus/cognitron), [`pipeline`](nexus/pipe) for [`ingesting`](nexus/ingest) data -from upstream sources. So-called [`actions`](nexus/actions) aimed to converting data from external APIs -into [`internal Protobuf format`](nexus/models) and to landing converted data into databases and/or search engines. +Here you find applications for accessing and searching in the biggest libraries of the Earth and other supportive tools. -## Prerequisite - -Install system packages for various OSes: -```shell script -sudo ./repository/install-packages.sh -``` - -### Ubuntu 20.04 - -#### Docker -[Installation Guide](https://docs.docker.com/engine/install/ubuntu/) - -#### IPFS -[Installation Guide](https://docs.ipfs.io/install/) - -### MacOS - -#### Docker -[Installation Guide](https://docs.docker.com/docker-for-mac/install/) - -#### IPFS -[Installation Guide](https://docs.ipfs.io/install/) +All sources are under [The Unlicense](https://unlicense.org). They are literally yours. ## Content -- [`images`](images) - base docker images for [`nexus`](nexus) -- [`library`](library) - shared libraries - [`nexus`](nexus) - processing and searching in scientific text collections -- [`rules`](rules) - build rules \ No newline at end of file +- [`apps`](packages) - ready applications and images to deploy in various environments diff --git a/WORKSPACE b/WORKSPACE index 050f1c6..a2a0ca5 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -188,8 +188,6 @@ load("//rules/rust:crates.bzl", "raze_fetch_remote_crates") raze_fetch_remote_crates() -register_toolchains("//:proto-toolchain") - # NodeJS load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..02f8fc1 --- /dev/null +++ b/apps/README.md @@ -0,0 +1,15 @@ +# Packages + +All packages requires data dumps. Older base dumps can be found in the end of this page. + +## Packages + +- [`Telegram Bot`](nexus-bot) +- [`Headless Search Server`](nexus-cognitron) +- [`Web Application`](nexus-cognitron-web) + +## Data Dumps + +| Date | IPFS Hash | +| --- | ----------- | +| 2021-03-01 | `bafykbzacebzohi352bddfunaub5rgqv5b324nejk5v6fltjh45be5ykw5jsjg` | \ No newline at end of file diff --git a/apps/nexus-bot/docker-compose.yaml b/apps/nexus-bot/docker-compose.yaml new file mode 100644 index 0000000..a3f23d1 --- /dev/null +++ b/apps/nexus-bot/docker-compose.yaml @@ -0,0 +1,29 @@ +--- +services: + nexus-bot: + depends_on: + - nexus-meta-api + environment: + ENV_TYPE: production + image: thesuperpirate/nexus-bot:latest + ports: + - '3000:3000' + nexus-meta-api: + depends_on: + - summa + environment: + ENV_TYPE: production + NEXUS_META_API_grpc.address: '0.0.0.0' + NEXUS_META_API_grpc.port: 9090 + NEXUS_META_API_summa.url: 'http://summa:8082' + image: thesuperpirate/nexus-meta-api:latest + summa: + environment: + ENV_TYPE: production + SUMMA_debug: 'true' + SUMMA_http.address: '0.0.0.0' + SUMMA_http.port: '8082' + image: izihawa/summa:latest + volumes: + - '${DATA_PATH}:/summa/data' +version: "3" diff --git a/apps/nexus-cognitron-web/README.md b/apps/nexus-cognitron-web/README.md new file mode 100644 index 0000000..5512fca --- /dev/null +++ b/apps/nexus-cognitron-web/README.md @@ -0,0 +1,22 @@ +## Prerequisite + +Follow the [development guide](../../papers-please/99-development.md) to install Docker and IPFS. + +## Guide + +#### 1. Download data dumps + +```shell script +git clone https://github.com/nexus-stc/hyperboria +cd hyperboria/apps/nexus-cognitron-web +export COLLECTION=bafykbzacebzohi352bddfunaub5rgqv5b324nejk5v6fltjh45be5ykw5jsjg +ipfs get $COLLECTION -o data && ipfs pin add $COLLECTION +export DATA_PATH=$(realpath ./data) +``` + +#### 2. Launch + +```shell script +docker-compose pull && docker-compose up +``` +then go to [http://localhost:3000](http://localhost:3000) \ No newline at end of file diff --git a/nexus/cognitron/docker-compose.yml b/apps/nexus-cognitron-web/docker-compose.yaml similarity index 78% rename from nexus/cognitron/docker-compose.yml rename to apps/nexus-cognitron-web/docker-compose.yaml index b63169d..4b770f8 100644 --- a/nexus/cognitron/docker-compose.yml +++ b/apps/nexus-cognitron-web/docker-compose.yaml @@ -5,9 +5,11 @@ services: - nexus-meta-api-envoy environment: ENV_TYPE: production + NEXUS_COGNITRON_WEB_application.address: 0.0.0.0 + NEXUS_COGNITRON_WEB_application.port: 3000 NEXUS_COGNITRON_WEB_ipfs.gateway.url: https://cloudflare-ipfs.com NEXUS_COGNITRON_WEB_meta_api.url: http://localhost:8080 - image: thesuperpirate/cognitron-web:latest + image: thesuperpirate/nexus-cognitron-web:latest ports: - '3000:3000' nexus-meta-api: @@ -18,7 +20,7 @@ services: NEXUS_META_API_grpc.address: '0.0.0.0' NEXUS_META_API_grpc.port: 9090 NEXUS_META_API_summa.url: 'http://summa:8082' - image: thesuperpirate/meta-api:latest + image: thesuperpirate/nexus-meta-api:latest nexus-meta-api-envoy: depends_on: - nexus-meta-api @@ -26,7 +28,7 @@ services: ports: - '8080:8080' volumes: - - './nexus-meta-api-envoy.yaml:/etc/envoy/envoy.yaml' + - './envoy.yaml:/etc/envoy/envoy.yaml' summa: environment: ENV_TYPE: production diff --git a/nexus/cognitron/nexus-meta-api-envoy.yaml b/apps/nexus-cognitron-web/envoy.yaml similarity index 100% rename from nexus/cognitron/nexus-meta-api-envoy.yaml rename to apps/nexus-cognitron-web/envoy.yaml diff --git a/library/configurator/__init__.py b/library/configurator/__init__.py index 781cea8..c77e523 100644 --- a/library/configurator/__init__.py +++ b/library/configurator/__init__.py @@ -63,7 +63,13 @@ class Configurator(RichDict): env_prefix = env_prefix.lower() for name, value in os.environ.items(): if name.lower().startswith(env_prefix): - env_dict[name[len(env_prefix):].lstrip('_')] = value + stripped_name = name[len(env_prefix):].lstrip('_') + if stripped_name[-2:] == '[]': + if stripped_name not in env_dict: + env_dict[stripped_name[:-2]] = [] + env_dict[stripped_name[:-2]].append(value) + else: + env_dict[stripped_name] = value env_dict = unflatten(env_dict, sep=env_key_separator) for config in ([os.environ] + configs + [env_dict]): diff --git a/media/ancient-tech.jpg b/media/ancient-tech.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e5390694ecf65d813f0bff51f1128311ff86f9f GIT binary patch literal 149055 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

-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

(4gjk_A$yB!ntQZbnb}`c;Eq>=>&AZlPPL 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 F|Jh_xpBDfC literal 0 HcmV?d00001 diff --git a/nexus/bot/BUILD.bazel b/nexus/bot/BUILD.bazel index f8041ca..69555ac 100644 --- a/nexus/bot/BUILD.bazel +++ b/nexus/bot/BUILD.bazel @@ -63,3 +63,21 @@ container_push( repository = "nexus-bot", tag = "latest", ) + +container_push( + name = "push-public-latest", + format = "Docker", + image = ":image", + registry = "registry.hub.docker.com", + repository = "thesuperpirate/nexus-bot", + tag = "latest", +) + +container_push( + name = "push-public-testing", + format = "Docker", + image = ":image", + registry = "registry.hub.docker.com", + repository = "thesuperpirate/nexus-bot", + tag = "testing", +) diff --git a/nexus/cognitron/.gitignore b/nexus/cognitron/.gitignore index 6320cd2..2a3dcb1 100644 --- a/nexus/cognitron/.gitignore +++ b/nexus/cognitron/.gitignore @@ -1 +1,2 @@ -data \ No newline at end of file +data +ipfs \ No newline at end of file diff --git a/nexus/cognitron/BUILD.bazel b/nexus/cognitron/BUILD.bazel deleted file mode 100644 index d80fe2c..0000000 --- a/nexus/cognitron/BUILD.bazel +++ /dev/null @@ -1,3 +0,0 @@ - -package(default_visibility = ["//visibility:public"]) - diff --git a/nexus/cognitron/README.md b/nexus/cognitron/README.md index 7fa52eb..38b2066 100644 --- a/nexus/cognitron/README.md +++ b/nexus/cognitron/README.md @@ -1,28 +1,4 @@ -# Nexus Cognitron - -## Prerequisite - -Follow the [root guide](../../README.md) to install Docker, IPFS and Bazel (optionally) - -## Guide - -#### 1. Download data dumps - -```shell script -export COLLECTION=bafykbzacebzohi352bddfunaub5rgqv5b324nejk5v6fltjh45be5ykw5jsjg -ipfs get $COLLECTION -o data && ipfs pin add $COLLECTION -export DATA_PATH=$(realpath ./data) -``` - -#### 2. Launch Nexus Cognitron - -Create [`docker-compose.yml`](docker-compose.yml) file to set up Nexus Cognitron and then launch it: -```shell script -docker-compose pull && docker-compose up -``` -then go to [http://localhost:3000](http://localhost:3000) - -#### 3. (Optional) Deploy data dumps into your database +#### Deploy data dumps into your database There is a function `work` in [`traversing script`](installer/scripts/iterate.py) that you can reimplement to iterate over the whole dataset and insert it into your diff --git a/nexus/cognitron/web/BUILD.bazel b/nexus/cognitron/web/BUILD.bazel index 5f9c6a0..98ef7a5 100644 --- a/nexus/cognitron/web/BUILD.bazel +++ b/nexus/cognitron/web/BUILD.bazel @@ -1,4 +1,3 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") load("@io_bazel_rules_docker//container:container.bzl", "container_push") load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image") load("@npm//nuxt:index.bzl", "nuxt") @@ -20,21 +19,16 @@ deps = [ "@npm//bootstrap-vue", "@npm//core-js", "@npm//dateformat", + "@npm//electron", "@npm//pug", "@npm//pug-plain-loader", "@npm//sass", "@npm//sass-loader", "@npm//vue", "//nexus/meta_api/js/client", + "//nexus/views/js", ] -js_library( - name = "nexus-cognitron-web", - package_name = "nexus-cognitron-web", - srcs = files, - deps = deps, -) - nuxt( name = "web-dev", args = [ @@ -42,7 +36,7 @@ nuxt( "nexus/cognitron/web/nuxt.config.js", "--watch-poll", ], - data = [":nexus-cognitron-web"], + data = files + deps, ) nuxt( @@ -82,7 +76,7 @@ container_push( format = "Docker", image = ":image", registry = "registry.hub.docker.com", - repository = "thesuperpirate/cognitron-web", + repository = "thesuperpirate/nexus-cognitron-web", tag = "latest", ) @@ -91,6 +85,7 @@ container_push( format = "Docker", image = ":image", registry = "registry.hub.docker.com", - repository = "thesuperpirate/cognitron-web", + repository = "thesuperpirate/nexus-cognitron-web", tag = "testing", ) + diff --git a/nexus/cognitron/web/README.md b/nexus/cognitron/web/README.md index 0bfba0f..05ec8f1 100644 --- a/nexus/cognitron/web/README.md +++ b/nexus/cognitron/web/README.md @@ -2,5 +2,5 @@ #### Development ```shell script -bazel run web_dev +bazel run web-dev ``` \ No newline at end of file diff --git a/nexus/cognitron/web/components/document.vue b/nexus/cognitron/web/components/document.vue index 9cf4bb6..523a461 100644 --- a/nexus/cognitron/web/components/document.vue +++ b/nexus/cognitron/web/components/document.vue @@ -1,6 +1,7 @@ + + diff --git a/nexus/cognitron/web/components/v-header.vue b/nexus/cognitron/web/components/v-header.vue index 6ebe70e..9934e8a 100644 --- a/nexus/cognitron/web/components/v-header.vue +++ b/nexus/cognitron/web/components/v-header.vue @@ -3,6 +3,8 @@ b-container nuxt-link(to="/" title="Go to search!").logo | > Nexus Cognitron + a.nav-link(href="https://t.me/nexus_search" title="News") + | News + + diff --git a/nexus/cognitron/web/components/v-scimag.vue b/nexus/cognitron/web/components/v-scimag.vue index 5be0c7b..98c2e4e 100644 --- a/nexus/cognitron/web/components/v-scimag.vue +++ b/nexus/cognitron/web/components/v-scimag.vue @@ -2,8 +2,9 @@ div .top h6 {{ document.title }} - h6 - i {{ document.locator }} + .top + i + h6 {{ document.getFormattedLocator() }} table tbody v-tr(label="DOI", :value="document.doi") @@ -11,17 +12,17 @@ v-tr(label="Tags", :value="tags") v-tr(label="ISSNS", :value="issns") v-tr(label="ISBNS", :value="isbns") - v-tr(label="File", :value="document.filedata") - v-tr-link(label="Download link", v-if="ipfsMultihash" :value="document.filename", :url="ipfsUrl") + v-tr(label="File", :value="document.getFormattedFiledata()") + v-tr-multi-link(label="Links", :links="links") diff --git a/nexus/cognitron/web/components/v-scitech.vue b/nexus/cognitron/web/components/v-scitech.vue index 9eb6444..6bd2021 100644 --- a/nexus/cognitron/web/components/v-scitech.vue +++ b/nexus/cognitron/web/components/v-scitech.vue @@ -4,7 +4,7 @@ h6 {{ document.title }} .top i - h6 {{ document.locator }} + h6 {{ document.getFormattedLocator() }} table tbody v-tr(label="DOI", :value="document.doi") @@ -12,8 +12,8 @@ v-tr(label="Tags", :value="tags") v-tr(label="ISBNS", :value="isbns") v-tr(label="ISSNS", :value="issns") - v-tr(label="File", :value="document.filedata") - v-tr-link(label="Download link", v-if="ipfsMultihash" :value="document.filename", :url="ipfsUrl") + v-tr(label="File", :value="document.getFormattedFiledata()") + v-tr-multi-link(label="Links", :links="links") diff --git a/nexus/cognitron/web/plugins/helpers.js b/nexus/cognitron/web/plugins/helpers.js index 7af5bbe..8f29c4b 100644 --- a/nexus/cognitron/web/plugins/helpers.js +++ b/nexus/cognitron/web/plugins/helpers.js @@ -5,7 +5,6 @@ export function getIssuedDate (unixtime) { try { return dateFormat(new Date(unixtime * 1000), 'yyyy') } catch (e) { - console.error(e) return null } } diff --git a/nexus/cognitron/web/plugins/meta-api.js b/nexus/cognitron/web/plugins/meta-api.js index 12dbe60..51ee25d 100755 --- a/nexus/cognitron/web/plugins/meta-api.js +++ b/nexus/cognitron/web/plugins/meta-api.js @@ -1,6 +1,41 @@ +import { ScimagView, ScitechView } from 'nexus-views-js' import MetaApi from 'nexus-meta-api-js-client' -export default ({ $config }, inject) => { - const metaApi = new MetaApi($config.meta_api) - inject('meta_api', metaApi) +function getSchema (typedDocument) { + return Object.keys(typedDocument).filter(k => typedDocument[k] !== undefined)[0] +} + +function schemaToView (schema, pb) { + if (schema === 'scimag') { + return new ScimagView(pb) + } else if (schema === 'scitech') { + return new ScitechView(pb) + } +} + +class MetaApiWrapper { + constructor (metaApiConfig) { + this.metaApi = new MetaApi(metaApiConfig.url || ('http://' + window.location.host), metaApiConfig.hostname) + } + + async get (schema, id) { + const response = await this.metaApi.get(schema, id) + return schemaToView(schema, response[schema]) + } + + async search (schemas, query, page, pageSize) { + const response = await this.metaApi.search(schemas, query, page, pageSize) + const documents = response.scoredDocumentsList.map((scoredDocument) => { + const schema = getSchema(scoredDocument.typedDocument) + return schemaToView(schema, scoredDocument.typedDocument[schema]) + }) + return { + hasNext: response.hasNext, + documents: documents + } + } +} +export default ({ $config }, inject) => { + const metaApiWrapper = new MetaApiWrapper($config.meta_api) + inject('meta_api', metaApiWrapper) } diff --git a/nexus/cognitron/web/plugins/utils.js b/nexus/cognitron/web/plugins/utils.js index fa8657b..5bf45d6 100644 --- a/nexus/cognitron/web/plugins/utils.js +++ b/nexus/cognitron/web/plugins/utils.js @@ -4,27 +4,3 @@ const MULTIWHITESPACE_REGEX = /\s+/g export function castStringToSingleString (s) { return s.replace(ALNUMWHITESPACE_REGEX, ' ').replace(MULTIWHITESPACE_REGEX, '-') } - -export function escapeFormat (text) { - return text.replace(/_+/g, '_') - .replace(/\*+/g, '*') - .replace(/`+/g, "'") - .replace(/\[+/g, '`[`') - .replace(/]+/g, '`]`') -} - -export function quoteUrl (url, safe) { - if (typeof (safe) !== 'string') { - safe = '/' - } - url = encodeURIComponent(url) - const toUnencode = [] - for (let i = safe.length - 1; i >= 0; --i) { - const encoded = encodeURIComponent(safe[i]) - if (encoded !== safe.charAt(i)) { - toUnencode.push(encoded) - } - } - url = url.replace(new RegExp(toUnencode.join('|'), 'ig'), decodeURIComponent) - return url -} diff --git a/nexus/meta_api/BUILD.bazel b/nexus/meta_api/BUILD.bazel index f8bd58f..bb6ce9c 100644 --- a/nexus/meta_api/BUILD.bazel +++ b/nexus/meta_api/BUILD.bazel @@ -63,7 +63,7 @@ container_push( format = "Docker", image = ":image", registry = "registry.hub.docker.com", - repository = "thesuperpirate/meta-api", + repository = "thesuperpirate/nexus-meta-api", tag = "latest", ) @@ -72,6 +72,6 @@ container_push( format = "Docker", image = ":image", registry = "registry.hub.docker.com", - repository = "thesuperpirate/meta-api", + repository = "thesuperpirate/nexus-meta-api", tag = "testing", ) diff --git a/nexus/meta_api/js/client/index.js b/nexus/meta_api/js/client/index.js index 5827eb0..c970436 100644 --- a/nexus/meta_api/js/client/index.js +++ b/nexus/meta_api/js/client/index.js @@ -2,9 +2,13 @@ import documentsProto from 'meta-api-grpc-web-js/meta-api-grpc-web-js_pb/nexus/m import searchProto from 'meta-api-grpc-web-js/meta-api-grpc-web-js_pb/nexus/meta_api/proto/search_service_grpc_web_pb' export default class MetaApi { - constructor (config) { - this.documentsClient = new documentsProto.DocumentsPromiseClient(config.url) - this.searchClient = new searchProto.SearchPromiseClient(config.url) + constructor (url, hostname) { + this.metadata = {} + if (hostname) { + this.metadata['X-Forwarded-Host'] = hostname + } + this.documentsClient = new documentsProto.DocumentsPromiseClient(url) + this.searchClient = new searchProto.SearchPromiseClient(url) } generateId (length) { @@ -17,23 +21,27 @@ export default class MetaApi { return result.join('') } - async getView (schema, documentId) { + prepareMetadata () { + return Object.assign({ 'request-id': this.generateId(12) }, this.metadata) + } + + async get (schema, documentId) { const request = new documentsProto.TypedDocumentRequest() request.setSchema(schema) request.setDocumentId(documentId) request.setSessionId(this.generateId(8)) - const response = await this.documentsClient.get_view(request, { 'request-id': this.generateId(12) }) + const response = await this.documentsClient.get(request, this.prepareMetadata()) return response.toObject() } - async search (schema, query, page, pageSize = 5) { + async search (schemas, query, page, pageSize = 5) { const request = new searchProto.SearchRequest() request.setPage(page) request.setPageSize(pageSize) - request.addSchemas(schema) + schemas.forEach((schema) => request.addSchemas(schema)) request.setQuery(query) request.setSessionId(this.generateId(8)) - const response = await this.searchClient.search(request, { 'request-id': this.generateId(12) }) + const response = await this.searchClient.search(request, this.prepareMetadata()) return response.toObject() } } diff --git a/nexus/meta_api/proto/BUILD.bazel b/nexus/meta_api/proto/BUILD.bazel index 0c08227..d450c8a 100644 --- a/nexus/meta_api/proto/BUILD.bazel +++ b/nexus/meta_api/proto/BUILD.bazel @@ -1,5 +1,4 @@ load("@com_github_grpc_grpc//bazel:python_rules.bzl", "py_grpc_library", "py_proto_library") -load("@rules_rust//proto:proto.bzl", "rust_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("@rules_proto_grpc//js:defs.bzl", "js_grpc_web_library") @@ -27,13 +26,6 @@ py_grpc_library( deps = [":meta-api-proto-py"], ) -rust_proto_library( - name = "meta-api-proto-rust", - rust_deps = ["//rules/rust/cargo:protobuf"], - visibility = ["//visibility:public"], - deps = [":meta-api-proto"], -) - js_grpc_web_library( name = "meta-api-grpc-web-js", protos = [ diff --git a/nexus/meta_api/proto/documents_service.proto b/nexus/meta_api/proto/documents_service.proto index 212e1c3..526cc41 100644 --- a/nexus/meta_api/proto/documents_service.proto +++ b/nexus/meta_api/proto/documents_service.proto @@ -33,20 +33,8 @@ message TypedDocumentRequest { int64 user_id = 5; } -message PutTypedDocumentResponse {} - -message GetViewResponse { - nexus.models.proto.TypedDocument typed_document = 1; - string filedata = 2; - string filename = 3; - string filesize = 4; - string first_authors = 5; - string locator = 6; -} - service Documents { rpc get (TypedDocumentRequest) returns (nexus.models.proto.TypedDocument) {} - rpc get_view (TypedDocumentRequest) returns (GetViewResponse) {} rpc roll (RollRequest) returns (RollResponse) {} rpc top_missed (TopMissedRequest) returns (TopMissedResponse) {} } diff --git a/nexus/meta_api/proto/documents_service_pb2.py b/nexus/meta_api/proto/documents_service_pb2.py index a7eb274..303f6c3 100755 --- a/nexus/meta_api/proto/documents_service_pb2.py +++ b/nexus/meta_api/proto/documents_service_pb2.py @@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n,nexus/meta_api/proto/documents_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"D\n\x0bRollRequest\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\x03\"#\n\x0cRollResponse\x12\x13\n\x0b\x64ocument_id\x18\x01 \x01(\x04\"X\n\x10TopMissedRequest\x12\x0c\n\x04page\x18\x01 \x01(\r\x12\x11\n\tpage_size\x18\x02 \x01(\r\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12\x0f\n\x07user_id\x18\x04 \x01(\x03\"a\n\x11TopMissedResponse\x12:\n\x0ftyped_documents\x18\x01 \x03(\x0b\x32!.nexus.models.proto.TypedDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"r\n\x14TypedDocumentRequest\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x13\n\x0b\x64ocument_id\x18\x02 \x01(\x04\x12\x10\n\x08position\x18\x03 \x01(\r\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\x03\"\x1a\n\x18PutTypedDocumentResponse\"u\n\x0fGetViewResponse\x12\x39\n\x0etyped_document\x18\x01 \x01(\x0b\x32!.nexus.models.proto.TypedDocument\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x15\n\rfirst_authors\x18\x03 \x01(\t2\xf6\x02\n\tDocuments\x12V\n\x03get\x12*.nexus.meta_api.proto.TypedDocumentRequest\x1a!.nexus.models.proto.TypedDocument\"\x00\x12_\n\x08get_view\x12*.nexus.meta_api.proto.TypedDocumentRequest\x1a%.nexus.meta_api.proto.GetViewResponse\"\x00\x12O\n\x04roll\x12!.nexus.meta_api.proto.RollRequest\x1a\".nexus.meta_api.proto.RollResponse\"\x00\x12_\n\ntop_missed\x12&.nexus.meta_api.proto.TopMissedRequest\x1a\'.nexus.meta_api.proto.TopMissedResponse\"\x00\x62\x06proto3' + serialized_pb=b'\n,nexus/meta_api/proto/documents_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"D\n\x0bRollRequest\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\x03\"#\n\x0cRollResponse\x12\x13\n\x0b\x64ocument_id\x18\x01 \x01(\x04\"X\n\x10TopMissedRequest\x12\x0c\n\x04page\x18\x01 \x01(\r\x12\x11\n\tpage_size\x18\x02 \x01(\r\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12\x0f\n\x07user_id\x18\x04 \x01(\x03\"a\n\x11TopMissedResponse\x12:\n\x0ftyped_documents\x18\x01 \x03(\x0b\x32!.nexus.models.proto.TypedDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"r\n\x14TypedDocumentRequest\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x13\n\x0b\x64ocument_id\x18\x02 \x01(\x04\x12\x10\n\x08position\x18\x03 \x01(\r\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\x03\x32\x95\x02\n\tDocuments\x12V\n\x03get\x12*.nexus.meta_api.proto.TypedDocumentRequest\x1a!.nexus.models.proto.TypedDocument\"\x00\x12O\n\x04roll\x12!.nexus.meta_api.proto.RollRequest\x1a\".nexus.meta_api.proto.RollResponse\"\x00\x12_\n\ntop_missed\x12&.nexus.meta_api.proto.TopMissedRequest\x1a\'.nexus.meta_api.proto.TopMissedResponse\"\x00\x62\x06proto3' , dependencies=[nexus_dot_models_dot_proto_dot_typed__document__pb2.DESCRIPTOR,]) @@ -257,86 +257,12 @@ _TYPEDDOCUMENTREQUEST = _descriptor.Descriptor( serialized_end=521, ) - -_PUTTYPEDDOCUMENTRESPONSE = _descriptor.Descriptor( - name='PutTypedDocumentResponse', - full_name='nexus.meta_api.proto.PutTypedDocumentResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=523, - serialized_end=549, -) - - -_GETVIEWRESPONSE = _descriptor.Descriptor( - name='GetViewResponse', - full_name='nexus.meta_api.proto.GetViewResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='typed_document', full_name='nexus.meta_api.proto.GetViewResponse.typed_document', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='filename', full_name='nexus.meta_api.proto.GetViewResponse.filename', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='first_authors', full_name='nexus.meta_api.proto.GetViewResponse.first_authors', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=551, - serialized_end=668, -) - _TOPMISSEDRESPONSE.fields_by_name['typed_documents'].message_type = nexus_dot_models_dot_proto_dot_typed__document__pb2._TYPEDDOCUMENT -_GETVIEWRESPONSE.fields_by_name['typed_document'].message_type = nexus_dot_models_dot_proto_dot_typed__document__pb2._TYPEDDOCUMENT DESCRIPTOR.message_types_by_name['RollRequest'] = _ROLLREQUEST DESCRIPTOR.message_types_by_name['RollResponse'] = _ROLLRESPONSE DESCRIPTOR.message_types_by_name['TopMissedRequest'] = _TOPMISSEDREQUEST DESCRIPTOR.message_types_by_name['TopMissedResponse'] = _TOPMISSEDRESPONSE DESCRIPTOR.message_types_by_name['TypedDocumentRequest'] = _TYPEDDOCUMENTREQUEST -DESCRIPTOR.message_types_by_name['PutTypedDocumentResponse'] = _PUTTYPEDDOCUMENTRESPONSE -DESCRIPTOR.message_types_by_name['GetViewResponse'] = _GETVIEWRESPONSE _sym_db.RegisterFileDescriptor(DESCRIPTOR) RollRequest = _reflection.GeneratedProtocolMessageType('RollRequest', (_message.Message,), { @@ -374,20 +300,6 @@ TypedDocumentRequest = _reflection.GeneratedProtocolMessageType('TypedDocumentRe }) _sym_db.RegisterMessage(TypedDocumentRequest) -PutTypedDocumentResponse = _reflection.GeneratedProtocolMessageType('PutTypedDocumentResponse', (_message.Message,), { - 'DESCRIPTOR' : _PUTTYPEDDOCUMENTRESPONSE, - '__module__' : 'nexus.meta_api.proto.documents_service_pb2' - # @@protoc_insertion_point(class_scope:nexus.meta_api.proto.PutTypedDocumentResponse) - }) -_sym_db.RegisterMessage(PutTypedDocumentResponse) - -GetViewResponse = _reflection.GeneratedProtocolMessageType('GetViewResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETVIEWRESPONSE, - '__module__' : 'nexus.meta_api.proto.documents_service_pb2' - # @@protoc_insertion_point(class_scope:nexus.meta_api.proto.GetViewResponse) - }) -_sym_db.RegisterMessage(GetViewResponse) - _DOCUMENTS = _descriptor.ServiceDescriptor( @@ -397,8 +309,8 @@ _DOCUMENTS = _descriptor.ServiceDescriptor( index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=671, - serialized_end=1045, + serialized_start=524, + serialized_end=801, methods=[ _descriptor.MethodDescriptor( name='get', @@ -410,20 +322,10 @@ _DOCUMENTS = _descriptor.ServiceDescriptor( serialized_options=None, create_key=_descriptor._internal_create_key, ), - _descriptor.MethodDescriptor( - name='get_view', - full_name='nexus.meta_api.proto.Documents.get_view', - index=1, - containing_service=None, - input_type=_TYPEDDOCUMENTREQUEST, - output_type=_GETVIEWRESPONSE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), _descriptor.MethodDescriptor( name='roll', full_name='nexus.meta_api.proto.Documents.roll', - index=2, + index=1, containing_service=None, input_type=_ROLLREQUEST, output_type=_ROLLRESPONSE, @@ -433,7 +335,7 @@ _DOCUMENTS = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='top_missed', full_name='nexus.meta_api.proto.Documents.top_missed', - index=3, + index=2, containing_service=None, input_type=_TOPMISSEDREQUEST, output_type=_TOPMISSEDRESPONSE, diff --git a/nexus/meta_api/proto/documents_service_pb2_grpc.py b/nexus/meta_api/proto/documents_service_pb2_grpc.py index e15d379..8935f94 100755 --- a/nexus/meta_api/proto/documents_service_pb2_grpc.py +++ b/nexus/meta_api/proto/documents_service_pb2_grpc.py @@ -22,11 +22,6 @@ class DocumentsStub(object): request_serializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.TypedDocumentRequest.SerializeToString, response_deserializer=nexus_dot_models_dot_proto_dot_typed__document__pb2.TypedDocument.FromString, ) - self.get_view = channel.unary_unary( - '/nexus.meta_api.proto.Documents/get_view', - request_serializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.TypedDocumentRequest.SerializeToString, - response_deserializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.GetViewResponse.FromString, - ) self.roll = channel.unary_unary( '/nexus.meta_api.proto.Documents/roll', request_serializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.RollRequest.SerializeToString, @@ -48,12 +43,6 @@ class DocumentsServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def get_view(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def roll(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -74,11 +63,6 @@ def add_DocumentsServicer_to_server(servicer, server): request_deserializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.TypedDocumentRequest.FromString, response_serializer=nexus_dot_models_dot_proto_dot_typed__document__pb2.TypedDocument.SerializeToString, ), - 'get_view': grpc.unary_unary_rpc_method_handler( - servicer.get_view, - request_deserializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.TypedDocumentRequest.FromString, - response_serializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.GetViewResponse.SerializeToString, - ), 'roll': grpc.unary_unary_rpc_method_handler( servicer.roll, request_deserializer=nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.RollRequest.FromString, @@ -116,23 +100,6 @@ class Documents(object): options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - @staticmethod - def get_view(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/nexus.meta_api.proto.Documents/get_view', - nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.TypedDocumentRequest.SerializeToString, - nexus_dot_meta__api_dot_proto_dot_documents__service__pb2.GetViewResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - @staticmethod def roll(request, target, diff --git a/nexus/meta_api/services/documents.py b/nexus/meta_api/services/documents.py index 8dda6a9..b732a37 100644 --- a/nexus/meta_api/services/documents.py +++ b/nexus/meta_api/services/documents.py @@ -3,8 +3,6 @@ import time from grpc import StatusCode from library.aiogrpctools.base import aiogrpc_request_wrapper -from nexus.meta_api.proto.documents_service_pb2 import \ - GetViewResponse as GetViewResponsePb from nexus.meta_api.proto.documents_service_pb2 import \ RollResponse as RollResponsePb from nexus.meta_api.proto.documents_service_pb2 import \ @@ -16,7 +14,6 @@ from nexus.meta_api.proto.documents_service_pb2_grpc import ( from nexus.models.proto.scimag_pb2 import Scimag as ScimagPb from nexus.models.proto.typed_document_pb2 import \ TypedDocument as TypedDocumentPb -from nexus.views.telegram import parse_typed_document_to_view from nexus.views.telegram.registry import pb_registry from .base import BaseService @@ -52,7 +49,8 @@ class DocumentsService(DocumentsServicer, BaseService): async def start(self): add_DocumentsServicer_to_server(self, self.server) - async def _get_typed_document(self, request, context, metadata): + @aiogrpc_request_wrapper() + async def get(self, request, context, metadata) -> TypedDocumentPb: document = await self.get_document(request.schema, request.document_id, metadata['request-id'], context) if document.get('original_id'): original_document = await self.get_document( @@ -101,24 +99,6 @@ class DocumentsService(DocumentsServicer, BaseService): **{request.schema: document_pb}, ) - @aiogrpc_request_wrapper() - async def get(self, request, context, metadata) -> TypedDocumentPb: - return await self._get_typed_document(request, context, metadata) - - @aiogrpc_request_wrapper() - async def get_view(self, request, context, metadata) -> GetViewResponsePb: - typed_document = await self._get_typed_document(request, context, metadata) - view = parse_typed_document_to_view(typed_document) - - return GetViewResponsePb( - typed_document=typed_document, - filedata=view.get_formatted_filedata(show_filesize=True), - filename=view.get_filename(), - filesize=view.get_formatted_filesize(), - first_authors=view.get_first_authors(), - locator=view.get_formatted_locator(), - ) - @aiogrpc_request_wrapper() async def roll(self, request, context, metadata): random_id = await self.data_provider.random_id(request.language) diff --git a/nexus/meta_api/services/search.py b/nexus/meta_api/services/search.py index 9e22190..90404d1 100644 --- a/nexus/meta_api/services/search.py +++ b/nexus/meta_api/services/search.py @@ -103,10 +103,11 @@ class Searcher(BaseService): processor_response = None cache_hit = True page_size = request.page_size or 5 + schemas = tuple(sorted([schema for schema in request.schemas])) if ( - (request.user_id, request.language, request.query) not in self.query_cache - or len(self.query_cache[(request.user_id, request.language, request.query)].scored_documents) == 0 + (request.user_id, request.language, schemas, request.query) not in self.query_cache + or len(self.query_cache[(request.user_id, request.language, schemas, request.query)].scored_documents) == 0 ): cache_hit = False query = despace_full(request.query) @@ -121,7 +122,7 @@ class Searcher(BaseService): ): with attempt: requests = [] - for schema in request.schemas: + for schema in schemas: requests.append( self.summa_client.search( schema=schema, @@ -149,7 +150,7 @@ class Searcher(BaseService): ) search_response['scored_documents'] = rescored_documents search_response_pb = self.cast_search_response(search_response) - self.query_cache[(request.user_id, request.language, request.query)] = search_response_pb + self.query_cache[(request.user_id, request.language, schemas, request.query)] = search_response_pb logging.getLogger('query').info({ 'action': 'request', @@ -162,12 +163,12 @@ class Searcher(BaseService): 'query': request.query, 'query_class': processor_response['class'].value if processor_response else None, 'request_id': metadata['request-id'], - 'schemas': [schema for schema in request.schemas], + 'schemas': schemas, 'session_id': request.session_id, 'user_id': request.user_id, }) - scored_documents = self.query_cache[(request.user_id, request.language, request.query)].scored_documents + scored_documents = self.query_cache[(request.user_id, request.language, schemas, request.query)].scored_documents left_offset = request.page * page_size right_offset = left_offset + page_size has_next = len(scored_documents) > right_offset diff --git a/nexus/models/proto/BUILD.bazel b/nexus/models/proto/BUILD.bazel index 3637f06..2bdc235 100644 --- a/nexus/models/proto/BUILD.bazel +++ b/nexus/models/proto/BUILD.bazel @@ -1,5 +1,4 @@ load("@com_github_grpc_grpc//bazel:python_rules.bzl", "py_proto_library") -load("@rules_rust//proto:proto.bzl", "rust_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") load("@rules_proto_grpc//js:defs.bzl", "js_proto_library") @@ -17,13 +16,6 @@ py_proto_library( deps = [":models_proto"], ) -rust_proto_library( - name = "models_proto_rust", - rust_deps = ["//rules/rust/cargo:protobuf"], - visibility = ["//visibility:public"], - deps = [":models_proto"], -) - js_proto_library( name = "models_proto_js", protos = [":models_proto"], diff --git a/nexus/pylon/sources/base.py b/nexus/pylon/sources/base.py index 2df482a..3bd7d99 100644 --- a/nexus/pylon/sources/base.py +++ b/nexus/pylon/sources/base.py @@ -35,7 +35,7 @@ from tenacity import ( stop_after_attempt, ) -DEFAULT_USER_AGENT = 'PylonBot/1.0 (Linux x86_64) PylonBot/1.0.0' +DEFAULT_USER_AGENT = 'curl/7.68.0' class KeepAliveClientRequest(ClientRequest): diff --git a/nexus/views/js/BUILD.bazel b/nexus/views/js/BUILD.bazel new file mode 100644 index 0000000..24001cb --- /dev/null +++ b/nexus/views/js/BUILD.bazel @@ -0,0 +1,11 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") + +js_library( + name = "js", + package_name = "nexus-views-js", + srcs = glob(["*.js"]), + visibility = ["//visibility:public"], + deps = [ + "@npm//dateformat", + ], +) diff --git a/nexus/views/js/base.js b/nexus/views/js/base.js new file mode 100644 index 0000000..a357c5b --- /dev/null +++ b/nexus/views/js/base.js @@ -0,0 +1,132 @@ +import { castStringToSingleString, quoteUrl } from './utils' +import { getIssuedDate } from './helpers' + +export class BaseView { + constructor (dataPb) { + Object.assign(this, dataPb) + } + + getFilename () { + const processedAuthor = castStringToSingleString((this.getFirstAuthors()).toLowerCase()) + const processedTitle = castStringToSingleString(this.getRobustTitle()).toLowerCase() + + const parts = [] + if (processedAuthor) { + parts.push(processedAuthor) + } + if (processedTitle) { + parts.push(processedTitle) + } + + let filename = parts.join('-') + + if (!filename) { + if (this.doi) { + filename = quoteUrl(this.doi, '') + } else { + filename = this.md5 + } + } + + const year = getIssuedDate(this.issuedDate) + + if (year) { + filename = `${filename}-${year}` + } + filename = filename.replace(/-+/g, '-') + + return `${filename}.${this.extension}` + } + + getExtension () { + if (this.extension) { + return this.extension + } else { + return 'pdf' + } + } + + getFirstAuthors (etAl = true, firstNAuthors = 1) { + let etAlSuffix = '' + if (etAl) { + etAlSuffix = ' et al' + } + if (this.authorsList) { + if (this.authorsList.length > firstNAuthors) { + return this.authorsList.slice(0, firstNAuthors).join('; ') + etAlSuffix + } else if (this.authorsList.length === 1) { + if (this.authorsList[0].split(';').length - 1 >= 1) { + const commaAuthors = this.authorsList[0].split(';').map(function (el) { + return el.trim() + }) + if (commaAuthors.length > firstNAuthors) { + return (commaAuthors.slice(0, firstNAuthors)).join('; ') + etAlSuffix + } else { + return commaAuthors.join('; ') + } + } + return this.authorsList[0] + } else { + return this.authorsList.join('; ') + } + } else { + return '' + } + } + + getFormattedDatetime () { + if (this.issuedAt) { + const date = new Date(this.issuedAt * 1000) + const today = new Date() + const diffTime = Math.abs(date - today) + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + if (diffDays < 365) { + return `${date.getUTCFullYear()}.${date.getUTCMonth()}` + } else { + return date.getUTCFullYear() + } + } + } + + getFormattedFiledata () { + const parts = [] + if (this.language) { + parts.push(this.language.toUpperCase()) + } + parts.push(this.getExtension().toUpperCase()) + if (this.filesize) { + parts.push(this.getFormattedFilesize()) + } + return parts.join(' | ') + } + + getFormattedFilesize () { + if (this.filesize) { + return (Math.max(1024, this.filesize) / (1024 * 1024)).toFixed(2) + 'Mb' + } + return '' + } + + getIpfsMultihash () { + if (this.ipfsMultihashesList) { + return this.ipfsMultihashesList[0] + } + return '' + } + + getTelegramLink () { + return `https://t.me/libgen_scihub_bot?start=${Buffer.from('NID: ' + this.id.toString()).toString('base64')}` + } + + getRobustTitle () { + let result = this.title || '' + if (this.volume) { + if (this.title) { + result += ` ${this.volume}` + } else { + result += this.volume + } + } + return result + } +} diff --git a/nexus/views/js/helpers.js b/nexus/views/js/helpers.js new file mode 100644 index 0000000..66a9eb1 --- /dev/null +++ b/nexus/views/js/helpers.js @@ -0,0 +1,42 @@ +import dateFormat from 'dateformat' + +export function getMegabytes (bytes) { + try { + if (bytes) { + return (bytes / (1024 * 1024)).toFixed(2) + ' Mb' + } + } catch { + return null + } +} + +export function getIssuedDate (unixtime) { + if (!unixtime) return null + try { + return dateFormat(new Date(unixtime * 1000), 'yyyy') + } catch (e) { + console.error(e) + return null + } +} + +export function getCoverUrl (cu, fictionId, libgenId, cuSuf, md5) { + if (cu) return cu + let r = '' + if (libgenId || fictionId) { + if (libgenId) { + const bulkId = (libgenId - (libgenId % 1000)) + r = `covers/${bulkId}/${md5}` + } else if (fictionId) { + const bulkId = (fictionId - (fictionId % 1000)) + r = `fictioncovers/${bulkId}/${md5}` + } else { + return null + } + } + if (cuSuf) { + r = r + `-${cuSuf}` + return `http://gen.lib.rus.ec/${r}.jpg` + } + return null +} diff --git a/nexus/views/js/index.js b/nexus/views/js/index.js new file mode 100644 index 0000000..ca205dc --- /dev/null +++ b/nexus/views/js/index.js @@ -0,0 +1,2 @@ +export { ScimagView } from './scimag' +export { ScitechView } from './scitech' diff --git a/nexus/views/js/scimag.js b/nexus/views/js/scimag.js new file mode 100644 index 0000000..840dc8b --- /dev/null +++ b/nexus/views/js/scimag.js @@ -0,0 +1,76 @@ +import { BaseView } from './base' + +export class ScimagView extends BaseView { + schema = 'scimag' + icon = '🔬' + + getFormattedLocator () { + const parts = [] + if (this.authorsList) { + parts.push(this.getFirstAuthors(true, 3)) + } + const journal = this.getRobustJournal() + if (journal) { + parts.push('in', journal) + } + const dt = this.getFormattedDatetime() + if (dt) { + parts.push(`(${dt})`) + } + if (this.getRobustVolume()) { + parts.push(this.getRobustVolume()) + } + if (this.getPages()) { + parts.push(this.getPages()) + } + return parts.join(' ') + } + + getPages () { + if (this.firstPage) { + if (this.lastPage) { + if (this.firstPage === this.lastPage) { + return `p. ${this.firstPage}` + } else { + return `pp. ${this.firstPage}-${this.lastPage}` + } + } else { + return `p. ${this.firstPage}` + } + } else if (this.lastPage) { + return `p. ${this.lastPage}` + } + } + + getRobustJournal () { + if (this.type !== 'chapter' && this.type !== 'book-chapter') { + return this.containerTitle + } + } + + getRobustTitle () { + let result = this.title || this.doi + if (this.volume) { + if (this.type === 'chapter' || this.type === 'book-chapter') { + result += `in ${this.containerTitle} ${this.volume}` + } else { + result = this.volume + } + } + return result + } + + getRobustVolume () { + if (this.volume) { + if (this.issue) { + return `vol. ${this.volume}(${this.issue})` + } else { + if (this.volume === parseInt(this.volume, 10)) { + return `vol. ${this.volume}` + } else { + return this.volume + } + } + } + } +} diff --git a/nexus/views/js/scitech.js b/nexus/views/js/scitech.js new file mode 100644 index 0000000..0071d38 --- /dev/null +++ b/nexus/views/js/scitech.js @@ -0,0 +1,21 @@ +import { BaseView } from './base' + +export class ScitechView extends BaseView { + schema = 'scitech' + icon = '📚' + + getFormattedLocator () { + const parts = [] + if (this.authorsList) { + parts.push(this.getFirstAuthors(true, 3)) + } + if (this.issuedAt) { + const date = new Date(this.issuedAt * 1000) + parts.push(`(${date.getUTCFullYear()})`) + } + if (this.pages) { + parts.push(`pp. ${self.pages}`) + } + return parts.join(' ') + } +} diff --git a/nexus/views/js/utils.js b/nexus/views/js/utils.js new file mode 100644 index 0000000..25b7f2c --- /dev/null +++ b/nexus/views/js/utils.js @@ -0,0 +1,24 @@ +const ALNUMWHITESPACE_REGEX = /([^\s\w])/gu +const MULTIWHITESPACE_REGEX = /\s+/g + +export function castStringToSingleString (s) { + let processed = s.replace(ALNUMWHITESPACE_REGEX, ' ') + processed = processed.replace(MULTIWHITESPACE_REGEX, '-') + return processed +} + +export function quoteUrl (url, safe) { + if (typeof (safe) !== 'string') { + safe = '/' + } + url = encodeURIComponent(url) + const toUnencode = [] + for (let i = safe.length - 1; i >= 0; --i) { + const encoded = encodeURIComponent(safe[i]) + if (encoded !== safe.charAt(i)) { + toUnencode.push(encoded) + } + } + url = url.replace(new RegExp(toUnencode.join('|'), 'ig'), decodeURIComponent) + return url +} diff --git a/papers-please/02-knowledge-must-flow.md b/papers-please/02-knowledge-must-flow.md deleted file mode 100644 index e69de29..0000000 diff --git a/papers-please/02-new-conditions.md b/papers-please/02-new-conditions.md new file mode 100644 index 0000000..4273bc7 --- /dev/null +++ b/papers-please/02-new-conditions.md @@ -0,0 +1,20 @@ +# New Conditions + +We have silently crossed Rubicon. The Internet entered in our life and now it has become an integral and essential part of our lives. +It multiplied our powers and also it multiplied dangers we are put under. + +## Technological Leviathan + +Starting from 2010s there are rising tensions on the digital frontiers. The Internet that has been created to unite people across the world now is dissipating into divided islands. Rules of these dissected pieces are dictated by those who is hunger to manage and control for the sake of their own stability but oftenly not for the sake of who are hunger to learn and move humankind forward. + +Here just a few attacks on freedom to mention: +- Great Firewall of China that is banning the entire country out of presence in the world +- US Corporations that taking responsibility of judging what is good and evil using full power of their technologies and de-facto applying laws of USA extraterritorially +- Russia that is moving rapidly on the Chinese path in her attempts to border Internet traffic. The ultimate goal is spreading lies and propaganda inside and to outside to keep people ignorant. + +Many moves that governments make means that we are considered not sane enough to live in the digital world. + +## Continuous Education + +Increasing demand of educated persons is tightly linked with the accessibilty of knowledge corpus. World has changed and data flows +had been speeded up. We won't be able to rely heavily on classical forms of education like learning for fixed-time in universities further. diff --git a/papers-please/03-roadmap.md b/papers-please/03-roadmap.md index 0b60f4c..e2b4192 100644 --- a/papers-please/03-roadmap.md +++ b/papers-please/03-roadmap.md @@ -1,4 +1,4 @@ -# Agenda v.0.1 +# Roadmap v.0.1 This paper is composed of lifetime goals for Nexus STC (Standard Template Construct). @@ -6,7 +6,7 @@ Although many of goals looks complex and faraway I strongly believe that we will #### Legend - (*) Big theoretical task -- (E) Perhaps non-essential but worth to try +- (E) Non-essential but still worth to try ## Accessibility of Science @@ -26,25 +26,16 @@ Although many of goals looks complex and faraway I strongly believe that we will - Create Onion configuration - Discuss the possibility of switching original LibGen backend to Nexus -#### Community - -- Announce goals widely -- Write and maintain documentation in clean English language - ### Data Accessibility #### Infrastructure - Putting scimag collection onto IPFS - Announce data dumps for both scitech and scimag collections -- Pinning feature in the app that will allow to users pinning subset of the collection in an easy way +- Pinning feature in the app that will allow users to pin subset of the collection in an easy way - (*) Consider various **reliable** ways to announce new releases of **initial** data dumps - Maintain and curate the list of already publicly available journals in Pylon -#### Community - -- Encourage people to pin in ideological, social and competitionus ways - ### Decentilized Publishing #### Search Server Prerequesties @@ -73,7 +64,7 @@ Although many of goals looks complex and faraway I strongly believe that we will ### References - Maintain graph statistics (at least PageRank) in Summa/Meta API -- Reference links in Cognitron Web +- Clickable reference links in Cognitron Web (as in the bot) ### Entity Extraction diff --git a/papers-please/04-community-roadmap.md b/papers-please/04-community-roadmap.md new file mode 100644 index 0000000..9a08154 --- /dev/null +++ b/papers-please/04-community-roadmap.md @@ -0,0 +1,13 @@ +# Community + +Technological Leviathan has already usurped the biggest part of our technological and scientific achivements. + +Thus confronting him in a non-public manner has little chances to win. Only spreading ideas of the vital necessity of equal, free and comfortable access to the knowledge into wide layers of people can lead to the real shift. + +The ultimate goal is a wide acceptance of the idea that knowledge has no master and it is much more beneficial for all of us to have freely accessible and searchable corpus of already discovered knowledge. + +Putting aside dark sides of what big tech companies are doing right now, they also have democratized access to the Internet but still incapable to do it for valuable parts of knowledge corpus due to various technological and legal issues. + +- Announcing goals widely +- Write and maintain documentation in clean English language +- Encourage people to participate in spreading by ideological and social ways diff --git a/papers-please/04-shared-destiny.md b/papers-please/04-shared-destiny.md deleted file mode 100644 index e69de29..0000000 diff --git a/nexus/cognitron/__init__.py b/papers-please/05-dream.md similarity index 100% rename from nexus/cognitron/__init__.py rename to papers-please/05-dream.md diff --git a/papers-please/98-new-conditions.md b/papers-please/06-armory.md similarity index 50% rename from papers-please/98-new-conditions.md rename to papers-please/06-armory.md index 17b708d..e407d10 100644 --- a/papers-please/98-new-conditions.md +++ b/papers-please/06-armory.md @@ -1,20 +1,4 @@ -# New Conditions - -We have silently crossed Rubicon. The Internet entered in our life and now it has become an integral and essential part of our lives. -It multiplied our powers and also it multiplied dangers we are put under. - -## Technological Leviathan - -Starting from 2010s there are rising tensions on the digital frontiers. The Internet that has been created to unite people across the world now is dissipating into divided islands. Rules of these dissected pieces are dictated by those who is hunger to manage and control for the sake of their own stability but oftenly not for the sake of who are hunger to learn and move humankind forward. - -Here just a few attacks on freedom to mention: -- Great Firewall of China that is banning the entire country out of presence in the world -- US Corporations that taking responsibility of judging what is good and evil using full power of their technologies and de-facto applying laws of USA extraterritorially -- Russia that is moving rapidly on the Chinese path in her attempts to border Internet traffic. The ultimate goal is spreading lies and propaganda inside and to outside to keep people ignorant. - -Many moves that governments make means that we are considered not sane enough to live in the digital world of information. - -Is this a fate we are destined to live with? +## Freedom Armory There is a plenty of projects that are in need of your time or donation support to keep fighting against digital borders: diff --git a/papers-please/99-development.md b/papers-please/99-development.md index e69de29..28ab1ed 100644 --- a/papers-please/99-development.md +++ b/papers-please/99-development.md @@ -0,0 +1,22 @@ +## Prerequisite + +Install system packages for various OSes: +```shell script +sudo ./repository/install-packages.sh +``` + +### Ubuntu 20.04 + +#### Docker +[Installation Guide](https://docs.docker.com/engine/install/ubuntu/) + +#### IPFS +[Installation Guide](https://docs.ipfs.io/install/) + +### MacOS + +#### Docker +[Installation Guide](https://docs.docker.com/docker-for-mac/install/) + +#### IPFS +[Installation Guide](https://docs.ipfs.io/install/) \ No newline at end of file diff --git a/rules/nodejs/package.json b/rules/nodejs/package.json index 68e225a..8a3c8cd 100644 --- a/rules/nodejs/package.json +++ b/rules/nodejs/package.json @@ -21,6 +21,7 @@ "css-loader": "^5.0.1", "dateformat": "^4.4.1", "deepmerge": "^4.2.2", + "electron": "^12.0.5", "eslint": "^7.17.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", @@ -36,6 +37,7 @@ "grpc-web": "^1.2.1", "html-entities": "^2.3.2", "html-webpack-plugin": "^5.3.1", + "ipfs-http-client": "^49.0.4", "js-cookie": "^2.2.1", "lodash": "^4.17.20", "loglevel": "^1.7.1", diff --git a/rules/nodejs/yarn.lock b/rules/nodejs/yarn.lock index 94ed91f..1861fa0 100644 --- a/rules/nodejs/yarn.lock +++ b/rules/nodejs/yarn.lock @@ -22,19 +22,19 @@ integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== "@babel/core@^7.13.14": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0" - integrity sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ== + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" + integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.13" + "@babel/generator" "^7.13.16" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.15" + "@babel/helpers" "^7.13.16" + "@babel/parser" "^7.13.16" "@babel/template" "^7.12.13" "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.14" + "@babel/types" "^7.13.16" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -42,12 +42,12 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.13.9": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== +"@babel/generator@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" + integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.16" jsesc "^2.5.1" source-map "^0.5.0" @@ -66,12 +66,12 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" - integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" + integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== dependencies: - "@babel/compat-data" "^7.13.12" + "@babel/compat-data" "^7.13.15" "@babel/helper-validator-option" "^7.12.17" browserslist "^4.14.5" semver "^6.3.0" @@ -133,12 +133,12 @@ "@babel/types" "^7.12.13" "@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" + integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" "@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" @@ -240,14 +240,14 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" - integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== +"@babel/helpers@^7.13.16": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" + integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== dependencies: "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/traverse" "^7.13.17" + "@babel/types" "^7.13.17" "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.13.10" @@ -258,10 +258,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" - integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== +"@babel/parser@^7.12.13", "@babel/parser@^7.13.16", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" + integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -512,11 +512,11 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-block-scoping@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892" + integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-classes@^7.13.0": version "7.13.0" @@ -539,9 +539,9 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-destructuring@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" + integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" @@ -835,9 +835,9 @@ esutils "^2.0.2" "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" + integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== dependencies: regenerator-runtime "^0.13.4" @@ -850,33 +850,32 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.7.0": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" - integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17", "@babel/traverse@^7.7.0": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" + integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" + "@babel/generator" "^7.13.16" "@babel/helper-function-name" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.15" - "@babel/types" "^7.13.14" + "@babel/parser" "^7.13.16" + "@babel/types" "^7.13.17" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" - integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" + integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== dependencies: "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" to-fast-properties "^2.0.0" "@bazel/bazelisk@latest": - version "1.7.5" - resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.5.tgz#dd1a52e3d23464f72de55aa3dc4777847fa85373" - integrity sha512-JHwP9JhfZUSoj4sku471Bjw4uE773U2Agujnx0CdPkeRk25khy1l3VyjaPaHB+z1fmMnM6ED3M7tetQUsovUQg== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.8.0.tgz#7bdb7c7068d4779ba8ddbf8cd72afb9b2099bb6e" + integrity sha512-RcovBpVPlLptW/+j1+Xbnr4+Ooy1HO8bG2ECAC0pegLvKFWhO6X3twLKKAJ2KQ4jkoeE0xzUUWIL9zyaIsNxLA== "@bazel/buildifier@latest": version "4.0.1" @@ -898,6 +897,22 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== +"@electron/get@^1.0.1": + version "1.12.4" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" + integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + "@eslint/eslintrc@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" @@ -914,19 +929,22 @@ strip-json-comments "^3.1.1" "@grpc/grpc-js@^1.2.12": - version "1.2.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.12.tgz#0153f27512acf69184bb52c0a1035ca91d6c14b0" - integrity sha512-+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.0.tgz#c6febaaf00ce7f53b5ec52c7cf3e2a4725b82bcb" + integrity sha512-fiL7ZaGg2HBiFtmv6m34d5jEgEtNXfctjzB3f7b3iuT7olBX4mHLMOqOBmGTTSOTfNRQJH5+vsyk6mEz3I0Q7Q== dependencies: "@types/node" ">=12.12.47" - google-auth-library "^6.1.1" - semver "^6.2.0" "@mdi/font@^5.8.55": version "5.9.55" resolved "https://registry.yarnpkg.com/@mdi/font/-/font-5.9.55.tgz#41acd50b88073ded7095fc3029d8712b6e12f38e" integrity sha512-jswRF6q3eq8NWpWiqct6q+6Fg/I7nUhrxYJfiEM8JJpap0wVJLQdbKtyS65GdlK7S7Ytnx3TTi/bmw+tBhkGmg== +"@multiformats/base-x@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" + integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== + "@nodelib/fs.scandir@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" @@ -1029,15 +1047,15 @@ wrap-ansi "^7.0.0" "@nuxt/components@^2.1.4": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.1.6.tgz#5fc35c168bdfaa9f48854e335e5710ced8f71680" - integrity sha512-TXgqc43xIn+Lgnkc2NY1IB3psZxynjMlGIl4q5jB4Ylzf4e7LAB5R6nFSoR/0etkdvifQmGsMlwV6rbjUOdSrw== + version "2.1.7" + resolved "https://registry.yarnpkg.com/@nuxt/components/-/components-2.1.7.tgz#8acf0ffeca52593a529b5228fa578a31c946ae1f" + integrity sha512-elN055qIqUgSp2QtsoDjwcVuY7wiAaVEFcSjuLIPlAmgA/xP9TW1yF67i+0FDHz3P/EfS5gLbHo7G/Qq1K4XqA== dependencies: - chalk "^4.1.0" + chalk "^4.1.1" chokidar "^3.5.1" glob "^7.1.6" globby "^11.0.3" - scule "^0.1.1" + scule "^0.2.1" semver "^7.3.5" upath "^2.0.1" vue-template-compiler "^2.6.12" @@ -1311,6 +1329,71 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -1354,7 +1437,7 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/long@*": +"@types/long@*", "@types/long@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== @@ -1365,9 +1448,19 @@ integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*", "@types/node@>=12.12.47": - version "14.14.41" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" - integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== + version "15.0.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" + integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== + +"@types/node@^13.7.0": + version "13.13.51" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.51.tgz#a424c5282f99fc1ca41f11b727b6aea80668bcba" + integrity sha512-66/xg5I5Te4oGi5Jws11PtNmKkZbOPZWyBZZ/l5AOrWj1Dyw+6Ge/JhYTq/2/Yvdqyhrue8RL+DGI298OJ0xcg== + +"@types/node@^14.6.2": + version "14.14.43" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" + integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== "@types/q@^1.5.1": version "1.5.4" @@ -1680,6 +1773,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@zxing/text-encoding@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1713,9 +1811,9 @@ acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-walk@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" - integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" + integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== acorn@^3.0.4: version "3.3.0" @@ -1738,16 +1836,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" + version "8.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.1.tgz#0d36af126fb6755095879c1dc6fd7edf7d60a5fb" + integrity sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg== aggregate-error@^3.0.0: version "3.1.0" @@ -1791,9 +1882,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.1.0.tgz#45d5d3d36c7cdd808930cc3e603cf6200dbeb736" - integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== + version "8.2.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602" + integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1878,6 +1969,14 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +any-signal@^2.1.0, any-signal@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" + integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.3" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1934,6 +2033,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1986,11 +2090,6 @@ array.prototype.flat@^1.2.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" -arrify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -2004,7 +2103,7 @@ ascli@~1: colour "~0.7.1" optjs "~3.2.2" -asn1.js@^5.2.0: +asn1.js@^5.0.1, asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -2054,6 +2153,11 @@ async@^2.6.2: dependencies: lodash "^4.17.14" +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" @@ -2077,6 +2181,13 @@ autoprefixer@^9.6.1: postcss "^7.0.32" postcss-value-parser "^4.1.0" +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" + axios-retry@^3.1.9: version "3.1.9" resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.1.9.tgz#6c30fc9aeb4519aebaec758b90ef56fa03fe72e8" @@ -2156,7 +2267,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1: +base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2189,7 +2300,7 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bignumber.js@^9.0.0: +bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== @@ -2211,6 +2322,27 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blakejs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" + integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= + +blob-to-it@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.2.tgz#bc76550638ca13280dbd3f202422a6a132ffcc8d" + integrity sha512-yD8tikfTlUGEOSHExz4vDCIQFLaBPXIL0KcxGQt9RbwMVXBEh+jokdJyStvTXPgWrdKfwgk7RX8GPsgrYzsyng== + dependencies: + browser-readablestream-to-it "^1.0.2" + bluebird@^3.1.1, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2259,6 +2391,11 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +boolean@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.3.tgz#0fee0c9813b66bef25a8a6a904bb46736d05f024" + integrity sha512-EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA== + bootstrap-scss@^4.5.3: version "4.6.0" resolved "https://registry.yarnpkg.com/bootstrap-scss/-/bootstrap-scss-4.6.0.tgz#1cc8227029fbd5680c2b0bdf42ceccfdc2f99bfa" @@ -2280,6 +2417,19 @@ bootstrap-vue@^2.17.3: resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + boxen@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" @@ -2330,6 +2480,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz#f6b8d18e7a35b0321359261a32aa2c70f46921c4" + integrity sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -2391,21 +2546,21 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.6.4: - version "4.16.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" - integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.4, browserslist@^4.6.4: + version "4.16.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae" + integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A== dependencies: - caniuse-lite "^1.0.30001208" + caniuse-lite "^1.0.30001214" colorette "^1.2.2" - electron-to-chromium "^1.3.712" + electron-to-chromium "^1.3.719" escalade "^3.1.1" node-releases "^1.1.71" -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-from@^1.0.0: version "1.1.1" @@ -2436,7 +2591,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.1.0: +buffer@^5.1.0, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2444,6 +2599,14 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.1, buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -2537,6 +2700,19 @@ cache-loader@^4.1.0: neo-async "^2.6.1" schema-utils "^2.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2622,10 +2798,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001205, caniuse-lite@^1.0.30001208: - version "1.0.30001209" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001209.tgz#1bb4be0bd118e98e21cfb7ef617b1ef2164622f4" - integrity sha512-2Ktt4OeRM7EM/JaOZjuLzPYAIqmbwQMNnYbgooT+icoRGrKOyAxA1xhlnotBD1KArRSPsuJp3TdYcZYrL7qNxA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001205, caniuse-lite@^1.0.30001214: + version "1.0.30001219" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz#5bfa5d0519f41f993618bd318f606a4c4c16156b" + integrity sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ== chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" @@ -2647,10 +2823,10 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -2726,6 +2902,16 @@ ci-info@^3.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== +cids@^1.0.0, cids@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.6.tgz#ac7aea7dbcabaa64ca242b5d970d596a5c34d006" + integrity sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ== + dependencies: + multibase "^4.0.1" + multicodec "^3.0.1" + multihashes "^4.0.1" + uint8arrays "^2.1.3" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2739,6 +2925,11 @@ circular-json@^0.3.1: resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2817,6 +3008,13 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2894,7 +3092,14 @@ colour@~0.7.1: resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" integrity sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g= -commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.15.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2949,7 +3154,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.4.6, concat-stream@^1.5.0: +concat-stream@^1.4.6, concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2959,6 +3164,14 @@ concat-stream@^1.4.6, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -3079,11 +3292,11 @@ copy-webpack-plugin@^8.1.1: serialize-javascript "^5.0.1" core-js-compat@^3.10.0, core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz#62183a3a77ceeffcc420d907a3e6fc67d9b27f1c" - integrity sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg== + version "3.11.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.11.0.tgz#635683f43480a0b41e3f6be3b1c648dadb8b4390" + integrity sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA== dependencies: - browserslist "^4.16.3" + browserslist "^4.16.4" semver "7.0.0" core-js@^2.6.5: @@ -3092,9 +3305,9 @@ core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.6.5: - version "3.10.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.1.tgz#e683963978b6806dcc6c0a4a8bd4ab0bdaf3f21a" - integrity sha512-pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA== + version "3.11.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.0.tgz#05dac6aa70c0a4ad842261f8957b961d36eb8926" + integrity sha512-bd79DPpx+1Ilh9+30aT5O1sgpQd4Ttg8oqkqi51ZzhedMM1omD2e6IOF48Z/DzDCZ2svp49tN/3vneTK6ZBkXw== core-util-is@~1.0.0: version "1.0.2" @@ -3238,9 +3451,9 @@ css-loader@^4.3.0: semver "^7.3.2" css-loader@^5.0.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.2.tgz#65f2c1482255f15847ecad6cbc515cae8a5b234e" - integrity sha512-IS722y7Lh2Yq+acMR74tdf3faMOLRP2RfLwS0VzSS7T98IHtacMWJLku3A0OBTFHB07zAa4nWBhA8gfxwQVWGQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" + integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw== dependencies: camelcase "^6.2.0" icss-utils "^5.1.0" @@ -3438,13 +3651,6 @@ debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@^3.1.1, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -3452,6 +3658,13 @@ debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -3462,6 +3675,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -3497,6 +3717,11 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3549,11 +3774,21 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -3618,6 +3853,15 @@ dns-equal@^1.0.0: resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= +dns-over-http-resolver@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.2.tgz#148740c1b14d81b78078a1af1d606f2d0c6cc255" + integrity sha512-4J7LoLl26mczU6LdWlhvNM51aWXHJmTz6iDUrGz1sqiAgNb6HzBc/huvkgqS6bYfbCzvlOKW/bGkugReliac0A== + dependencies: + debug "^4.2.0" + native-fetch "^3.0.0" + receptacle "^1.3.2" + dns-packet@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" @@ -3743,6 +3987,11 @@ dotenv@^8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -3758,24 +4007,33 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.712: - version "1.3.717" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" - integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== +electron-fetch@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.3.tgz#06cf363d7f64073ec00a37e9949ec9d29ce6b08a" + integrity sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw== + dependencies: + encoding "^0.1.13" -elliptic@^6.5.3: +electron-to-chromium@^1.3.719: + version "1.3.723" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz#52769a75635342a4db29af5f1e40bd3dad02c877" + integrity sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg== + +electron@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.5.tgz#005cf4375d2ee4563f5e75dc4da4ef871846a8be" + integrity sha512-z0xYB3sPr0qZcDrHUUWqooPKe3yUzBDxQcgQe3f2TLstA84JIFXBoaIJCPh/fJW0+JdF/ZFVeK2SNgLhYtRV+Q== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^14.6.2" + extract-zip "^1.0.3" + +elliptic@^6.5.2, elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -3803,11 +4061,18 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.2: +encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3841,11 +4106,26 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +err-code@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +err-code@^3.0.0, err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -3907,6 +4187,11 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: es6-symbol "~3.1.3" next-tick "~1.0.0" +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" @@ -3980,6 +4265,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" @@ -4138,9 +4428,9 @@ eslint@^2.7.0: user-home "^2.0.0" eslint@^7.17.0: - version "7.24.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.24.0.tgz#2e44fa62d93892bfdb100521f17345ba54b8513a" - integrity sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ== + version "7.25.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" + integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.0" @@ -4263,7 +4553,7 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -4397,11 +4687,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -4435,11 +4720,26 @@ extract-css-chunks-webpack-plugin@^4.9.0: schema-utils "^1.0.0" webpack-sources "^1.1.0" +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.0.0.tgz#9bc72e6860347bb045a876d1c5c0af11e9b984e7" + integrity sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ== + fast-glob@^3.1.1, fast-glob@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" @@ -4462,11 +4762,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-text-encoding@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" - integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== - fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -4486,6 +4781,13 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -4651,9 +4953,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + version "1.14.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe" + integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg== font-awesome@^4.7.0: version "4.7.0" @@ -4665,6 +4967,20 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -4715,7 +5031,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.1.0: +fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -4801,25 +5117,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaxios@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.2.0.tgz#33bdc4fc241fc33b8915a4b8c07cfb368b932e46" - integrity sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.3.0" - -gcp-metadata@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.2.1.tgz#31849fbcf9025ef34c2297c32a89a1e7e9f2cd62" - integrity sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - generate-function@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -4853,6 +5150,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" + integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== + get-port-please@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-1.1.0.tgz#7a60007578df6c4570c233803b48854c44db41f7" @@ -4860,13 +5162,20 @@ get-port-please@^1.0.0: dependencies: fs-memo "^1.2.0" -get-stream@^4.0.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -4924,6 +5233,29 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +global-agent@^2.0.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -4948,6 +5280,13 @@ globals@^9.2.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + globby@^11.0.3: version "11.0.3" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" @@ -4987,33 +5326,28 @@ gonzales-pe-sl@^4.2.3: dependencies: minimist "1.1.x" -google-auth-library@^6.1.1: - version "6.1.6" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" - integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-p12-pem@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.0.3.tgz#673ac3a75d3903a87f05878f3c75e06fc151669e" - integrity sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA== - dependencies: - node-forge "^0.10.0" - google-protobuf@^3.15.8, google-protobuf@^3.6.1: version "3.15.8" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.15.8.tgz#5f3948905e4951c867d6bc143f385a80e2a39efe" integrity sha512-2jtfdqTaSxk0cuBJBtTTWsot4WtR9RVr2rXg7x7OoqiuOKopPrwXpM1G4dXIkLcUNRh3RKzz76C8IOkksZSeOw== +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" @@ -5032,9 +5366,9 @@ grpc-web@^1.2.1: integrity sha512-ibBaJPzfMVuLPgaST9w0kZl60s+SnkPBQp6QKdpEr85tpc1gXW2QDqSne9xiyiym0logDfdUSm4aX5h9YBA2mw== grpc@^1.24.6: - version "1.24.6" - resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.24.6.tgz#1862a9d990f79cfa20b962d77f090000d915469c" - integrity sha512-BtifKdClMYU0ZEo0Pdr2WV9ZH54AoEdIcp2BfJkh87g2R3HoNPLYKHRYefw/ByxrCdVDTAy3hkraFISpqsRcrw== + version "1.24.7" + resolved "https://registry.yarnpkg.com/grpc/-/grpc-1.24.7.tgz#58d8eb2a8a9c11ccd678f27403ba54ee4ea3d895" + integrity sha512-AFWychfq60LBUrelOWgT5PWk05n98z7/C8qCgeNAJ4YvK8khVNSlbEHMLaCu7COqbX1JwJxSbzw9B9YhnzKeYQ== dependencies: "@types/bytebuffer" "^5.0.40" lodash.camelcase "^4.3.0" @@ -5043,15 +5377,6 @@ grpc@^1.24.6: node-pre-gyp "^0.16.0" protobufjs "^5.0.3" -gtoken@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.2.1.tgz#4dae1fea17270f457954b4a45234bba5fc796d16" - integrity sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.0.3" - jws "^4.0.0" - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -5308,6 +5633,11 @@ htmlparser2@^3.10.1: inherits "^2.0.1" readable-stream "^3.1.1" +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -5361,9 +5691,9 @@ http-proxy-middleware@0.19.1: micromatch "^3.1.10" http-proxy-middleware@^1.0.6: - version "1.1.2" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.1.2.tgz#38d062ce4182b2931442efc2d9a0c429cab634f8" - integrity sha512-YRFUeOG3q85FJjAaYVJUoNRW9a73SDlOtAyQOS5PHLr18QeZ/vEhxywNoOPiEO8BxCegz4RXzTHcvyLEGB78UA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.0.tgz#eda5e0b7d1f27ac82bd11eb5099d8c309d30cf30" + integrity sha512-nHn8lcFNmxCalzHGXMn0ojKunXC9twBvJ+y7QNhvK/ep7ZDOXvO7Gph01rSwsMOrG4m6N72gAAWXMYhPZvK6OA== dependencies: "@types/http-proxy" "^1.17.5" http-proxy "^1.18.1" @@ -5385,14 +5715,6 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -5405,6 +5727,13 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -5417,7 +5746,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5538,7 +5867,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -5604,6 +5933,11 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -5614,6 +5948,134 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipfs-core-types@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz#5dab234428d031d0657d1708f7bb040281d6ab5f" + integrity sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg== + dependencies: + cids "^1.1.5" + multiaddr "^8.0.0" + peer-id "^0.14.1" + +ipfs-core-utils@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz#ebc1281d14d26538881a8249c3eed8c27b98f519" + integrity sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw== + dependencies: + any-signal "^2.1.2" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + cids "^1.1.5" + err-code "^2.0.3" + ipfs-core-types "^0.3.1" + ipfs-utils "^6.0.1" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.1" + multiaddr "^8.0.0" + multiaddr-to-uri "^6.0.0" + parse-duration "^0.4.4" + timeout-abort-controller "^1.1.1" + uint8arrays "^2.1.3" + +ipfs-http-client@^49.0.4: + version "49.0.4" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz#a7b5a696ab755ce1e822240e1774caab6cffa117" + integrity sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA== + dependencies: + abort-controller "^3.0.0" + any-signal "^2.1.2" + bignumber.js "^9.0.1" + cids "^1.1.5" + debug "^4.1.1" + form-data "^3.0.0" + ipfs-core-types "^0.3.1" + ipfs-core-utils "^0.7.2" + ipfs-utils "^6.0.1" + ipld-block "^0.11.0" + ipld-dag-cbor "^0.17.0" + ipld-dag-pb "^0.20.0" + ipld-raw "^6.0.0" + it-last "^1.0.4" + it-map "^1.0.4" + it-tar "^1.2.2" + it-to-stream "^0.1.2" + merge-options "^3.0.4" + multiaddr "^8.0.0" + multibase "^4.0.2" + multicodec "^3.0.1" + multihashes "^4.0.2" + nanoid "^3.1.12" + native-abort-controller "^1.0.3" + parse-duration "^0.4.4" + stream-to-it "^0.2.2" + uint8arrays "^2.1.3" + +ipfs-utils@^6.0.1: + version "6.0.7" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-6.0.7.tgz#876acf88ca012e33a8be29f16e6826eafaa4b16b" + integrity sha512-VlFDyRuCSOKXPOXb68nXSUVEPA+eXbdS7LT22k4aZvFNIoB2OtysDEt8lal93UOB/QS0Gy+6DUoxj1wJ37SIxQ== + dependencies: + abort-controller "^3.0.0" + any-signal "^2.1.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^3.0.1" + fs-extra "^9.0.1" + is-electron "^2.2.0" + iso-url "^1.0.0" + it-glob "~0.0.11" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + nanoid "^3.1.20" + native-abort-controller "^1.0.3" + native-fetch "^3.0.0" + node-fetch "^2.6.1" + stream-to-it "^0.2.2" + +ipld-block@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/ipld-block/-/ipld-block-0.11.1.tgz#c3a7b41aee3244187bd87a73f980e3565d299b6e" + integrity sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw== + dependencies: + cids "^1.0.0" + +ipld-dag-cbor@^0.17.0: + version "0.17.1" + resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz#842e6c250603e5791049168831a425ec03471fb1" + integrity sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw== + dependencies: + borc "^2.1.2" + cids "^1.0.0" + is-circular "^1.0.2" + multicodec "^3.0.1" + multihashing-async "^2.0.0" + uint8arrays "^2.1.3" + +ipld-dag-pb@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz#025c0343aafe6cb9db395dd1dc93c8c60a669360" + integrity sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + protons "^2.0.0" + reset "^0.1.0" + run "^1.4.0" + stable "^0.1.8" + uint8arrays "^1.0.0" + +ipld-raw@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-6.0.0.tgz#74d947fcd2ce4e0e1d5bb650c1b5754ed8ea6da0" + integrity sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg== + dependencies: + cids "^1.0.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -5691,6 +6153,11 @@ is-callable@^1.1.4, is-callable@^1.2.3: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== +is-circular@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" + integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -5704,9 +6171,9 @@ is-color-stop@^1.0.0: rgba-regex "^1.0.0" is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" + integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== dependencies: has "^1.0.3" @@ -5757,6 +6224,11 @@ is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-electron@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0" + integrity sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q== + is-expression@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" @@ -5799,6 +6271,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5813,6 +6290,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + is-my-ip-valid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" @@ -5880,6 +6364,11 @@ is-plain-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -5949,6 +6438,22 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.1" +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" + foreach "^2.0.5" + has-symbols "^1.0.1" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5969,6 +6474,29 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +iso-constants@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" + integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== + +iso-random-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.0.tgz#3f0118166d5443148bbc134345fb100002ad0f1d" + integrity sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg== + dependencies: + events "^3.3.0" + readable-stream "^3.4.0" + +iso-url@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.1.5.tgz#875a0f2bf33fa1fc200f8d89e3f49eee57a8f0d9" + integrity sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -5981,6 +6509,84 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +it-all@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.5.tgz#e880510d7e73ebb79063a76296a2eb3cb77bbbdb" + integrity sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA== + +it-concat@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-1.0.3.tgz#84db9376e4c77bf7bc1fd933bb90f184e7cef32b" + integrity sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA== + dependencies: + bl "^4.0.0" + +it-glob@~0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.11.tgz#c6d8daf783167e012a55cdcca52a33b7f4d6834f" + integrity sha512-p02iVYsvOPU7cW4sV9BC62Kz6Mz2aUTJz/cKWDeFqc05kzB3WgSq8OobZabVA/K4boSm6q+s0xOZ8xiArLSoXQ== + dependencies: + fs-extra "^9.0.1" + minimatch "^3.0.4" + +it-last@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.5.tgz#5c711c7d58948bcbc8e0cb129af3a039ba2a585b" + integrity sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q== + +it-map@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.5.tgz#2f6a9b8f0ba1ed1aeadabf86e00b38c73a1dc299" + integrity sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ== + +it-peekable@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.2.tgz#3b2c7948b765f35b3bb07abbb9b2108c644e73c1" + integrity sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg== + +it-reader@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-2.1.0.tgz#b1164be343f8538d8775e10fb0339f61ccf71b0f" + integrity sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw== + dependencies: + bl "^4.0.0" + +it-tar@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-1.2.2.tgz#8d79863dad27726c781a4bcc491f53c20f2866cf" + integrity sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA== + dependencies: + bl "^4.0.0" + buffer "^5.4.3" + iso-constants "^0.1.2" + it-concat "^1.0.0" + it-reader "^2.0.0" + p-defer "^3.0.0" + +it-to-stream@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.2.tgz#7163151f75b60445e86b8ab1a968666acaacfe7b" + integrity sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ== + dependencies: + buffer "^5.6.0" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +it-to-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" + integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== + dependencies: + buffer "^6.0.3" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + jest-worker@^26.5.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -6005,6 +6611,11 @@ js-cookie@^2.2.1: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -6033,12 +6644,10 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-bigint@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" - integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== - dependencies: - bignumber.js "^9.0.0" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" @@ -6067,6 +6676,18 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha1-py8hfcSvxGKf/1/rME3BvVGi89I= + dependencies: + delimit-stream "0.1.0" + json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -6127,22 +6748,17 @@ jstransformer@1.0.0: is-promise "^2.0.0" promise "^7.0.1" -jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" +keypair@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/keypair/-/keypair-1.0.3.tgz#4314109d94052a0acfd6b885695026ad29529c80" + integrity sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ== -jws@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" + json-buffer "3.0.0" killable@^1.0.1: version "1.0.1" @@ -6229,6 +6845,26 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +libp2p-crypto@^0.19.0: + version "0.19.4" + resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.19.4.tgz#90603a1318e903fbf142db3124ff3b2a1ba07ec7" + integrity sha512-8iUwiNlU/sFEtXQpxaehmXUQ5Fw6r52H7NH0d8ZSb8nKBbO6r8y8ft6f1to8A81SrFOVd4/zsjEzokpedDvRgw== + dependencies: + err-code "^3.0.1" + is-typedarray "^1.0.0" + iso-random-stream "^2.0.0" + keypair "^1.0.1" + multibase "^4.0.3" + multicodec "^3.0.1" + multihashes "^4.0.2" + multihashing-async "^2.1.2" + node-forge "^0.10.0" + pem-jwk "^2.0.0" + protobufjs "^6.10.2" + secp256k1 "^4.0.0" + uint8arrays "^2.1.4" + ursa-optional "^0.10.1" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -6360,7 +6996,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.10: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6370,6 +7006,11 @@ loglevel@^1.6.8, loglevel@^1.7.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + long@~3: version "3.2.0" resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" @@ -6387,6 +7028,16 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^4.1.2: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -6450,6 +7101,13 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -6475,9 +7133,9 @@ media-typer@0.3.0: integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.0.tgz#445e47827fb757a4e5f35b0a6a62743cbfdc0a0d" - integrity sha512-FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA== + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== dependencies: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" @@ -6510,6 +7168,13 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" @@ -6577,7 +7242,7 @@ mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.17, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.17, mime-types@~2.1.24: version "2.1.30" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== @@ -6604,6 +7269,11 @@ mimic-fn@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + mini-css-extract-plugin@^1.3.4: version "1.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.0.tgz#69bee3b273d2d4ee8649a2eb409514b7df744a27" @@ -6623,7 +7293,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@*, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -6715,7 +7385,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -6771,6 +7441,42 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multiaddr-to-uri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz#8f08a75c6eeb2370d5d24b77b8413e3f0fa9bcc0" + integrity sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A== + dependencies: + multiaddr "^8.0.0" + +multiaddr@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" + integrity sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + dns-over-http-resolver "^1.0.0" + err-code "^2.0.3" + is-ip "^3.1.0" + multibase "^3.0.0" + uint8arrays "^1.1.0" + varint "^5.0.0" + +multibase@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" + integrity sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw== + dependencies: + "@multiformats/base-x" "^4.0.1" + web-encoding "^1.0.6" + +multibase@^4.0.1, multibase@^4.0.2, multibase@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.4.tgz#55ef53e6acce223c5a09341a8a3a3d973871a577" + integrity sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg== + dependencies: + "@multiformats/base-x" "^4.0.1" + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -6784,6 +7490,48 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +multicodec@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-2.1.3.tgz#b9850635ad4e2a285a933151b55b4a2294152a5d" + integrity sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA== + dependencies: + uint8arrays "1.1.0" + varint "^6.0.0" + +multicodec@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.0.1.tgz#94e043847ee11fcce92487609ac9010429a95e31" + integrity sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ== + dependencies: + uint8arrays "^2.1.3" + varint "^5.0.2" + +multihashes@^4.0.1, multihashes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.2.tgz#d76aeac3a302a1bed9fe1ec964fb7a22fa662283" + integrity sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ== + dependencies: + multibase "^4.0.1" + uint8arrays "^2.1.3" + varint "^5.0.2" + +multihashing-async@^2.0.0, multihashing-async@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.2.tgz#9ed68f183bde70e0416b166bbc59a0c0623a0ede" + integrity sha512-FTPNnWWxwIK5dXXmTFhySSF8Fkdqf7vzqpV09+RWsmfUhrsL/b3Arg3+bRrBnXTtjxm3JRGI3wSAtQHL0QCxhQ== + dependencies: + blakejs "^1.1.0" + err-code "^3.0.0" + js-sha3 "^0.8.0" + multihashes "^4.0.1" + murmurhash3js-revisited "^3.0.0" + uint8arrays "^2.1.3" + +murmurhash3js-revisited@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" + integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== + mustache@^2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" @@ -6799,12 +7547,12 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1, nan@^2.13.2, nan@^2.14.2: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.20, nanoid@^3.1.22: +nanoid@^3.1.12, nanoid@^3.1.20, nanoid@^3.1.22: version "3.1.22" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== @@ -6826,6 +7574,16 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +native-abort-controller@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.3.tgz#35974a2e189c0d91399c8767a989a5bf058c1435" + integrity sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA== + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -6875,7 +7633,12 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-fetch@^2.3.0, node-fetch@^2.6.1: +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -6885,10 +7648,15 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-gyp-build@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" + integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== + node-html-parser@^3.1.2: - version "3.1.5" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.1.5.tgz#ffb62f2a336b6b634f41f3315487fe446fb9d7b5" - integrity sha512-/XKKdWbSUymlXTjtNBcDlmM7Jp8S/BqGMzLx7r2bd2NMjTXz+ofuLcz0Bl3VT0vTvVzF+N511FNLrZt4HVitXA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-3.2.0.tgz#2b1b81297bc6387a868b227761b35e553d5bf92c" + integrity sha512-fXhiFFnccwoUW92VvDACbtg1Kv7Ky0Qj9Rv7ETWpczSFLW07JWM6zQ+d523kiHNpodQHlvDhtjK2T86AclzXzQ== dependencies: css-select "^3.1.2" he "1.2.0" @@ -7025,13 +7793,26 @@ normalize-url@^3.0.0, normalize-url@^3.3.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" @@ -7332,11 +8113,29 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -7460,6 +8259,11 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-duration@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-0.4.4.tgz#11c0f51a689e97d06c57bd772f7fda7dc013243c" + integrity sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg== + parse-git-config@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-3.0.0.tgz#4a2de08c7b74a2555efa5ae94d40cd44302a6132" @@ -7594,6 +8398,31 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +peer-id@^0.14.1: + version "0.14.8" + resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.14.8.tgz#667c6bedc8ab313c81376f6aca0baa2140266fab" + integrity sha512-GpuLpob/9FrEFvyZrKKsISEkaBYsON2u0WtiawLHj1ii6ewkoeRiSDFLyIefYhw0jGvQoeoZS05jaT52X7Bvig== + dependencies: + cids "^1.1.5" + class-is "^1.1.0" + libp2p-crypto "^0.19.0" + minimist "^1.2.5" + multihashes "^4.0.2" + protobufjs "^6.10.2" + uint8arrays "^2.0.5" + +pem-jwk@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pem-jwk/-/pem-jwk-2.0.0.tgz#1c5bb264612fc391340907f5c1de60c06d22f085" + integrity sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA== + dependencies: + asn1.js "^5.0.1" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" @@ -8297,13 +9126,11 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" + integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-svgo@^4.0.3: @@ -8364,9 +9191,9 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 supports-color "^6.1.0" postcss@^8.2.10: - version "8.2.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b" - integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw== + version "8.2.13" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.13.tgz#dbe043e26e3c068e45113b1ed6375d2d37e2129f" + integrity sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ== dependencies: colorette "^1.2.2" nanoid "^3.1.22" @@ -8387,6 +9214,11 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier@^1.18.2: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -8425,7 +9257,7 @@ progress@^1.1.8: resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= -progress@^2.0.0: +progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -8451,6 +9283,11 @@ proper-lockfile@^4.1.2: retry "^0.12.0" signal-exit "^3.0.2" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + protobufjs@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" @@ -8461,11 +9298,45 @@ protobufjs@^5.0.3: glob "^7.0.5" yargs "^3.10.0" +protobufjs@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.2.tgz#b9cb6bd8ec8f87514592ba3fdfd28e93f33a469b" + integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" "^13.7.0" + long "^4.0.0" + +protocol-buffers-schema@^3.3.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz#8388e768d383ac8cbea23e1280dfadb79f4122ad" + integrity sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw== + protocols@^1.1.0, protocols@^1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protons@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protons/-/protons-2.0.1.tgz#bfee5123c100001dcf56ab8f71b1b36f2e8289f1" + integrity sha512-FlmPorLEeCEDPu+uIn0Qardgiy5XqVA4IyNTz9wb9c0e2U7BEXdRcIbx64r09o4Abtf+4B7mkTtMbsIXMxZzKw== + dependencies: + protocol-buffers-schema "^3.3.1" + signed-varint "^2.0.1" + uint8arrays "^2.1.3" + varint "^5.0.0" + proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -8792,7 +9663,7 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -8826,6 +9697,13 @@ readline2@^1.0.1: is-fullwidth-code-point "^1.0.0" mute-stream "0.0.5" +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + rechoir@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" @@ -8961,6 +9839,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +reset@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/reset/-/reset-0.1.0.tgz#9fc7314171995ae6cb0b7e58b06ce7522af4bafb" + integrity sha1-n8cxQXGZWubLC35YsGznUir0uvs= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -9008,6 +9891,13 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13 is-core-module "^2.2.0" path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -9029,6 +9919,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retimer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" + integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -9078,6 +9973,18 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + 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" + run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" @@ -9104,6 +10011,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +run@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/run/-/run-1.4.0.tgz#e17d9e9043ab2fe17776cb299e1237f38f0b4ffa" + integrity sha1-4X2ekEOrL+F3dsspnhI3848LT/o= + dependencies: + minimatch "*" + rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" @@ -9133,7 +10047,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -9170,9 +10084,9 @@ sass-loader@^10.1.1: semver "^7.3.2" sass@^1.32.4: - version "1.32.10" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.10.tgz#d40da4e20031b450359ee1c7e69bc8cc89569241" - integrity sha512-Nx0pcWoonAkn7CRp0aE/hket1UP97GiR1IFw3kcjV3pnenhWgZEWUf0ZcfPOV2fK52fnOcK3JdC/YYZ9E47DTQ== + version "1.32.11" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.11.tgz#b236b3ea55c76602c2ef2bd0445f0db581baa218" + integrity sha512-O9tRcob/fegUVSIV1ihLLZcftIOh0AF1VpKgusUfLqnb2jQ0GLDwI5ivv1FYWivGv8eZ/AwntTyTzjcHu0c/qw== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -9208,10 +10122,19 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -scule@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/scule/-/scule-0.1.1.tgz#6bf026f1815c646f061761f9bfd7a3e783f2d05c" - integrity sha512-1j2RlmUNADEprCkzDaeo8w2tdum/mvQWAKdRaS2raud7IOnPaDbLSFKhcY5xXPbAFYWk4ZQ0BUnfmg0ZUcI+Pg== +scule@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" + integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== + +secp256k1@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + dependencies: + elliptic "^6.5.2" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" select-hose@^2.0.0: version "2.0.0" @@ -9225,6 +10148,11 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -9266,6 +10194,13 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + serialize-javascript@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" @@ -9420,6 +10355,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signed-varint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" + integrity sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk= + dependencies: + varint "~5.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -9630,6 +10572,11 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -9716,6 +10663,13 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-to-it@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.3.tgz#b9320ceb26a51b313de81036d4354d9b657f4d2d" + integrity sha512-xaK9EjPtLox5rrC7YLSBXSanTtUJN/lzJlMFvy9VaROmnyvy0U/X6m2uMhXPJRn3g3M9uOSIzTszW7BPiWSg9w== + dependencies: + get-iterator "^1.0.2" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -9867,6 +10821,13 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -9930,19 +10891,17 @@ table@^3.7.8: string-width "^2.0.0" table@^6.0.4: - version "6.1.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.1.0.tgz#676a0cfb206008b59e783fcd94ef8ba7d67d966c" - integrity sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ== + version "6.6.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.6.0.tgz#905654b79df98d9e9a973de1dd58682532c40e8e" + integrity sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg== dependencies: ajv "^8.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" lodash.clonedeep "^4.5.0" lodash.flatten "^4.4.0" lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: version "1.1.3" @@ -10030,9 +10989,9 @@ terser@^4.1.2, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -10077,6 +11036,14 @@ time-fix-plugin@^2.0.7: resolved "https://registry.yarnpkg.com/time-fix-plugin/-/time-fix-plugin-2.0.7.tgz#4ba70ae2e40cedf34dabe505eda7b71b1b244f50" integrity sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw== +timeout-abort-controller@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29" + integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ== + dependencies: + abort-controller "^3.0.0" + retimer "^2.0.0" + timers-browserify@^2.0.4: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -10113,6 +11080,11 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -10190,6 +11162,11 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -10204,6 +11181,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -10257,6 +11239,21 @@ uglify-js@^3.5.1: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== +uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" + integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== + dependencies: + multibase "^3.0.0" + web-encoding "^1.0.2" + +uint8arrays@^2.0.5, uint8arrays@^2.1.3, uint8arrays@^2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.5.tgz#9e6e6377a9463d5eba4620a3f0450f7eb389a351" + integrity sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA== + dependencies: + multibase "^4.0.1" + unbox-primitive@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -10393,6 +11390,13 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + url-parse@^1.4.3, url-parse@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" @@ -10409,6 +11413,14 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +ursa-optional@^0.10.1: + version "0.10.2" + resolved "https://registry.yarnpkg.com/ursa-optional/-/ursa-optional-0.10.2.tgz#bd74e7d60289c22ac2a69a3c8dea5eb2817f9681" + integrity sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A== + dependencies: + bindings "^1.5.0" + nan "^2.14.2" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -10465,6 +11477,18 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -10493,6 +11517,16 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +varint@^5.0.0, varint@^5.0.2, varint@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + vary@^1.1.2, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -10675,6 +11709,15 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +web-encoding@^1.0.2, web-encoding@^1.0.6: + version "1.1.5" + resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" + integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== + dependencies: + util "^0.12.3" + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + webpack-bundle-analyzer@^4.4.0: version "4.4.1" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1" @@ -10884,6 +11927,19 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -11103,6 +12159,14 @@ yargs@^3.10.0: window-size "^0.1.4" y18n "^3.2.0" +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"