From d4188a3fa2914a48fd28d80d45269a3eb9a358a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Tue, 5 Jul 2022 19:28:22 +0200 Subject: [PATCH] feat: add filepicker package --- .gitignore | 2 + ...cker-npm-1.16.22-8f40dfd9e0-df14eedefd.zip | Bin 24621 -> 0 bytes ...cker-npm-1.16.23-3879b26858-8b1eca3f4e.zip | Bin 24636 -> 0 bytes ...-node-npm-10.8.2-f3c0c9eaee-1eede939be.zip | Bin 0 -> 228424 bytes packages/encryption/.gitignore | 1 - packages/features/.gitignore | 1 - packages/filepicker/.eslintignore | 3 + packages/filepicker/.eslintrc | 6 + packages/filepicker/CHANGELOG.md | 344 ++ packages/filepicker/example/.eslintrc | 5 + packages/filepicker/example/index.html | 21 + packages/filepicker/example/package.json | 42 + .../example/src/classic_file_api.ts | 56 + .../filepicker/example/src/file_system_api.ts | 68 + packages/filepicker/example/src/index.ts | 89 + .../example/src/web_device_interface.js | 138 + packages/filepicker/example/tsconfig.json | 11 + packages/filepicker/example/webpack.config.js | 54 + packages/filepicker/example/yarn.lock | 4100 +++++++++++++++++ packages/filepicker/jest.config.js | 14 + packages/filepicker/linter.tsconfig.json | 4 + packages/filepicker/package.json | 42 + .../src/Cache/FileMemoryCache.spec.ts | 78 + .../filepicker/src/Cache/FileMemoryCache.ts | 48 + .../src/Chunker/ByteChunker.spec.ts | 70 + .../filepicker/src/Chunker/ByteChunker.ts | 35 + .../src/Chunker/OrderedByteChunker.spec.ts | 23 + .../src/Chunker/OrderedByteChunker.ts | 40 + .../filepicker/src/Classic/ClassicReader.ts | 59 + .../filepicker/src/Classic/ClassicSaver.ts | 23 + .../filepicker/src/Interface/FileReader.ts | 11 + .../filepicker/src/Streaming/StreamingApi.ts | 112 + .../src/Streaming/StreamingReader.ts | 75 + .../src/Streaming/StreamingSaver.ts | 49 + packages/filepicker/src/TypedBytes.ts | 7 + packages/filepicker/src/index.ts | 11 + packages/filepicker/src/types.ts | 6 + packages/filepicker/src/utils.spec.ts | 77 + packages/filepicker/src/utils.ts | 56 + packages/filepicker/tsconfig.json | 13 + packages/mobile/metro.config.js | 2 +- packages/mobile/package.json | 2 +- packages/web/.gitignore | 1 - packages/web/package.json | 2 +- yarn.lock | 72 +- 45 files changed, 5848 insertions(+), 25 deletions(-) delete mode 100644 .yarn/cache/@standardnotes-filepicker-npm-1.16.22-8f40dfd9e0-df14eedefd.zip delete mode 100644 .yarn/cache/@standardnotes-filepicker-npm-1.16.23-3879b26858-8b1eca3f4e.zip create mode 100644 .yarn/cache/ts-node-npm-10.8.2-f3c0c9eaee-1eede939be.zip delete mode 100644 packages/encryption/.gitignore delete mode 100644 packages/features/.gitignore create mode 100644 packages/filepicker/.eslintignore create mode 100644 packages/filepicker/.eslintrc create mode 100644 packages/filepicker/CHANGELOG.md create mode 100644 packages/filepicker/example/.eslintrc create mode 100644 packages/filepicker/example/index.html create mode 100644 packages/filepicker/example/package.json create mode 100644 packages/filepicker/example/src/classic_file_api.ts create mode 100644 packages/filepicker/example/src/file_system_api.ts create mode 100644 packages/filepicker/example/src/index.ts create mode 100644 packages/filepicker/example/src/web_device_interface.js create mode 100644 packages/filepicker/example/tsconfig.json create mode 100644 packages/filepicker/example/webpack.config.js create mode 100644 packages/filepicker/example/yarn.lock create mode 100644 packages/filepicker/jest.config.js create mode 100644 packages/filepicker/linter.tsconfig.json create mode 100644 packages/filepicker/package.json create mode 100644 packages/filepicker/src/Cache/FileMemoryCache.spec.ts create mode 100644 packages/filepicker/src/Cache/FileMemoryCache.ts create mode 100644 packages/filepicker/src/Chunker/ByteChunker.spec.ts create mode 100644 packages/filepicker/src/Chunker/ByteChunker.ts create mode 100644 packages/filepicker/src/Chunker/OrderedByteChunker.spec.ts create mode 100644 packages/filepicker/src/Chunker/OrderedByteChunker.ts create mode 100644 packages/filepicker/src/Classic/ClassicReader.ts create mode 100644 packages/filepicker/src/Classic/ClassicSaver.ts create mode 100644 packages/filepicker/src/Interface/FileReader.ts create mode 100644 packages/filepicker/src/Streaming/StreamingApi.ts create mode 100644 packages/filepicker/src/Streaming/StreamingReader.ts create mode 100644 packages/filepicker/src/Streaming/StreamingSaver.ts create mode 100644 packages/filepicker/src/TypedBytes.ts create mode 100644 packages/filepicker/src/index.ts create mode 100644 packages/filepicker/src/types.ts create mode 100644 packages/filepicker/src/utils.spec.ts create mode 100644 packages/filepicker/src/utils.ts create mode 100644 packages/filepicker/tsconfig.json delete mode 100644 packages/web/.gitignore diff --git a/.gitignore b/.gitignore index f30677dae..b422b9fff 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ codeqldb coverage lerna-debug.log +packages/**/dist + **/.pnp.* **/.yarn/* !.yarn/patches diff --git a/.yarn/cache/@standardnotes-filepicker-npm-1.16.22-8f40dfd9e0-df14eedefd.zip b/.yarn/cache/@standardnotes-filepicker-npm-1.16.22-8f40dfd9e0-df14eedefd.zip deleted file mode 100644 index 33e9d00ae33d0edc44f7e133617d856baf5cc6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24621 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 t9pmps;%7MP*OlkX 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 G0RBG{gxbvj diff --git a/.yarn/cache/ts-node-npm-10.8.2-f3c0c9eaee-1eede939be.zip b/.yarn/cache/ts-node-npm-10.8.2-f3c0c9eaee-1eede939be.zip new file mode 100644 index 0000000000000000000000000000000000000000..61b6902729ddb680eae5943a4d52181ac8609f76 GIT binary patch literal 228424 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/encryption/.gitignore b/packages/encryption/.gitignore deleted file mode 100644 index 53c37a166..000000000 --- a/packages/encryption/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist \ No newline at end of file diff --git a/packages/features/.gitignore b/packages/features/.gitignore deleted file mode 100644 index 53c37a166..000000000 --- a/packages/features/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist \ No newline at end of file diff --git a/packages/filepicker/.eslintignore b/packages/filepicker/.eslintignore new file mode 100644 index 000000000..5d9f984e2 --- /dev/null +++ b/packages/filepicker/.eslintignore @@ -0,0 +1,3 @@ +node_modules +dist +example diff --git a/packages/filepicker/.eslintrc b/packages/filepicker/.eslintrc new file mode 100644 index 000000000..cb7136174 --- /dev/null +++ b/packages/filepicker/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "../../.eslintrc", + "parserOptions": { + "project": "./linter.tsconfig.json" + } +} diff --git a/packages/filepicker/CHANGELOG.md b/packages/filepicker/CHANGELOG.md new file mode 100644 index 000000000..7b5c2cab4 --- /dev/null +++ b/packages/filepicker/CHANGELOG.md @@ -0,0 +1,344 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.16.25](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.24...@standardnotes/filepicker@1.16.25) (2022-07-05) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.24](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.23...@standardnotes/filepicker@1.16.24) (2022-07-04) + +### Bug Fixes + +* add missing reflect-metadata package to all packages ([ce3a5bb](https://github.com/standardnotes/snjs/commit/ce3a5bbf3f1d2276ac4abc3eec3c6a44c8c3ba9b)) + +## [1.16.23](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.22...@standardnotes/filepicker@1.16.23) (2022-06-29) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.22](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.21...@standardnotes/filepicker@1.16.22) (2022-06-27) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.21](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.20...@standardnotes/filepicker@1.16.21) (2022-06-27) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.20](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.19...@standardnotes/filepicker@1.16.20) (2022-06-22) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.19](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.18...@standardnotes/filepicker@1.16.19) (2022-06-20) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.18](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.17...@standardnotes/filepicker@1.16.18) (2022-06-16) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.17](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.16...@standardnotes/filepicker@1.16.17) (2022-06-16) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.16](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.15...@standardnotes/filepicker@1.16.16) (2022-06-15) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.15](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.14...@standardnotes/filepicker@1.16.15) (2022-06-10) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.14](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.13...@standardnotes/filepicker@1.16.14) (2022-06-09) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.13](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.12...@standardnotes/filepicker@1.16.13) (2022-06-09) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.12](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.11...@standardnotes/filepicker@1.16.12) (2022-06-09) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.11](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.10...@standardnotes/filepicker@1.16.11) (2022-06-06) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.10](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.9...@standardnotes/filepicker@1.16.10) (2022-06-03) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.9](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.8...@standardnotes/filepicker@1.16.9) (2022-06-02) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.8](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.7...@standardnotes/filepicker@1.16.8) (2022-06-02) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.7](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.6...@standardnotes/filepicker@1.16.7) (2022-06-02) + +### Bug Fixes + +* remove isLast dep from ordered byte chunker ([3385581](https://github.com/standardnotes/snjs/commit/33855817d8d96d100b7d4f423f59f00c55834b6f)) + +## [1.16.6](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.5...@standardnotes/filepicker@1.16.6) (2022-06-01) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.5](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.4...@standardnotes/filepicker@1.16.5) (2022-05-30) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.4](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.3...@standardnotes/filepicker@1.16.4) (2022-05-27) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.3](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.2...@standardnotes/filepicker@1.16.3) (2022-05-27) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.2](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.1...@standardnotes/filepicker@1.16.2) (2022-05-24) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.16.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.16.0...@standardnotes/filepicker@1.16.1) (2022-05-24) + +**Note:** Version bump only for package @standardnotes/filepicker + +# [1.16.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.15.0...@standardnotes/filepicker@1.16.0) (2022-05-23) + +### Features + +* encrypted file cache ([#747](https://github.com/standardnotes/snjs/issues/747)) ([5b156a5](https://github.com/standardnotes/snjs/commit/5b156a5b4ee3365dac8e02653df129584a9dd4ef)) + +# [1.15.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.13...@standardnotes/filepicker@1.15.0) (2022-05-22) + +### Features + +* optional files navigation ([#745](https://github.com/standardnotes/snjs/issues/745)) ([8512166](https://github.com/standardnotes/snjs/commit/851216615478b57b11a570173f94ee598bec31c0)) + +## [1.14.13](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.12...@standardnotes/filepicker@1.14.13) (2022-05-21) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.12](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.11...@standardnotes/filepicker@1.14.12) (2022-05-20) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.11](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.10...@standardnotes/filepicker@1.14.11) (2022-05-20) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.10](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.9...@standardnotes/filepicker@1.14.10) (2022-05-20) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.9](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.8...@standardnotes/filepicker@1.14.9) (2022-05-18) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.8](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.7...@standardnotes/filepicker@1.14.8) (2022-05-17) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.7](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.6...@standardnotes/filepicker@1.14.7) (2022-05-17) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.6](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.5...@standardnotes/filepicker@1.14.6) (2022-05-17) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.5](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.4...@standardnotes/filepicker@1.14.5) (2022-05-16) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.4](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.3...@standardnotes/filepicker@1.14.4) (2022-05-16) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.3](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.2...@standardnotes/filepicker@1.14.3) (2022-05-16) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.2](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.1...@standardnotes/filepicker@1.14.2) (2022-05-13) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.14.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.14.0...@standardnotes/filepicker@1.14.1) (2022-05-12) + +**Note:** Version bump only for package @standardnotes/filepicker + +# [1.14.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.7...@standardnotes/filepicker@1.14.0) (2022-05-12) + +### Features + +* file desktop backups ([#731](https://github.com/standardnotes/snjs/issues/731)) ([0dbce7d](https://github.com/standardnotes/snjs/commit/0dbce7dc9712fde848445b951079c81479c8bc11)) + +## [1.13.7](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.6...@standardnotes/filepicker@1.13.7) (2022-05-06) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.13.6](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.4...@standardnotes/filepicker@1.13.6) (2022-05-04) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.13.5](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.4...@standardnotes/filepicker@1.13.5) (2022-05-04) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.13.4](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.3...@standardnotes/filepicker@1.13.4) (2022-04-28) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.13.3](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.2...@standardnotes/filepicker@1.13.3) (2022-04-26) + +### Bug Fixes + +* file size calculation to binary ([#709](https://github.com/standardnotes/snjs/issues/709)) ([5773bc7](https://github.com/standardnotes/snjs/commit/5773bc7a2d5f2d79b9d9633fafa660c4b13b42e0)) + +## [1.13.2](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.1...@standardnotes/filepicker@1.13.2) (2022-04-22) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.13.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.13.0...@standardnotes/filepicker@1.13.1) (2022-04-22) + +**Note:** Version bump only for package @standardnotes/filepicker + +# [1.13.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.12.0...@standardnotes/filepicker@1.13.0) (2022-04-22) + +### Features + +* in memory file cache ([#705](https://github.com/standardnotes/snjs/issues/705)) ([fca294a](https://github.com/standardnotes/snjs/commit/fca294a84256e03272e3b1b29b3dc478cddf9c28)) + +# [1.12.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.11.0...@standardnotes/filepicker@1.12.0) (2022-04-21) + +### Features + +* add GB support to formatSizeAsReadableString ([#701](https://github.com/standardnotes/snjs/issues/701)) ([bafd52a](https://github.com/standardnotes/snjs/commit/bafd52a8e4d51229e37ec3f8bb6ea01cf2b7e584)) + +# [1.11.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.6...@standardnotes/filepicker@1.11.0) (2022-04-15) + +### Features + +* no merge payloads in payload manager ([#693](https://github.com/standardnotes/snjs/issues/693)) ([68a577c](https://github.com/standardnotes/snjs/commit/68a577cb887fd2d5556dc9ddec461f6ae665fcb6)) + +## [1.10.6](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.5...@standardnotes/filepicker@1.10.6) (2022-04-12) + +### Bug Fixes + +* export byte_chunker from filepicker package ([#689](https://github.com/standardnotes/snjs/issues/689)) ([2541250](https://github.com/standardnotes/snjs/commit/2541250d7c01a0763c3162e7e68b28cb4c075322)) + +## [1.10.5](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.4...@standardnotes/filepicker@1.10.5) (2022-04-11) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.10.4](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.3...@standardnotes/filepicker@1.10.4) (2022-03-31) + +**Note:** Version bump only for package @standardnotes/filepicker + +## [1.10.3](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.2...@standardnotes/filepicker@1.10.3) (2022-03-24) + +### Bug Fixes + +* streaming reader error on abort selection ([#674](https://github.com/standardnotes/snjs/issues/674)) ([8c36554](https://github.com/standardnotes/snjs/commit/8c36554a95117ed6e42c75d0dc29e01cb8de7a54)) + +## [1.10.2](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.1...@standardnotes/filepicker@1.10.2) (2022-03-23) + +### Bug Fixes + +* class file reader chunking ([63a8494](https://github.com/standardnotes/snjs/commit/63a84945f2935c2c2a23b1aa4ea26dcfd24f08d4)) + +## [1.10.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.10.0...@standardnotes/filepicker@1.10.1) (2022-03-17) + +**Note:** Version bump only for package @standardnotes/filepicker + +# [1.10.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.9.0...@standardnotes/filepicker@1.10.0) (2022-03-11) + +### Features + +* remove ext property from files in favor of mimetype ([#650](https://github.com/standardnotes/snjs/issues/650)) ([d2e7e23](https://github.com/standardnotes/snjs/commit/d2e7e23ec117c505f2f38b9edea539ad3a6d70e2)) + +# [1.9.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.8.0...@standardnotes/filepicker@1.9.0) (2022-03-10) + +### Features + +* store file mimeType along with name & ext ([#648](https://github.com/standardnotes/snjs/issues/648)) ([05bf273](https://github.com/standardnotes/snjs/commit/05bf2737282f2d068e354c4d05fbe5390a19e613)) + +# [1.8.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.7.0...@standardnotes/filepicker@1.8.0) (2022-03-10) + +### Features + +* **filepicker:** multiple file selection ([#644](https://github.com/standardnotes/snjs/issues/644)) ([1bcdaf4](https://github.com/standardnotes/snjs/commit/1bcdaf4d2e05e1280ba8646683be71eebf95ee2d)) + +# [1.7.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.6.0...@standardnotes/filepicker@1.7.0) (2022-03-09) + +### Features + +* export file operation type ([#643](https://github.com/standardnotes/snjs/issues/643)) ([ff5f136](https://github.com/standardnotes/snjs/commit/ff5f136655a8089a47c7eaa04e1e13e58852c93f)) + +# [1.6.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.5.0...@standardnotes/filepicker@1.6.0) (2022-03-09) + +### Features + +* allow passing file or filehandle to reader as param ([#641](https://github.com/standardnotes/snjs/issues/641)) ([48b63a2](https://github.com/standardnotes/snjs/commit/48b63a270d647dd864edbcc8316146b4a32a634e)) + +# [1.5.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.4.0...@standardnotes/filepicker@1.5.0) (2022-03-09) + +### Features + +* add formatSizeToReadableString function ([#635](https://github.com/standardnotes/snjs/issues/635)) ([8688783](https://github.com/standardnotes/snjs/commit/8688783ac95073631e752cdb76011bca75a29794)) + +# [1.4.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.3.0...@standardnotes/filepicker@1.4.0) (2022-03-08) + +### Features + +* determine files host dynamically ([#637](https://github.com/standardnotes/snjs/issues/637)) ([8ae8d32](https://github.com/standardnotes/snjs/commit/8ae8d32a2469cc6b5b42bfc68ec63200d6bc49ed)) + +# [1.3.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.2.1...@standardnotes/filepicker@1.3.0) (2022-03-07) + +### Features + +* add renameFile function to itemManager ([#633](https://github.com/standardnotes/snjs/issues/633)) ([828f0d8](https://github.com/standardnotes/snjs/commit/828f0d8c79736b2ede1dd244e1e59569a88e6440)) + +## [1.2.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.2.0...@standardnotes/filepicker@1.2.1) (2022-03-03) + +### Bug Fixes + +* store selected file variable ([52e9c49](https://github.com/standardnotes/snjs/commit/52e9c494868c809f9cc894c182056c92e2f23133)) + +# [1.2.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.1.3...@standardnotes/filepicker@1.2.0) (2022-03-03) + +### Features + +* split file picker selection and reading in two ([d5e98a1](https://github.com/standardnotes/snjs/commit/d5e98a15213c9976b629fe401d8ba5f31379f391)) + +## [1.1.3](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.1.1...@standardnotes/filepicker@1.1.3) (2022-02-28) + +### Bug Fixes + +* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803)) + +## [1.1.2](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.1.1...@standardnotes/filepicker@1.1.2) (2022-02-28) + +### Bug Fixes + +* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803)) + +## [1.1.1](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.1.0...@standardnotes/filepicker@1.1.1) (2022-02-25) + +### Bug Fixes + +* variable reference ([960fce3](https://github.com/standardnotes/snjs/commit/960fce3d56f4a9204c373253cb75874766e6cf85)) + +# [1.1.0](https://github.com/standardnotes/snjs/compare/@standardnotes/filepicker@1.0.1...@standardnotes/filepicker@1.1.0) (2022-02-25) + +### Features + +* files improvements ([#612](https://github.com/standardnotes/snjs/issues/612)) ([27a29a9](https://github.com/standardnotes/snjs/commit/27a29a98fdf966ddcbe93df951db1358848f6aab)) + +## 1.0.1 (2022-02-24) + +**Note:** Version bump only for package @standardnotes/filepicker diff --git a/packages/filepicker/example/.eslintrc b/packages/filepicker/example/.eslintrc new file mode 100644 index 000000000..e3f712414 --- /dev/null +++ b/packages/filepicker/example/.eslintrc @@ -0,0 +1,5 @@ +{ + "rules": { + "no-console": ["off"] + } +} diff --git a/packages/filepicker/example/index.html b/packages/filepicker/example/index.html new file mode 100644 index 000000000..370ded25c --- /dev/null +++ b/packages/filepicker/example/index.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/filepicker/example/package.json b/packages/filepicker/example/package.json new file mode 100644 index 000000000..db1889629 --- /dev/null +++ b/packages/filepicker/example/package.json @@ -0,0 +1,42 @@ +{ + "name": "files-demo", + "main": "dist/src/index.js", + "types": "dist/src/index.d.ts", + "files": [ + "dist/src" + ], + "publishConfig": { + "access": "public" + }, + "license": "AGPL-3.0-or-later", + "scripts": { + "clean": "rm -fr dist", + "prestart": "yarn clean", + "start": "webpack-dev-server --config webpack.config.js", + "watch": "webpack -w --config webpack.config.js", + "prebuild": "yarn clean", + "build": "tsc -p tsconfig.json", + "lint": "eslint . --ext .ts" + }, + "devDependencies": { + "@babel/core": "^7.15.8", + "@babel/preset-env": "^7.15.8", + "@babel/preset-typescript": "^7.15.0", + "@standardnotes/config": "^2.2.0", + "@types/wicg-native-file-system": "^2020.6.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.2.3", + "html-webpack-plugin": "^5.5.0", + "ts-loader": "^9.2.6", + "typescript": "^4.0.5", + "typescript-eslint": "0.0.1-alpha.0", + "webpack": "^5.59.1", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.3.1" + }, + "dependencies": { + "@standardnotes/sncrypto-web": "^1.7.0", + "@standardnotes/snjs": "^2.61.3", + "regenerator-runtime": "^0.13.9" + } +} diff --git a/packages/filepicker/example/src/classic_file_api.ts b/packages/filepicker/example/src/classic_file_api.ts new file mode 100644 index 000000000..5be2f1b36 --- /dev/null +++ b/packages/filepicker/example/src/classic_file_api.ts @@ -0,0 +1,56 @@ +import { SNApplication, ContentType, FileItem, ClientDisplayableError } from '../../../snjs' +import { ClassicFileReader, ClassicFileSaver } from '../../../filepicker' + +export class ClassicFileApi { + constructor(private application: SNApplication) { + this.configureFilePicker() + } + + configureFilePicker(): void { + const input = document.getElementById('filePicker') as HTMLInputElement + input.onclick = () => { + void this.openFilePicker() + } + console.log('Classic file picker ready.') + } + + async openFilePicker(): Promise { + const files = await ClassicFileReader.selectFiles() + for (const file of files) { + const operation = await this.application.files.beginNewFileUpload() + if (operation instanceof ClientDisplayableError) { + continue + } + const fileResult = await ClassicFileReader.readFile(file, 2_000_000, async (chunk, index, isLast) => { + await this.application.files.pushBytesForUpload(operation, chunk, index, isLast) + }) + const snFile = await this.application.files.finishUpload(operation, fileResult) + + if (snFile instanceof ClientDisplayableError) { + return + } + + const bytes = await this.downloadFileBytes(snFile.remoteIdentifier) + + new ClassicFileSaver().saveFile(`${snFile.name}.${snFile.ext}`, bytes) + } + } + + downloadFileBytes = async (remoteIdentifier: string): Promise => { + console.log('Downloading file', remoteIdentifier) + const file = this.application['itemManager'] + .getItems(ContentType.File) + .find((file: FileItem) => file.remoteIdentifier === remoteIdentifier) + + let receivedBytes = new Uint8Array() + + await this.application.files.downloadFile(file, async (decryptedBytes: Uint8Array) => { + console.log(`Downloaded ${decryptedBytes.length} bytes`) + receivedBytes = new Uint8Array([...receivedBytes, ...decryptedBytes]) + }) + + console.log('Successfully downloaded and decrypted file!') + + return receivedBytes + } +} diff --git a/packages/filepicker/example/src/file_system_api.ts b/packages/filepicker/example/src/file_system_api.ts new file mode 100644 index 000000000..709cc308e --- /dev/null +++ b/packages/filepicker/example/src/file_system_api.ts @@ -0,0 +1,68 @@ +import { StreamingFileReader, StreamingFileSaver } from '../../../filepicker' +import { SNApplication, FileItem, ClientDisplayableError } from '../../../snjs' + +export class FileSystemApi { + private uploadedFiles: FileItem[] = [] + + constructor(private application: SNApplication) { + this.configureFilePicker() + this.configureDownloadButton() + } + + get downloadButton(): HTMLButtonElement { + return document.getElementById('downloadButton') as HTMLButtonElement + } + + configureDownloadButton(): void { + this.downloadButton.onclick = this.downloadFiles + this.downloadButton.style.display = 'none' + } + + configureFilePicker(): void { + const button = document.getElementById('fileSystemUploadButton') as HTMLButtonElement + button.onclick = this.uploadFiles + console.log('File picker ready.') + } + + uploadFiles = async (): Promise => { + const snFiles = [] + const selectedFiles = await StreamingFileReader.selectFiles() + for (const file of selectedFiles) { + const operation = await this.application.files.beginNewFileUpload() + if (operation instanceof ClientDisplayableError) { + continue + } + const fileResult = await StreamingFileReader.readFile(file, 2_000_000, async (chunk, index, isLast) => { + await this.application.files.pushBytesForUpload(operation, chunk, index, isLast) + }) + + const snFile = await this.application.files.finishUpload(operation, fileResult) + + snFiles.push(snFile) + } + + this.downloadButton.style.display = '' + + this.uploadedFiles = snFiles + } + + downloadFiles = async (): Promise => { + for (const snFile of this.uploadedFiles) { + console.log('Downloading file', snFile.remoteIdentifier) + + const saver = new StreamingFileSaver(snFile.name) + await saver.selectFileToSaveTo() + saver.loggingEnabled = true + + await this.application.files.downloadFile(snFile, async (decryptedBytes: Uint8Array) => { + console.log(`Pushing ${decryptedBytes.length} decrypted bytes to disk`) + await saver.pushBytes(decryptedBytes) + }) + + console.log('Closing file saver reader') + await saver.finish() + + console.log('Successfully downloaded and decrypted file!') + } + } +} diff --git a/packages/filepicker/example/src/index.ts b/packages/filepicker/example/src/index.ts new file mode 100644 index 000000000..49c79b590 --- /dev/null +++ b/packages/filepicker/example/src/index.ts @@ -0,0 +1,89 @@ +import { SNApplication, Environment, Platform, SNLog } from '../../../snjs' +import WebDeviceInterface from './web_device_interface' +import { SNWebCrypto } from '../../../sncrypto-web' +import { ClassicFileApi } from './classic_file_api' +import { FileSystemApi } from './file_system_api' + +SNLog.onLog = console.log +SNLog.onError = console.error + +console.log('Clearing localStorage...') +localStorage.clear() + +/** + * Important: + * If reusing e2e docker servers, you must edit docker/auth.env ACCESS_TOKEN_AGE + * and REFRESH_TOKEN_AGE and increase their ttl. + */ + +const host = 'http://localhost:3123' +const mocksHost = 'http://localhost:3124' + +const application = new SNApplication({ + environment: Environment.Web, + platform: Platform.MacWeb, + deviceInterface: new WebDeviceInterface(), + crypto: new SNWebCrypto(), + alertService: { + confirm: async () => true, + alert: async () => { + alert() + }, + blockingDialog: () => () => { + confirm() + }, + }, + identifier: `${Math.random()}`, + defaultHost: host, + appVersion: '1.0.0', +}) + +console.log('Created application', application) + +export async function publishMockedEvent(eventType: string, eventPayload: unknown): Promise { + await fetch(`${mocksHost}/events`, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + eventType, + eventPayload, + }), + }) +} + +const run = async () => { + console.log('Preparing for launch...') + await application.prepareForLaunch({ + receiveChallenge: () => { + console.warn('Ignoring challenge') + }, + }) + await application.launch() + console.log('Application launched...') + + const email = String(Math.random()) + const password = String(Math.random()) + + console.log('Registering account...') + await application.register(email, password) + console.log(`Registered account ${email}/${password}. Be sure to edit docker/auth.env to increase session TTL.`) + + console.log('Creating mock subscription...') + await publishMockedEvent('SUBSCRIPTION_PURCHASED', { + userEmail: email, + subscriptionId: 1, + subscriptionName: 'PLUS_PLAN', + subscriptionExpiresAt: (new Date().getTime() + 3_600_000) * 1_000, + timestamp: Date.now(), + offline: false, + }) + console.log('Successfully created mock subscription...') + + new ClassicFileApi(application) + new FileSystemApi(application) +} + +void run() diff --git a/packages/filepicker/example/src/web_device_interface.js b/packages/filepicker/example/src/web_device_interface.js new file mode 100644 index 000000000..810984731 --- /dev/null +++ b/packages/filepicker/example/src/web_device_interface.js @@ -0,0 +1,138 @@ +/* eslint-disable no-undef */ +const KEYCHAIN_STORAGE_KEY = 'keychain' + +export default class WebDeviceInterface { + async getRawStorageValue(key) { + return localStorage.getItem(key) + } + + async getJsonParsedRawStorageValue(key) { + const value = await this.getRawStorageValue(key) + if (isNullOrUndefined(value)) { + return undefined + } + try { + return JSON.parse(value) + } catch (e) { + return value + } + } + + async getAllRawStorageKeyValues() { + const results = [] + for (const key of Object.keys(localStorage)) { + results.push({ + key: key, + value: localStorage[key], + }) + } + return results + } + + async setRawStorageValue(key, value) { + localStorage.setItem(key, value) + } + + async removeRawStorageValue(key) { + localStorage.removeItem(key) + } + + async removeAllRawStorageValues() { + localStorage.clear() + } + + async openDatabase(_identifier) { + return {} + } + + _getDatabaseKeyPrefix(identifier) { + if (identifier) { + return `${identifier}-item-` + } else { + return 'item-' + } + } + + _keyForPayloadId(id, identifier) { + return `${this._getDatabaseKeyPrefix(identifier)}${id}` + } + + async getAllRawDatabasePayloads(identifier) { + const models = [] + for (const key in localStorage) { + if (key.startsWith(this._getDatabaseKeyPrefix(identifier))) { + models.push(JSON.parse(localStorage[key])) + } + } + return models + } + + async saveRawDatabasePayload(payload, identifier) { + localStorage.setItem(this._keyForPayloadId(payload.uuid, identifier), JSON.stringify(payload)) + } + + async saveRawDatabasePayloads(payloads, identifier) { + for (const payload of payloads) { + await this.saveRawDatabasePayload(payload, identifier) + } + } + + async removeRawDatabasePayloadWithId(id, identifier) { + localStorage.removeItem(this._keyForPayloadId(id, identifier)) + } + + async removeAllRawDatabasePayloads(identifier) { + for (const key in localStorage) { + if (key.startsWith(this._getDatabaseKeyPrefix(identifier))) { + delete localStorage[key] + } + } + } + + /** @keychain */ + async getNamespacedKeychainValue(identifier) { + const keychain = await this.getRawKeychainValue(identifier) + if (!keychain) { + return + } + return keychain[identifier] + } + + async setNamespacedKeychainValue(value, identifier) { + let keychain = await this.getRawKeychainValue() + if (!keychain) { + keychain = {} + } + localStorage.setItem( + KEYCHAIN_STORAGE_KEY, + JSON.stringify({ + ...keychain, + [identifier]: value, + }), + ) + } + + async clearNamespacedKeychainValue(identifier) { + const keychain = await this.getRawKeychainValue() + if (!keychain) { + return + } + delete keychain[identifier] + localStorage.setItem(KEYCHAIN_STORAGE_KEY, JSON.stringify(keychain)) + } + + /** Allows unit tests to set legacy keychain structure as it was <= 003 */ + // eslint-disable-next-line camelcase + async setLegacyRawKeychainValue(value) { + localStorage.setItem(KEYCHAIN_STORAGE_KEY, JSON.stringify(value)) + } + + async getRawKeychainValue() { + const keychain = localStorage.getItem(KEYCHAIN_STORAGE_KEY) + return JSON.parse(keychain) + } + + async clearRawKeychainValue() { + localStorage.removeItem(KEYCHAIN_STORAGE_KEY) + } +} diff --git a/packages/filepicker/example/tsconfig.json b/packages/filepicker/example/tsconfig.json new file mode 100644 index 000000000..fa0785071 --- /dev/null +++ b/packages/filepicker/example/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "target": "es2015", + "module": "es2015", + "moduleResolution": "node", + "baseUrl": ".", + }, + "exclude": ["dist", "node_modules"] +} diff --git a/packages/filepicker/example/webpack.config.js b/packages/filepicker/example/webpack.config.js new file mode 100644 index 000000000..027daf98a --- /dev/null +++ b/packages/filepicker/example/webpack.config.js @@ -0,0 +1,54 @@ +const path = require('path'); +const webpack = require('webpack'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); + +module.exports = (env) => { + return { + entry: './src/index.ts', + output: { + filename: './dist/index.js', + }, + mode: 'development', + optimization: { + minimize: false, + }, + plugins: [ + new HtmlWebpackPlugin({ + template: './index.html', + inject: true, + templateParameters: { + env: process.env, + }, + }), + ], + devServer: { + hot: 'only', + static: './public', + port: 3030, + }, + resolve: { + extensions: ['.ts', '.tsx', '.js'], + fallback: { + crypto: false, + path: false, + }, + }, + module: { + rules: [ + { + test: /\.(js|tsx?)$/, + exclude: /(node_modules)/, + use: [ + 'babel-loader', + { + loader: 'ts-loader', + options: { + transpileOnly: true, + }, + }, + ], + }, + ], + }, + }; +}; diff --git a/packages/filepicker/example/yarn.lock b/packages/filepicker/example/yarn.lock new file mode 100644 index 000000000..6047dc652 --- /dev/null +++ b/packages/filepicker/example/yarn.lock @@ -0,0 +1,4100 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== + +"@babel/core@^7.15.8": + version "7.17.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" + integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/generator@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" + integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": + version "7.17.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" + integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" + +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" + integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.7.0": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" + integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== + dependencies: + "@babel/compat-data" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" + integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" + integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" + integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" + integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typescript@^7.16.7": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" + integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.15.8": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.15.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" + integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" + +"@babel/runtime@^7.8.4": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" + integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@standardnotes/auth@^3.16.1": + version "3.16.1" + resolved "https://registry.yarnpkg.com/@standardnotes/auth/-/auth-3.16.1.tgz#c73b3c70dfde1905998a6a27d91241ff5c7926dc" + integrity sha512-MSYfb80AVeERrZPiN15XG9e/ECv6UrVJ0R5h9jVIEJzxPKfmpVJVr2wH2ts3B6etjD3VYtUS7UNBXC/fYI4kuw== + dependencies: + "@standardnotes/common" "^1.11.0" + jsonwebtoken "^8.5.1" + +"@standardnotes/common@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@standardnotes/common/-/common-1.11.0.tgz#5ed4be817a1f448e6eeb700d141dbfd40193aabe" + integrity sha512-8TKx7bCwIazhGD3wkWTV4rmwbERsyisPbVDn6UIm1lNktWjKDF5OL1D8omalpR5wdM5qmXX5njI1zll2cxlW7A== + +"@standardnotes/config@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@standardnotes/config/-/config-2.2.0.tgz#2e1ed770ef0af590ab10cb2e46e079238ac916b5" + integrity sha512-gbgxZKZtntjdQuA+fdQqe69OR2Gc1MQU8xzH2GJ/7ApeuhulLpl5bYcz3aLkzvVfZe83vDKuot1YznwA+vjcSg== + dependencies: + "@typescript-eslint/eslint-plugin" "^4.14.0" + "@typescript-eslint/parser" "^4.14.0" + +"@standardnotes/domain-events@^2.23.10": + version "2.23.10" + resolved "https://registry.yarnpkg.com/@standardnotes/domain-events/-/domain-events-2.23.10.tgz#57c15946fb3e367cc9e575dad80b0fdbb7bb06ad" + integrity sha512-1/VYVz/G+LWNMtI8oyVjKzYFoGagbs4oEbSnle5AYNVMFMSRCkBNhiJlAXDThxYdtkpwWZl21iSHnfuBOC+HYw== + dependencies: + "@standardnotes/auth" "^3.16.1" + "@standardnotes/features" "^1.32.7" + +"@standardnotes/features@^1.32.7": + version "1.32.7" + resolved "https://registry.yarnpkg.com/@standardnotes/features/-/features-1.32.7.tgz#a0bebac866959ad4e8536317eba360b0d93fefd4" + integrity sha512-i7eUZjfnnIxmi72dNdImdTGnASns0SKyyVSe2pcfKH4BcP5om7kM4MqYshpX4EjYFU/vJTw4f/VbbckN7jowdQ== + dependencies: + "@standardnotes/auth" "^3.16.1" + "@standardnotes/common" "^1.11.0" + +"@standardnotes/settings@^1.11.3": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@standardnotes/settings/-/settings-1.11.3.tgz#f7735da40807dab6eaf81cc82d8d30f5461d26d5" + integrity sha512-95nqPYIZt57HMrymf4FTMDHOibM13AmV/8JEj7mPbIqcNKvVD486BURsaqpoBgkqB4Q43LbT8dfTrBPDgmIdxg== + +"@standardnotes/sncrypto-common@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@standardnotes/sncrypto-common/-/sncrypto-common-1.7.0.tgz#6ad96afeaa031c26e45cbaf527bb511b803f998d" + integrity sha512-Dke13reJMLQFXa7y9EqZYEeZG5Ouy+32qWEsQISLjLRPrTuNwyNXee2mdPh6c9uNZxOQwrdHxVGfqzJ2iy3RpQ== + +"@standardnotes/sncrypto-web@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@standardnotes/sncrypto-web/-/sncrypto-web-1.7.0.tgz#e3a6e69019210f375ccf8b9abb789c7dd7147cf6" + integrity sha512-7NM1QJjtdvmUlBeQLjZukg5LovKKhoM8oX/FLOnBgl04TqDSGtvx+HDncm+laCnHZkAJ6VCSmUUxgfs1sQzyPw== + dependencies: + "@standardnotes/sncrypto-common" "^1.7.0" + buffer "^6.0.3" + libsodium-wrappers "^0.7.9" + +"@standardnotes/snjs@^2.61.3": + version "2.61.3" + resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.61.3.tgz#3f355229448282d7534abcb436158ae0f711aeb5" + integrity sha512-uOYQv4u5cTeGFHCI7E2IQ2X+6JInZEkaZkuhQmry76CFu7L5YASUMpH94YHhSCKQKiFyh1TmLpgeDtwmsM7v7Q== + dependencies: + "@standardnotes/auth" "^3.16.1" + "@standardnotes/common" "^1.11.0" + "@standardnotes/domain-events" "^2.23.10" + "@standardnotes/features" "^1.32.7" + "@standardnotes/settings" "^1.11.3" + "@standardnotes/sncrypto-common" "^1.7.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" + integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-proxy@^1.17.8": + version "1.17.8" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" + integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/node@*": + version "17.0.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" + integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/wicg-native-file-system@^2020.6.0": + version "2020.6.0" + resolved "https://registry.yarnpkg.com/@types/wicg-native-file-system/-/wicg-native-file-system-2020.6.0.tgz#63cbb7bac47bdb9eae4b0d66e63134b33e47e05d" + integrity sha512-M7n6jvHfUzUXDtf6UGpL6rVIddV7UzEYrvwZPORApeHvDGQnZJ79fXorLlDj8xJKyUemnEBohRd8yx09k9NBUw== + +"@types/ws@^8.2.2": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" + integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^4.14.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.14.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" + integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== + +"@webpack-cli/info@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" + integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" + integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + +acorn@^8.4.1: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.8.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-loader@^8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" + integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +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== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.7" + raw-body "2.4.3" + type-is "~1.6.18" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +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-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +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" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-lite@^1.0.30001286: + version "1.0.30001312" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +clean-css@^5.2.2: + version "5.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4" + integrity sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +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" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== + dependencies: + browserslist "^4.19.1" + semver "7.0.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.1: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +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.4.17: + version "1.4.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" + integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.8.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz#49ac24953ac8452ed8fed2ef1340fc8e043667ee" + integrity sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +express@^4.17.1: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.19.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.7" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + 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-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.0.0: + version "1.14.8" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^11.0.1, globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" + integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" + integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== + +http-proxy-middleware@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz#5df04f69a89f530c2284cd71eeaa51ba52243289" + integrity sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +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== + +ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +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" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +libsodium-wrappers@^0.7.9: + version "0.7.9" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz#4ffc2b69b8f7c7c7c5594a93a4803f80f6d0f346" + integrity sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ== + dependencies: + libsodium "^0.7.0" + +libsodium@^0.7.0: + version "0.7.9" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.9.tgz#4bb7bcbf662ddd920d8795c227ae25bbbfa3821b" + integrity sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A== + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memfs@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" + integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== + dependencies: + fs-monkey "1.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +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" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-forge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" + integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== + +node-releases@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +portfinder@^1.0.28: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== + dependencies: + bytes "3.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.12.0, resolve@^1.14.2, resolve@^1.9.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.0.tgz#e927cd5377cbb0a1075302cff8df1042cc2bce5b" + integrity sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ== + dependencies: + node-forge "^1.2.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +sockjs@^0.3.21: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.1.3: + version "5.3.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" + integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== + dependencies: + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + +terser@^5.10.0, terser@^5.7.2: + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +ts-loader@^9.2.6: + version "9.2.6" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.6.tgz#9937c4dd0a1e3dbbb5e433f8102a6601c6615d74" + integrity sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript-eslint@0.0.1-alpha.0: + version "0.0.1-alpha.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-0.0.1-alpha.0.tgz#285d68a4e96588295cd436278801bcb6a6b916c1" + integrity sha512-1hNKM37dAWML/2ltRXupOq2uqcdRQyDFphl+341NTPXFLLLiDhErXx8VtaSLh3xP7SyHZdcCgpt9boYYVb3fQg== + +typescript@^4.0.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +watchpack@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" + integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webpack-cli@^4.9.1: + version "4.9.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" + integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.1.1" + "@webpack-cli/info" "^1.4.1" + "@webpack-cli/serve" "^1.6.1" + colorette "^2.0.14" + commander "^7.0.0" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" + integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== + dependencies: + colorette "^2.0.10" + memfs "^3.4.1" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.3.1: + version "4.7.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz#d0ef7da78224578384e795ac228d8efb63d5f945" + integrity sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.2.2" + ansi-html-community "^0.0.8" + bonjour "^3.5.0" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + default-gateway "^6.0.3" + del "^6.0.0" + express "^4.17.1" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^4.0.0" + selfsigned "^2.0.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + spdy "^4.0.2" + strip-ansi "^7.0.0" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.59.1: + version "5.69.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" + integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.3.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^8.4.2: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/packages/filepicker/jest.config.js b/packages/filepicker/jest.config.js new file mode 100644 index 000000000..265540288 --- /dev/null +++ b/packages/filepicker/jest.config.js @@ -0,0 +1,14 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const base = require('../../node_modules/@standardnotes/config/src/jest.json'); + +module.exports = { + ...base, + globals: { + 'ts-jest': { + tsconfig: 'tsconfig.json', + }, + }, + coveragePathIgnorePatterns: [ + "/example/" + ] +}; diff --git a/packages/filepicker/linter.tsconfig.json b/packages/filepicker/linter.tsconfig.json new file mode 100644 index 000000000..d0fc8e96f --- /dev/null +++ b/packages/filepicker/linter.tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["dist", "example"] +} diff --git a/packages/filepicker/package.json b/packages/filepicker/package.json new file mode 100644 index 000000000..070f5efa4 --- /dev/null +++ b/packages/filepicker/package.json @@ -0,0 +1,42 @@ +{ + "name": "@standardnotes/filepicker", + "version": "1.17.0", + "engines": { + "node": ">=16.0.0 <17.0.0" + }, + "description": "Web filepicker for Standard Notes projects", + "main": "dist/index.js", + "author": "Standard Notes", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "license": "AGPL-3.0-or-later", + "scripts": { + "clean": "rm -fr dist", + "prestart": "yarn clean", + "start": "tsc -p tsconfig.json --watch", + "prebuild": "yarn clean", + "build": "tsc -p tsconfig.json", + "lint": "eslint . --ext .ts", + "test:unit": "jest" + }, + "devDependencies": { + "@types/jest": "^27.4.1", + "@types/wicg-file-system-access": "^2020.9.5", + "@typescript-eslint/eslint-plugin": "^5.30.0", + "eslint-plugin-prettier": "^4.2.1", + "jest": "^27.5.1", + "ts-jest": "^27.1.3", + "ts-node": "^10.5.0" + }, + "dependencies": { + "@standardnotes/common": "^1.23.1", + "@standardnotes/services": "^1.13.23", + "@standardnotes/utils": "^1.6.12", + "reflect-metadata": "^0.1.13" + } +} diff --git a/packages/filepicker/src/Cache/FileMemoryCache.spec.ts b/packages/filepicker/src/Cache/FileMemoryCache.spec.ts new file mode 100644 index 000000000..5c26b5961 --- /dev/null +++ b/packages/filepicker/src/Cache/FileMemoryCache.spec.ts @@ -0,0 +1,78 @@ +import { EncryptedBytes } from './../TypedBytes' +import { FileMemoryCache } from './FileMemoryCache' + +describe('file memory cache', () => { + const createBytes = (size: number): EncryptedBytes => { + return { encryptedBytes: new TextEncoder().encode('a'.repeat(size)) } + } + + it('should add file', () => { + const cache = new FileMemoryCache(5) + const file = createBytes(1) + cache.add('123', file) + + expect(cache.get('123')).toEqual(file) + }) + + it('should fail to add file if exceeds maximum', () => { + const maxSize = 5 + const cache = new FileMemoryCache(maxSize) + const file = createBytes(maxSize + 1) + + expect(cache.add('123', file)).toEqual(false) + }) + + it('should allow filling files up to limit', () => { + const cache = new FileMemoryCache(5) + + cache.add('1', createBytes(3)) + cache.add('2', createBytes(2)) + + expect(cache.get('1')).toBeTruthy() + expect(cache.get('2')).toBeTruthy() + }) + + it('should clear early files when adding new files above limit', () => { + const cache = new FileMemoryCache(5) + + cache.add('1', createBytes(3)) + cache.add('2', createBytes(2)) + cache.add('3', createBytes(5)) + + expect(cache.get('1')).toBeFalsy() + expect(cache.get('2')).toBeFalsy() + expect(cache.get('3')).toBeTruthy() + }) + + it('should remove single file', () => { + const cache = new FileMemoryCache(5) + + cache.add('1', createBytes(3)) + cache.add('2', createBytes(2)) + + cache.remove('1') + + expect(cache.get('1')).toBeFalsy() + expect(cache.get('2')).toBeTruthy() + }) + + it('should clear all files', () => { + const cache = new FileMemoryCache(5) + + cache.add('1', createBytes(3)) + cache.add('2', createBytes(2)) + cache.clear() + + expect(cache.get('1')).toBeFalsy() + expect(cache.get('2')).toBeFalsy() + }) + + it('should return correct size', () => { + const cache = new FileMemoryCache(20) + + cache.add('1', createBytes(3)) + cache.add('2', createBytes(10)) + + expect(cache.size).toEqual(13) + }) +}) diff --git a/packages/filepicker/src/Cache/FileMemoryCache.ts b/packages/filepicker/src/Cache/FileMemoryCache.ts new file mode 100644 index 000000000..16d9488bd --- /dev/null +++ b/packages/filepicker/src/Cache/FileMemoryCache.ts @@ -0,0 +1,48 @@ +import { removeFromArray } from '@standardnotes/utils' +import { Uuid } from '@standardnotes/common' +import { EncryptedBytes } from '../TypedBytes' + +export class FileMemoryCache { + private cache: Record = {} + private orderedQueue: Uuid[] = [] + + constructor(public readonly maxSize: number) {} + + add(uuid: Uuid, data: EncryptedBytes): boolean { + if (data.encryptedBytes.length > this.maxSize) { + return false + } + + while (this.size + data.encryptedBytes.length > this.maxSize) { + this.remove(this.orderedQueue[0]) + } + + this.cache[uuid] = data + + this.orderedQueue.push(uuid) + + return true + } + + get size(): number { + return Object.values(this.cache) + .map((bytes) => bytes.encryptedBytes.length) + .reduce((total, fileLength) => total + fileLength, 0) + } + + get(uuid: Uuid): EncryptedBytes | undefined { + return this.cache[uuid] + } + + remove(uuid: Uuid): void { + delete this.cache[uuid] + + removeFromArray(this.orderedQueue, uuid) + } + + clear(): void { + this.cache = {} + + this.orderedQueue = [] + } +} diff --git a/packages/filepicker/src/Chunker/ByteChunker.spec.ts b/packages/filepicker/src/Chunker/ByteChunker.spec.ts new file mode 100644 index 000000000..cdbd60bcd --- /dev/null +++ b/packages/filepicker/src/Chunker/ByteChunker.spec.ts @@ -0,0 +1,70 @@ +import { ByteChunker } from './ByteChunker' + +const chunkOfSize = (size: number) => { + return new TextEncoder().encode('a'.repeat(size)) +} + +describe('byte chunker', () => { + it('should hold back small chunks until minimum size is met', async () => { + let receivedBytes = new Uint8Array() + let numChunks = 0 + const chunker = new ByteChunker(100, async (bytes) => { + numChunks++ + receivedBytes = new Uint8Array([...receivedBytes, ...bytes]) + }) + + await chunker.addBytes(chunkOfSize(50), false) + await chunker.addBytes(chunkOfSize(50), false) + await chunker.addBytes(chunkOfSize(50), false) + await chunker.addBytes(chunkOfSize(50), true) + + expect(numChunks).toEqual(2) + expect(receivedBytes.length).toEqual(200) + }) + + it('should send back big chunks immediately', async () => { + let receivedBytes = new Uint8Array() + let numChunks = 0 + const chunker = new ByteChunker(100, async (bytes) => { + numChunks++ + receivedBytes = new Uint8Array([...receivedBytes, ...bytes]) + }) + + await chunker.addBytes(chunkOfSize(150), false) + await chunker.addBytes(chunkOfSize(150), false) + await chunker.addBytes(chunkOfSize(150), false) + await chunker.addBytes(chunkOfSize(50), true) + + expect(numChunks).toEqual(4) + expect(receivedBytes.length).toEqual(500) + }) + + it('last chunk should be popped regardless of size', async () => { + let receivedBytes = new Uint8Array() + let numChunks = 0 + const chunker = new ByteChunker(100, async (bytes) => { + numChunks++ + receivedBytes = new Uint8Array([...receivedBytes, ...bytes]) + }) + + await chunker.addBytes(chunkOfSize(50), false) + await chunker.addBytes(chunkOfSize(25), true) + + expect(numChunks).toEqual(1) + expect(receivedBytes.length).toEqual(75) + }) + + it('single chunk should be popped immediately', async () => { + let receivedBytes = new Uint8Array() + let numChunks = 0 + const chunker = new ByteChunker(100, async (bytes) => { + numChunks++ + receivedBytes = new Uint8Array([...receivedBytes, ...bytes]) + }) + + await chunker.addBytes(chunkOfSize(50), true) + + expect(numChunks).toEqual(1) + expect(receivedBytes.length).toEqual(50) + }) +}) diff --git a/packages/filepicker/src/Chunker/ByteChunker.ts b/packages/filepicker/src/Chunker/ByteChunker.ts new file mode 100644 index 000000000..ab2c1388d --- /dev/null +++ b/packages/filepicker/src/Chunker/ByteChunker.ts @@ -0,0 +1,35 @@ +import { OnChunkCallback } from '../types' + +export class ByteChunker { + public loggingEnabled = false + private bytes = new Uint8Array() + private index = 1 + + constructor(private minimumChunkSize: number, private onChunk: OnChunkCallback) {} + + private log(...args: any[]): void { + if (!this.loggingEnabled) { + return + } + // eslint-disable-next-line no-console + console.log(args) + } + + public async addBytes(bytes: Uint8Array, isLast: boolean): Promise { + this.bytes = new Uint8Array([...this.bytes, ...bytes]) + + this.log(`Chunker adding ${bytes.length}, total size ${this.bytes.length}`) + + if (this.bytes.length >= this.minimumChunkSize || isLast) { + await this.popBytes(isLast) + } + } + + private async popBytes(isLast: boolean): Promise { + const maxIndex = Math.max(this.minimumChunkSize, this.bytes.length) + const chunk = this.bytes.slice(0, maxIndex) + this.bytes = new Uint8Array([...this.bytes.slice(maxIndex)]) + this.log(`Chunker popping ${chunk.length}, total size in queue ${this.bytes.length}`) + await this.onChunk(chunk, this.index++, isLast) + } +} diff --git a/packages/filepicker/src/Chunker/OrderedByteChunker.spec.ts b/packages/filepicker/src/Chunker/OrderedByteChunker.spec.ts new file mode 100644 index 000000000..a51a64e92 --- /dev/null +++ b/packages/filepicker/src/Chunker/OrderedByteChunker.spec.ts @@ -0,0 +1,23 @@ +import { OrderedByteChunker } from './OrderedByteChunker' + +const chunkOfSize = (size: number) => { + return new TextEncoder().encode('a'.repeat(size)) +} + +describe('ordered byte chunker', () => { + it('should callback multiple times if added bytes matches multiple chunk sizes', async () => { + const chunkSizes = [10, 10, 10] + let receivedBytes = new Uint8Array() + let numCallbacks = 0 + + const chunker = new OrderedByteChunker(chunkSizes, async (bytes) => { + numCallbacks++ + receivedBytes = new Uint8Array([...receivedBytes, ...bytes]) + }) + + await chunker.addBytes(chunkOfSize(30)) + + expect(numCallbacks).toEqual(3) + expect(receivedBytes.length).toEqual(30) + }) +}) diff --git a/packages/filepicker/src/Chunker/OrderedByteChunker.ts b/packages/filepicker/src/Chunker/OrderedByteChunker.ts new file mode 100644 index 000000000..f7ad36e2f --- /dev/null +++ b/packages/filepicker/src/Chunker/OrderedByteChunker.ts @@ -0,0 +1,40 @@ +export class OrderedByteChunker { + private bytes = new Uint8Array() + private index = 1 + private remainingChunks: number[] = [] + + constructor( + private chunkSizes: number[], + private onChunk: (chunk: Uint8Array, index: number, isLast: boolean) => Promise, + ) { + this.remainingChunks = chunkSizes.slice() + } + + private needsPop(): boolean { + return this.remainingChunks.length > 0 && this.bytes.length >= this.remainingChunks[0] + } + + public async addBytes(bytes: Uint8Array): Promise { + this.bytes = new Uint8Array([...this.bytes, ...bytes]) + + if (this.needsPop()) { + await this.popBytes() + } + } + + private async popBytes(): Promise { + const readUntil = this.remainingChunks[0] + + const chunk = this.bytes.slice(0, readUntil) + + this.bytes = new Uint8Array([...this.bytes.slice(readUntil)]) + + this.remainingChunks.shift() + + await this.onChunk(chunk, this.index++, this.index === this.chunkSizes.length - 1) + + if (this.needsPop()) { + await this.popBytes() + } + } +} diff --git a/packages/filepicker/src/Classic/ClassicReader.ts b/packages/filepicker/src/Classic/ClassicReader.ts new file mode 100644 index 000000000..660132ab1 --- /dev/null +++ b/packages/filepicker/src/Classic/ClassicReader.ts @@ -0,0 +1,59 @@ +import { ByteChunker } from './../Chunker/ByteChunker' +import { OnChunkCallback, FileSelectionResponse } from '../types' +import { readFile as utilsReadFile } from '../utils' +import { FileReaderInterface } from '../Interface/FileReader' + +export const ClassicFileReader: FileReaderInterface = { + selectFiles, + readFile, + available, + maximumFileSize, +} + +function available(): boolean { + return true +} + +function maximumFileSize(): number { + return 50 * 1_000_000 +} + +function selectFiles(): Promise { + const input = document.createElement('input') as HTMLInputElement + input.type = 'file' + input.multiple = true + + return new Promise((resolve) => { + input.onchange = async (event) => { + const target = event.target as HTMLInputElement + const files = [] + for (const file of target.files as FileList) { + files.push(file) + } + resolve(files) + } + input.click() + }) +} + +async function readFile( + file: File, + minimumChunkSize: number, + onChunk: OnChunkCallback, +): Promise { + const buffer = await utilsReadFile(file) + const chunker = new ByteChunker(minimumChunkSize, onChunk) + const readSize = 2_000_000 + + for (let i = 0; i < buffer.length; i += readSize) { + const chunkMax = i + readSize + const chunk = buffer.slice(i, chunkMax) + const isFinalChunk = chunkMax >= buffer.length + await chunker.addBytes(chunk, isFinalChunk) + } + + return { + name: file.name, + mimeType: file.type, + } +} diff --git a/packages/filepicker/src/Classic/ClassicSaver.ts b/packages/filepicker/src/Classic/ClassicSaver.ts new file mode 100644 index 000000000..8f16b2c04 --- /dev/null +++ b/packages/filepicker/src/Classic/ClassicSaver.ts @@ -0,0 +1,23 @@ +import { saveFile } from '../utils' + +export class ClassicFileSaver { + public loggingEnabled = false + + private log(...args: any[]): void { + if (!this.loggingEnabled) { + return + } + // eslint-disable-next-line no-console + console.log(args) + } + + static maximumFileSize(): number { + return 50 * 1_000_000 + } + + saveFile(name: string, bytes: Uint8Array): void { + this.log('Saving file to disk...') + saveFile(name, bytes) + this.log('Closing write stream') + } +} diff --git a/packages/filepicker/src/Interface/FileReader.ts b/packages/filepicker/src/Interface/FileReader.ts new file mode 100644 index 000000000..5d3e4d81f --- /dev/null +++ b/packages/filepicker/src/Interface/FileReader.ts @@ -0,0 +1,11 @@ +import { OnChunkCallback, FileSelectionResponse } from '../types' + +export interface FileReaderInterface { + selectFiles(): Promise + + readFile(file: File, minimumChunkSize: number, onChunk: OnChunkCallback): Promise + + available(): boolean + + maximumFileSize(): number | undefined +} diff --git a/packages/filepicker/src/Streaming/StreamingApi.ts b/packages/filepicker/src/Streaming/StreamingApi.ts new file mode 100644 index 000000000..75642d6c0 --- /dev/null +++ b/packages/filepicker/src/Streaming/StreamingApi.ts @@ -0,0 +1,112 @@ +import { + FileSystemApi, + DirectoryHandle, + FileHandleReadWrite, + FileHandleRead, + FileSystemNoSelection, + FileSystemResult, +} from '@standardnotes/services' + +interface WebDirectoryHandle extends DirectoryHandle { + nativeHandle: FileSystemDirectoryHandle +} +interface WebFileHandleReadWrite extends FileHandleReadWrite { + nativeHandle: FileSystemFileHandle + writableStream: FileSystemWritableFileStream +} + +interface WebFileHandleRead extends FileHandleRead { + nativeHandle: FileSystemFileHandle +} + +export class StreamingFileApi implements FileSystemApi { + async selectDirectory(): Promise { + try { + const nativeHandle = await window.showDirectoryPicker() + + return { nativeHandle } + } catch (error) { + return 'aborted' + } + } + + async createFile(directory: WebDirectoryHandle, name: string): Promise { + const nativeHandle = await directory.nativeHandle.getFileHandle(name, { create: true }) + const writableStream = await nativeHandle.createWritable() + + return { + nativeHandle, + writableStream, + } + } + + async createDirectory( + parentDirectory: WebDirectoryHandle, + name: string, + ): Promise { + const nativeHandle = await parentDirectory.nativeHandle.getDirectoryHandle(name, { create: true }) + return { nativeHandle } + } + + async saveBytes(file: WebFileHandleReadWrite, bytes: Uint8Array): Promise<'success' | 'failed'> { + await file.writableStream.write(bytes) + + return 'success' + } + + async saveString(file: WebFileHandleReadWrite, contents: string): Promise<'success' | 'failed'> { + await file.writableStream.write(contents) + + return 'success' + } + + async closeFileWriteStream(file: WebFileHandleReadWrite): Promise<'success' | 'failed'> { + await file.writableStream.close() + + return 'success' + } + + async selectFile(): Promise { + try { + const selection = await window.showOpenFilePicker() + + const file = selection[0] + + return { + nativeHandle: file, + } + } catch (_) { + return 'aborted' + } + } + + async readFile( + fileHandle: WebFileHandleRead, + onBytes: (bytes: Uint8Array, isLast: boolean) => Promise, + ): Promise { + const file = await fileHandle.nativeHandle.getFile() + const stream = file.stream() as unknown as ReadableStream + const reader = stream.getReader() + + let previousChunk: Uint8Array + + const processChunk = async (result: ReadableStreamDefaultReadResult): Promise => { + if (result.done) { + await onBytes(previousChunk, true) + return + } + + if (previousChunk) { + await onBytes(previousChunk, false) + } + + previousChunk = result.value + + return reader.read().then(processChunk) + } + + await reader.read().then(processChunk) + + return 'success' + } +} diff --git a/packages/filepicker/src/Streaming/StreamingReader.ts b/packages/filepicker/src/Streaming/StreamingReader.ts new file mode 100644 index 000000000..9448c180e --- /dev/null +++ b/packages/filepicker/src/Streaming/StreamingReader.ts @@ -0,0 +1,75 @@ +import { FileReaderInterface } from './../Interface/FileReader' +import { ByteChunker } from '../Chunker/ByteChunker' +import { OnChunkCallback, FileSelectionResponse } from '../types' + +interface StreamingFileReaderInterface { + getFilesFromHandles(handles: FileSystemFileHandle[]): Promise +} + +/** + * The File System Access API File Picker + * https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API + */ +export const StreamingFileReader: StreamingFileReaderInterface & FileReaderInterface = { + getFilesFromHandles, + selectFiles, + readFile, + available, + maximumFileSize, +} + +function maximumFileSize(): number | undefined { + return undefined +} + +function getFilesFromHandles(handles: FileSystemFileHandle[]): Promise { + return Promise.all(handles.map((handle) => handle.getFile())) +} + +async function selectFiles(): Promise { + let selectedFilesHandles: FileSystemFileHandle[] + try { + selectedFilesHandles = await window.showOpenFilePicker({ multiple: true }) + } catch (error) { + selectedFilesHandles = [] + } + return getFilesFromHandles(selectedFilesHandles) +} + +async function readFile( + file: File, + minimumChunkSize: number, + onChunk: OnChunkCallback, +): Promise { + const byteChunker = new ByteChunker(minimumChunkSize, onChunk) + const stream = file.stream() as unknown as ReadableStream + const reader = stream.getReader() + + let previousChunk: Uint8Array + + const processChunk = async (result: ReadableStreamDefaultReadResult): Promise => { + if (result.done) { + await byteChunker.addBytes(previousChunk, true) + return + } + + if (previousChunk) { + await byteChunker.addBytes(previousChunk, false) + } + + previousChunk = result.value + + return reader.read().then(processChunk) + } + + await reader.read().then(processChunk) + + return { + name: file.name, + mimeType: file.type, + } +} + +function available(): boolean { + return window.showOpenFilePicker != undefined +} diff --git a/packages/filepicker/src/Streaming/StreamingSaver.ts b/packages/filepicker/src/Streaming/StreamingSaver.ts new file mode 100644 index 000000000..9d3c1ce62 --- /dev/null +++ b/packages/filepicker/src/Streaming/StreamingSaver.ts @@ -0,0 +1,49 @@ +/** + * The File System Access API File Picker + * https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API + */ +export class StreamingFileSaver { + public loggingEnabled = false + private writableStream!: FileSystemWritableFileStream + + constructor(private name: string) {} + + private log(...args: any[]): void { + if (!this.loggingEnabled) { + return + } + // eslint-disable-next-line no-console + console.log(args) + } + + static available(): boolean { + return window.showSaveFilePicker != undefined + } + + /** This function must be called in response to a user interaction, otherwise, it will be rejected by the browser. */ + async selectFileToSaveTo(): Promise { + this.log('Showing save file picker') + + const downloadHandle = await window.showSaveFilePicker({ + suggestedName: this.name, + }) + + this.writableStream = await downloadHandle.createWritable() + } + + async pushBytes(bytes: Uint8Array): Promise { + if (!this.writableStream) { + throw Error('Must call selectFileToSaveTo first') + } + this.log('Writing chunk to disk of size', bytes.length) + await this.writableStream.write(bytes) + } + + async finish(): Promise { + if (!this.writableStream) { + throw Error('Must call selectFileToSaveTo first') + } + this.log('Closing write stream') + await this.writableStream.close() + } +} diff --git a/packages/filepicker/src/TypedBytes.ts b/packages/filepicker/src/TypedBytes.ts new file mode 100644 index 000000000..1e319ccff --- /dev/null +++ b/packages/filepicker/src/TypedBytes.ts @@ -0,0 +1,7 @@ +export type EncryptedBytes = { + encryptedBytes: Uint8Array +} + +export type DecryptedBytes = { + decryptedBytes: Uint8Array +} diff --git a/packages/filepicker/src/index.ts b/packages/filepicker/src/index.ts new file mode 100644 index 000000000..306f38890 --- /dev/null +++ b/packages/filepicker/src/index.ts @@ -0,0 +1,11 @@ +export * from './types' +export * from './Classic/ClassicReader' +export * from './Classic/ClassicSaver' +export * from './Streaming/StreamingReader' +export * from './Streaming/StreamingSaver' +export * from './Streaming/StreamingApi' +export * from './utils' +export * from './Chunker/ByteChunker' +export * from './Chunker/OrderedByteChunker' +export * from './Cache/FileMemoryCache' +export * from './TypedBytes' diff --git a/packages/filepicker/src/types.ts b/packages/filepicker/src/types.ts new file mode 100644 index 000000000..a4e174a2c --- /dev/null +++ b/packages/filepicker/src/types.ts @@ -0,0 +1,6 @@ +export type OnChunkCallback = (chunk: Uint8Array, index: number, isLast: boolean) => Promise + +export type FileSelectionResponse = { + name: string + mimeType: string +} diff --git a/packages/filepicker/src/utils.spec.ts b/packages/filepicker/src/utils.spec.ts new file mode 100644 index 000000000..c0e92df9e --- /dev/null +++ b/packages/filepicker/src/utils.spec.ts @@ -0,0 +1,77 @@ +import { formatSizeToReadableString, parseFileName } from './utils' + +describe('utils', () => { + describe('parseFileName', () => { + it('should parse regular filenames', () => { + const fileName = 'test.txt' + + const { name, ext } = parseFileName(fileName) + + expect(name).toBe('test') + expect(ext).toBe('txt') + }) + + it('should parse filenames with multiple dots', () => { + const fileName = 'Screen Shot 2022-03-06 at 12.13.32 PM.png' + + const { name, ext } = parseFileName(fileName) + + expect(name).toBe('Screen Shot 2022-03-06 at 12.13.32 PM') + expect(ext).toBe('png') + }) + + it('should parse filenames without extensions', () => { + const fileName = 'extensionless' + + const { name, ext } = parseFileName(fileName) + + expect(name).toBe('extensionless') + expect(ext).toBe('') + }) + }) + + describe('formatSizeToReadableString', () => { + it('should show as bytes if less than 1KB', () => { + const size = 1_023 + + const formattedSize = formatSizeToReadableString(size) + + expect(formattedSize).toBe('1023 B') + }) + + it('should format as KB', () => { + const size = 1_024 + + const formattedSize = formatSizeToReadableString(size) + + expect(formattedSize).toBe('1 KB') + }) + + it('should format as MB', () => { + const size = 1_048_576 + + const formattedSize = formatSizeToReadableString(size) + + expect(formattedSize).toBe('1 MB') + }) + + it('should format as GB', () => { + const size = 1_073_741_824 + + const formattedSize = formatSizeToReadableString(size) + + expect(formattedSize).toBe('1 GB') + }) + + it('should only show fixed-point notation if calculated size is not an integer', () => { + const size1 = 1_048_576 + const size2 = 1_572_864 + + const formattedSize1 = formatSizeToReadableString(size1) + const formattedSize2 = formatSizeToReadableString(size2) + + expect(formattedSize1).toBe('1 MB') + expect(formattedSize2).toBe('1.50 MB') + }) + }) +}) diff --git a/packages/filepicker/src/utils.ts b/packages/filepicker/src/utils.ts new file mode 100644 index 000000000..ab35b1db9 --- /dev/null +++ b/packages/filepicker/src/utils.ts @@ -0,0 +1,56 @@ +export async function readFile(file: File): Promise { + const reader = new FileReader() + reader.readAsArrayBuffer(file) + return new Promise((resolve) => { + reader.onload = (readerEvent) => { + const target = readerEvent.target as FileReader + const content = target.result as ArrayBuffer + resolve(new Uint8Array(content)) + } + }) +} + +export function parseFileName(fileName: string): { + name: string + ext: string +} { + const pattern = /(?:\.([^.]+))?$/ + const extMatches = pattern.exec(fileName) + const ext = extMatches?.[1] || '' + const name = fileName.includes('.') ? fileName.substring(0, fileName.lastIndexOf('.')) : fileName + + return { name, ext } +} + +export function saveFile(name: string, bytes: Uint8Array): void { + const link = document.createElement('a') + const blob = new Blob([bytes], { + type: 'text/plain;charset=utf-8', + }) + link.href = window.URL.createObjectURL(blob) + link.setAttribute('download', name) + document.body.appendChild(link) + link.click() + link.remove() + window.URL.revokeObjectURL(link.href) +} + +const BYTES_IN_ONE_KILOBYTE = 1_024 +const BYTES_IN_ONE_MEGABYTE = 1_048_576 +const BYTES_IN_ONE_GIGABYTE = 1_073_741_824 + +export function formatSizeToReadableString(bytes: number): string { + let size = bytes + let unit = 'B' + if (bytes >= BYTES_IN_ONE_GIGABYTE) { + size = bytes / BYTES_IN_ONE_GIGABYTE + unit = 'GB' + } else if (bytes >= BYTES_IN_ONE_MEGABYTE) { + size = bytes / BYTES_IN_ONE_MEGABYTE + unit = 'MB' + } else if (bytes >= BYTES_IN_ONE_KILOBYTE) { + size = bytes / BYTES_IN_ONE_KILOBYTE + unit = 'KB' + } + return `${Number.isInteger(size) ? size : size.toFixed(2)} ${unit}` +} diff --git a/packages/filepicker/tsconfig.json b/packages/filepicker/tsconfig.json new file mode 100644 index 000000000..6b72a852c --- /dev/null +++ b/packages/filepicker/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../node_modules/@standardnotes/config/src/tsconfig.json", + "compilerOptions": { + "skipLibCheck": true, + "rootDir": "./src", + "outDir": "./dist", + }, + "include": [ + "src/**/*" + ], + "references": [], + "exclude": ["**/*.spec.ts", "dist", "example"] +} diff --git a/packages/mobile/metro.config.js b/packages/mobile/metro.config.js index 1e9b8d86c..5716f4b12 100644 --- a/packages/mobile/metro.config.js +++ b/packages/mobile/metro.config.js @@ -19,7 +19,7 @@ module.exports = (async () => { } = await getDefaultConfig() return { - watchFolders: [__dirname, '../icons', '../styles', '../components', '../features', '../encryption'], + watchFolders: [__dirname, '../icons', '../styles', '../components', '../features', '../encryption', '../filepicker'], transformer: { getTransformOptions: async () => ({ transform: { diff --git a/packages/mobile/package.json b/packages/mobile/package.json index d92a29f45..a59beaf01 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -38,7 +38,7 @@ "@standardnotes/components-meta": "workspace:*", "@standardnotes/encryption": "workspace:*", "@standardnotes/features": "workspace:*", - "@standardnotes/filepicker": "^1.16.23", + "@standardnotes/filepicker": "workspace:*", "@standardnotes/icons": "workspace:*", "@standardnotes/react-native-aes": "^1.4.3", "@standardnotes/react-native-textview": "1.1.0", diff --git a/packages/web/.gitignore b/packages/web/.gitignore deleted file mode 100644 index 53c37a166..000000000 --- a/packages/web/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist \ No newline at end of file diff --git a/packages/web/package.json b/packages/web/package.json index 97f8ecdb0..dbbc84f77 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -69,7 +69,7 @@ "@reach/tooltip": "^0.16.2", "@reach/visually-hidden": "^0.16.0", "@standardnotes/encryption": "workspace:*", - "@standardnotes/filepicker": "1.16.23", + "@standardnotes/filepicker": "workspace:*", "@standardnotes/icons": "workspace:*", "@standardnotes/services": "^1.13.23", "@standardnotes/sncrypto-web": "1.10.1", diff --git a/yarn.lock b/yarn.lock index 424e5707b..9433fedea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6599,27 +6599,23 @@ __metadata: languageName: unknown linkType: soft -"@standardnotes/filepicker@npm:1.16.23, @standardnotes/filepicker@npm:^1.16.23": - version: 1.16.23 - resolution: "@standardnotes/filepicker@npm:1.16.23" +"@standardnotes/filepicker@^1.16.22, @standardnotes/filepicker@^1.16.23, @standardnotes/filepicker@workspace:*, @standardnotes/filepicker@workspace:packages/filepicker": + version: 0.0.0-use.local + resolution: "@standardnotes/filepicker@workspace:packages/filepicker" dependencies: "@standardnotes/common": ^1.23.1 "@standardnotes/services": ^1.13.23 "@standardnotes/utils": ^1.6.12 - checksum: 8b1eca3f4ee5d821bf0e7aaa859a0d6204b1083adf168db2d9deac9984d2d4b13d04cb018c8b545d26c2a8f2fc262d140e3e43bd4c91f0c9aebabee42bcd92f7 - languageName: node - linkType: hard - -"@standardnotes/filepicker@npm:^1.16.22": - version: 1.16.22 - resolution: "@standardnotes/filepicker@npm:1.16.22" - dependencies: - "@standardnotes/common": ^1.23.1 - "@standardnotes/services": ^1.13.22 - "@standardnotes/utils": ^1.6.12 - checksum: df14eedefd9d9a5ebdff483b611eac2c78a6a17e2039b5893a9041b0abbf88acf85aa36444cbf5b3b0c52a1556a175d20ed15a2879117895d3669b597ee07d60 - languageName: node - linkType: hard + "@types/jest": ^27.4.1 + "@types/wicg-file-system-access": ^2020.9.5 + "@typescript-eslint/eslint-plugin": ^5.30.0 + eslint-plugin-prettier: ^4.2.1 + jest: ^27.5.1 + reflect-metadata: ^0.1.13 + ts-jest: ^27.1.3 + ts-node: ^10.5.0 + languageName: unknown + linkType: soft "@standardnotes/files@npm:^1.3.22": version: 1.3.22 @@ -6936,7 +6932,7 @@ __metadata: "@standardnotes/config": ^2.4.3 "@standardnotes/encryption": "workspace:*" "@standardnotes/features": "workspace:*" - "@standardnotes/filepicker": ^1.16.23 + "@standardnotes/filepicker": "workspace:*" "@standardnotes/icons": "workspace:*" "@standardnotes/react-native-aes": ^1.4.3 "@standardnotes/react-native-textview": 1.1.0 @@ -7431,7 +7427,7 @@ __metadata: "@reach/tooltip": ^0.16.2 "@reach/visually-hidden": ^0.16.0 "@standardnotes/encryption": "workspace:*" - "@standardnotes/filepicker": 1.16.23 + "@standardnotes/filepicker": "workspace:*" "@standardnotes/icons": "workspace:*" "@standardnotes/services": ^1.13.23 "@standardnotes/sncrypto-web": 1.10.1 @@ -36906,6 +36902,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.5.0": + version: 10.8.2 + resolution: "ts-node@npm:10.8.2" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 1eede939beed9f4db35bcc88d78ef803815b99dcdbed1ecac728d861d74dc694918a7f0f437aa08d026193743a31e7e00e2ee34f875f909b5879981c1808e2a7 + languageName: node + linkType: hard + "ts-node@npm:^10.7.0, ts-node@npm:^10.8.1": version: 10.8.1 resolution: "ts-node@npm:10.8.1"