├── .github └── workflows │ ├── fmt.yml │ └── test.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── build.js ├── package.json ├── src ├── fileloc.d.ts └── index.ts ├── test ├── index.js └── tests │ └── basic.ts ├── tsconfig.json └── yarn.lock /.github/workflows/fmt.yml: -------------------------------------------------------------------------------- 1 | name: fmt 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | fmt: 7 | name: Check code formatting 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - uses: actions/setup-node@v1 13 | 14 | - name: Install yarn 15 | run: npm i -g yarn 16 | 17 | - name: Install dependencies 18 | run: yarn 19 | 20 | - name: Check fmt 21 | run: yarn fmt:check -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | fmt: 7 | name: Test 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - uses: actions/setup-node@v1 13 | with: 14 | node-version: '14' 15 | 16 | - name: Install yarn 17 | run: npm i -g yarn 18 | 19 | - name: Install dependencies 20 | run: yarn 21 | 22 | - name: Run tests 23 | run: yarn test -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | *.log 4 | test/dist -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .github 3 | dist -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "none" 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Marton Lederer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # esbuild-plugin-fileloc 2 | 3 | Support `__dirname`, `__filename`, `__line` and additional global variables with esbuild 4 | 5 | ## Install 6 | 7 | ```sh 8 | yarn add -D esbuild-plugin-fileloc 9 | ``` 10 | 11 | or 12 | 13 | ```sh 14 | npm i -D esbuild-plugin-fileloc 15 | ``` 16 | 17 | ## Usage 18 | 19 | There are 5 global variables available currently: 20 | 21 | ```ts 22 | console.log(__dirname); // absolute dirname in source 23 | console.log(__filename); // absolute filename in source 24 | console.log(__relativedirname); // relative dirname in source 25 | console.log(__relativefilename); // relative filename in source 26 | console.log(__line); // line number 27 | ``` 28 | 29 | ## Typescript declarations 30 | 31 | To add type declarations for the global variables to your project you can just add this line to your ts file: 32 | 33 | ```ts 34 | /// 35 | ``` 36 | -------------------------------------------------------------------------------- /build.js: -------------------------------------------------------------------------------- 1 | const { build } = require("esbuild"); 2 | 3 | const formats = ["cjs", "esm"]; 4 | 5 | (async () => { 6 | for (const format of formats) { 7 | await build({ 8 | entryPoints: ["./src/index.ts"], 9 | format, 10 | outfile: `./dist/index${format === "cjs" ? "" : "." + format}.js` 11 | }); 12 | } 13 | })(); 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esbuild-plugin-fileloc", 3 | "version": "0.0.6", 4 | "description": "Support __dirname, __filename, __line and additional global variables with esbuild", 5 | "main": "dist/index.js", 6 | "module": "dist/index.esm.js", 7 | "types": "src/fileloc.d.ts", 8 | "repository": "https://github.com/martonlederer/esbuild-plugin-fileloc", 9 | "author": "Marton Lederer ", 10 | "license": "MIT", 11 | "private": false, 12 | "publishConfig": { 13 | "access": "public" 14 | }, 15 | "scripts": { 16 | "build": "node build.js", 17 | "test": "yarn build && cd test && mocha 'index.js' --no-timeout --exit", 18 | "fmt": "prettier --write .", 19 | "fmt:check": "prettier --check ." 20 | }, 21 | "gitHooks": { 22 | "pre-commit": "prettier --write . && git add -A" 23 | }, 24 | "files": [ 25 | "dist", 26 | "src/fileloc.d.ts" 27 | ], 28 | "dependencies": { 29 | "fs-extra": "^9.1.0" 30 | }, 31 | "devDependencies": { 32 | "@types/chai": "^4.2.15", 33 | "@types/fs-extra": "^9.0.7", 34 | "@types/mocha": "^8.2.1", 35 | "@types/node": "^14.14.31", 36 | "chai": "^4.3.0", 37 | "esbuild": "^0.8.49", 38 | "mocha": "^8.3.0", 39 | "prettier": "^2.2.1", 40 | "typescript": "^4.1.5", 41 | "yorkie": "^2.0.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/fileloc.d.ts: -------------------------------------------------------------------------------- 1 | declare var __relativedirname: string; 2 | declare var __relativefilename: string; 3 | declare var __line: number; 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { Plugin, Loader } from "esbuild"; 2 | import path from "path"; 3 | import process from "process"; 4 | import fs from "fs-extra"; 5 | 6 | interface FilelocPluginOptions { 7 | rootDir?: string; 8 | } 9 | 10 | export const filelocPlugin = (options?: FilelocPluginOptions): Plugin => ({ 11 | name: "fileloc", 12 | setup(build) { 13 | const rootDir = options?.rootDir ?? process.cwd(); 14 | 15 | build.onLoad( 16 | { filter: /.\.(js|ts|jsx|tsx)$/, namespace: "file" }, 17 | async (args) => { 18 | const isWindows = /^win/.test(process.platform); 19 | const esc = (p) => (isWindows ? p.replace(/\\/g, "/") : p); 20 | const variables = ` 21 | const __fileloc = { 22 | filename: "${esc(args.path)}", 23 | dirname: "${esc(path.dirname(args.path))}", 24 | relativefilename: "${esc(path.relative(rootDir, args.path))}", 25 | relativedirname: "${esc( 26 | path.relative(rootDir, path.dirname(args.path)) 27 | )}" 28 | }; 29 | let __line = 0; 30 | `; 31 | const fileContent = new TextDecoder().decode( 32 | await fs.readFile(args.path) 33 | ); 34 | 35 | const lines = fileContent.split("\n"); 36 | let fileWithCharsAndLines = ""; 37 | 38 | for (let i = 0; i < lines.length; i++) { 39 | const hasLineNumber = !!lines[i].match(/__line/g); 40 | fileWithCharsAndLines += 41 | (hasLineNumber ? `__line=${i + 1};` : "") + lines[i] + "\n"; 42 | } 43 | 44 | const globalsRegex = /__(?=(filename|dirname|relativefilename|relativedirname))/g; 45 | const contents = 46 | (fileWithCharsAndLines.match(globalsRegex) ? variables : "") + 47 | "\n" + 48 | fileWithCharsAndLines.replace(globalsRegex, "__fileloc."); 49 | const loader = args.path.split(".").pop() as Loader; 50 | 51 | return { 52 | contents, 53 | loader 54 | }; 55 | } 56 | ); 57 | } 58 | }); 59 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | const { filelocPlugin } = require("../dist"), 2 | { assert } = require("chai"), 3 | { build } = require("esbuild"); 4 | 5 | describe("Fileloc esbuild tests", () => { 6 | it("Global variables work", (done) => { 7 | test("basic") 8 | .then((res) => { 9 | assert(res); 10 | done(); 11 | }) 12 | .catch(done); 13 | }); 14 | }); 15 | 16 | function test(test) { 17 | return build({ 18 | entryPoints: [`tests/basic.ts`], 19 | bundle: true, 20 | outfile: `dist/${test}.js`, 21 | plugins: [filelocPlugin()] 22 | }).catch(() => process.exit(1)); 23 | } 24 | -------------------------------------------------------------------------------- /test/tests/basic.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | console.log(__dirname); 4 | console.log(__filename); 5 | console.log(__relativedirname); 6 | console.log(__relativefilename); 7 | console.log(__line); 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "moduleResolution": "node", 5 | "module": "commonjs", 6 | "target": "es2017", 7 | "outDir": "dist", 8 | "declaration": true, 9 | "rootDir": "src" 10 | }, 11 | "include": ["src"], 12 | "exclude": ["node_modules", "dist"] 13 | } 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/chai@^4.2.15": 6 | version "4.2.15" 7 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.15.tgz#b7a6d263c2cecf44b6de9a051cf496249b154553" 8 | integrity sha512-rYff6FI+ZTKAPkJUoyz7Udq3GaoDZnxYDEvdEdFZASiA7PoErltHezDishqQiSDWrGxvxmplH304jyzQmjp0AQ== 9 | 10 | "@types/fs-extra@^9.0.7": 11 | version "9.0.7" 12 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz#a9ef2ffdab043def080c5bec94c03402f793577f" 13 | integrity sha512-YGq2A6Yc3bldrLUlm17VNWOnUbnEzJ9CMgOeLFtQF3HOCN5lQBO8VyjG00a5acA5NNSM30kHVGp1trZgnVgi1Q== 14 | dependencies: 15 | "@types/node" "*" 16 | 17 | "@types/mocha@^8.2.1": 18 | version "8.2.1" 19 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.1.tgz#f3f3ae4590c5386fc7c543aae9b78d4cf30ffee9" 20 | integrity sha512-NysN+bNqj6E0Hv4CTGWSlPzMW6vTKjDpOteycDkV4IWBsO+PU48JonrPzV9ODjiI2XrjmA05KInLgF5ivZ/YGQ== 21 | 22 | "@types/node@*", "@types/node@^14.14.31": 23 | version "14.14.31" 24 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" 25 | integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== 26 | 27 | "@ungap/promise-all-settled@1.1.2": 28 | version "1.1.2" 29 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 30 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 31 | 32 | ansi-colors@4.1.1: 33 | version "4.1.1" 34 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 35 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 36 | 37 | ansi-regex@^3.0.0: 38 | version "3.0.0" 39 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 40 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 41 | 42 | ansi-regex@^5.0.0: 43 | version "5.0.0" 44 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 45 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 46 | 47 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 48 | version "4.3.0" 49 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 50 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 51 | dependencies: 52 | color-convert "^2.0.1" 53 | 54 | anymatch@~3.1.1: 55 | version "3.1.1" 56 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 57 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 58 | dependencies: 59 | normalize-path "^3.0.0" 60 | picomatch "^2.0.4" 61 | 62 | argparse@^2.0.1: 63 | version "2.0.1" 64 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 65 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 66 | 67 | assertion-error@^1.1.0: 68 | version "1.1.0" 69 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 70 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 71 | 72 | at-least-node@^1.0.0: 73 | version "1.0.0" 74 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 75 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 76 | 77 | balanced-match@^1.0.0: 78 | version "1.0.0" 79 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 80 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 81 | 82 | binary-extensions@^2.0.0: 83 | version "2.2.0" 84 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 85 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 86 | 87 | brace-expansion@^1.1.7: 88 | version "1.1.11" 89 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 90 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 91 | dependencies: 92 | balanced-match "^1.0.0" 93 | concat-map "0.0.1" 94 | 95 | braces@~3.0.2: 96 | version "3.0.2" 97 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 98 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 99 | dependencies: 100 | fill-range "^7.0.1" 101 | 102 | browser-stdout@1.3.1: 103 | version "1.3.1" 104 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 105 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 106 | 107 | camelcase@^6.0.0: 108 | version "6.2.0" 109 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" 110 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 111 | 112 | chai@^4.3.0: 113 | version "4.3.0" 114 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.0.tgz#5523a5faf7f819c8a92480d70a8cccbadacfc25f" 115 | integrity sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA== 116 | dependencies: 117 | assertion-error "^1.1.0" 118 | check-error "^1.0.2" 119 | deep-eql "^3.0.1" 120 | get-func-name "^2.0.0" 121 | pathval "^1.1.0" 122 | type-detect "^4.0.5" 123 | 124 | chalk@^4.0.0: 125 | version "4.1.0" 126 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 127 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 128 | dependencies: 129 | ansi-styles "^4.1.0" 130 | supports-color "^7.1.0" 131 | 132 | check-error@^1.0.2: 133 | version "1.0.2" 134 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 135 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= 136 | 137 | chokidar@3.5.1: 138 | version "3.5.1" 139 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" 140 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== 141 | dependencies: 142 | anymatch "~3.1.1" 143 | braces "~3.0.2" 144 | glob-parent "~5.1.0" 145 | is-binary-path "~2.1.0" 146 | is-glob "~4.0.1" 147 | normalize-path "~3.0.0" 148 | readdirp "~3.5.0" 149 | optionalDependencies: 150 | fsevents "~2.3.1" 151 | 152 | ci-info@^1.5.0: 153 | version "1.6.0" 154 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 155 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 156 | 157 | cliui@^7.0.2: 158 | version "7.0.4" 159 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 160 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 161 | dependencies: 162 | string-width "^4.2.0" 163 | strip-ansi "^6.0.0" 164 | wrap-ansi "^7.0.0" 165 | 166 | color-convert@^2.0.1: 167 | version "2.0.1" 168 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 169 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 170 | dependencies: 171 | color-name "~1.1.4" 172 | 173 | color-name@~1.1.4: 174 | version "1.1.4" 175 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 176 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 177 | 178 | concat-map@0.0.1: 179 | version "0.0.1" 180 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 181 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 182 | 183 | cross-spawn@^5.0.1: 184 | version "5.1.0" 185 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 186 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 187 | dependencies: 188 | lru-cache "^4.0.1" 189 | shebang-command "^1.2.0" 190 | which "^1.2.9" 191 | 192 | debug@4.3.1: 193 | version "4.3.1" 194 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 195 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 196 | dependencies: 197 | ms "2.1.2" 198 | 199 | decamelize@^4.0.0: 200 | version "4.0.0" 201 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 202 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 203 | 204 | deep-eql@^3.0.1: 205 | version "3.0.1" 206 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 207 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 208 | dependencies: 209 | type-detect "^4.0.0" 210 | 211 | diff@5.0.0: 212 | version "5.0.0" 213 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 214 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 215 | 216 | emoji-regex@^8.0.0: 217 | version "8.0.0" 218 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 219 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 220 | 221 | esbuild@^0.8.49: 222 | version "0.8.49" 223 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.49.tgz#3d33f71b3966611f822cf4c838115f3fbd16def2" 224 | integrity sha512-itiFVYv5UZz4NooO7/Y0bRGVDGz/M/cxKbl6zyNI5pnKaz1mZjvZXAFhhDVz6rGCmcdTKj5oag6rh8DaaSSmfQ== 225 | 226 | escalade@^3.1.1: 227 | version "3.1.1" 228 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 229 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 230 | 231 | escape-string-regexp@4.0.0: 232 | version "4.0.0" 233 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 234 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 235 | 236 | execa@^0.8.0: 237 | version "0.8.0" 238 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" 239 | integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= 240 | dependencies: 241 | cross-spawn "^5.0.1" 242 | get-stream "^3.0.0" 243 | is-stream "^1.1.0" 244 | npm-run-path "^2.0.0" 245 | p-finally "^1.0.0" 246 | signal-exit "^3.0.0" 247 | strip-eof "^1.0.0" 248 | 249 | fill-range@^7.0.1: 250 | version "7.0.1" 251 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 252 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 253 | dependencies: 254 | to-regex-range "^5.0.1" 255 | 256 | find-up@5.0.0: 257 | version "5.0.0" 258 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 259 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 260 | dependencies: 261 | locate-path "^6.0.0" 262 | path-exists "^4.0.0" 263 | 264 | flat@^5.0.2: 265 | version "5.0.2" 266 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 267 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 268 | 269 | fs-extra@^9.1.0: 270 | version "9.1.0" 271 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" 272 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== 273 | dependencies: 274 | at-least-node "^1.0.0" 275 | graceful-fs "^4.2.0" 276 | jsonfile "^6.0.1" 277 | universalify "^2.0.0" 278 | 279 | fs.realpath@^1.0.0: 280 | version "1.0.0" 281 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 282 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 283 | 284 | fsevents@~2.3.1: 285 | version "2.3.2" 286 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 287 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 288 | 289 | get-caller-file@^2.0.5: 290 | version "2.0.5" 291 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 292 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 293 | 294 | get-func-name@^2.0.0: 295 | version "2.0.0" 296 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 297 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= 298 | 299 | get-stream@^3.0.0: 300 | version "3.0.0" 301 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 302 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 303 | 304 | glob-parent@~5.1.0: 305 | version "5.1.1" 306 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 307 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 308 | dependencies: 309 | is-glob "^4.0.1" 310 | 311 | glob@7.1.6: 312 | version "7.1.6" 313 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 314 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 315 | dependencies: 316 | fs.realpath "^1.0.0" 317 | inflight "^1.0.4" 318 | inherits "2" 319 | minimatch "^3.0.4" 320 | once "^1.3.0" 321 | path-is-absolute "^1.0.0" 322 | 323 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 324 | version "4.2.6" 325 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 326 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 327 | 328 | growl@1.10.5: 329 | version "1.10.5" 330 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 331 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 332 | 333 | has-flag@^4.0.0: 334 | version "4.0.0" 335 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 336 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 337 | 338 | he@1.2.0: 339 | version "1.2.0" 340 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 341 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 342 | 343 | inflight@^1.0.4: 344 | version "1.0.6" 345 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 346 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 347 | dependencies: 348 | once "^1.3.0" 349 | wrappy "1" 350 | 351 | inherits@2: 352 | version "2.0.4" 353 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 354 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 355 | 356 | is-binary-path@~2.1.0: 357 | version "2.1.0" 358 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 359 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 360 | dependencies: 361 | binary-extensions "^2.0.0" 362 | 363 | is-ci@^1.0.10: 364 | version "1.2.1" 365 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 366 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 367 | dependencies: 368 | ci-info "^1.5.0" 369 | 370 | is-extglob@^2.1.1: 371 | version "2.1.1" 372 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 373 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 374 | 375 | is-fullwidth-code-point@^2.0.0: 376 | version "2.0.0" 377 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 378 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 379 | 380 | is-fullwidth-code-point@^3.0.0: 381 | version "3.0.0" 382 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 383 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 384 | 385 | is-glob@^4.0.1, is-glob@~4.0.1: 386 | version "4.0.1" 387 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 388 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 389 | dependencies: 390 | is-extglob "^2.1.1" 391 | 392 | is-number@^7.0.0: 393 | version "7.0.0" 394 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 395 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 396 | 397 | is-plain-obj@^2.1.0: 398 | version "2.1.0" 399 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 400 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 401 | 402 | is-stream@^1.1.0: 403 | version "1.1.0" 404 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 405 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 406 | 407 | isexe@^2.0.0: 408 | version "2.0.0" 409 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 410 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 411 | 412 | js-yaml@4.0.0: 413 | version "4.0.0" 414 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" 415 | integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== 416 | dependencies: 417 | argparse "^2.0.1" 418 | 419 | jsonfile@^6.0.1: 420 | version "6.1.0" 421 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 422 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 423 | dependencies: 424 | universalify "^2.0.0" 425 | optionalDependencies: 426 | graceful-fs "^4.1.6" 427 | 428 | locate-path@^6.0.0: 429 | version "6.0.0" 430 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 431 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 432 | dependencies: 433 | p-locate "^5.0.0" 434 | 435 | log-symbols@4.0.0: 436 | version "4.0.0" 437 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" 438 | integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== 439 | dependencies: 440 | chalk "^4.0.0" 441 | 442 | lru-cache@^4.0.1: 443 | version "4.1.5" 444 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 445 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 446 | dependencies: 447 | pseudomap "^1.0.2" 448 | yallist "^2.1.2" 449 | 450 | minimatch@3.0.4, minimatch@^3.0.4: 451 | version "3.0.4" 452 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 453 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 454 | dependencies: 455 | brace-expansion "^1.1.7" 456 | 457 | mocha@^8.3.0: 458 | version "8.3.0" 459 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.3.0.tgz#a83a7432d382ae1ca29686062d7fdc2c36f63fe5" 460 | integrity sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q== 461 | dependencies: 462 | "@ungap/promise-all-settled" "1.1.2" 463 | ansi-colors "4.1.1" 464 | browser-stdout "1.3.1" 465 | chokidar "3.5.1" 466 | debug "4.3.1" 467 | diff "5.0.0" 468 | escape-string-regexp "4.0.0" 469 | find-up "5.0.0" 470 | glob "7.1.6" 471 | growl "1.10.5" 472 | he "1.2.0" 473 | js-yaml "4.0.0" 474 | log-symbols "4.0.0" 475 | minimatch "3.0.4" 476 | ms "2.1.3" 477 | nanoid "3.1.20" 478 | serialize-javascript "5.0.1" 479 | strip-json-comments "3.1.1" 480 | supports-color "8.1.1" 481 | which "2.0.2" 482 | wide-align "1.1.3" 483 | workerpool "6.1.0" 484 | yargs "16.2.0" 485 | yargs-parser "20.2.4" 486 | yargs-unparser "2.0.0" 487 | 488 | ms@2.1.2: 489 | version "2.1.2" 490 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 491 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 492 | 493 | ms@2.1.3: 494 | version "2.1.3" 495 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 496 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 497 | 498 | nanoid@3.1.20: 499 | version "3.1.20" 500 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" 501 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== 502 | 503 | normalize-path@^1.0.0: 504 | version "1.0.0" 505 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" 506 | integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= 507 | 508 | normalize-path@^3.0.0, normalize-path@~3.0.0: 509 | version "3.0.0" 510 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 511 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 512 | 513 | npm-run-path@^2.0.0: 514 | version "2.0.2" 515 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 516 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 517 | dependencies: 518 | path-key "^2.0.0" 519 | 520 | once@^1.3.0: 521 | version "1.4.0" 522 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 523 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 524 | dependencies: 525 | wrappy "1" 526 | 527 | p-finally@^1.0.0: 528 | version "1.0.0" 529 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 530 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 531 | 532 | p-limit@^3.0.2: 533 | version "3.1.0" 534 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 535 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 536 | dependencies: 537 | yocto-queue "^0.1.0" 538 | 539 | p-locate@^5.0.0: 540 | version "5.0.0" 541 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 542 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 543 | dependencies: 544 | p-limit "^3.0.2" 545 | 546 | path-exists@^4.0.0: 547 | version "4.0.0" 548 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 549 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 550 | 551 | path-is-absolute@^1.0.0: 552 | version "1.0.1" 553 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 554 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 555 | 556 | path-key@^2.0.0: 557 | version "2.0.1" 558 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 559 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 560 | 561 | pathval@^1.1.0: 562 | version "1.1.1" 563 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 564 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 565 | 566 | picomatch@^2.0.4, picomatch@^2.2.1: 567 | version "2.2.2" 568 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 569 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 570 | 571 | prettier@^2.2.1: 572 | version "2.2.1" 573 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" 574 | integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== 575 | 576 | pseudomap@^1.0.2: 577 | version "1.0.2" 578 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 579 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 580 | 581 | randombytes@^2.1.0: 582 | version "2.1.0" 583 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 584 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 585 | dependencies: 586 | safe-buffer "^5.1.0" 587 | 588 | readdirp@~3.5.0: 589 | version "3.5.0" 590 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" 591 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 592 | dependencies: 593 | picomatch "^2.2.1" 594 | 595 | require-directory@^2.1.1: 596 | version "2.1.1" 597 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 598 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 599 | 600 | safe-buffer@^5.1.0: 601 | version "5.2.1" 602 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 603 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 604 | 605 | serialize-javascript@5.0.1: 606 | version "5.0.1" 607 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" 608 | integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== 609 | dependencies: 610 | randombytes "^2.1.0" 611 | 612 | shebang-command@^1.2.0: 613 | version "1.2.0" 614 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 615 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 616 | dependencies: 617 | shebang-regex "^1.0.0" 618 | 619 | shebang-regex@^1.0.0: 620 | version "1.0.0" 621 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 622 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 623 | 624 | signal-exit@^3.0.0: 625 | version "3.0.3" 626 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 627 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 628 | 629 | "string-width@^1.0.2 || 2": 630 | version "2.1.1" 631 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 632 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 633 | dependencies: 634 | is-fullwidth-code-point "^2.0.0" 635 | strip-ansi "^4.0.0" 636 | 637 | string-width@^4.1.0, string-width@^4.2.0: 638 | version "4.2.0" 639 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 640 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 641 | dependencies: 642 | emoji-regex "^8.0.0" 643 | is-fullwidth-code-point "^3.0.0" 644 | strip-ansi "^6.0.0" 645 | 646 | strip-ansi@^4.0.0: 647 | version "4.0.0" 648 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 649 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 650 | dependencies: 651 | ansi-regex "^3.0.0" 652 | 653 | strip-ansi@^6.0.0: 654 | version "6.0.0" 655 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 656 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 657 | dependencies: 658 | ansi-regex "^5.0.0" 659 | 660 | strip-eof@^1.0.0: 661 | version "1.0.0" 662 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 663 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 664 | 665 | strip-indent@^2.0.0: 666 | version "2.0.0" 667 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 668 | integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= 669 | 670 | strip-json-comments@3.1.1: 671 | version "3.1.1" 672 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 673 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 674 | 675 | supports-color@8.1.1: 676 | version "8.1.1" 677 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 678 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 679 | dependencies: 680 | has-flag "^4.0.0" 681 | 682 | supports-color@^7.1.0: 683 | version "7.2.0" 684 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 685 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 686 | dependencies: 687 | has-flag "^4.0.0" 688 | 689 | to-regex-range@^5.0.1: 690 | version "5.0.1" 691 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 692 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 693 | dependencies: 694 | is-number "^7.0.0" 695 | 696 | type-detect@^4.0.0, type-detect@^4.0.5: 697 | version "4.0.8" 698 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 699 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 700 | 701 | typescript@^4.1.5: 702 | version "4.1.5" 703 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72" 704 | integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== 705 | 706 | universalify@^2.0.0: 707 | version "2.0.0" 708 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 709 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 710 | 711 | which@2.0.2: 712 | version "2.0.2" 713 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 714 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 715 | dependencies: 716 | isexe "^2.0.0" 717 | 718 | which@^1.2.9: 719 | version "1.3.1" 720 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 721 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 722 | dependencies: 723 | isexe "^2.0.0" 724 | 725 | wide-align@1.1.3: 726 | version "1.1.3" 727 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 728 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 729 | dependencies: 730 | string-width "^1.0.2 || 2" 731 | 732 | workerpool@6.1.0: 733 | version "6.1.0" 734 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" 735 | integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== 736 | 737 | wrap-ansi@^7.0.0: 738 | version "7.0.0" 739 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 740 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 741 | dependencies: 742 | ansi-styles "^4.0.0" 743 | string-width "^4.1.0" 744 | strip-ansi "^6.0.0" 745 | 746 | wrappy@1: 747 | version "1.0.2" 748 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 749 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 750 | 751 | y18n@^5.0.5: 752 | version "5.0.5" 753 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" 754 | integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== 755 | 756 | yallist@^2.1.2: 757 | version "2.1.2" 758 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 759 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 760 | 761 | yargs-parser@20.2.4: 762 | version "20.2.4" 763 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 764 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 765 | 766 | yargs-parser@^20.2.2: 767 | version "20.2.5" 768 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.5.tgz#5d37729146d3f894f39fc94b6796f5b239513186" 769 | integrity sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg== 770 | 771 | yargs-unparser@2.0.0: 772 | version "2.0.0" 773 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 774 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 775 | dependencies: 776 | camelcase "^6.0.0" 777 | decamelize "^4.0.0" 778 | flat "^5.0.2" 779 | is-plain-obj "^2.1.0" 780 | 781 | yargs@16.2.0: 782 | version "16.2.0" 783 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 784 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 785 | dependencies: 786 | cliui "^7.0.2" 787 | escalade "^3.1.1" 788 | get-caller-file "^2.0.5" 789 | require-directory "^2.1.1" 790 | string-width "^4.2.0" 791 | y18n "^5.0.5" 792 | yargs-parser "^20.2.2" 793 | 794 | yocto-queue@^0.1.0: 795 | version "0.1.0" 796 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 797 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 798 | 799 | yorkie@^2.0.0: 800 | version "2.0.0" 801 | resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" 802 | integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== 803 | dependencies: 804 | execa "^0.8.0" 805 | is-ci "^1.0.10" 806 | normalize-path "^1.0.0" 807 | strip-indent "^2.0.0" 808 | --------------------------------------------------------------------------------