├── .mocharc.json ├── test ├── tsconfig.json ├── fixtures │ └── test.opml └── index-test.js ├── .github └── workflows │ └── test.yml ├── tsconfig.json ├── LICENSE ├── package.json ├── readme.md ├── .gitignore ├── src └── opml-to-json.ts └── yarn.lock /.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": [ 3 | "ts-node-test-register" 4 | ] 5 | } -------------------------------------------------------------------------------- /test/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": false, 5 | "noEmit": true, 6 | "allowJs": true 7 | }, 8 | "include": [ 9 | "../src/**/*", 10 | "./**/*" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /test/fixtures/test.opml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | title 5 | 0,2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: [push, pull_request] 3 | env: 4 | CI: true 5 | jobs: 6 | test: 7 | name: "Test on Node.js ${{ matrix.node-version }}" 8 | runs-on: ubuntu-latest 9 | strategy: 10 | matrix: 11 | node-version: [10, 12, 14] 12 | steps: 13 | - name: checkout 14 | uses: actions/checkout@v2 15 | - name: setup Node.js ${{ matrix.node-version }} 16 | uses: actions/setup-node@v1 17 | with: 18 | node-version: ${{ matrix.node-version }} 19 | - name: Install 20 | run: yarn install 21 | - name: Test 22 | run: yarn test 23 | -------------------------------------------------------------------------------- /test/index-test.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | import fs from "fs"; 3 | import assert from "assert"; 4 | import { opmlToJSON } from "../src/opml-to-json"; 5 | 6 | describe("opml-to-json", function () { 7 | it("should return object", async function () { 8 | const xml = fs.readFileSync(__dirname + "/fixtures/test.opml"); 9 | const json = await opmlToJSON(xml); 10 | const expected = { 11 | "title": "title", 12 | "children": [ 13 | {"text": "H1", "children": [ 14 | {"text": "H2 Text"}, 15 | {"text": "H2", "children": [ 16 | {"text": "text"} 17 | ]} 18 | ]}, 19 | {"text": "H1 text"} 20 | ]}; 21 | assert.deepStrictEqual(json, expected); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "esModuleInterop": true, 7 | "newLine": "LF", 8 | "outDir": "./lib/", 9 | "target": "es5", 10 | "sourceMap": true, 11 | "declaration": true, 12 | "jsx": "preserve", 13 | "lib": [ 14 | "esnext", 15 | "dom" 16 | ], 17 | /* Strict Type-Checking Options */ 18 | "strict": true, 19 | /* Additional Checks */ 20 | /* Report errors on unused locals. */ 21 | "noUnusedLocals": true, 22 | /* Report errors on unused parameters. */ 23 | "noUnusedParameters": true, 24 | /* Report error when not all code paths in function return a value. */ 25 | "noImplicitReturns": true, 26 | /* Report errors for fallthrough cases in switch statement. */ 27 | "noFallthroughCasesInSwitch": true 28 | }, 29 | "include": [ 30 | "src/**/*" 31 | ], 32 | "exclude": [ 33 | ".git", 34 | "node_modules" 35 | ] 36 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 azu 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "opml-to-json", 3 | "version": "1.0.1", 4 | "description": "convert opml to json.", 5 | "keywords": [ 6 | "json", 7 | "xml", 8 | "opml", 9 | "converter" 10 | ], 11 | "homepage": "https://github.com/azu/opml-to-json/", 12 | "bugs": { 13 | "url": "https://github.com/azu/opml-to-json/issues" 14 | }, 15 | "repository": { 16 | "url": "git://github.com/azu/opml-to-json.git" 17 | }, 18 | "license": "MIT", 19 | "author": "azu", 20 | "main": "lib/opml-to-json.js", 21 | "types": "lib/opml-to-json.d.ts", 22 | "files": [ 23 | "lib" 24 | ], 25 | "directories": { 26 | "test": "test/" 27 | }, 28 | "scripts": { 29 | "build": "tsc -p .", 30 | "prepublishOnly": "npm run build", 31 | "test": "mocha \"test/**/*.{js,ts}\"", 32 | "watch": "tsc -p . --watch" 33 | }, 34 | "dependencies": { 35 | "opmlparser": "^0.8.0" 36 | }, 37 | "devDependencies": { 38 | "@types/mocha": "^8.2.0", 39 | "@types/node": "^14.14.19", 40 | "mocha": "^8.2.1", 41 | "ts-node": "^9.1.1", 42 | "ts-node-test-register": "^9.0.1", 43 | "typescript": "^4.1.3" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # opml-to-json [![Build Status](https://travis-ci.org/azu/opml-to-json.svg)](https://travis-ci.org/azu/opml-to-json) 2 | 3 | Convert OPML to JSON(JavaScript Object). 4 | 5 | ## Installation 6 | 7 | ``` sh 8 | npm install opml-to-json 9 | ``` 10 | 11 | ## Usage 12 | 13 | Example OPML file. 14 | 15 | ``` xml 16 | 17 | 18 | 19 | title 20 | 0,2 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | ``` 33 | 34 | ```js 35 | import { opmlToJSON } from "opml-to-json"; 36 | 37 | const json = await opmlToJSON(xml); 38 | const expected = { 39 | "title": "title", 40 | "children": [ 41 | { 42 | "text": "H1", "children": [ 43 | { "text": "H2 Text" }, 44 | { 45 | "text": "H2", "children": [ 46 | { "text": "text" } 47 | ] 48 | } 49 | ] 50 | }, 51 | { "text": "H1 text" } 52 | ] 53 | }; 54 | assert.deepStrictEqual(json, expected); 55 | ``` 56 | 57 | ## Contributing 58 | 59 | 1. Fork it! 60 | 2. Create your feature branch: `git checkout -b my-new-feature` 61 | 3. Commit your changes: `git commit -am 'Add some feature'` 62 | 4. Push to the branch: `git push origin my-new-feature` 63 | 5. Submit a pull request :D 64 | 65 | ## License 66 | 67 | MIT 68 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | ### https://raw.github.com/github/gitignore/d2c1bb2b9c72ead618c9f6a48280ebc7a8e0dff6/Node.gitignore 3 | 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | 11 | # Runtime data 12 | pids 13 | *.pid 14 | *.seed 15 | *.pid.lock 16 | 17 | # Directory for instrumented libs generated by jscoverage/JSCover 18 | lib-cov 19 | 20 | # Coverage directory used by tools like istanbul 21 | coverage 22 | 23 | # nyc test coverage 24 | .nyc_output 25 | 26 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 27 | .grunt 28 | 29 | # Bower dependency directory (https://bower.io/) 30 | bower_components 31 | 32 | # node-waf configuration 33 | .lock-wscript 34 | 35 | # Compiled binary addons (https://nodejs.org/api/addons.html) 36 | build/Release 37 | 38 | # Dependency directories 39 | node_modules/ 40 | jspm_packages/ 41 | 42 | # TypeScript v1 declaration files 43 | typings/ 44 | 45 | # Optional npm cache directory 46 | .npm 47 | 48 | # Optional eslint cache 49 | .eslintcache 50 | 51 | # Optional REPL history 52 | .node_repl_history 53 | 54 | # Output of 'npm pack' 55 | *.tgz 56 | 57 | # Yarn Integrity file 58 | .yarn-integrity 59 | 60 | # dotenv environment variables file 61 | .env 62 | .env.test 63 | 64 | # parcel-bundler cache (https://parceljs.org/) 65 | .cache 66 | 67 | # next.js build output 68 | .next 69 | 70 | # nuxt.js build output 71 | .nuxt 72 | 73 | # vuepress build output 74 | .vuepress/dist 75 | 76 | # Serverless directories 77 | .serverless/ 78 | 79 | # FuseBox cache 80 | .fusebox/ 81 | 82 | # DynamoDB Local files 83 | .dynamodb/ 84 | 85 | 86 | ### https://raw.github.com/github/gitignore/d2c1bb2b9c72ead618c9f6a48280ebc7a8e0dff6/Global/JetBrains.gitignore 87 | 88 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm 89 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 90 | 91 | # User-specific stuff 92 | .idea/**/workspace.xml 93 | .idea/**/tasks.xml 94 | .idea/**/usage.statistics.xml 95 | .idea/**/dictionaries 96 | .idea/**/shelf 97 | 98 | # Generated files 99 | .idea/**/contentModel.xml 100 | 101 | # Sensitive or high-churn files 102 | .idea/**/dataSources/ 103 | .idea/**/dataSources.ids 104 | .idea/**/dataSources.local.xml 105 | .idea/**/sqlDataSources.xml 106 | .idea/**/dynamic.xml 107 | .idea/**/uiDesigner.xml 108 | .idea/**/dbnavigator.xml 109 | 110 | # Gradle 111 | .idea/**/gradle.xml 112 | .idea/**/libraries 113 | 114 | # Gradle and Maven with auto-import 115 | # When using Gradle or Maven with auto-import, you should exclude module files, 116 | # since they will be recreated, and may cause churn. Uncomment if using 117 | # auto-import. 118 | # .idea/modules.xml 119 | # .idea/*.iml 120 | # .idea/modules 121 | 122 | # CMake 123 | cmake-build-*/ 124 | 125 | # Mongo Explorer plugin 126 | .idea/**/mongoSettings.xml 127 | 128 | # File-based project format 129 | *.iws 130 | 131 | # IntelliJ 132 | out/ 133 | 134 | # mpeltonen/sbt-idea plugin 135 | .idea_modules/ 136 | 137 | # JIRA plugin 138 | atlassian-ide-plugin.xml 139 | 140 | # Cursive Clojure plugin 141 | .idea/replstate.xml 142 | 143 | # Crashlytics plugin (for Android Studio and IntelliJ) 144 | com_crashlytics_export_strings.xml 145 | crashlytics.properties 146 | crashlytics-build.properties 147 | fabric.properties 148 | 149 | # Editor-based Rest Client 150 | .idea/httpRequests 151 | 152 | # Android studio 3.1+ serialized cache file 153 | .idea/caches/build_file_checksums.ser 154 | 155 | 156 | -------------------------------------------------------------------------------- /src/opml-to-json.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error: no types 2 | import OpmlParser from "opmlparser"; 3 | 4 | function shallowCopy(oldObj: T): T { 5 | return { 6 | ...oldObj 7 | } 8 | } 9 | 10 | type Item = { 11 | [index in string]: object 12 | } 13 | type Parent = { 14 | children: (Parent | Item)[] 15 | } 16 | 17 | const isParent = (node: unknown): node is Parent => { 18 | return typeof node === "object" && node !== null && "children" in node; 19 | } 20 | 21 | function flatJSON(root: T): T { 22 | const copyNode = shallowCopy(root); 23 | if (isParent(root) && isParent(copyNode)) { 24 | const children = root.children; 25 | copyNode.children = Object.keys(children).map(function (key) { 26 | // @ts-expect-error: FIXME 27 | const item = children[key]; 28 | if (!item) { 29 | return 30 | } 31 | return flatJSON(item); 32 | }); 33 | copyNode.children = copyNode.children.filter(function (node) { 34 | return Object.keys(node).length > 0; 35 | }); 36 | } 37 | // @ts-ignore 38 | delete copyNode["#id"]; 39 | // @ts-ignore 40 | delete copyNode["#parentid"]; 41 | return copyNode; 42 | } 43 | 44 | type OpmlObject = { 45 | [P in "#id" | "#parentid" | string | number]: any 46 | } 47 | export type opmlToJsonResult = { 48 | "title": "title", 49 | "children": (Parent | Item)[] 50 | } 51 | export const opmlToJSON = function (xml: string): Promise { 52 | const opmlparser = new OpmlParser(); 53 | const index: OpmlObject = {}; 54 | return new Promise((resolve, reject) => { 55 | 56 | opmlparser.on('error', done); 57 | opmlparser.on('readable', function (this: OpmlParser) { 58 | var outline; 59 | while (outline = this.read()) { 60 | // @ts-ignore 61 | index[outline['#id']] = outline; 62 | } 63 | }); 64 | opmlparser.on('end', function (this: OpmlParser) { 65 | const stack: any[] = Object.keys(index).reduce(function (stack, id) { 66 | let outline = index[id]; 67 | let i; 68 | let children; 69 | if (stack[0]['#id'] === outline['#parentid']) { 70 | stack[0].children || (stack[0].children = {}); 71 | // @ts-expect-error: FIXME 72 | stack[0].children[id] = outline; 73 | } else if (stack[0].children && outline['#parentid'] in stack[0].children) { 74 | // @ts-expect-error: FIXME 75 | stack.unshift(stack[0].children[outline['#parentid']]); 76 | stack[0].children || (stack[0].children = {}); 77 | // @ts-expect-error: FIXME 78 | stack[0].children[id] = outline; 79 | } else { 80 | // unwind the stack as much as needed 81 | for (i = stack.length - 1; i >= 0; i--) { 82 | children = stack.shift(); 83 | // @ts-expect-error: FIXME 84 | stack[0].children[children['#id']] = children; 85 | if (stack[0]['#id'] === outline['#parentid']) { 86 | // @ts-expect-error: FIXME 87 | stack[0].children[id] = outline; 88 | break; 89 | } 90 | } 91 | } 92 | return stack; 93 | }, [ 94 | { 'title': this.meta.title || 'root', '#id': 0, children: {} } 95 | ]); 96 | let flat = flatJSON(stack.pop()); 97 | resolve(flat); 98 | }); 99 | 100 | opmlparser.end(xml); 101 | 102 | function done(err?: Error) { 103 | if (err) { 104 | reject(err); 105 | } 106 | } 107 | 108 | }) 109 | }; 110 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/helper-validator-identifier@^7.10.4": 13 | version "7.12.11" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 15 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 16 | 17 | "@babel/highlight@^7.10.4": 18 | version "7.10.4" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" 20 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.10.4" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@types/mocha@^8.2.0": 27 | version "8.2.0" 28 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" 29 | integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== 30 | 31 | "@types/node@^14.14.19": 32 | version "14.14.19" 33 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4" 34 | integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== 35 | 36 | "@types/normalize-package-data@^2.4.0": 37 | version "2.4.0" 38 | resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" 39 | integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== 40 | 41 | "@ungap/promise-all-settled@1.1.2": 42 | version "1.1.2" 43 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 44 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 45 | 46 | ansi-colors@4.1.1: 47 | version "4.1.1" 48 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 49 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 50 | 51 | ansi-regex@^3.0.0: 52 | version "3.0.0" 53 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 54 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 55 | 56 | ansi-regex@^4.1.0: 57 | version "4.1.0" 58 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 59 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 60 | 61 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 62 | version "3.2.1" 63 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 64 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 65 | dependencies: 66 | color-convert "^1.9.0" 67 | 68 | ansi-styles@^4.1.0: 69 | version "4.3.0" 70 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 71 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 72 | dependencies: 73 | color-convert "^2.0.1" 74 | 75 | anymatch@~3.1.1: 76 | version "3.1.1" 77 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 78 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 79 | dependencies: 80 | normalize-path "^3.0.0" 81 | picomatch "^2.0.4" 82 | 83 | arg@^4.1.0: 84 | version "4.1.3" 85 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 86 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 87 | 88 | argparse@^1.0.7: 89 | version "1.0.10" 90 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 91 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 92 | dependencies: 93 | sprintf-js "~1.0.2" 94 | 95 | balanced-match@^1.0.0: 96 | version "1.0.0" 97 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 98 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 99 | 100 | binary-extensions@^2.0.0: 101 | version "2.1.0" 102 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" 103 | integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== 104 | 105 | brace-expansion@^1.1.7: 106 | version "1.1.11" 107 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 108 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 109 | dependencies: 110 | balanced-match "^1.0.0" 111 | concat-map "0.0.1" 112 | 113 | braces@~3.0.2: 114 | version "3.0.2" 115 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 116 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 117 | dependencies: 118 | fill-range "^7.0.1" 119 | 120 | browser-stdout@1.3.1: 121 | version "1.3.1" 122 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 123 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 124 | 125 | buffer-from@^1.0.0: 126 | version "1.1.1" 127 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 128 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 129 | 130 | camelcase@^5.0.0: 131 | version "5.3.1" 132 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 133 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 134 | 135 | camelcase@^6.0.0: 136 | version "6.2.0" 137 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" 138 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 139 | 140 | chalk@^2.0.0: 141 | version "2.4.2" 142 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 143 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 144 | dependencies: 145 | ansi-styles "^3.2.1" 146 | escape-string-regexp "^1.0.5" 147 | supports-color "^5.3.0" 148 | 149 | chalk@^4.0.0: 150 | version "4.1.0" 151 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 152 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 153 | dependencies: 154 | ansi-styles "^4.1.0" 155 | supports-color "^7.1.0" 156 | 157 | chokidar@3.4.3: 158 | version "3.4.3" 159 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" 160 | integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== 161 | dependencies: 162 | anymatch "~3.1.1" 163 | braces "~3.0.2" 164 | glob-parent "~5.1.0" 165 | is-binary-path "~2.1.0" 166 | is-glob "~4.0.1" 167 | normalize-path "~3.0.0" 168 | readdirp "~3.5.0" 169 | optionalDependencies: 170 | fsevents "~2.1.2" 171 | 172 | cliui@^5.0.0: 173 | version "5.0.0" 174 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 175 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 176 | dependencies: 177 | string-width "^3.1.0" 178 | strip-ansi "^5.2.0" 179 | wrap-ansi "^5.1.0" 180 | 181 | color-convert@^1.9.0: 182 | version "1.9.3" 183 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 184 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 185 | dependencies: 186 | color-name "1.1.3" 187 | 188 | color-convert@^2.0.1: 189 | version "2.0.1" 190 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 191 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 192 | dependencies: 193 | color-name "~1.1.4" 194 | 195 | color-name@1.1.3: 196 | version "1.1.3" 197 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 198 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 199 | 200 | color-name@~1.1.4: 201 | version "1.1.4" 202 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 203 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 204 | 205 | concat-map@0.0.1: 206 | version "0.0.1" 207 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 208 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 209 | 210 | core-util-is@~1.0.0: 211 | version "1.0.2" 212 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 213 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 214 | 215 | create-require@^1.1.0: 216 | version "1.1.1" 217 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 218 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 219 | 220 | debug@4.2.0: 221 | version "4.2.0" 222 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" 223 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== 224 | dependencies: 225 | ms "2.1.2" 226 | 227 | decamelize@^1.2.0: 228 | version "1.2.0" 229 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 230 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 231 | 232 | decamelize@^4.0.0: 233 | version "4.0.0" 234 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 235 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 236 | 237 | diff@4.0.2, diff@^4.0.1: 238 | version "4.0.2" 239 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 240 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 241 | 242 | emoji-regex@^7.0.1: 243 | version "7.0.3" 244 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 245 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 246 | 247 | error-ex@^1.3.1: 248 | version "1.3.2" 249 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 250 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 251 | dependencies: 252 | is-arrayish "^0.2.1" 253 | 254 | escape-string-regexp@4.0.0: 255 | version "4.0.0" 256 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 257 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 258 | 259 | escape-string-regexp@^1.0.5: 260 | version "1.0.5" 261 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 262 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 263 | 264 | esprima@^4.0.0: 265 | version "4.0.1" 266 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 267 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 268 | 269 | fill-range@^7.0.1: 270 | version "7.0.1" 271 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 272 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 273 | dependencies: 274 | to-regex-range "^5.0.1" 275 | 276 | find-up@5.0.0: 277 | version "5.0.0" 278 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 279 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 280 | dependencies: 281 | locate-path "^6.0.0" 282 | path-exists "^4.0.0" 283 | 284 | find-up@^3.0.0: 285 | version "3.0.0" 286 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 287 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 288 | dependencies: 289 | locate-path "^3.0.0" 290 | 291 | flat@^5.0.2: 292 | version "5.0.2" 293 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 294 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 295 | 296 | fs.realpath@^1.0.0: 297 | version "1.0.0" 298 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 299 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 300 | 301 | fsevents@~2.1.2: 302 | version "2.1.3" 303 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 304 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 305 | 306 | function-bind@^1.1.1: 307 | version "1.1.1" 308 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 309 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 310 | 311 | get-caller-file@^2.0.1: 312 | version "2.0.5" 313 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 314 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 315 | 316 | glob-parent@~5.1.0: 317 | version "5.1.1" 318 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 319 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 320 | dependencies: 321 | is-glob "^4.0.1" 322 | 323 | glob@7.1.6: 324 | version "7.1.6" 325 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 326 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 327 | dependencies: 328 | fs.realpath "^1.0.0" 329 | inflight "^1.0.4" 330 | inherits "2" 331 | minimatch "^3.0.4" 332 | once "^1.3.0" 333 | path-is-absolute "^1.0.0" 334 | 335 | growl@1.10.5: 336 | version "1.10.5" 337 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 338 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 339 | 340 | has-flag@^3.0.0: 341 | version "3.0.0" 342 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 343 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 344 | 345 | has-flag@^4.0.0: 346 | version "4.0.0" 347 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 348 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 349 | 350 | has@^1.0.3: 351 | version "1.0.3" 352 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 353 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 354 | dependencies: 355 | function-bind "^1.1.1" 356 | 357 | he@1.2.0: 358 | version "1.2.0" 359 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 360 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 361 | 362 | hosted-git-info@^2.1.4: 363 | version "2.8.8" 364 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" 365 | integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 366 | 367 | inflight@^1.0.4: 368 | version "1.0.6" 369 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 370 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 371 | dependencies: 372 | once "^1.3.0" 373 | wrappy "1" 374 | 375 | inherits@2, inherits@~2.0.1: 376 | version "2.0.4" 377 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 378 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 379 | 380 | is-arrayish@^0.2.1: 381 | version "0.2.1" 382 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 383 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 384 | 385 | is-binary-path@~2.1.0: 386 | version "2.1.0" 387 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 388 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 389 | dependencies: 390 | binary-extensions "^2.0.0" 391 | 392 | is-core-module@^2.1.0: 393 | version "2.2.0" 394 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 395 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 396 | dependencies: 397 | has "^1.0.3" 398 | 399 | is-extglob@^2.1.1: 400 | version "2.1.1" 401 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 402 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 403 | 404 | is-fullwidth-code-point@^2.0.0: 405 | version "2.0.0" 406 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 407 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 408 | 409 | is-glob@^4.0.1, is-glob@~4.0.1: 410 | version "4.0.1" 411 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 412 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 413 | dependencies: 414 | is-extglob "^2.1.1" 415 | 416 | is-number@^7.0.0: 417 | version "7.0.0" 418 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 419 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 420 | 421 | is-plain-obj@^2.1.0: 422 | version "2.1.0" 423 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 424 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 425 | 426 | isarray@0.0.1: 427 | version "0.0.1" 428 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 429 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 430 | 431 | isexe@^2.0.0: 432 | version "2.0.0" 433 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 434 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 435 | 436 | js-tokens@^4.0.0: 437 | version "4.0.0" 438 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 439 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 440 | 441 | js-yaml@3.14.0: 442 | version "3.14.0" 443 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 444 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== 445 | dependencies: 446 | argparse "^1.0.7" 447 | esprima "^4.0.0" 448 | 449 | json-parse-even-better-errors@^2.3.0: 450 | version "2.3.1" 451 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 452 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 453 | 454 | lines-and-columns@^1.1.6: 455 | version "1.1.6" 456 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" 457 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 458 | 459 | locate-path@^3.0.0: 460 | version "3.0.0" 461 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 462 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 463 | dependencies: 464 | p-locate "^3.0.0" 465 | path-exists "^3.0.0" 466 | 467 | locate-path@^6.0.0: 468 | version "6.0.0" 469 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 470 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 471 | dependencies: 472 | p-locate "^5.0.0" 473 | 474 | log-symbols@4.0.0: 475 | version "4.0.0" 476 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" 477 | integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== 478 | dependencies: 479 | chalk "^4.0.0" 480 | 481 | make-error@^1.1.1: 482 | version "1.3.6" 483 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 484 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 485 | 486 | minimatch@3.0.4, minimatch@^3.0.4: 487 | version "3.0.4" 488 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 489 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 490 | dependencies: 491 | brace-expansion "^1.1.7" 492 | 493 | mocha@^8.2.1: 494 | version "8.2.1" 495 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39" 496 | integrity sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w== 497 | dependencies: 498 | "@ungap/promise-all-settled" "1.1.2" 499 | ansi-colors "4.1.1" 500 | browser-stdout "1.3.1" 501 | chokidar "3.4.3" 502 | debug "4.2.0" 503 | diff "4.0.2" 504 | escape-string-regexp "4.0.0" 505 | find-up "5.0.0" 506 | glob "7.1.6" 507 | growl "1.10.5" 508 | he "1.2.0" 509 | js-yaml "3.14.0" 510 | log-symbols "4.0.0" 511 | minimatch "3.0.4" 512 | ms "2.1.2" 513 | nanoid "3.1.12" 514 | serialize-javascript "5.0.1" 515 | strip-json-comments "3.1.1" 516 | supports-color "7.2.0" 517 | which "2.0.2" 518 | wide-align "1.1.3" 519 | workerpool "6.0.2" 520 | yargs "13.3.2" 521 | yargs-parser "13.1.2" 522 | yargs-unparser "2.0.0" 523 | 524 | ms@2.1.2: 525 | version "2.1.2" 526 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 527 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 528 | 529 | nanoid@3.1.12: 530 | version "3.1.12" 531 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" 532 | integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== 533 | 534 | normalize-package-data@^2.5.0: 535 | version "2.5.0" 536 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 537 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 538 | dependencies: 539 | hosted-git-info "^2.1.4" 540 | resolve "^1.10.0" 541 | semver "2 || 3 || 4 || 5" 542 | validate-npm-package-license "^3.0.1" 543 | 544 | normalize-path@^3.0.0, normalize-path@~3.0.0: 545 | version "3.0.0" 546 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 547 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 548 | 549 | once@^1.3.0: 550 | version "1.4.0" 551 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 552 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 553 | dependencies: 554 | wrappy "1" 555 | 556 | opmlparser@^0.8.0: 557 | version "0.8.0" 558 | resolved "https://registry.yarnpkg.com/opmlparser/-/opmlparser-0.8.0.tgz#a5d74834b136af9a639013f5dc39746b7c27063f" 559 | integrity sha1-pddINLE2r5pjkBP13Dl0a3wnBj8= 560 | dependencies: 561 | readable-stream "~1.1.10" 562 | sax "~0.6.0" 563 | 564 | p-limit@^2.0.0: 565 | version "2.3.0" 566 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 567 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 568 | dependencies: 569 | p-try "^2.0.0" 570 | 571 | p-limit@^3.0.2: 572 | version "3.1.0" 573 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 574 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 575 | dependencies: 576 | yocto-queue "^0.1.0" 577 | 578 | p-locate@^3.0.0: 579 | version "3.0.0" 580 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 581 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 582 | dependencies: 583 | p-limit "^2.0.0" 584 | 585 | p-locate@^5.0.0: 586 | version "5.0.0" 587 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 588 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 589 | dependencies: 590 | p-limit "^3.0.2" 591 | 592 | p-try@^2.0.0: 593 | version "2.2.0" 594 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 595 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 596 | 597 | parse-json@^5.0.0: 598 | version "5.1.0" 599 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" 600 | integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== 601 | dependencies: 602 | "@babel/code-frame" "^7.0.0" 603 | error-ex "^1.3.1" 604 | json-parse-even-better-errors "^2.3.0" 605 | lines-and-columns "^1.1.6" 606 | 607 | path-exists@^3.0.0: 608 | version "3.0.0" 609 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 610 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 611 | 612 | path-exists@^4.0.0: 613 | version "4.0.0" 614 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 615 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 616 | 617 | path-is-absolute@^1.0.0: 618 | version "1.0.1" 619 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 620 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 621 | 622 | path-parse@^1.0.6: 623 | version "1.0.6" 624 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 625 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 626 | 627 | picomatch@^2.0.4, picomatch@^2.2.1: 628 | version "2.2.2" 629 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 630 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 631 | 632 | randombytes@^2.1.0: 633 | version "2.1.0" 634 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 635 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 636 | dependencies: 637 | safe-buffer "^5.1.0" 638 | 639 | read-pkg@^5.2.0: 640 | version "5.2.0" 641 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" 642 | integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== 643 | dependencies: 644 | "@types/normalize-package-data" "^2.4.0" 645 | normalize-package-data "^2.5.0" 646 | parse-json "^5.0.0" 647 | type-fest "^0.6.0" 648 | 649 | readable-stream@~1.1.10: 650 | version "1.1.14" 651 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 652 | integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= 653 | dependencies: 654 | core-util-is "~1.0.0" 655 | inherits "~2.0.1" 656 | isarray "0.0.1" 657 | string_decoder "~0.10.x" 658 | 659 | readdirp@~3.5.0: 660 | version "3.5.0" 661 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" 662 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 663 | dependencies: 664 | picomatch "^2.2.1" 665 | 666 | require-directory@^2.1.1: 667 | version "2.1.1" 668 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 669 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 670 | 671 | require-main-filename@^2.0.0: 672 | version "2.0.0" 673 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 674 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 675 | 676 | resolve@^1.10.0: 677 | version "1.19.0" 678 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" 679 | integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== 680 | dependencies: 681 | is-core-module "^2.1.0" 682 | path-parse "^1.0.6" 683 | 684 | safe-buffer@^5.1.0: 685 | version "5.2.1" 686 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 687 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 688 | 689 | sax@~0.6.0: 690 | version "0.6.1" 691 | resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" 692 | integrity sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk= 693 | 694 | "semver@2 || 3 || 4 || 5": 695 | version "5.7.1" 696 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 697 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 698 | 699 | serialize-javascript@5.0.1: 700 | version "5.0.1" 701 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" 702 | integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== 703 | dependencies: 704 | randombytes "^2.1.0" 705 | 706 | set-blocking@^2.0.0: 707 | version "2.0.0" 708 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 709 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 710 | 711 | source-map-support@^0.5.17: 712 | version "0.5.19" 713 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 714 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 715 | dependencies: 716 | buffer-from "^1.0.0" 717 | source-map "^0.6.0" 718 | 719 | source-map@^0.6.0: 720 | version "0.6.1" 721 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 722 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 723 | 724 | spdx-correct@^3.0.0: 725 | version "3.1.1" 726 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 727 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 728 | dependencies: 729 | spdx-expression-parse "^3.0.0" 730 | spdx-license-ids "^3.0.0" 731 | 732 | spdx-exceptions@^2.1.0: 733 | version "2.3.0" 734 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 735 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 736 | 737 | spdx-expression-parse@^3.0.0: 738 | version "3.0.1" 739 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 740 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 741 | dependencies: 742 | spdx-exceptions "^2.1.0" 743 | spdx-license-ids "^3.0.0" 744 | 745 | spdx-license-ids@^3.0.0: 746 | version "3.0.7" 747 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 748 | integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 749 | 750 | sprintf-js@~1.0.2: 751 | version "1.0.3" 752 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 753 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 754 | 755 | "string-width@^1.0.2 || 2": 756 | version "2.1.1" 757 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 758 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 759 | dependencies: 760 | is-fullwidth-code-point "^2.0.0" 761 | strip-ansi "^4.0.0" 762 | 763 | string-width@^3.0.0, string-width@^3.1.0: 764 | version "3.1.0" 765 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 766 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 767 | dependencies: 768 | emoji-regex "^7.0.1" 769 | is-fullwidth-code-point "^2.0.0" 770 | strip-ansi "^5.1.0" 771 | 772 | string_decoder@~0.10.x: 773 | version "0.10.31" 774 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 775 | integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= 776 | 777 | strip-ansi@^4.0.0: 778 | version "4.0.0" 779 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 780 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 781 | dependencies: 782 | ansi-regex "^3.0.0" 783 | 784 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 785 | version "5.2.0" 786 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 787 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 788 | dependencies: 789 | ansi-regex "^4.1.0" 790 | 791 | strip-json-comments@3.1.1: 792 | version "3.1.1" 793 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 794 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 795 | 796 | supports-color@7.2.0, supports-color@^7.1.0: 797 | version "7.2.0" 798 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 799 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 800 | dependencies: 801 | has-flag "^4.0.0" 802 | 803 | supports-color@^5.3.0: 804 | version "5.5.0" 805 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 806 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 807 | dependencies: 808 | has-flag "^3.0.0" 809 | 810 | to-regex-range@^5.0.1: 811 | version "5.0.1" 812 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 813 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 814 | dependencies: 815 | is-number "^7.0.0" 816 | 817 | ts-node-test-register@^9.0.1: 818 | version "9.0.1" 819 | resolved "https://registry.yarnpkg.com/ts-node-test-register/-/ts-node-test-register-9.0.1.tgz#84bdf287bdc29f64de33d3b5f04d73395233dcd8" 820 | integrity sha512-J8xmFFH6HcFFxe09qcVsooDgiTa+cUDsNj3l+I0JPPl0hcIvw7RcJPU4qmkj+55JVlFsEql6Nl7xSkCt36RFtw== 821 | dependencies: 822 | read-pkg "^5.2.0" 823 | 824 | ts-node@^9.1.1: 825 | version "9.1.1" 826 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" 827 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== 828 | dependencies: 829 | arg "^4.1.0" 830 | create-require "^1.1.0" 831 | diff "^4.0.1" 832 | make-error "^1.1.1" 833 | source-map-support "^0.5.17" 834 | yn "3.1.1" 835 | 836 | type-fest@^0.6.0: 837 | version "0.6.0" 838 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" 839 | integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 840 | 841 | typescript@^4.1.3: 842 | version "4.1.3" 843 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" 844 | integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== 845 | 846 | validate-npm-package-license@^3.0.1: 847 | version "3.0.4" 848 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 849 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 850 | dependencies: 851 | spdx-correct "^3.0.0" 852 | spdx-expression-parse "^3.0.0" 853 | 854 | which-module@^2.0.0: 855 | version "2.0.0" 856 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 857 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 858 | 859 | which@2.0.2: 860 | version "2.0.2" 861 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 862 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 863 | dependencies: 864 | isexe "^2.0.0" 865 | 866 | wide-align@1.1.3: 867 | version "1.1.3" 868 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 869 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 870 | dependencies: 871 | string-width "^1.0.2 || 2" 872 | 873 | workerpool@6.0.2: 874 | version "6.0.2" 875 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438" 876 | integrity sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q== 877 | 878 | wrap-ansi@^5.1.0: 879 | version "5.1.0" 880 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 881 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== 882 | dependencies: 883 | ansi-styles "^3.2.0" 884 | string-width "^3.0.0" 885 | strip-ansi "^5.0.0" 886 | 887 | wrappy@1: 888 | version "1.0.2" 889 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 890 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 891 | 892 | y18n@^4.0.0: 893 | version "4.0.1" 894 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" 895 | integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== 896 | 897 | yargs-parser@13.1.2, yargs-parser@^13.1.2: 898 | version "13.1.2" 899 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" 900 | integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== 901 | dependencies: 902 | camelcase "^5.0.0" 903 | decamelize "^1.2.0" 904 | 905 | yargs-unparser@2.0.0: 906 | version "2.0.0" 907 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 908 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 909 | dependencies: 910 | camelcase "^6.0.0" 911 | decamelize "^4.0.0" 912 | flat "^5.0.2" 913 | is-plain-obj "^2.1.0" 914 | 915 | yargs@13.3.2: 916 | version "13.3.2" 917 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" 918 | integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== 919 | dependencies: 920 | cliui "^5.0.0" 921 | find-up "^3.0.0" 922 | get-caller-file "^2.0.1" 923 | require-directory "^2.1.1" 924 | require-main-filename "^2.0.0" 925 | set-blocking "^2.0.0" 926 | string-width "^3.0.0" 927 | which-module "^2.0.0" 928 | y18n "^4.0.0" 929 | yargs-parser "^13.1.2" 930 | 931 | yn@3.1.1: 932 | version "3.1.1" 933 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 934 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 935 | 936 | yocto-queue@^0.1.0: 937 | version "0.1.0" 938 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 939 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 940 | --------------------------------------------------------------------------------