├── .eslintrc.json ├── .github └── workflows │ └── stale.yml ├── .gitignore ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── images ├── icon.jpg ├── use.gif └── use.jpg ├── package-lock.json ├── package.json ├── src ├── extension.ts ├── providers │ ├── hoverProvider.ts │ └── linkProvider.ts ├── test │ ├── runTest.ts │ └── suite │ │ ├── extension.test.ts │ │ └── index.ts └── util.ts └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "ecmaVersion": 6, 6 | "sourceType": "module" 7 | }, 8 | "plugins": [ 9 | "@typescript-eslint" 10 | ], 11 | "rules": { 12 | "@typescript-eslint/naming-convention": "warn", 13 | "@typescript-eslint/semi": "warn", 14 | "curly": "warn", 15 | "eqeqeq": "warn", 16 | "no-throw-literal": "warn", 17 | "semi": "off" 18 | }, 19 | "ignorePatterns": [ 20 | "out", 21 | "dist", 22 | "**/*.d.ts" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues and pull requests 7 | 8 | on: 9 | schedule: 10 | - cron: '40 0 * * *' 11 | 12 | jobs: 13 | stale: 14 | 15 | runs-on: ubuntu-latest 16 | permissions: 17 | issues: write 18 | pull-requests: write 19 | 20 | steps: 21 | - uses: actions/stale@v3 22 | with: 23 | repo-token: ${{ secrets.GITHUB_TOKEN }} 24 | stale-issue-message: 'Stale issue message' 25 | stale-pr-message: 'Stale pull request message' 26 | stale-issue-label: 'no-issue-activity' 27 | stale-pr-label: 'no-pr-activity' 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "dbaeumer.vscode-eslint" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Run Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "${defaultBuildTask}" 19 | }, 20 | { 21 | "name": "Extension Tests", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "args": [ 25 | "--extensionDevelopmentPath=${workspaceFolder}", 26 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" 27 | ], 28 | "outFiles": [ 29 | "${workspaceFolder}/out/test/**/*.js" 30 | ], 31 | "preLaunchTask": "${defaultBuildTask}" 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off" 11 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | src/** 4 | .gitignore 5 | .yarnrc 6 | vsc-extension-quickstart.md 7 | **/tsconfig.json 8 | **/.eslintrc.json 9 | **/*.map 10 | **/*.ts 11 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## 1.3.11 4 | - update README.md 5 | 6 | ## 1.3.10 7 | - added assertViewIs to the default regex 8 | 9 | ## 1.3.9 10 | - default regex value now supports nested folders 11 | - default support for Inertia::modal macro 12 | - default support for mailable markdown 13 | 14 | ## 1.3.8 15 | Support named parameter 16 | 17 | ## 1.3.7 18 | 19 | Add support for View::make() facade 20 | 21 | ## 1.3.6 22 | 23 | Upgrade 24 | 25 | ## 1.3.5 26 | 27 | Add support for Blade and Livewire components 28 | 29 | ## 1.3.4 30 | 31 | Added default configuration for inertia & vue 32 | 33 | ## 1.3.3 34 | 35 | - Add LICENSE 36 | 37 | ## 1.3.2 38 | 39 | - Merge pull request #21 from erlangp/patch-1(don't show underscore under single quote) 40 | 41 | ## 1.3.1 42 | 43 | - Fixed #20 44 | 45 | ## 1.3.0 46 | 47 | - Fix vendor resolveing 48 | - Add a way to stop the extension from search big files 49 | - Add more personalized configuration, please check the introduction 50 | 51 | ## 1.2.5 52 | 53 | - Optimize regular expressions 54 | 55 | ## 1.2.3 56 | 57 | - Fixed bug 58 | 59 | ## 1.2.2 60 | 61 | - Added support for [nwidart/laravel-modules](https://packagist.org/packages/nwidart/laravel-modules) 62 | 63 | ## 1.2.1 64 | 65 | - Added support for multiple view file extensions 66 | 67 | ## 1.2.0 68 | 69 | - Add settings 70 | - Display multiple matching files 71 | 72 | ## 1.1.3 73 | 74 | - Add support for multiple folder 75 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Yu 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. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Laravel goto view 2 | 3 | [![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/codingyu.laravel-goto-view)](https://marketplace.visualstudio.com/items?itemName=codingyu.laravel-goto-view) 4 | 5 | 6 | # How to use 7 | 8 | ![How to use](images/use.gif) 9 | 10 | # Settings 11 | 12 | ## regex 13 | 14 | Custom regex for matching strings. 15 | 16 | ## maxLinesCount 17 | 18 | Maximum number of scanning rows. 19 | 20 | Default: 666 21 | 22 | ## folders 23 | 24 | Search according to the configured path. 25 | 26 | ```json 27 | "laravel_goto_view.folders": { 28 | "default" : "/resources/views", 29 | "theme_xxx": "/resources/views/theme_xxx" 30 | } 31 | ``` 32 | 33 | ## extensions 34 | 35 | Search views according to the configured extensions. 36 | 37 | ```json 38 | "laravel_goto_view.extensions": [ 39 | ".blade.php", 40 | ".inky.php" 41 | ] 42 | ``` 43 | 44 | ## quickJump 45 | 46 | Use `Ctrl` or `Alt` + `click` to jump to the first matched file. 47 | 48 | > Mac or Windows, It depends on your configuration 49 | 50 | ## folderTip 51 | 52 | Display the path name of the configuration. 53 | -------------------------------------------------------------------------------- /images/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codingyu/laravel-goto-view/8b90880a946390d18ebecd313caa488e093e4ae5/images/icon.jpg -------------------------------------------------------------------------------- /images/use.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codingyu/laravel-goto-view/8b90880a946390d18ebecd313caa488e093e4ae5/images/use.gif -------------------------------------------------------------------------------- /images/use.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codingyu/laravel-goto-view/8b90880a946390d18ebecd313caa488e093e4ae5/images/use.jpg -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel-goto-view", 3 | "version": "1.3.10", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "laravel-goto-view", 9 | "version": "1.3.10", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@types/glob": "^7.1.4", 13 | "@types/mocha": "^9.0.0", 14 | "@types/node": "14.x", 15 | "@types/vscode": "^1.50.0", 16 | "@typescript-eslint/eslint-plugin": "^5.1.0", 17 | "@typescript-eslint/parser": "^5.1.0", 18 | "@vscode/test-electron": "^1.6.2", 19 | "eslint": "^8.1.0", 20 | "glob": "^7.1.7", 21 | "mocha": "^9.1.3", 22 | "typescript": "^4.4.4" 23 | }, 24 | "engines": { 25 | "vscode": "^1.50.0" 26 | } 27 | }, 28 | "node_modules/@eslint/eslintrc": { 29 | "version": "1.0.5", 30 | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-1.0.5.tgz", 31 | "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", 32 | "dev": true, 33 | "dependencies": { 34 | "ajv": "^6.12.4", 35 | "debug": "^4.3.2", 36 | "espree": "^9.2.0", 37 | "globals": "^13.9.0", 38 | "ignore": "^4.0.6", 39 | "import-fresh": "^3.2.1", 40 | "js-yaml": "^4.1.0", 41 | "minimatch": "^3.0.4", 42 | "strip-json-comments": "^3.1.1" 43 | }, 44 | "engines": { 45 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 46 | } 47 | }, 48 | "node_modules/@eslint/eslintrc/node_modules/ignore": { 49 | "version": "4.0.6", 50 | "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", 51 | "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", 52 | "dev": true, 53 | "engines": { 54 | "node": ">= 4" 55 | } 56 | }, 57 | "node_modules/@humanwhocodes/config-array": { 58 | "version": "0.9.2", 59 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.9.2.tgz?cache=0&sync_timestamp=1635880373051&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fconfig-array%2Fdownload%2F%40humanwhocodes%2Fconfig-array-0.9.2.tgz", 60 | "integrity": "sha1-aL5VxzcCMAnfxf4kXVEYG7ZHaRQ=", 61 | "dev": true, 62 | "dependencies": { 63 | "@humanwhocodes/object-schema": "^1.2.1", 64 | "debug": "^4.1.1", 65 | "minimatch": "^3.0.4" 66 | }, 67 | "engines": { 68 | "node": ">=10.10.0" 69 | } 70 | }, 71 | "node_modules/@humanwhocodes/object-schema": { 72 | "version": "1.2.1", 73 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz?cache=0&sync_timestamp=1635879707386&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fobject-schema%2Fdownload%2F%40humanwhocodes%2Fobject-schema-1.2.1.tgz", 74 | "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", 75 | "dev": true 76 | }, 77 | "node_modules/@nodelib/fs.scandir": { 78 | "version": "2.1.5", 79 | "resolved": "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792706054&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz", 80 | "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", 81 | "dev": true, 82 | "dependencies": { 83 | "@nodelib/fs.stat": "2.0.5", 84 | "run-parallel": "^1.1.9" 85 | }, 86 | "engines": { 87 | "node": ">= 8" 88 | } 89 | }, 90 | "node_modules/@nodelib/fs.stat": { 91 | "version": "2.0.5", 92 | "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792705142&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz", 93 | "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", 94 | "dev": true, 95 | "engines": { 96 | "node": ">= 8" 97 | } 98 | }, 99 | "node_modules/@nodelib/fs.walk": { 100 | "version": "1.2.8", 101 | "resolved": "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz", 102 | "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", 103 | "dev": true, 104 | "dependencies": { 105 | "@nodelib/fs.scandir": "2.1.5", 106 | "fastq": "^1.6.0" 107 | }, 108 | "engines": { 109 | "node": ">= 8" 110 | } 111 | }, 112 | "node_modules/@tootallnate/once": { 113 | "version": "1.1.2", 114 | "resolved": "https://registry.npmmirror.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz?cache=0&sync_timestamp=1632734046275&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40tootallnate%2Fonce%2Fdownload%2F%40tootallnate%2Fonce-1.1.2.tgz", 115 | "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=", 116 | "dev": true, 117 | "engines": { 118 | "node": ">= 6" 119 | } 120 | }, 121 | "node_modules/@types/glob": { 122 | "version": "7.2.0", 123 | "resolved": "https://registry.npmmirror.com/@types/glob/download/@types/glob-7.2.0.tgz", 124 | "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=", 125 | "dev": true, 126 | "dependencies": { 127 | "@types/minimatch": "*", 128 | "@types/node": "*" 129 | } 130 | }, 131 | "node_modules/@types/json-schema": { 132 | "version": "7.0.9", 133 | "resolved": "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz", 134 | "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=", 135 | "dev": true 136 | }, 137 | "node_modules/@types/minimatch": { 138 | "version": "3.0.5", 139 | "resolved": "https://registry.npmmirror.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz", 140 | "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=", 141 | "dev": true 142 | }, 143 | "node_modules/@types/mocha": { 144 | "version": "9.0.0", 145 | "resolved": "https://registry.npmmirror.com/@types/mocha/download/@types/mocha-9.0.0.tgz", 146 | "integrity": "sha1-MgW80Vram8aBrCC+9k6ebfiP0pc=", 147 | "dev": true 148 | }, 149 | "node_modules/@types/node": { 150 | "version": "14.18.0", 151 | "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-14.18.0.tgz", 152 | "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==", 153 | "dev": true 154 | }, 155 | "node_modules/@types/vscode": { 156 | "version": "1.63.0", 157 | "resolved": "https://registry.npmmirror.com/@types/vscode/download/@types/vscode-1.63.0.tgz", 158 | "integrity": "sha512-iePu1axOi5WSThV6l2TYcciBIpAlMarjBC8H0y8L8ocsZLxh7MttzwFU3pjoItF5fRVGxHS0Hsvje9jO3yJsfw==", 159 | "dev": true 160 | }, 161 | "node_modules/@typescript-eslint/eslint-plugin": { 162 | "version": "5.7.0", 163 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-5.7.0.tgz", 164 | "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", 165 | "dev": true, 166 | "dependencies": { 167 | "@typescript-eslint/experimental-utils": "5.7.0", 168 | "@typescript-eslint/scope-manager": "5.7.0", 169 | "debug": "^4.3.2", 170 | "functional-red-black-tree": "^1.0.1", 171 | "ignore": "^5.1.8", 172 | "regexpp": "^3.2.0", 173 | "semver": "^7.3.5", 174 | "tsutils": "^3.21.0" 175 | }, 176 | "engines": { 177 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 178 | }, 179 | "peerDependencies": { 180 | "@typescript-eslint/parser": "^5.0.0", 181 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 182 | }, 183 | "peerDependenciesMeta": { 184 | "typescript": { 185 | "optional": true 186 | } 187 | } 188 | }, 189 | "node_modules/@typescript-eslint/experimental-utils": { 190 | "version": "5.7.0", 191 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-5.7.0.tgz", 192 | "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", 193 | "dev": true, 194 | "dependencies": { 195 | "@types/json-schema": "^7.0.9", 196 | "@typescript-eslint/scope-manager": "5.7.0", 197 | "@typescript-eslint/types": "5.7.0", 198 | "@typescript-eslint/typescript-estree": "5.7.0", 199 | "eslint-scope": "^5.1.1", 200 | "eslint-utils": "^3.0.0" 201 | }, 202 | "engines": { 203 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 204 | }, 205 | "peerDependencies": { 206 | "eslint": "*" 207 | } 208 | }, 209 | "node_modules/@typescript-eslint/parser": { 210 | "version": "5.7.0", 211 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-5.7.0.tgz", 212 | "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", 213 | "dev": true, 214 | "dependencies": { 215 | "@typescript-eslint/scope-manager": "5.7.0", 216 | "@typescript-eslint/types": "5.7.0", 217 | "@typescript-eslint/typescript-estree": "5.7.0", 218 | "debug": "^4.3.2" 219 | }, 220 | "engines": { 221 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 222 | }, 223 | "peerDependencies": { 224 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 225 | }, 226 | "peerDependenciesMeta": { 227 | "typescript": { 228 | "optional": true 229 | } 230 | } 231 | }, 232 | "node_modules/@typescript-eslint/scope-manager": { 233 | "version": "5.7.0", 234 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-5.7.0.tgz", 235 | "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", 236 | "dev": true, 237 | "dependencies": { 238 | "@typescript-eslint/types": "5.7.0", 239 | "@typescript-eslint/visitor-keys": "5.7.0" 240 | }, 241 | "engines": { 242 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 243 | } 244 | }, 245 | "node_modules/@typescript-eslint/types": { 246 | "version": "5.7.0", 247 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-5.7.0.tgz", 248 | "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", 249 | "dev": true, 250 | "engines": { 251 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 252 | } 253 | }, 254 | "node_modules/@typescript-eslint/typescript-estree": { 255 | "version": "5.7.0", 256 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-5.7.0.tgz", 257 | "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", 258 | "dev": true, 259 | "dependencies": { 260 | "@typescript-eslint/types": "5.7.0", 261 | "@typescript-eslint/visitor-keys": "5.7.0", 262 | "debug": "^4.3.2", 263 | "globby": "^11.0.4", 264 | "is-glob": "^4.0.3", 265 | "semver": "^7.3.5", 266 | "tsutils": "^3.21.0" 267 | }, 268 | "engines": { 269 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 270 | }, 271 | "peerDependenciesMeta": { 272 | "typescript": { 273 | "optional": true 274 | } 275 | } 276 | }, 277 | "node_modules/@typescript-eslint/visitor-keys": { 278 | "version": "5.7.0", 279 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-5.7.0.tgz", 280 | "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", 281 | "dev": true, 282 | "dependencies": { 283 | "@typescript-eslint/types": "5.7.0", 284 | "eslint-visitor-keys": "^3.0.0" 285 | }, 286 | "engines": { 287 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 288 | } 289 | }, 290 | "node_modules/@ungap/promise-all-settled": { 291 | "version": "1.1.2", 292 | "resolved": "https://registry.npm.taobao.org/@ungap/promise-all-settled/download/@ungap/promise-all-settled-1.1.2.tgz", 293 | "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", 294 | "dev": true 295 | }, 296 | "node_modules/@vscode/test-electron": { 297 | "version": "1.6.2", 298 | "resolved": "https://registry.npmmirror.com/@vscode/test-electron/download/@vscode/test-electron-1.6.2.tgz", 299 | "integrity": "sha1-9jnKsZoAE5SQFQedz9L/DBqoihs=", 300 | "dev": true, 301 | "dependencies": { 302 | "http-proxy-agent": "^4.0.1", 303 | "https-proxy-agent": "^5.0.0", 304 | "rimraf": "^3.0.2", 305 | "unzipper": "^0.10.11" 306 | }, 307 | "engines": { 308 | "node": ">=8.9.3" 309 | } 310 | }, 311 | "node_modules/acorn": { 312 | "version": "8.6.0", 313 | "resolved": "https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-8.6.0.tgz", 314 | "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", 315 | "dev": true, 316 | "bin": { 317 | "acorn": "bin/acorn" 318 | }, 319 | "engines": { 320 | "node": ">=0.4.0" 321 | } 322 | }, 323 | "node_modules/acorn-jsx": { 324 | "version": "5.3.2", 325 | "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.2.tgz", 326 | "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", 327 | "dev": true, 328 | "peerDependencies": { 329 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 330 | } 331 | }, 332 | "node_modules/agent-base": { 333 | "version": "6.0.2", 334 | "resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz", 335 | "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", 336 | "dev": true, 337 | "dependencies": { 338 | "debug": "4" 339 | }, 340 | "engines": { 341 | "node": ">= 6.0.0" 342 | } 343 | }, 344 | "node_modules/ajv": { 345 | "version": "6.12.6", 346 | "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", 347 | "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", 348 | "dev": true, 349 | "dependencies": { 350 | "fast-deep-equal": "^3.1.1", 351 | "fast-json-stable-stringify": "^2.0.0", 352 | "json-schema-traverse": "^0.4.1", 353 | "uri-js": "^4.2.2" 354 | } 355 | }, 356 | "node_modules/ansi-colors": { 357 | "version": "4.1.1", 358 | "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz", 359 | "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", 360 | "dev": true, 361 | "engines": { 362 | "node": ">=6" 363 | } 364 | }, 365 | "node_modules/ansi-regex": { 366 | "version": "5.0.1", 367 | "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz", 368 | "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", 369 | "dev": true, 370 | "engines": { 371 | "node": ">=8" 372 | } 373 | }, 374 | "node_modules/ansi-styles": { 375 | "version": "4.3.0", 376 | "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", 377 | "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", 378 | "dev": true, 379 | "dependencies": { 380 | "color-convert": "^2.0.1" 381 | }, 382 | "engines": { 383 | "node": ">=8" 384 | } 385 | }, 386 | "node_modules/anymatch": { 387 | "version": "3.1.2", 388 | "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz", 389 | "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", 390 | "dev": true, 391 | "dependencies": { 392 | "normalize-path": "^3.0.0", 393 | "picomatch": "^2.0.4" 394 | }, 395 | "engines": { 396 | "node": ">= 8" 397 | } 398 | }, 399 | "node_modules/argparse": { 400 | "version": "2.0.1", 401 | "resolved": "https://registry.nlark.com/argparse/download/argparse-2.0.1.tgz", 402 | "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", 403 | "dev": true 404 | }, 405 | "node_modules/array-union": { 406 | "version": "2.1.0", 407 | "resolved": "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz", 408 | "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", 409 | "dev": true, 410 | "engines": { 411 | "node": ">=8" 412 | } 413 | }, 414 | "node_modules/balanced-match": { 415 | "version": "1.0.2", 416 | "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz", 417 | "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", 418 | "dev": true 419 | }, 420 | "node_modules/big-integer": { 421 | "version": "1.6.51", 422 | "resolved": "https://registry.npmmirror.com/big-integer/download/big-integer-1.6.51.tgz?cache=0&sync_timestamp=1636575113308&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbig-integer%2Fdownload%2Fbig-integer-1.6.51.tgz", 423 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", 424 | "dev": true, 425 | "engines": { 426 | "node": ">=0.6" 427 | } 428 | }, 429 | "node_modules/binary": { 430 | "version": "0.3.0", 431 | "resolved": "https://registry.npm.taobao.org/binary/download/binary-0.3.0.tgz", 432 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", 433 | "dev": true, 434 | "dependencies": { 435 | "buffers": "~0.1.1", 436 | "chainsaw": "~0.1.0" 437 | }, 438 | "engines": { 439 | "node": "*" 440 | } 441 | }, 442 | "node_modules/binary-extensions": { 443 | "version": "2.2.0", 444 | "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz", 445 | "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", 446 | "dev": true, 447 | "engines": { 448 | "node": ">=8" 449 | } 450 | }, 451 | "node_modules/bluebird": { 452 | "version": "3.4.7", 453 | "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.4.7.tgz?cache=0&sync_timestamp=1602657218976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.4.7.tgz", 454 | "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", 455 | "dev": true 456 | }, 457 | "node_modules/brace-expansion": { 458 | "version": "1.1.11", 459 | "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz", 460 | "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", 461 | "dev": true, 462 | "dependencies": { 463 | "balanced-match": "^1.0.0", 464 | "concat-map": "0.0.1" 465 | } 466 | }, 467 | "node_modules/braces": { 468 | "version": "3.0.2", 469 | "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", 470 | "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", 471 | "dev": true, 472 | "dependencies": { 473 | "fill-range": "^7.0.1" 474 | }, 475 | "engines": { 476 | "node": ">=8" 477 | } 478 | }, 479 | "node_modules/browser-stdout": { 480 | "version": "1.3.1", 481 | "resolved": "https://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz", 482 | "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", 483 | "dev": true 484 | }, 485 | "node_modules/buffer-indexof-polyfill": { 486 | "version": "1.0.2", 487 | "resolved": "https://registry.npm.taobao.org/buffer-indexof-polyfill/download/buffer-indexof-polyfill-1.0.2.tgz", 488 | "integrity": "sha1-0nMhNcWZnGSyd/z5savjSYJUcpw=", 489 | "dev": true, 490 | "engines": { 491 | "node": ">=0.10" 492 | } 493 | }, 494 | "node_modules/buffers": { 495 | "version": "0.1.1", 496 | "resolved": "https://registry.npm.taobao.org/buffers/download/buffers-0.1.1.tgz", 497 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", 498 | "dev": true, 499 | "engines": { 500 | "node": ">=0.2.0" 501 | } 502 | }, 503 | "node_modules/callsites": { 504 | "version": "3.1.0", 505 | "resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz", 506 | "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", 507 | "dev": true, 508 | "engines": { 509 | "node": ">=6" 510 | } 511 | }, 512 | "node_modules/camelcase": { 513 | "version": "6.2.1", 514 | "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-6.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.1.tgz", 515 | "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", 516 | "dev": true, 517 | "engines": { 518 | "node": ">=10" 519 | } 520 | }, 521 | "node_modules/chainsaw": { 522 | "version": "0.1.0", 523 | "resolved": "https://registry.npm.taobao.org/chainsaw/download/chainsaw-0.1.0.tgz", 524 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", 525 | "dev": true, 526 | "dependencies": { 527 | "traverse": ">=0.3.0 <0.4" 528 | }, 529 | "engines": { 530 | "node": "*" 531 | } 532 | }, 533 | "node_modules/chalk": { 534 | "version": "4.1.2", 535 | "resolved": "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz", 536 | "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", 537 | "dev": true, 538 | "dependencies": { 539 | "ansi-styles": "^4.1.0", 540 | "supports-color": "^7.1.0" 541 | }, 542 | "engines": { 543 | "node": ">=10" 544 | } 545 | }, 546 | "node_modules/chokidar": { 547 | "version": "3.5.2", 548 | "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz", 549 | "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", 550 | "dev": true, 551 | "dependencies": { 552 | "anymatch": "~3.1.2", 553 | "braces": "~3.0.2", 554 | "glob-parent": "~5.1.2", 555 | "is-binary-path": "~2.1.0", 556 | "is-glob": "~4.0.1", 557 | "normalize-path": "~3.0.0", 558 | "readdirp": "~3.6.0" 559 | }, 560 | "engines": { 561 | "node": ">= 8.10.0" 562 | }, 563 | "optionalDependencies": { 564 | "fsevents": "~2.3.2" 565 | } 566 | }, 567 | "node_modules/cliui": { 568 | "version": "7.0.4", 569 | "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-7.0.4.tgz", 570 | "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", 571 | "dev": true, 572 | "dependencies": { 573 | "string-width": "^4.2.0", 574 | "strip-ansi": "^6.0.0", 575 | "wrap-ansi": "^7.0.0" 576 | } 577 | }, 578 | "node_modules/color-convert": { 579 | "version": "2.0.1", 580 | "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", 581 | "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", 582 | "dev": true, 583 | "dependencies": { 584 | "color-name": "~1.1.4" 585 | }, 586 | "engines": { 587 | "node": ">=7.0.0" 588 | } 589 | }, 590 | "node_modules/color-name": { 591 | "version": "1.1.4", 592 | "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", 593 | "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", 594 | "dev": true 595 | }, 596 | "node_modules/concat-map": { 597 | "version": "0.0.1", 598 | "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", 599 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 600 | "dev": true 601 | }, 602 | "node_modules/core-util-is": { 603 | "version": "1.0.3", 604 | "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz", 605 | "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=", 606 | "dev": true 607 | }, 608 | "node_modules/cross-spawn": { 609 | "version": "7.0.3", 610 | "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", 611 | "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", 612 | "dev": true, 613 | "dependencies": { 614 | "path-key": "^3.1.0", 615 | "shebang-command": "^2.0.0", 616 | "which": "^2.0.1" 617 | }, 618 | "engines": { 619 | "node": ">= 8" 620 | } 621 | }, 622 | "node_modules/debug": { 623 | "version": "4.3.3", 624 | "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.3.tgz", 625 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 626 | "dev": true, 627 | "dependencies": { 628 | "ms": "2.1.2" 629 | }, 630 | "engines": { 631 | "node": ">=6.0" 632 | }, 633 | "peerDependenciesMeta": { 634 | "supports-color": { 635 | "optional": true 636 | } 637 | } 638 | }, 639 | "node_modules/decamelize": { 640 | "version": "4.0.0", 641 | "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-4.0.0.tgz?cache=0&sync_timestamp=1633055756574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-4.0.0.tgz", 642 | "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", 643 | "dev": true, 644 | "engines": { 645 | "node": ">=10" 646 | } 647 | }, 648 | "node_modules/deep-is": { 649 | "version": "0.1.4", 650 | "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz", 651 | "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", 652 | "dev": true 653 | }, 654 | "node_modules/diff": { 655 | "version": "5.0.0", 656 | "resolved": "https://registry.npm.taobao.org/diff/download/diff-5.0.0.tgz", 657 | "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", 658 | "dev": true, 659 | "engines": { 660 | "node": ">=0.3.1" 661 | } 662 | }, 663 | "node_modules/dir-glob": { 664 | "version": "3.0.1", 665 | "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz", 666 | "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", 667 | "dev": true, 668 | "dependencies": { 669 | "path-type": "^4.0.0" 670 | }, 671 | "engines": { 672 | "node": ">=8" 673 | } 674 | }, 675 | "node_modules/doctrine": { 676 | "version": "3.0.0", 677 | "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", 678 | "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", 679 | "dev": true, 680 | "dependencies": { 681 | "esutils": "^2.0.2" 682 | }, 683 | "engines": { 684 | "node": ">=6.0.0" 685 | } 686 | }, 687 | "node_modules/duplexer2": { 688 | "version": "0.1.4", 689 | "resolved": "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz", 690 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 691 | "dev": true, 692 | "dependencies": { 693 | "readable-stream": "^2.0.2" 694 | } 695 | }, 696 | "node_modules/emoji-regex": { 697 | "version": "8.0.0", 698 | "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", 699 | "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", 700 | "dev": true 701 | }, 702 | "node_modules/enquirer": { 703 | "version": "2.3.6", 704 | "resolved": "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz", 705 | "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", 706 | "dev": true, 707 | "dependencies": { 708 | "ansi-colors": "^4.1.1" 709 | }, 710 | "engines": { 711 | "node": ">=8.6" 712 | } 713 | }, 714 | "node_modules/escalade": { 715 | "version": "3.1.1", 716 | "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567261690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", 717 | "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", 718 | "dev": true, 719 | "engines": { 720 | "node": ">=6" 721 | } 722 | }, 723 | "node_modules/escape-string-regexp": { 724 | "version": "4.0.0", 725 | "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz", 726 | "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", 727 | "dev": true, 728 | "engines": { 729 | "node": ">=10" 730 | } 731 | }, 732 | "node_modules/eslint": { 733 | "version": "8.4.1", 734 | "resolved": "https://registry.npmmirror.com/eslint/download/eslint-8.4.1.tgz", 735 | "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==", 736 | "dev": true, 737 | "dependencies": { 738 | "@eslint/eslintrc": "^1.0.5", 739 | "@humanwhocodes/config-array": "^0.9.2", 740 | "ajv": "^6.10.0", 741 | "chalk": "^4.0.0", 742 | "cross-spawn": "^7.0.2", 743 | "debug": "^4.3.2", 744 | "doctrine": "^3.0.0", 745 | "enquirer": "^2.3.5", 746 | "escape-string-regexp": "^4.0.0", 747 | "eslint-scope": "^7.1.0", 748 | "eslint-utils": "^3.0.0", 749 | "eslint-visitor-keys": "^3.1.0", 750 | "espree": "^9.2.0", 751 | "esquery": "^1.4.0", 752 | "esutils": "^2.0.2", 753 | "fast-deep-equal": "^3.1.3", 754 | "file-entry-cache": "^6.0.1", 755 | "functional-red-black-tree": "^1.0.1", 756 | "glob-parent": "^6.0.1", 757 | "globals": "^13.6.0", 758 | "ignore": "^4.0.6", 759 | "import-fresh": "^3.0.0", 760 | "imurmurhash": "^0.1.4", 761 | "is-glob": "^4.0.0", 762 | "js-yaml": "^4.1.0", 763 | "json-stable-stringify-without-jsonify": "^1.0.1", 764 | "levn": "^0.4.1", 765 | "lodash.merge": "^4.6.2", 766 | "minimatch": "^3.0.4", 767 | "natural-compare": "^1.4.0", 768 | "optionator": "^0.9.1", 769 | "progress": "^2.0.0", 770 | "regexpp": "^3.2.0", 771 | "semver": "^7.2.1", 772 | "strip-ansi": "^6.0.1", 773 | "strip-json-comments": "^3.1.0", 774 | "text-table": "^0.2.0", 775 | "v8-compile-cache": "^2.0.3" 776 | }, 777 | "bin": { 778 | "eslint": "bin/eslint.js" 779 | }, 780 | "engines": { 781 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 782 | } 783 | }, 784 | "node_modules/eslint-scope": { 785 | "version": "5.1.1", 786 | "resolved": "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1637466929956&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", 787 | "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", 788 | "dev": true, 789 | "dependencies": { 790 | "esrecurse": "^4.3.0", 791 | "estraverse": "^4.1.1" 792 | }, 793 | "engines": { 794 | "node": ">=8.0.0" 795 | } 796 | }, 797 | "node_modules/eslint-utils": { 798 | "version": "3.0.0", 799 | "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-3.0.0.tgz", 800 | "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", 801 | "dev": true, 802 | "dependencies": { 803 | "eslint-visitor-keys": "^2.0.0" 804 | }, 805 | "engines": { 806 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 807 | }, 808 | "peerDependencies": { 809 | "eslint": ">=5" 810 | } 811 | }, 812 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 813 | "version": "2.1.0", 814 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz", 815 | "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", 816 | "dev": true, 817 | "engines": { 818 | "node": ">=10" 819 | } 820 | }, 821 | "node_modules/eslint-visitor-keys": { 822 | "version": "3.1.0", 823 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz", 824 | "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", 825 | "dev": true, 826 | "engines": { 827 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 828 | } 829 | }, 830 | "node_modules/eslint/node_modules/eslint-scope": { 831 | "version": "7.1.0", 832 | "resolved": "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-7.1.0.tgz?cache=0&sync_timestamp=1637466929956&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-7.1.0.tgz", 833 | "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", 834 | "dev": true, 835 | "dependencies": { 836 | "esrecurse": "^4.3.0", 837 | "estraverse": "^5.2.0" 838 | }, 839 | "engines": { 840 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 841 | } 842 | }, 843 | "node_modules/eslint/node_modules/estraverse": { 844 | "version": "5.3.0", 845 | "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz", 846 | "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", 847 | "dev": true, 848 | "engines": { 849 | "node": ">=4.0" 850 | } 851 | }, 852 | "node_modules/eslint/node_modules/glob-parent": { 853 | "version": "6.0.2", 854 | "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz", 855 | "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", 856 | "dev": true, 857 | "dependencies": { 858 | "is-glob": "^4.0.3" 859 | }, 860 | "engines": { 861 | "node": ">=10.13.0" 862 | } 863 | }, 864 | "node_modules/eslint/node_modules/ignore": { 865 | "version": "4.0.6", 866 | "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", 867 | "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", 868 | "dev": true, 869 | "engines": { 870 | "node": ">= 4" 871 | } 872 | }, 873 | "node_modules/espree": { 874 | "version": "9.2.0", 875 | "resolved": "https://registry.npmmirror.com/espree/download/espree-9.2.0.tgz", 876 | "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", 877 | "dev": true, 878 | "dependencies": { 879 | "acorn": "^8.6.0", 880 | "acorn-jsx": "^5.3.1", 881 | "eslint-visitor-keys": "^3.1.0" 882 | }, 883 | "engines": { 884 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 885 | } 886 | }, 887 | "node_modules/esquery": { 888 | "version": "1.4.0", 889 | "resolved": "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz", 890 | "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", 891 | "dev": true, 892 | "dependencies": { 893 | "estraverse": "^5.1.0" 894 | }, 895 | "engines": { 896 | "node": ">=0.10" 897 | } 898 | }, 899 | "node_modules/esquery/node_modules/estraverse": { 900 | "version": "5.3.0", 901 | "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz", 902 | "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", 903 | "dev": true, 904 | "engines": { 905 | "node": ">=4.0" 906 | } 907 | }, 908 | "node_modules/esrecurse": { 909 | "version": "4.3.0", 910 | "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", 911 | "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", 912 | "dev": true, 913 | "dependencies": { 914 | "estraverse": "^5.2.0" 915 | }, 916 | "engines": { 917 | "node": ">=4.0" 918 | } 919 | }, 920 | "node_modules/esrecurse/node_modules/estraverse": { 921 | "version": "5.3.0", 922 | "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz", 923 | "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", 924 | "dev": true, 925 | "engines": { 926 | "node": ">=4.0" 927 | } 928 | }, 929 | "node_modules/estraverse": { 930 | "version": "4.3.0", 931 | "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", 932 | "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", 933 | "dev": true, 934 | "engines": { 935 | "node": ">=4.0" 936 | } 937 | }, 938 | "node_modules/esutils": { 939 | "version": "2.0.3", 940 | "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz", 941 | "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", 942 | "dev": true, 943 | "engines": { 944 | "node": ">=0.10.0" 945 | } 946 | }, 947 | "node_modules/fast-deep-equal": { 948 | "version": "3.1.3", 949 | "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", 950 | "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", 951 | "dev": true 952 | }, 953 | "node_modules/fast-glob": { 954 | "version": "3.2.7", 955 | "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625773305786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz", 956 | "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", 957 | "dev": true, 958 | "dependencies": { 959 | "@nodelib/fs.stat": "^2.0.2", 960 | "@nodelib/fs.walk": "^1.2.3", 961 | "glob-parent": "^5.1.2", 962 | "merge2": "^1.3.0", 963 | "micromatch": "^4.0.4" 964 | }, 965 | "engines": { 966 | "node": ">=8" 967 | } 968 | }, 969 | "node_modules/fast-json-stable-stringify": { 970 | "version": "2.1.0", 971 | "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", 972 | "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", 973 | "dev": true 974 | }, 975 | "node_modules/fast-levenshtein": { 976 | "version": "2.0.6", 977 | "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", 978 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 979 | "dev": true 980 | }, 981 | "node_modules/fastq": { 982 | "version": "1.13.0", 983 | "resolved": "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz", 984 | "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", 985 | "dev": true, 986 | "dependencies": { 987 | "reusify": "^1.0.4" 988 | } 989 | }, 990 | "node_modules/file-entry-cache": { 991 | "version": "6.0.1", 992 | "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz", 993 | "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", 994 | "dev": true, 995 | "dependencies": { 996 | "flat-cache": "^3.0.4" 997 | }, 998 | "engines": { 999 | "node": "^10.12.0 || >=12.0.0" 1000 | } 1001 | }, 1002 | "node_modules/fill-range": { 1003 | "version": "7.0.1", 1004 | "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", 1005 | "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", 1006 | "dev": true, 1007 | "dependencies": { 1008 | "to-regex-range": "^5.0.1" 1009 | }, 1010 | "engines": { 1011 | "node": ">=8" 1012 | } 1013 | }, 1014 | "node_modules/find-up": { 1015 | "version": "5.0.0", 1016 | "resolved": "https://registry.npmmirror.com/find-up/download/find-up-5.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-5.0.0.tgz", 1017 | "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", 1018 | "dev": true, 1019 | "dependencies": { 1020 | "locate-path": "^6.0.0", 1021 | "path-exists": "^4.0.0" 1022 | }, 1023 | "engines": { 1024 | "node": ">=10" 1025 | } 1026 | }, 1027 | "node_modules/flat": { 1028 | "version": "5.0.2", 1029 | "resolved": "https://registry.npm.taobao.org/flat/download/flat-5.0.2.tgz?cache=0&sync_timestamp=1617800682170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat%2Fdownload%2Fflat-5.0.2.tgz", 1030 | "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", 1031 | "dev": true, 1032 | "bin": { 1033 | "flat": "cli.js" 1034 | } 1035 | }, 1036 | "node_modules/flat-cache": { 1037 | "version": "3.0.4", 1038 | "resolved": "https://registry.npmmirror.com/flat-cache/download/flat-cache-3.0.4.tgz", 1039 | "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", 1040 | "dev": true, 1041 | "dependencies": { 1042 | "flatted": "^3.1.0", 1043 | "rimraf": "^3.0.2" 1044 | }, 1045 | "engines": { 1046 | "node": "^10.12.0 || >=12.0.0" 1047 | } 1048 | }, 1049 | "node_modules/flatted": { 1050 | "version": "3.2.4", 1051 | "resolved": "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473868538&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz", 1052 | "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", 1053 | "dev": true 1054 | }, 1055 | "node_modules/fs.realpath": { 1056 | "version": "1.0.0", 1057 | "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", 1058 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1059 | "dev": true 1060 | }, 1061 | "node_modules/fsevents": { 1062 | "version": "2.3.2", 1063 | "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz", 1064 | "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", 1065 | "dev": true, 1066 | "hasInstallScript": true, 1067 | "optional": true, 1068 | "os": [ 1069 | "darwin" 1070 | ], 1071 | "engines": { 1072 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1073 | } 1074 | }, 1075 | "node_modules/fstream": { 1076 | "version": "1.0.12", 1077 | "resolved": "https://registry.nlark.com/fstream/download/fstream-1.0.12.tgz", 1078 | "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=", 1079 | "dev": true, 1080 | "dependencies": { 1081 | "graceful-fs": "^4.1.2", 1082 | "inherits": "~2.0.0", 1083 | "mkdirp": ">=0.5 0", 1084 | "rimraf": "2" 1085 | }, 1086 | "engines": { 1087 | "node": ">=0.6" 1088 | } 1089 | }, 1090 | "node_modules/fstream/node_modules/rimraf": { 1091 | "version": "2.7.1", 1092 | "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", 1093 | "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", 1094 | "dev": true, 1095 | "dependencies": { 1096 | "glob": "^7.1.3" 1097 | }, 1098 | "bin": { 1099 | "rimraf": "bin.js" 1100 | } 1101 | }, 1102 | "node_modules/functional-red-black-tree": { 1103 | "version": "1.0.1", 1104 | "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", 1105 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1106 | "dev": true 1107 | }, 1108 | "node_modules/get-caller-file": { 1109 | "version": "2.0.5", 1110 | "resolved": "https://registry.nlark.com/get-caller-file/download/get-caller-file-2.0.5.tgz", 1111 | "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", 1112 | "dev": true, 1113 | "engines": { 1114 | "node": "6.* || 8.* || >= 10.*" 1115 | } 1116 | }, 1117 | "node_modules/glob": { 1118 | "version": "7.2.0", 1119 | "resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz", 1120 | "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", 1121 | "dev": true, 1122 | "dependencies": { 1123 | "fs.realpath": "^1.0.0", 1124 | "inflight": "^1.0.4", 1125 | "inherits": "2", 1126 | "minimatch": "^3.0.4", 1127 | "once": "^1.3.0", 1128 | "path-is-absolute": "^1.0.0" 1129 | }, 1130 | "engines": { 1131 | "node": "*" 1132 | } 1133 | }, 1134 | "node_modules/glob-parent": { 1135 | "version": "5.1.2", 1136 | "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz", 1137 | "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", 1138 | "dev": true, 1139 | "dependencies": { 1140 | "is-glob": "^4.0.1" 1141 | }, 1142 | "engines": { 1143 | "node": ">= 6" 1144 | } 1145 | }, 1146 | "node_modules/globals": { 1147 | "version": "13.12.0", 1148 | "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz", 1149 | "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", 1150 | "dev": true, 1151 | "dependencies": { 1152 | "type-fest": "^0.20.2" 1153 | }, 1154 | "engines": { 1155 | "node": ">=8" 1156 | } 1157 | }, 1158 | "node_modules/globby": { 1159 | "version": "11.0.4", 1160 | "resolved": "https://registry.nlark.com/globby/download/globby-11.0.4.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.4.tgz", 1161 | "integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=", 1162 | "dev": true, 1163 | "dependencies": { 1164 | "array-union": "^2.1.0", 1165 | "dir-glob": "^3.0.1", 1166 | "fast-glob": "^3.1.1", 1167 | "ignore": "^5.1.4", 1168 | "merge2": "^1.3.0", 1169 | "slash": "^3.0.0" 1170 | }, 1171 | "engines": { 1172 | "node": ">=10" 1173 | } 1174 | }, 1175 | "node_modules/graceful-fs": { 1176 | "version": "4.2.8", 1177 | "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz", 1178 | "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=", 1179 | "dev": true 1180 | }, 1181 | "node_modules/growl": { 1182 | "version": "1.10.5", 1183 | "resolved": "https://registry.nlark.com/growl/download/growl-1.10.5.tgz", 1184 | "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", 1185 | "dev": true, 1186 | "engines": { 1187 | "node": ">=4.x" 1188 | } 1189 | }, 1190 | "node_modules/has-flag": { 1191 | "version": "4.0.0", 1192 | "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", 1193 | "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", 1194 | "dev": true, 1195 | "engines": { 1196 | "node": ">=8" 1197 | } 1198 | }, 1199 | "node_modules/he": { 1200 | "version": "1.2.0", 1201 | "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", 1202 | "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", 1203 | "dev": true, 1204 | "bin": { 1205 | "he": "bin/he" 1206 | } 1207 | }, 1208 | "node_modules/http-proxy-agent": { 1209 | "version": "4.0.1", 1210 | "resolved": "https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz", 1211 | "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", 1212 | "dev": true, 1213 | "dependencies": { 1214 | "@tootallnate/once": "1", 1215 | "agent-base": "6", 1216 | "debug": "4" 1217 | }, 1218 | "engines": { 1219 | "node": ">= 6" 1220 | } 1221 | }, 1222 | "node_modules/https-proxy-agent": { 1223 | "version": "5.0.0", 1224 | "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz?cache=0&sync_timestamp=1614740547969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-5.0.0.tgz", 1225 | "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", 1226 | "dev": true, 1227 | "dependencies": { 1228 | "agent-base": "6", 1229 | "debug": "4" 1230 | }, 1231 | "engines": { 1232 | "node": ">= 6" 1233 | } 1234 | }, 1235 | "node_modules/ignore": { 1236 | "version": "5.1.9", 1237 | "resolved": "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz", 1238 | "integrity": "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=", 1239 | "dev": true, 1240 | "engines": { 1241 | "node": ">= 4" 1242 | } 1243 | }, 1244 | "node_modules/import-fresh": { 1245 | "version": "3.3.0", 1246 | "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz", 1247 | "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", 1248 | "dev": true, 1249 | "dependencies": { 1250 | "parent-module": "^1.0.0", 1251 | "resolve-from": "^4.0.0" 1252 | }, 1253 | "engines": { 1254 | "node": ">=6" 1255 | } 1256 | }, 1257 | "node_modules/imurmurhash": { 1258 | "version": "0.1.4", 1259 | "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", 1260 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1261 | "dev": true, 1262 | "engines": { 1263 | "node": ">=0.8.19" 1264 | } 1265 | }, 1266 | "node_modules/inflight": { 1267 | "version": "1.0.6", 1268 | "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", 1269 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "once": "^1.3.0", 1273 | "wrappy": "1" 1274 | } 1275 | }, 1276 | "node_modules/inherits": { 1277 | "version": "2.0.4", 1278 | "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz", 1279 | "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", 1280 | "dev": true 1281 | }, 1282 | "node_modules/is-binary-path": { 1283 | "version": "2.1.0", 1284 | "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", 1285 | "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", 1286 | "dev": true, 1287 | "dependencies": { 1288 | "binary-extensions": "^2.0.0" 1289 | }, 1290 | "engines": { 1291 | "node": ">=8" 1292 | } 1293 | }, 1294 | "node_modules/is-extglob": { 1295 | "version": "2.1.1", 1296 | "resolved": "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz", 1297 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1298 | "dev": true, 1299 | "engines": { 1300 | "node": ">=0.10.0" 1301 | } 1302 | }, 1303 | "node_modules/is-fullwidth-code-point": { 1304 | "version": "3.0.0", 1305 | "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", 1306 | "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", 1307 | "dev": true, 1308 | "engines": { 1309 | "node": ">=8" 1310 | } 1311 | }, 1312 | "node_modules/is-glob": { 1313 | "version": "4.0.3", 1314 | "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz", 1315 | "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", 1316 | "dev": true, 1317 | "dependencies": { 1318 | "is-extglob": "^2.1.1" 1319 | }, 1320 | "engines": { 1321 | "node": ">=0.10.0" 1322 | } 1323 | }, 1324 | "node_modules/is-number": { 1325 | "version": "7.0.0", 1326 | "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", 1327 | "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", 1328 | "dev": true, 1329 | "engines": { 1330 | "node": ">=0.12.0" 1331 | } 1332 | }, 1333 | "node_modules/is-plain-obj": { 1334 | "version": "2.1.0", 1335 | "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-2.1.0.tgz?cache=0&sync_timestamp=1618601044820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-2.1.0.tgz", 1336 | "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", 1337 | "dev": true, 1338 | "engines": { 1339 | "node": ">=8" 1340 | } 1341 | }, 1342 | "node_modules/is-unicode-supported": { 1343 | "version": "0.1.0", 1344 | "resolved": "https://registry.nlark.com/is-unicode-supported/download/is-unicode-supported-0.1.0.tgz", 1345 | "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", 1346 | "dev": true, 1347 | "engines": { 1348 | "node": ">=10" 1349 | } 1350 | }, 1351 | "node_modules/isarray": { 1352 | "version": "1.0.0", 1353 | "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", 1354 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1355 | "dev": true 1356 | }, 1357 | "node_modules/isexe": { 1358 | "version": "2.0.0", 1359 | "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", 1360 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1361 | "dev": true 1362 | }, 1363 | "node_modules/js-yaml": { 1364 | "version": "4.1.0", 1365 | "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-4.1.0.tgz?cache=0&sync_timestamp=1618434911653&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-4.1.0.tgz", 1366 | "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", 1367 | "dev": true, 1368 | "dependencies": { 1369 | "argparse": "^2.0.1" 1370 | }, 1371 | "bin": { 1372 | "js-yaml": "bin/js-yaml.js" 1373 | } 1374 | }, 1375 | "node_modules/json-schema-traverse": { 1376 | "version": "0.4.1", 1377 | "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", 1378 | "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", 1379 | "dev": true 1380 | }, 1381 | "node_modules/json-stable-stringify-without-jsonify": { 1382 | "version": "1.0.1", 1383 | "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", 1384 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1385 | "dev": true 1386 | }, 1387 | "node_modules/levn": { 1388 | "version": "0.4.1", 1389 | "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz", 1390 | "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", 1391 | "dev": true, 1392 | "dependencies": { 1393 | "prelude-ls": "^1.2.1", 1394 | "type-check": "~0.4.0" 1395 | }, 1396 | "engines": { 1397 | "node": ">= 0.8.0" 1398 | } 1399 | }, 1400 | "node_modules/listenercount": { 1401 | "version": "1.0.1", 1402 | "resolved": "https://registry.npm.taobao.org/listenercount/download/listenercount-1.0.1.tgz", 1403 | "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", 1404 | "dev": true 1405 | }, 1406 | "node_modules/locate-path": { 1407 | "version": "6.0.0", 1408 | "resolved": "https://registry.nlark.com/locate-path/download/locate-path-6.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-6.0.0.tgz", 1409 | "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", 1410 | "dev": true, 1411 | "dependencies": { 1412 | "p-locate": "^5.0.0" 1413 | }, 1414 | "engines": { 1415 | "node": ">=10" 1416 | } 1417 | }, 1418 | "node_modules/lodash.merge": { 1419 | "version": "4.6.2", 1420 | "resolved": "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz", 1421 | "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", 1422 | "dev": true 1423 | }, 1424 | "node_modules/log-symbols": { 1425 | "version": "4.1.0", 1426 | "resolved": "https://registry.npmmirror.com/log-symbols/download/log-symbols-4.1.0.tgz", 1427 | "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", 1428 | "dev": true, 1429 | "dependencies": { 1430 | "chalk": "^4.1.0", 1431 | "is-unicode-supported": "^0.1.0" 1432 | }, 1433 | "engines": { 1434 | "node": ">=10" 1435 | } 1436 | }, 1437 | "node_modules/lru-cache": { 1438 | "version": "6.0.0", 1439 | "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", 1440 | "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", 1441 | "dev": true, 1442 | "dependencies": { 1443 | "yallist": "^4.0.0" 1444 | }, 1445 | "engines": { 1446 | "node": ">=10" 1447 | } 1448 | }, 1449 | "node_modules/merge2": { 1450 | "version": "1.4.1", 1451 | "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", 1452 | "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", 1453 | "dev": true, 1454 | "engines": { 1455 | "node": ">= 8" 1456 | } 1457 | }, 1458 | "node_modules/micromatch": { 1459 | "version": "4.0.4", 1460 | "resolved": "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz", 1461 | "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", 1462 | "dev": true, 1463 | "dependencies": { 1464 | "braces": "^3.0.1", 1465 | "picomatch": "^2.2.3" 1466 | }, 1467 | "engines": { 1468 | "node": ">=8.6" 1469 | } 1470 | }, 1471 | "node_modules/minimatch": { 1472 | "version": "3.0.4", 1473 | "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", 1474 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", 1475 | "dev": true, 1476 | "dependencies": { 1477 | "brace-expansion": "^1.1.7" 1478 | }, 1479 | "engines": { 1480 | "node": "*" 1481 | } 1482 | }, 1483 | "node_modules/minimist": { 1484 | "version": "1.2.6", 1485 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1486 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1487 | "dev": true 1488 | }, 1489 | "node_modules/mkdirp": { 1490 | "version": "0.5.5", 1491 | "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz", 1492 | "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", 1493 | "dev": true, 1494 | "dependencies": { 1495 | "minimist": "^1.2.5" 1496 | }, 1497 | "bin": { 1498 | "mkdirp": "bin/cmd.js" 1499 | } 1500 | }, 1501 | "node_modules/mocha": { 1502 | "version": "9.1.3", 1503 | "resolved": "https://registry.npmmirror.com/mocha/download/mocha-9.1.3.tgz?cache=0&sync_timestamp=1634283065047&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmocha%2Fdownload%2Fmocha-9.1.3.tgz", 1504 | "integrity": "sha1-imI75rMjgQST2Mj292Z0QPpGn9s=", 1505 | "dev": true, 1506 | "dependencies": { 1507 | "@ungap/promise-all-settled": "1.1.2", 1508 | "ansi-colors": "4.1.1", 1509 | "browser-stdout": "1.3.1", 1510 | "chokidar": "3.5.2", 1511 | "debug": "4.3.2", 1512 | "diff": "5.0.0", 1513 | "escape-string-regexp": "4.0.0", 1514 | "find-up": "5.0.0", 1515 | "glob": "7.1.7", 1516 | "growl": "1.10.5", 1517 | "he": "1.2.0", 1518 | "js-yaml": "4.1.0", 1519 | "log-symbols": "4.1.0", 1520 | "minimatch": "3.0.4", 1521 | "ms": "2.1.3", 1522 | "nanoid": "3.1.25", 1523 | "serialize-javascript": "6.0.0", 1524 | "strip-json-comments": "3.1.1", 1525 | "supports-color": "8.1.1", 1526 | "which": "2.0.2", 1527 | "workerpool": "6.1.5", 1528 | "yargs": "16.2.0", 1529 | "yargs-parser": "20.2.4", 1530 | "yargs-unparser": "2.0.0" 1531 | }, 1532 | "bin": { 1533 | "_mocha": "bin/_mocha", 1534 | "mocha": "bin/mocha" 1535 | }, 1536 | "engines": { 1537 | "node": ">= 12.0.0" 1538 | } 1539 | }, 1540 | "node_modules/mocha/node_modules/debug": { 1541 | "version": "4.3.2", 1542 | "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz", 1543 | "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", 1544 | "dev": true, 1545 | "dependencies": { 1546 | "ms": "2.1.2" 1547 | }, 1548 | "engines": { 1549 | "node": ">=6.0" 1550 | }, 1551 | "peerDependenciesMeta": { 1552 | "supports-color": { 1553 | "optional": true 1554 | } 1555 | } 1556 | }, 1557 | "node_modules/mocha/node_modules/debug/node_modules/ms": { 1558 | "version": "2.1.2", 1559 | "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", 1560 | "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", 1561 | "dev": true 1562 | }, 1563 | "node_modules/mocha/node_modules/glob": { 1564 | "version": "7.1.7", 1565 | "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz", 1566 | "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", 1567 | "dev": true, 1568 | "dependencies": { 1569 | "fs.realpath": "^1.0.0", 1570 | "inflight": "^1.0.4", 1571 | "inherits": "2", 1572 | "minimatch": "^3.0.4", 1573 | "once": "^1.3.0", 1574 | "path-is-absolute": "^1.0.0" 1575 | }, 1576 | "engines": { 1577 | "node": "*" 1578 | } 1579 | }, 1580 | "node_modules/mocha/node_modules/ms": { 1581 | "version": "2.1.3", 1582 | "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.3.tgz", 1583 | "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", 1584 | "dev": true 1585 | }, 1586 | "node_modules/mocha/node_modules/supports-color": { 1587 | "version": "8.1.1", 1588 | "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-8.1.1.tgz", 1589 | "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", 1590 | "dev": true, 1591 | "dependencies": { 1592 | "has-flag": "^4.0.0" 1593 | }, 1594 | "engines": { 1595 | "node": ">=10" 1596 | } 1597 | }, 1598 | "node_modules/ms": { 1599 | "version": "2.1.2", 1600 | "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", 1601 | "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", 1602 | "dev": true 1603 | }, 1604 | "node_modules/nanoid": { 1605 | "version": "3.1.25", 1606 | "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.25.tgz?cache=0&sync_timestamp=1634166241996&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.25.tgz", 1607 | "integrity": "sha1-CcoydHwOVD8OGBS303k0d/nI4VI=", 1608 | "dev": true, 1609 | "bin": { 1610 | "nanoid": "bin/nanoid.cjs" 1611 | }, 1612 | "engines": { 1613 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1614 | } 1615 | }, 1616 | "node_modules/natural-compare": { 1617 | "version": "1.4.0", 1618 | "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", 1619 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1620 | "dev": true 1621 | }, 1622 | "node_modules/normalize-path": { 1623 | "version": "3.0.0", 1624 | "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz", 1625 | "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", 1626 | "dev": true, 1627 | "engines": { 1628 | "node": ">=0.10.0" 1629 | } 1630 | }, 1631 | "node_modules/once": { 1632 | "version": "1.4.0", 1633 | "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", 1634 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1635 | "dev": true, 1636 | "dependencies": { 1637 | "wrappy": "1" 1638 | } 1639 | }, 1640 | "node_modules/optionator": { 1641 | "version": "0.9.1", 1642 | "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz", 1643 | "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", 1644 | "dev": true, 1645 | "dependencies": { 1646 | "deep-is": "^0.1.3", 1647 | "fast-levenshtein": "^2.0.6", 1648 | "levn": "^0.4.1", 1649 | "prelude-ls": "^1.2.1", 1650 | "type-check": "^0.4.0", 1651 | "word-wrap": "^1.2.3" 1652 | }, 1653 | "engines": { 1654 | "node": ">= 0.8.0" 1655 | } 1656 | }, 1657 | "node_modules/p-limit": { 1658 | "version": "3.1.0", 1659 | "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", 1660 | "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", 1661 | "dev": true, 1662 | "dependencies": { 1663 | "yocto-queue": "^0.1.0" 1664 | }, 1665 | "engines": { 1666 | "node": ">=10" 1667 | } 1668 | }, 1669 | "node_modules/p-locate": { 1670 | "version": "5.0.0", 1671 | "resolved": "https://registry.nlark.com/p-locate/download/p-locate-5.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-5.0.0.tgz", 1672 | "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", 1673 | "dev": true, 1674 | "dependencies": { 1675 | "p-limit": "^3.0.2" 1676 | }, 1677 | "engines": { 1678 | "node": ">=10" 1679 | } 1680 | }, 1681 | "node_modules/parent-module": { 1682 | "version": "1.0.1", 1683 | "resolved": "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz", 1684 | "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", 1685 | "dev": true, 1686 | "dependencies": { 1687 | "callsites": "^3.0.0" 1688 | }, 1689 | "engines": { 1690 | "node": ">=6" 1691 | } 1692 | }, 1693 | "node_modules/path-exists": { 1694 | "version": "4.0.0", 1695 | "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz", 1696 | "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", 1697 | "dev": true, 1698 | "engines": { 1699 | "node": ">=8" 1700 | } 1701 | }, 1702 | "node_modules/path-is-absolute": { 1703 | "version": "1.0.1", 1704 | "resolved": "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", 1705 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1706 | "dev": true, 1707 | "engines": { 1708 | "node": ">=0.10.0" 1709 | } 1710 | }, 1711 | "node_modules/path-key": { 1712 | "version": "3.1.1", 1713 | "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", 1714 | "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", 1715 | "dev": true, 1716 | "engines": { 1717 | "node": ">=8" 1718 | } 1719 | }, 1720 | "node_modules/path-type": { 1721 | "version": "4.0.0", 1722 | "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz", 1723 | "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", 1724 | "dev": true, 1725 | "engines": { 1726 | "node": ">=8" 1727 | } 1728 | }, 1729 | "node_modules/picomatch": { 1730 | "version": "2.3.0", 1731 | "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", 1732 | "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", 1733 | "dev": true, 1734 | "engines": { 1735 | "node": ">=8.6" 1736 | } 1737 | }, 1738 | "node_modules/prelude-ls": { 1739 | "version": "1.2.1", 1740 | "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz", 1741 | "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", 1742 | "dev": true, 1743 | "engines": { 1744 | "node": ">= 0.8.0" 1745 | } 1746 | }, 1747 | "node_modules/process-nextick-args": { 1748 | "version": "2.0.1", 1749 | "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", 1750 | "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", 1751 | "dev": true 1752 | }, 1753 | "node_modules/progress": { 1754 | "version": "2.0.3", 1755 | "resolved": "https://registry.npmmirror.com/progress/download/progress-2.0.3.tgz", 1756 | "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", 1757 | "dev": true, 1758 | "engines": { 1759 | "node": ">=0.4.0" 1760 | } 1761 | }, 1762 | "node_modules/punycode": { 1763 | "version": "2.1.1", 1764 | "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", 1765 | "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", 1766 | "dev": true, 1767 | "engines": { 1768 | "node": ">=6" 1769 | } 1770 | }, 1771 | "node_modules/queue-microtask": { 1772 | "version": "1.2.3", 1773 | "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz", 1774 | "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", 1775 | "dev": true 1776 | }, 1777 | "node_modules/randombytes": { 1778 | "version": "2.1.0", 1779 | "resolved": "https://registry.npmmirror.com/randombytes/download/randombytes-2.1.0.tgz", 1780 | "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", 1781 | "dev": true, 1782 | "dependencies": { 1783 | "safe-buffer": "^5.1.0" 1784 | } 1785 | }, 1786 | "node_modules/readable-stream": { 1787 | "version": "2.3.7", 1788 | "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-2.3.7.tgz", 1789 | "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", 1790 | "dev": true, 1791 | "dependencies": { 1792 | "core-util-is": "~1.0.0", 1793 | "inherits": "~2.0.3", 1794 | "isarray": "~1.0.0", 1795 | "process-nextick-args": "~2.0.0", 1796 | "safe-buffer": "~5.1.1", 1797 | "string_decoder": "~1.1.1", 1798 | "util-deprecate": "~1.0.1" 1799 | } 1800 | }, 1801 | "node_modules/readdirp": { 1802 | "version": "3.6.0", 1803 | "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz", 1804 | "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", 1805 | "dev": true, 1806 | "dependencies": { 1807 | "picomatch": "^2.2.1" 1808 | }, 1809 | "engines": { 1810 | "node": ">=8.10.0" 1811 | } 1812 | }, 1813 | "node_modules/regexpp": { 1814 | "version": "3.2.0", 1815 | "resolved": "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623668860843&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz", 1816 | "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", 1817 | "dev": true, 1818 | "engines": { 1819 | "node": ">=8" 1820 | } 1821 | }, 1822 | "node_modules/require-directory": { 1823 | "version": "2.1.1", 1824 | "resolved": "https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz", 1825 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1826 | "dev": true, 1827 | "engines": { 1828 | "node": ">=0.10.0" 1829 | } 1830 | }, 1831 | "node_modules/resolve-from": { 1832 | "version": "4.0.0", 1833 | "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", 1834 | "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", 1835 | "dev": true, 1836 | "engines": { 1837 | "node": ">=4" 1838 | } 1839 | }, 1840 | "node_modules/reusify": { 1841 | "version": "1.0.4", 1842 | "resolved": "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz", 1843 | "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", 1844 | "dev": true, 1845 | "engines": { 1846 | "iojs": ">=1.0.0", 1847 | "node": ">=0.10.0" 1848 | } 1849 | }, 1850 | "node_modules/rimraf": { 1851 | "version": "3.0.2", 1852 | "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz", 1853 | "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", 1854 | "dev": true, 1855 | "dependencies": { 1856 | "glob": "^7.1.3" 1857 | }, 1858 | "bin": { 1859 | "rimraf": "bin.js" 1860 | } 1861 | }, 1862 | "node_modules/run-parallel": { 1863 | "version": "1.2.0", 1864 | "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz", 1865 | "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", 1866 | "dev": true, 1867 | "dependencies": { 1868 | "queue-microtask": "^1.2.2" 1869 | } 1870 | }, 1871 | "node_modules/safe-buffer": { 1872 | "version": "5.1.2", 1873 | "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", 1874 | "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", 1875 | "dev": true 1876 | }, 1877 | "node_modules/semver": { 1878 | "version": "7.3.5", 1879 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", 1880 | "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", 1881 | "dev": true, 1882 | "dependencies": { 1883 | "lru-cache": "^6.0.0" 1884 | }, 1885 | "bin": { 1886 | "semver": "bin/semver.js" 1887 | }, 1888 | "engines": { 1889 | "node": ">=10" 1890 | } 1891 | }, 1892 | "node_modules/serialize-javascript": { 1893 | "version": "6.0.0", 1894 | "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-6.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-6.0.0.tgz", 1895 | "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", 1896 | "dev": true, 1897 | "dependencies": { 1898 | "randombytes": "^2.1.0" 1899 | } 1900 | }, 1901 | "node_modules/setimmediate": { 1902 | "version": "1.0.5", 1903 | "resolved": "https://registry.nlark.com/setimmediate/download/setimmediate-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsetimmediate%2Fdownload%2Fsetimmediate-1.0.5.tgz", 1904 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 1905 | "dev": true 1906 | }, 1907 | "node_modules/shebang-command": { 1908 | "version": "2.0.0", 1909 | "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", 1910 | "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", 1911 | "dev": true, 1912 | "dependencies": { 1913 | "shebang-regex": "^3.0.0" 1914 | }, 1915 | "engines": { 1916 | "node": ">=8" 1917 | } 1918 | }, 1919 | "node_modules/shebang-regex": { 1920 | "version": "3.0.0", 1921 | "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz", 1922 | "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", 1923 | "dev": true, 1924 | "engines": { 1925 | "node": ">=8" 1926 | } 1927 | }, 1928 | "node_modules/slash": { 1929 | "version": "3.0.0", 1930 | "resolved": "https://registry.npmmirror.com/slash/download/slash-3.0.0.tgz", 1931 | "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", 1932 | "dev": true, 1933 | "engines": { 1934 | "node": ">=8" 1935 | } 1936 | }, 1937 | "node_modules/string_decoder": { 1938 | "version": "1.1.1", 1939 | "resolved": "https://registry.npmmirror.com/string_decoder/download/string_decoder-1.1.1.tgz", 1940 | "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", 1941 | "dev": true, 1942 | "dependencies": { 1943 | "safe-buffer": "~5.1.0" 1944 | } 1945 | }, 1946 | "node_modules/string-width": { 1947 | "version": "4.2.3", 1948 | "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz", 1949 | "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", 1950 | "dev": true, 1951 | "dependencies": { 1952 | "emoji-regex": "^8.0.0", 1953 | "is-fullwidth-code-point": "^3.0.0", 1954 | "strip-ansi": "^6.0.1" 1955 | }, 1956 | "engines": { 1957 | "node": ">=8" 1958 | } 1959 | }, 1960 | "node_modules/strip-ansi": { 1961 | "version": "6.0.1", 1962 | "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz", 1963 | "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", 1964 | "dev": true, 1965 | "dependencies": { 1966 | "ansi-regex": "^5.0.1" 1967 | }, 1968 | "engines": { 1969 | "node": ">=8" 1970 | } 1971 | }, 1972 | "node_modules/strip-json-comments": { 1973 | "version": "3.1.1", 1974 | "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz", 1975 | "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", 1976 | "dev": true, 1977 | "engines": { 1978 | "node": ">=8" 1979 | } 1980 | }, 1981 | "node_modules/supports-color": { 1982 | "version": "7.2.0", 1983 | "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz", 1984 | "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", 1985 | "dev": true, 1986 | "dependencies": { 1987 | "has-flag": "^4.0.0" 1988 | }, 1989 | "engines": { 1990 | "node": ">=8" 1991 | } 1992 | }, 1993 | "node_modules/text-table": { 1994 | "version": "0.2.0", 1995 | "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", 1996 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1997 | "dev": true 1998 | }, 1999 | "node_modules/to-regex-range": { 2000 | "version": "5.0.1", 2001 | "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz", 2002 | "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", 2003 | "dev": true, 2004 | "dependencies": { 2005 | "is-number": "^7.0.0" 2006 | }, 2007 | "engines": { 2008 | "node": ">=8.0" 2009 | } 2010 | }, 2011 | "node_modules/traverse": { 2012 | "version": "0.3.9", 2013 | "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.3.9.tgz", 2014 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", 2015 | "dev": true, 2016 | "engines": { 2017 | "node": "*" 2018 | } 2019 | }, 2020 | "node_modules/tslib": { 2021 | "version": "1.14.1", 2022 | "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", 2023 | "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", 2024 | "dev": true 2025 | }, 2026 | "node_modules/tsutils": { 2027 | "version": "3.21.0", 2028 | "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1615138426726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz", 2029 | "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", 2030 | "dev": true, 2031 | "dependencies": { 2032 | "tslib": "^1.8.1" 2033 | }, 2034 | "engines": { 2035 | "node": ">= 6" 2036 | }, 2037 | "peerDependencies": { 2038 | "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" 2039 | } 2040 | }, 2041 | "node_modules/type-check": { 2042 | "version": "0.4.0", 2043 | "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz", 2044 | "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", 2045 | "dev": true, 2046 | "dependencies": { 2047 | "prelude-ls": "^1.2.1" 2048 | }, 2049 | "engines": { 2050 | "node": ">= 0.8.0" 2051 | } 2052 | }, 2053 | "node_modules/type-fest": { 2054 | "version": "0.20.2", 2055 | "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz", 2056 | "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", 2057 | "dev": true, 2058 | "engines": { 2059 | "node": ">=10" 2060 | } 2061 | }, 2062 | "node_modules/typescript": { 2063 | "version": "4.5.4", 2064 | "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.5.4.tgz", 2065 | "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", 2066 | "dev": true, 2067 | "bin": { 2068 | "tsc": "bin/tsc", 2069 | "tsserver": "bin/tsserver" 2070 | }, 2071 | "engines": { 2072 | "node": ">=4.2.0" 2073 | } 2074 | }, 2075 | "node_modules/unzipper": { 2076 | "version": "0.10.11", 2077 | "resolved": "https://registry.npm.taobao.org/unzipper/download/unzipper-0.10.11.tgz", 2078 | "integrity": "sha1-C0mRRGRyy9uS7nQDkJ8mwkGceC4=", 2079 | "dev": true, 2080 | "dependencies": { 2081 | "big-integer": "^1.6.17", 2082 | "binary": "~0.3.0", 2083 | "bluebird": "~3.4.1", 2084 | "buffer-indexof-polyfill": "~1.0.0", 2085 | "duplexer2": "~0.1.4", 2086 | "fstream": "^1.0.12", 2087 | "graceful-fs": "^4.2.2", 2088 | "listenercount": "~1.0.1", 2089 | "readable-stream": "~2.3.6", 2090 | "setimmediate": "~1.0.4" 2091 | } 2092 | }, 2093 | "node_modules/uri-js": { 2094 | "version": "4.4.1", 2095 | "resolved": "https://registry.npmmirror.com/uri-js/download/uri-js-4.4.1.tgz", 2096 | "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", 2097 | "dev": true, 2098 | "dependencies": { 2099 | "punycode": "^2.1.0" 2100 | } 2101 | }, 2102 | "node_modules/util-deprecate": { 2103 | "version": "1.0.2", 2104 | "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", 2105 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2106 | "dev": true 2107 | }, 2108 | "node_modules/v8-compile-cache": { 2109 | "version": "2.3.0", 2110 | "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz", 2111 | "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", 2112 | "dev": true 2113 | }, 2114 | "node_modules/which": { 2115 | "version": "2.0.2", 2116 | "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", 2117 | "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", 2118 | "dev": true, 2119 | "dependencies": { 2120 | "isexe": "^2.0.0" 2121 | }, 2122 | "bin": { 2123 | "node-which": "bin/node-which" 2124 | }, 2125 | "engines": { 2126 | "node": ">= 8" 2127 | } 2128 | }, 2129 | "node_modules/word-wrap": { 2130 | "version": "1.2.3", 2131 | "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", 2132 | "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", 2133 | "dev": true, 2134 | "engines": { 2135 | "node": ">=0.10.0" 2136 | } 2137 | }, 2138 | "node_modules/workerpool": { 2139 | "version": "6.1.5", 2140 | "resolved": "https://registry.nlark.com/workerpool/download/workerpool-6.1.5.tgz", 2141 | "integrity": "sha1-D3zwdrYhX9fh2pA/9vIt3RiGtYE=", 2142 | "dev": true 2143 | }, 2144 | "node_modules/wrap-ansi": { 2145 | "version": "7.0.0", 2146 | "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz", 2147 | "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", 2148 | "dev": true, 2149 | "dependencies": { 2150 | "ansi-styles": "^4.0.0", 2151 | "string-width": "^4.1.0", 2152 | "strip-ansi": "^6.0.0" 2153 | }, 2154 | "engines": { 2155 | "node": ">=10" 2156 | } 2157 | }, 2158 | "node_modules/wrappy": { 2159 | "version": "1.0.2", 2160 | "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", 2161 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2162 | "dev": true 2163 | }, 2164 | "node_modules/y18n": { 2165 | "version": "5.0.8", 2166 | "resolved": "https://registry.nlark.com/y18n/download/y18n-5.0.8.tgz", 2167 | "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", 2168 | "dev": true, 2169 | "engines": { 2170 | "node": ">=10" 2171 | } 2172 | }, 2173 | "node_modules/yallist": { 2174 | "version": "4.0.0", 2175 | "resolved": "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz", 2176 | "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", 2177 | "dev": true 2178 | }, 2179 | "node_modules/yargs": { 2180 | "version": "16.2.0", 2181 | "resolved": "https://registry.npmmirror.com/yargs/download/yargs-16.2.0.tgz", 2182 | "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", 2183 | "dev": true, 2184 | "dependencies": { 2185 | "cliui": "^7.0.2", 2186 | "escalade": "^3.1.1", 2187 | "get-caller-file": "^2.0.5", 2188 | "require-directory": "^2.1.1", 2189 | "string-width": "^4.2.0", 2190 | "y18n": "^5.0.5", 2191 | "yargs-parser": "^20.2.2" 2192 | }, 2193 | "engines": { 2194 | "node": ">=10" 2195 | } 2196 | }, 2197 | "node_modules/yargs-parser": { 2198 | "version": "20.2.4", 2199 | "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.4.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.4.tgz", 2200 | "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", 2201 | "dev": true, 2202 | "engines": { 2203 | "node": ">=10" 2204 | } 2205 | }, 2206 | "node_modules/yargs-unparser": { 2207 | "version": "2.0.0", 2208 | "resolved": "https://registry.npm.taobao.org/yargs-unparser/download/yargs-unparser-2.0.0.tgz", 2209 | "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", 2210 | "dev": true, 2211 | "dependencies": { 2212 | "camelcase": "^6.0.0", 2213 | "decamelize": "^4.0.0", 2214 | "flat": "^5.0.2", 2215 | "is-plain-obj": "^2.1.0" 2216 | }, 2217 | "engines": { 2218 | "node": ">=10" 2219 | } 2220 | }, 2221 | "node_modules/yocto-queue": { 2222 | "version": "0.1.0", 2223 | "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz", 2224 | "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", 2225 | "dev": true, 2226 | "engines": { 2227 | "node": ">=10" 2228 | } 2229 | } 2230 | } 2231 | } 2232 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel-goto-view", 3 | "displayName": "Laravel goto view", 4 | "description": "Quick jump to view", 5 | "version": "1.3.11", 6 | "publisher": "codingyu", 7 | "license": "MIT", 8 | "engines": { 9 | "vscode": "^1.50.0" 10 | }, 11 | "icon": "images/icon.jpg", 12 | "repository": "https://github.com/codingyu/laravel-goto-view.git", 13 | "categories": [ 14 | "Other" 15 | ], 16 | "keywords": [ 17 | "PHP", 18 | "Laravel" 19 | ], 20 | "activationEvents": [ 21 | "onLanguage:php", 22 | "onLanguage:blade" 23 | ], 24 | "contributes": { 25 | "configuration": { 26 | "type": "object", 27 | "title": "Laravel goto view configuration", 28 | "properties": { 29 | "laravel_goto_view.quickJump": { 30 | "type": "boolean", 31 | "default": true, 32 | "description": "Use 'Ctrl' or 'Alt' + click" 33 | }, 34 | "laravel_goto_view.folderTip": { 35 | "type": "boolean", 36 | "default": true, 37 | "description": "Display path name" 38 | }, 39 | "laravel_goto_view.maxLinesCount": { 40 | "type": "integer", 41 | "default": 666, 42 | "description": "Maximum number of scanning rows" 43 | }, 44 | "laravel_goto_view.regex": { 45 | "type": "string", 46 | "default": "(?<=view\\(['\"]|markdown\\(['\"]|assertViewIs\\(['\"]|\\(view:.['\"]|View::make\\(['\"]|@include\\(['\"]|@extends\\(['\"]|@component\\(['\"]|Inertia::(?:render|modal)\\(['\"]|\\(component:.['\"]|<)(?:x-|livewire:|[^'\"\\s/>]+(?:\\/[^'\"\\s/>]+)*)", 47 | "description": "Custom regex for matching strings" 48 | }, 49 | "laravel_goto_view.folders": { 50 | "type": "object", 51 | "default": { 52 | "default": "/resources/views", 53 | "js": "/resources/js/Pages", 54 | "vendor": "/resources/views/vendor" 55 | }, 56 | "items": { 57 | "type": "string" 58 | }, 59 | "minItems": 1, 60 | "uniqueItems": true, 61 | "description": "Multiple folders" 62 | }, 63 | "laravel_goto_view.extensions": { 64 | "type": "array", 65 | "default": [ 66 | ".blade.php", 67 | ".vue" 68 | ], 69 | "items": { 70 | "type": "string" 71 | }, 72 | "minItems": 1, 73 | "uniqueItems": true, 74 | "description": "Multiple extensions" 75 | } 76 | } 77 | } 78 | }, 79 | "main": "./out/extension.js", 80 | "scripts": { 81 | "vscode:prepublish": "npm run compile", 82 | "compile": "tsc -p ./", 83 | "watch": "tsc -watch -p ./", 84 | "pretest": "npm run compile && npm run lint", 85 | "lint": "eslint src --ext ts", 86 | "test": "node ./out/test/runTest.js" 87 | }, 88 | "devDependencies": { 89 | "@types/vscode": "^1.50.0", 90 | "@types/glob": "^7.1.4", 91 | "@types/mocha": "^9.0.0", 92 | "@types/node": "14.x", 93 | "@typescript-eslint/eslint-plugin": "^5.1.0", 94 | "@typescript-eslint/parser": "^5.1.0", 95 | "eslint": "^8.1.0", 96 | "glob": "^7.1.7", 97 | "mocha": "^9.1.3", 98 | "typescript": "^4.4.4", 99 | "@vscode/test-electron": "^1.6.2" 100 | } 101 | } -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import { languages, ExtensionContext } from 'vscode'; 4 | import LinkProvider from './providers/linkProvider'; 5 | import HoverProvider from './providers/hoverProvider'; 6 | 7 | export function activate(context: ExtensionContext) { 8 | let hover = languages.registerHoverProvider(['php', 'blade'], new HoverProvider()); 9 | let link = languages.registerDocumentLinkProvider(['php', 'blade'], new LinkProvider()); 10 | 11 | context.subscriptions.push(hover, link); 12 | } 13 | 14 | export function deactivate() { 15 | // 16 | } 17 | -------------------------------------------------------------------------------- /src/providers/hoverProvider.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import { 4 | HoverProvider as vsHoverProvider, 5 | TextDocument, 6 | Position, 7 | ProviderResult, 8 | Hover, 9 | workspace, 10 | MarkdownString 11 | } from "vscode"; 12 | import * as util from '../util'; 13 | 14 | export default class HoverProvider implements vsHoverProvider { 15 | provideHover(doc: TextDocument, pos: Position): ProviderResult { 16 | let config = workspace.getConfiguration('laravel_goto_view'); 17 | let reg = new RegExp(config.regex); 18 | let linkRange = doc.getWordRangeAtPosition(pos, reg); 19 | 20 | 21 | if (!linkRange) return 22 | 23 | let filePaths = util.getFilePaths(doc.getText(linkRange), doc); 24 | let workspaceFolder = workspace.getWorkspaceFolder(doc.uri); 25 | if (filePaths.length > 0) { 26 | let text: string = ""; 27 | 28 | for (let i in filePaths) { 29 | text += config.folderTip ? `\`${filePaths[i].name}\`` : ''; 30 | text += ` [${workspaceFolder?.name + filePaths[i].showPath}](${filePaths[i].fileUri}) \r`; 31 | } 32 | 33 | return new Hover(new MarkdownString(text)); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/providers/linkProvider.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import { 4 | DocumentLinkProvider as vsDocumentLinkProvider, 5 | TextDocument, 6 | ProviderResult, 7 | DocumentLink, 8 | workspace, 9 | Position, 10 | Range 11 | } from "vscode" 12 | import * as util from '../util'; 13 | 14 | export default class LinkProvider implements vsDocumentLinkProvider { 15 | public provideDocumentLinks(doc: TextDocument): ProviderResult { 16 | let documentLinks = []; 17 | let config = workspace.getConfiguration('laravel_goto_view'); 18 | 19 | if (config.quickJump) { 20 | let reg = new RegExp(config.regex, 'g'); 21 | let linesCount = doc.lineCount <= config.maxLinesCount ? doc.lineCount : config.maxLinesCount 22 | let index = 0; 23 | while (index < linesCount) { 24 | let line = doc.lineAt(index); 25 | let result = line.text.match(reg); 26 | 27 | if (result != null) { 28 | for (let item of result) { 29 | let file = util.getFilePath(item, doc); 30 | 31 | if (file != null) { 32 | let start = new Position(line.lineNumber, line.text.indexOf(item)); 33 | let end = start.translate(0, item.length); 34 | let documentlink = new DocumentLink(new Range(start, end), file.fileUri); 35 | documentLinks.push(documentlink); 36 | }; 37 | } 38 | } 39 | 40 | index++; 41 | } 42 | } 43 | 44 | return documentLinks; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/test/runTest.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | 3 | import { runTests } from '@vscode/test-electron'; 4 | 5 | async function main() { 6 | try { 7 | // The folder containing the Extension Manifest package.json 8 | // Passed to `--extensionDevelopmentPath` 9 | const extensionDevelopmentPath = path.resolve(__dirname, '../../'); 10 | 11 | // The path to test runner 12 | // Passed to --extensionTestsPath 13 | const extensionTestsPath = path.resolve(__dirname, './suite/index'); 14 | 15 | // Download VS Code, unzip it and run the integration test 16 | await runTests({ extensionDevelopmentPath, extensionTestsPath }); 17 | } catch (err) { 18 | console.error('Failed to run tests'); 19 | process.exit(1); 20 | } 21 | } 22 | 23 | main(); 24 | -------------------------------------------------------------------------------- /src/test/suite/extension.test.ts: -------------------------------------------------------------------------------- 1 | import * as assert from 'assert'; 2 | 3 | // You can import and use all API from the 'vscode' module 4 | // as well as import your extension to test it 5 | import * as vscode from 'vscode'; 6 | // import * as myExtension from '../../extension'; 7 | 8 | suite('Extension Test Suite', () => { 9 | vscode.window.showInformationMessage('Start all tests.'); 10 | 11 | test('Sample test', () => { 12 | assert.strictEqual(-1, [1, 2, 3].indexOf(5)); 13 | assert.strictEqual(-1, [1, 2, 3].indexOf(0)); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /src/test/suite/index.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | import * as Mocha from 'mocha'; 3 | import * as glob from 'glob'; 4 | 5 | export function run(): Promise { 6 | // Create the mocha test 7 | const mocha = new Mocha({ 8 | ui: 'tdd', 9 | color: true 10 | }); 11 | 12 | const testsRoot = path.resolve(__dirname, '..'); 13 | 14 | return new Promise((c, e) => { 15 | glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { 16 | if (err) { 17 | return e(err); 18 | } 19 | 20 | // Add files to the test suite 21 | files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); 22 | 23 | try { 24 | // Run the mocha test 25 | mocha.run(failures => { 26 | if (failures > 0) { 27 | e(new Error(`${failures} tests failed.`)); 28 | } else { 29 | c(); 30 | } 31 | }); 32 | } catch (err) { 33 | console.error(err); 34 | e(err); 35 | } 36 | }); 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /src/util.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import { workspace, TextDocument, Uri, ExtensionContext, WorkspaceConfiguration } from 'vscode'; 4 | import * as fs from "fs"; 5 | import * as path from "path"; 6 | 7 | export function getFilePath(text: string, document: TextDocument) { 8 | let paths = getFilePaths(text, document); 9 | return paths.length > 0 ? paths[0] : null; 10 | } 11 | 12 | export function getFilePaths(text: string, document: TextDocument) { 13 | let workspaceFolder = workspace.getWorkspaceFolder(document.uri)?.uri.fsPath || ''; 14 | let config = workspace.getConfiguration('laravel_goto_view'); 15 | let paths = scanViewPaths(workspaceFolder, config); 16 | let file = text.replace(/\"|\'/g, '').replace('x-', 'components.').replace('livewire:', 'livewire.').replace(/\./g, '/').split('::'); 17 | let result = []; 18 | 19 | for (let item in paths) { 20 | let showPath = paths[item] + `/${file[0]}`; 21 | if (file.length > 1) { 22 | if (item !== file[0]) { 23 | continue; 24 | } else { 25 | showPath = paths[item] + `/${file[1]}`; 26 | } 27 | } 28 | for (let extension of config.extensions) { 29 | let filePath = workspaceFolder + showPath + extension; 30 | 31 | if (fs.existsSync(filePath)) { 32 | result.push({ 33 | "name": item, 34 | "showPath": showPath, 35 | "fileUri": Uri.file(filePath) 36 | }); 37 | } 38 | } 39 | } 40 | 41 | return result; 42 | } 43 | 44 | function scanViewPaths(workspaceFolder: string, config: WorkspaceConfiguration) { 45 | let folders = Object.assign({}, config.folders); 46 | 47 | // Modules 48 | let modulePath = path.join(workspaceFolder, 'Modules'); 49 | if (fs.existsSync(modulePath)) { 50 | fs.readdirSync(modulePath).forEach(element => { 51 | let file = path.join(modulePath, element); 52 | if (fs.statSync(file).isDirectory()) { 53 | folders[element.toLocaleLowerCase()] = "/Modules/" + element + "/resources/views"; 54 | } 55 | }); 56 | } 57 | // vendor 58 | let vendorPath = path.join(workspaceFolder, 'resources/views/vendor'); 59 | if (fs.existsSync(vendorPath)) { 60 | fs.readdirSync(vendorPath).forEach(element => { 61 | let file = path.join(vendorPath, element); 62 | if (fs.statSync(file).isDirectory()) { 63 | folders[element.toLocaleLowerCase()] = "/resources/views/vendor/" + element; 64 | } 65 | }); 66 | } 67 | 68 | return folders; 69 | } 70 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "ES2020", 5 | "outDir": "out", 6 | "lib": [ 7 | "ES2020" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": "src", 11 | "strict": true /* enable all strict type-checking options */ 12 | /* Additional Checks */ 13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 16 | }, 17 | "exclude": [ 18 | "node_modules", 19 | ".vscode-test" 20 | ] 21 | } 22 | --------------------------------------------------------------------------------