├── .eslintrc.js ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── customData ├── alpinejs │ └── html.json └── petite-vue │ └── html.json ├── esbuild.js ├── package.json ├── src ├── commands.ts ├── completion.ts └── index.ts ├── tsconfig.json └── yarn.lock /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | node: true, 4 | }, 5 | parser: '@typescript-eslint/parser', 6 | extends: ['plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'], 7 | rules: { 8 | '@typescript-eslint/no-unused-vars': 'warn', 9 | '@typescript-eslint/ban-ts-comment': 'off', 10 | '@typescript-eslint/no-explicit-any': 'off', 11 | '@typescript-eslint/no-non-null-assertion': 'off', 12 | '@typescript-eslint/no-namespace': 'off', 13 | '@typescript-eslint/no-empty-function': 'off', 14 | '@typescript-eslint/explicit-function-return-type': 'off', 15 | '@typescript-eslint/explicit-module-boundary-types': 'off', 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/218a941be92679ce67d0484547e3e142b2f5f6f0/Node.gitignore 2 | 3 | lib/ 4 | _ref 5 | 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | lerna-debug.log* 13 | 14 | # Diagnostic reports (https://nodejs.org/api/report.html) 15 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 16 | 17 | # Runtime data 18 | pids 19 | *.pid 20 | *.seed 21 | *.pid.lock 22 | 23 | # Directory for instrumented libs generated by jscoverage/JSCover 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | coverage 28 | *.lcov 29 | 30 | # nyc test coverage 31 | .nyc_output 32 | 33 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 34 | .grunt 35 | 36 | # Bower dependency directory (https://bower.io/) 37 | bower_components 38 | 39 | # node-waf configuration 40 | .lock-wscript 41 | 42 | # Compiled binary addons (https://nodejs.org/api/addons.html) 43 | build/Release 44 | 45 | # Dependency directories 46 | node_modules/ 47 | jspm_packages/ 48 | 49 | # Snowpack dependency directory (https://snowpack.dev/) 50 | web_modules/ 51 | 52 | # TypeScript cache 53 | *.tsbuildinfo 54 | 55 | # Optional npm cache directory 56 | .npm 57 | 58 | # Optional eslint cache 59 | .eslintcache 60 | 61 | # Microbundle cache 62 | .rpt2_cache/ 63 | .rts2_cache_cjs/ 64 | .rts2_cache_es/ 65 | .rts2_cache_umd/ 66 | 67 | # Optional REPL history 68 | .node_repl_history 69 | 70 | # Output of 'npm pack' 71 | *.tgz 72 | 73 | # Yarn Integrity file 74 | .yarn-integrity 75 | 76 | # dotenv environment variables file 77 | .env 78 | .env.test 79 | 80 | # parcel-bundler cache (https://parceljs.org/) 81 | .cache 82 | .parcel-cache 83 | 84 | # Next.js build output 85 | .next 86 | out 87 | 88 | # Nuxt.js build / generate output 89 | .nuxt 90 | dist 91 | 92 | # Gatsby files 93 | .cache/ 94 | # Comment in the public line in if your project uses Gatsby and not Next.js 95 | # https://nextjs.org/blog/next-9-1#public-directory-support 96 | # public 97 | 98 | # vuepress build output 99 | .vuepress/dist 100 | 101 | # Serverless directories 102 | .serverless/ 103 | 104 | # FuseBox cache 105 | .fusebox/ 106 | 107 | # DynamoDB Local files 108 | .dynamodb/ 109 | 110 | # TernJS port file 111 | .tern-port 112 | 113 | # Stores VSCode versions used for testing VSCode extensions 114 | .vscode-test 115 | 116 | # yarn v2 117 | .yarn/cache 118 | .yarn/unplugged 119 | .yarn/build-state.yml 120 | .yarn/install-state.gz 121 | .pnp.* 122 | 123 | 124 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | node_modules 3 | tsconfig.json 4 | *.map 5 | .tags 6 | .DS_Store 7 | webpack.config.js 8 | esbuild.js 9 | yarn.lock 10 | yarn-error.log 11 | .github 12 | .eslintrc.js 13 | .prettierrc 14 | _ref 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 yaegassy 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 | # coc-html-css-support 2 | 3 | > fork from a [ecmel/vscode-html-css](https://github.com/ecmel/vscode-html-css) | [HTML CSS Support](https://marketplace.visualstudio.com/items?itemName=ecmel.vscode-html-css) 4 | 5 | HTML id and class attribute "completion" for [coc.nvim](https://github.com/neoclide/coc.nvim). 6 | 7 | coc-html-css-support-demo 8 | 9 | ## Install 10 | 11 | `:CocInstall coc-html-css-support` 12 | 13 | ## Features 14 | 15 | - HTML id and class attribute completion. 16 | - Supports linked and embedded style sheets. 17 | - Supports template inheritance. 18 | - Supports additional style sheets. 19 | - Supports other HTML like languages. 20 | - Command to make `html.customData` built-in in `coc-html-css-support` available at the workspace level. 21 | - Require [coc-html](https://github.com/neoclide/coc-html) 22 | 23 | ## Configuration options 24 | 25 | - `html-css-support.enable`: Enable coc-html-css-support extension, default: `true` 26 | - `html-css-support.enabledLanguages`: List of languages which suggestions are desired, default: `["html"]` 27 | - `html-css-support.styleSheets`: List of local or remote style sheets for suggestions, default: `[]` 28 | 29 | ## Commands 30 | 31 | - `html-css-support.dispose`: Clear cache and reload the stylesheet 32 | - `html-css-support.customDataSetup`: Setup `html.customData` in workspace config. Supported customData are as follows 33 | - `Alpine.js` 34 | - `petite-vue` 35 | 36 | ## Example settings 37 | 38 | ### Additional Style Sheets (Example) 39 | 40 | **coc-settings.json:** 41 | 42 | ```json 43 | { 44 | "html-css-support.styleSheets": [ 45 | "https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css", 46 | "/style.css", 47 | "style.css" 48 | ] 49 | } 50 | ``` 51 | 52 | ### Add other HTML like languages (Example) 53 | 54 | **coc-settings.json:** 55 | 56 | ```json 57 | { 58 | "html-css-support.enabledLanguages": [ 59 | "html", 60 | "vue", 61 | "blade", 62 | "htmldjango", 63 | "typescriptreact", 64 | "javascriptreact" 65 | ] 66 | } 67 | ``` 68 | 69 | ## What is customData? 70 | 71 | You can read more about customData in the following repositories. 72 | 73 | - 74 | - 75 | 76 | ## Thanks 77 | 78 | - [ecmel/vscode-html-css](https://github.com/ecmel/vscode-html-css) : The origin of this repository. 79 | 80 | ## License 81 | 82 | MIT 83 | 84 | --- 85 | 86 | > This extension is built with [create-coc-extension](https://github.com/fannheyward/create-coc-extension) 87 | -------------------------------------------------------------------------------- /customData/alpinejs/html.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1", 3 | "tags": [], 4 | "globalAttributes": [ 5 | { 6 | "name": "x-data", 7 | "description": "Alpine.js" 8 | }, 9 | { 10 | "name": "x-init", 11 | "description": "Alpine.js" 12 | }, 13 | { 14 | "name": "x-show", 15 | "description": "Alpine.js" 16 | }, 17 | { 18 | "name": "x-bind:", 19 | "description": "Alpine.js" 20 | }, 21 | { 22 | "name": "x-on:", 23 | "description": "Alpine.js" 24 | }, 25 | { 26 | "name": "x-model", 27 | "description": "Alpine.js" 28 | }, 29 | { 30 | "name": "x-text", 31 | "description": "Alpine.js" 32 | }, 33 | { 34 | "name": "x-html", 35 | "description": "Alpine.js" 36 | }, 37 | { 38 | "name": "x-ref", 39 | "description": "Alpine.js" 40 | }, 41 | { 42 | "name": "x-if", 43 | "description": "Alpine.js" 44 | }, 45 | { 46 | "name": "x-for", 47 | "description": "Alpine.js" 48 | }, 49 | { 50 | "name": ":key", 51 | "description": "Alpine.js" 52 | }, 53 | { 54 | "name": "x-transition:enter", 55 | "description": "Alpine.js" 56 | }, 57 | { 58 | "name": "x-transition:enter-start", 59 | "description": "Alpine.js" 60 | }, 61 | { 62 | "name": "x-transition:enter-end", 63 | "description": "Alpine.js" 64 | }, 65 | { 66 | "name": "x-transition:leave", 67 | "description": "Alpine.js" 68 | }, 69 | { 70 | "name": "x-transition:leave-start", 71 | "description": "Alpine.js" 72 | }, 73 | { 74 | "name": "x-transition:leave-end", 75 | "description": "Alpine.js" 76 | }, 77 | { 78 | "name": "x-cloak", 79 | "description": "Alpine.js" 80 | }, 81 | { 82 | "name": "x-on:abort", 83 | "description": "Alpine.js" 84 | }, 85 | { 86 | "name": "x-on:blur", 87 | "description": "Alpine.js" 88 | }, 89 | { 90 | "name": "x-on:canplay", 91 | "description": "Alpine.js" 92 | }, 93 | { 94 | "name": "x-on:canplaythrough", 95 | "description": "Alpine.js" 96 | }, 97 | { 98 | "name": "x-on:change", 99 | "description": "Alpine.js" 100 | }, 101 | { 102 | "name": "x-on:click", 103 | "description": "Alpine.js" 104 | }, 105 | { 106 | "name": "x-on:contextmenu", 107 | "description": "Alpine.js" 108 | }, 109 | { 110 | "name": "x-on:dblclick", 111 | "description": "Alpine.js" 112 | }, 113 | { 114 | "name": "x-on:drag", 115 | "description": "Alpine.js" 116 | }, 117 | { 118 | "name": "x-on:dragend", 119 | "description": "Alpine.js" 120 | }, 121 | { 122 | "name": "x-on:dragenter", 123 | "description": "Alpine.js" 124 | }, 125 | { 126 | "name": "x-on:dragleave", 127 | "description": "Alpine.js" 128 | }, 129 | { 130 | "name": "x-on:dragover", 131 | "description": "Alpine.js" 132 | }, 133 | { 134 | "name": "x-on:dragstart", 135 | "description": "Alpine.js" 136 | }, 137 | { 138 | "name": "x-on:drop", 139 | "description": "Alpine.js" 140 | }, 141 | { 142 | "name": "x-on:durationchange", 143 | "description": "Alpine.js" 144 | }, 145 | { 146 | "name": "x-on:emptied", 147 | "description": "Alpine.js" 148 | }, 149 | { 150 | "name": "x-on:ended", 151 | "description": "Alpine.js" 152 | }, 153 | { 154 | "name": "x-on:error", 155 | "description": "Alpine.js" 156 | }, 157 | { 158 | "name": "x-on:focus", 159 | "description": "Alpine.js" 160 | }, 161 | { 162 | "name": "x-on:input", 163 | "description": "Alpine.js" 164 | }, 165 | { 166 | "name": "x-on:invalid", 167 | "description": "Alpine.js" 168 | }, 169 | { 170 | "name": "x-on:keydown", 171 | "description": "Alpine.js" 172 | }, 173 | { 174 | "name": "x-on:keypress", 175 | "description": "Alpine.js" 176 | }, 177 | { 178 | "name": "x-on:keyup", 179 | "description": "Alpine.js" 180 | }, 181 | { 182 | "name": "x-on:load", 183 | "description": "Alpine.js" 184 | }, 185 | { 186 | "name": "x-on:loadeddata", 187 | "description": "Alpine.js" 188 | }, 189 | { 190 | "name": "x-on:loadedmetadata", 191 | "description": "Alpine.js" 192 | }, 193 | { 194 | "name": "x-on:loadstart", 195 | "description": "Alpine.js" 196 | }, 197 | { 198 | "name": "x-on:mousedown", 199 | "description": "Alpine.js" 200 | }, 201 | { 202 | "name": "x-on:mousemove", 203 | "description": "Alpine.js" 204 | }, 205 | { 206 | "name": "x-on:mouseout", 207 | "description": "Alpine.js" 208 | }, 209 | { 210 | "name": "x-on:mouseover", 211 | "description": "Alpine.js" 212 | }, 213 | { 214 | "name": "x-on:mouseup", 215 | "description": "Alpine.js" 216 | }, 217 | { 218 | "name": "x-on:pause", 219 | "description": "Alpine.js" 220 | }, 221 | { 222 | "name": "x-on:play", 223 | "description": "Alpine.js" 224 | }, 225 | { 226 | "name": "x-on:playing", 227 | "description": "Alpine.js" 228 | }, 229 | { 230 | "name": "x-on:progress", 231 | "description": "Alpine.js" 232 | }, 233 | { 234 | "name": "x-on:ratechange", 235 | "description": "Alpine.js" 236 | }, 237 | { 238 | "name": "x-on:reset", 239 | "description": "Alpine.js" 240 | }, 241 | { 242 | "name": "x-on:resize", 243 | "description": "Alpine.js" 244 | }, 245 | { 246 | "name": "x-on:readystatechange", 247 | "description": "Alpine.js" 248 | }, 249 | { 250 | "name": "x-on:scroll", 251 | "description": "Alpine.js" 252 | }, 253 | { 254 | "name": "x-on:seeked", 255 | "description": "Alpine.js" 256 | }, 257 | { 258 | "name": "x-on:seeking", 259 | "description": "Alpine.js" 260 | }, 261 | { 262 | "name": "x-on:select", 263 | "description": "Alpine.js" 264 | }, 265 | { 266 | "name": "x-on:show", 267 | "description": "Alpine.js" 268 | }, 269 | { 270 | "name": "x-on:stalled", 271 | "description": "Alpine.js" 272 | }, 273 | { 274 | "name": "x-on:submit", 275 | "description": "Alpine.js" 276 | }, 277 | { 278 | "name": "x-on:suspend", 279 | "description": "Alpine.js" 280 | }, 281 | { 282 | "name": "x-on:timeupdate", 283 | "description": "Alpine.js" 284 | }, 285 | { 286 | "name": "x-on:volumechange", 287 | "description": "Alpine.js" 288 | }, 289 | { 290 | "name": "x-on:waiting", 291 | "description": "Alpine.js" 292 | }, 293 | { 294 | "name": "x-bind:class", 295 | "description": "Alpine.js" 296 | }, 297 | { 298 | "name": "x-bind:disabled", 299 | "description": "Alpine.js" 300 | }, 301 | { 302 | "name": "x-bind:readonly", 303 | "description": "Alpine.js" 304 | }, 305 | { 306 | "name": "x-bind:required", 307 | "description": "Alpine.js" 308 | }, 309 | { 310 | "name": "x-bind:checked", 311 | "description": "Alpine.js" 312 | }, 313 | { 314 | "name": "x-bind:hidden", 315 | "description": "Alpine.js" 316 | }, 317 | { 318 | "name": "x-bind:selected", 319 | "description": "Alpine.js" 320 | } 321 | ], 322 | "valueSets": [] 323 | } 324 | -------------------------------------------------------------------------------- /customData/petite-vue/html.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1", 3 | "tags": [], 4 | "globalAttributes": [ 5 | { 6 | "name": "v-scope", 7 | "description": "petite-vue" 8 | }, 9 | { 10 | "name": "v-effect", 11 | "description": "petite-vue" 12 | }, 13 | { 14 | "name": "@mounted", 15 | "description": "petite-vue" 16 | }, 17 | { 18 | "name": "@unmounted", 19 | "description": "petite-vue" 20 | }, 21 | { 22 | "name": "v-bind:", 23 | "description": "petite-vue" 24 | }, 25 | { 26 | "name": "v-on:", 27 | "description": "petite-vue" 28 | }, 29 | { 30 | "name": "v-model", 31 | "description": "petite-vue" 32 | }, 33 | { 34 | "name": "v-if", 35 | "description": "petite-vue" 36 | }, 37 | { 38 | "name": "v-else", 39 | "description": "petite-vue" 40 | }, 41 | { 42 | "name": "v-else-if", 43 | "description": "petite-vue" 44 | }, 45 | { 46 | "name": "v-for", 47 | "description": "petite-vue" 48 | }, 49 | { 50 | "name": "v-show", 51 | "description": "petite-vue" 52 | }, 53 | { 54 | "name": "v-html", 55 | "description": "petite-vue" 56 | }, 57 | { 58 | "name": "v-text", 59 | "description": "petite-vue" 60 | }, 61 | { 62 | "name": "v-pre", 63 | "description": "petite-vue" 64 | }, 65 | { 66 | "name": "v-once", 67 | "description": "petite-vue" 68 | }, 69 | { 70 | "name": "v-cloak", 71 | "description": "petite-vue" 72 | } 73 | ], 74 | "valueSets": [] 75 | } 76 | -------------------------------------------------------------------------------- /esbuild.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-var-requires */ 2 | async function start(watch) { 3 | await require('esbuild').build({ 4 | entryPoints: ['src/index.ts'], 5 | bundle: true, 6 | watch, 7 | minify: process.env.NODE_ENV === 'production', 8 | sourcemap: process.env.NODE_ENV === 'development', 9 | mainFields: ['module', 'main'], 10 | external: ['coc.nvim'], 11 | platform: 'node', 12 | target: 'node14.14', 13 | outfile: 'lib/index.js', 14 | }); 15 | } 16 | 17 | let watch = false; 18 | if (process.argv.length > 2 && process.argv[2] === '--watch') { 19 | console.log('watching...'); 20 | watch = { 21 | onRebuild(error) { 22 | if (error) { 23 | console.error('watch build failed:', error); 24 | } else { 25 | console.log('watch build succeeded'); 26 | } 27 | }, 28 | }; 29 | } 30 | 31 | start(watch).catch((e) => { 32 | console.error(e); 33 | }); 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-html-css-support", 3 | "version": "0.5.3", 4 | "description": "HTML id and class attribute completion for coc.nvim", 5 | "author": "yaegassy ", 6 | "license": "MIT", 7 | "main": "lib/index.js", 8 | "keywords": [ 9 | "coc.nvim", 10 | "vim", 11 | "neovim", 12 | "css", 13 | "html", 14 | "twig", 15 | "blade", 16 | "django", 17 | "nunjucks", 18 | "mustache", 19 | "angular", 20 | "react", 21 | "vue", 22 | "lit", 23 | "multi-root ready" 24 | ], 25 | "engines": { 26 | "coc": "^0.0.80" 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "https://github.com/yaegassy/coc-html-css-support" 31 | }, 32 | "scripts": { 33 | "lint": "eslint src --ext ts", 34 | "clean": "rimraf lib", 35 | "watch": "node esbuild.js --watch", 36 | "build": "node esbuild.js", 37 | "prepare": "node esbuild.js" 38 | }, 39 | "prettier": { 40 | "singleQuote": true, 41 | "printWidth": 120, 42 | "semi": true 43 | }, 44 | "devDependencies": { 45 | "@types/css-tree": "^1.0.5", 46 | "@types/node": "^20.10.5", 47 | "@types/node-fetch": "^2.5.8", 48 | "@typescript-eslint/eslint-plugin": "^6.15.0", 49 | "@typescript-eslint/parser": "^6.15.0", 50 | "coc.nvim": "0.0.83-next.17", 51 | "css-tree": "1.1.2", 52 | "esbuild": "^0.16.17", 53 | "eslint": "^8.56.0", 54 | "eslint-config-prettier": "^9.1.0", 55 | "eslint-plugin-prettier": "^5.1.2", 56 | "node-fetch": "^2.6.1", 57 | "prettier": "^3.1.1", 58 | "rimraf": "^5.0.1", 59 | "typescript": "5.3.3" 60 | }, 61 | "activationEvents": [ 62 | "*" 63 | ], 64 | "contributes": { 65 | "configuration": { 66 | "type": "object", 67 | "title": "coc-html-css-support configuration", 68 | "properties": { 69 | "html-css-support.enable": { 70 | "type": "boolean", 71 | "default": true, 72 | "description": "Enable coc-html-css-support extension" 73 | }, 74 | "html-css-support.enabledLanguages": { 75 | "type": "array", 76 | "description": "List of languages which suggestions are desired.", 77 | "default": [ 78 | "html" 79 | ] 80 | }, 81 | "html-css-support.styleSheets": { 82 | "type": "array", 83 | "description": "List of local or remote style sheets for suggestions.", 84 | "default": [] 85 | } 86 | } 87 | }, 88 | "commands": [ 89 | { 90 | "command": "html-css-support.dispose", 91 | "title": "Clear cache and reload the stylesheet" 92 | }, 93 | { 94 | "command": "html-css-support.customDataSetup", 95 | "title": "Setup `html.customData` to be used in the workspace" 96 | } 97 | ] 98 | }, 99 | "dependencies": {}, 100 | "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" 101 | } 102 | -------------------------------------------------------------------------------- /src/commands.ts: -------------------------------------------------------------------------------- 1 | import { ExtensionContext, extensions, window, workspace } from 'coc.nvim'; 2 | import path from 'path'; 3 | 4 | export function customDataSetupCommand(context: ExtensionContext) { 5 | return async () => { 6 | if (!extensions.all.find((e) => e.id === 'coc-html')) { 7 | window.showWarningMessage(`coc-html is not installed`); 8 | return; 9 | } 10 | 11 | const htmlConfig = workspace.getConfiguration('html'); 12 | const picked = await window.showMenuPicker(['Alpine.js', 'petite-vue'], 'Which customData do you want to use?'); 13 | 14 | switch (picked) { 15 | case -1: 16 | // Cancel! 17 | window.showInformationMessage(`It's been cancelled`); 18 | break; 19 | case 0: 20 | // Alpine.js 21 | htmlConfig.update('customData', [path.join(context.extensionPath, 'customData', 'alpinejs', 'html.json')]); 22 | break; 23 | case 1: 24 | // petite-vue 25 | htmlConfig.update('customData', [path.join(context.extensionPath, 'customData', 'petite-vue', 'html.json')]); 26 | break; 27 | default: 28 | // Cancel! 29 | window.showInformationMessage(`It's been cancelled`); 30 | break; 31 | } 32 | 33 | if (picked !== -1) { 34 | workspace.nvim.command(`CocRestart`, true); 35 | } 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /src/completion.ts: -------------------------------------------------------------------------------- 1 | import { 2 | CompletionItem, 3 | CompletionItemKind, 4 | CompletionItemProvider, 5 | Diagnostic, 6 | DiagnosticSeverity, 7 | Disposable, 8 | Position, 9 | ProviderResult, 10 | Range, 11 | TextDocument, 12 | Uri, 13 | workspace, 14 | } from 'coc.nvim'; 15 | import { parse, walk } from 'css-tree'; 16 | import fetch from 'node-fetch'; 17 | import { basename, dirname, extname, isAbsolute, join } from 'path'; 18 | 19 | export type Context = { 20 | ids: Map; 21 | classes: Map; 22 | }; 23 | 24 | export class SelectorCompletionItemProvider implements CompletionItemProvider, Disposable { 25 | readonly start = Position.create(0, 0); 26 | readonly cache = new Map(); 27 | readonly files = new Map(); 28 | readonly watchers = new Map(); 29 | readonly isRemote = /^https?:\/\//i; 30 | readonly canComplete = /(id|class|className)\s*[=:]\s*("|')(?:(?!\2).)*$/is; 31 | readonly findLinkRel = /rel\s*=\s*("|')((?:(?!\1).)+)\1/is; 32 | readonly findLinkHref = /href\s*=\s*("|')((?:(?!\1).)+)\1/is; 33 | readonly findExtended = /(?:{{<|{{>|{%\s*extends|@extends\s*\()\s*("|')?([./A-Za-z_0-9\\\-]+)\1\s*(?:\)|%}|}})/i; 34 | 35 | dispose() { 36 | this.watchers.forEach((e) => e.dispose()); 37 | this.watchers.clear(); 38 | this.cache.clear(); 39 | this.files.clear(); 40 | } 41 | 42 | watchFile(path: string, listener: () => any) { 43 | if (this.watchers.has(path)) { 44 | return; 45 | } 46 | 47 | const watcher = workspace.createFileSystemWatcher(path); 48 | 49 | watcher.onDidCreate(listener); 50 | watcher.onDidChange(listener); 51 | watcher.onDidDelete(listener); 52 | 53 | this.watchers.set(path, watcher); 54 | } 55 | 56 | getStyleSheets(uri: Uri): string[] { 57 | return workspace.getConfiguration('html-css-support', uri.toString()).get('styleSheets', []); 58 | } 59 | 60 | getPath(uri: Uri, path: string, ext?: string): string { 61 | const folder = workspace.getWorkspaceFolder(uri.toString()); 62 | const name = ext ? join(dirname(path), basename(path, ext) + ext) : path; 63 | 64 | return folder ? join(isAbsolute(path) ? folder.uri : dirname(uri.fsPath), name) : join(dirname(uri.fsPath), name); 65 | } 66 | 67 | parseTextToItems(path: string, text: string, items: CompletionItem[]) { 68 | walk(parse(text), (node) => { 69 | let kind: CompletionItemKind; 70 | 71 | switch (node.type) { 72 | case 'ClassSelector': 73 | kind = CompletionItemKind.Enum; 74 | break; 75 | case 'IdSelector': 76 | kind = CompletionItemKind.Value; 77 | break; 78 | default: 79 | return; 80 | } 81 | 82 | const resultCompletionItem: CompletionItem = { 83 | label: node.name, 84 | kind, 85 | detail: 'filename: ' + path, 86 | }; 87 | 88 | items.push(resultCompletionItem); 89 | }); 90 | } 91 | 92 | async fetchLocal(path: string): Promise { 93 | if (this.cache.has(path)) { 94 | return; 95 | } 96 | 97 | const items: CompletionItem[] = []; 98 | 99 | try { 100 | const content = await workspace.readFile(path); 101 | this.parseTextToItems(basename(path), content.toString(), items); 102 | } catch (error) {} 103 | 104 | this.cache.set(path, items); 105 | this.watchFile(path, () => this.cache.delete(path)); 106 | } 107 | 108 | async fetchRemote(path: string): Promise { 109 | if (this.cache.has(path)) { 110 | return; 111 | } 112 | 113 | const items: CompletionItem[] = []; 114 | 115 | try { 116 | const res = await fetch(path); 117 | 118 | if (res.ok) { 119 | const text = await res.text(); 120 | this.parseTextToItems(basename(path), text, items); 121 | } 122 | } catch (error) {} 123 | 124 | this.cache.set(path, items); 125 | } 126 | 127 | async fetch(uri: Uri, path: string): Promise { 128 | if (this.isRemote.test(path)) { 129 | await this.fetchRemote(path); 130 | } else { 131 | const base = basename(uri.fsPath, extname(uri.fsPath)); 132 | 133 | path = this.getPath(uri, path.replace(/\${\s*fileBasenameNoExtension\s*}/, base)); 134 | await this.fetchLocal(path); 135 | } 136 | 137 | return path; 138 | } 139 | 140 | findEmbedded(uri: Uri, keys: Set, text: string) { 141 | const key = uri.toString(); 142 | const items: CompletionItem[] = []; 143 | const findStyles = /(?:]*>([^<]+)<\/style>|css\s*`([^`]+)`)/gi; 144 | 145 | let style: string[] | null; 146 | 147 | while ((style = findStyles.exec(text)) !== null) { 148 | this.parseTextToItems(basename(uri.fsPath), style[1] || style[2], items); 149 | } 150 | 151 | this.cache.set(key, items); 152 | keys.add(key); 153 | } 154 | 155 | async findFixed(uri: Uri, keys: Set): Promise { 156 | for (const key of this.getStyleSheets(uri)) { 157 | keys.add(await this.fetch(uri, key)); 158 | } 159 | } 160 | 161 | async findLinks(uri: Uri, keys: Set, text: string): Promise { 162 | const findLinks = /]+)>/gi; 163 | 164 | let link: string[] | null, rel: string[] | null, href: string[] | null; 165 | 166 | while ((link = findLinks.exec(text)) !== null) { 167 | rel = this.findLinkRel.exec(link[1]); 168 | 169 | if (rel && rel[2] === 'stylesheet') { 170 | href = this.findLinkHref.exec(link[1]); 171 | 172 | if (href) { 173 | keys.add(await this.fetch(uri, href[2])); 174 | } 175 | } 176 | } 177 | } 178 | 179 | async findInherited(uri: Uri, keys: Set, text: string, level = 0): Promise { 180 | const extended = this.findExtended.exec(text); 181 | 182 | if (extended && level < 3) { 183 | level++; 184 | 185 | const name = extended[2]; 186 | const ext = extname(name) || extname(uri.fsPath); 187 | const path = this.getPath(uri, name, ext); 188 | const file = Uri.file(path); 189 | 190 | let text = this.files.get(path); 191 | 192 | if (!text) { 193 | try { 194 | text = (await workspace.readFile(file.toString())).toString(); 195 | } catch (error) { 196 | text = 'n/a'; 197 | } 198 | 199 | this.files.set(path, text); 200 | this.watchFile(path, () => this.files.delete(path)); 201 | } 202 | 203 | this.findEmbedded(file, keys, text); 204 | 205 | await this.findLinks(file, keys, text); 206 | await this.findInherited(file, keys, text, level); 207 | } 208 | } 209 | 210 | async findAll(document: TextDocument): Promise { 211 | const keys = new Set(); 212 | const uri = document.uri; 213 | const text = document.getText(); 214 | 215 | this.findEmbedded(Uri.parse(uri), keys, text); 216 | 217 | await this.findFixed(Uri.parse(uri), keys); 218 | await this.findLinks(Uri.parse(uri), keys, text); 219 | await this.findInherited(Uri.parse(uri), keys, text); 220 | 221 | const ids = new Map(); 222 | const classes = new Map(); 223 | 224 | keys.forEach( 225 | (key) => 226 | this.cache.get(key)?.forEach((e) => { 227 | const res = e.kind === CompletionItemKind.Value ? ids : classes; 228 | // ---- custom fix ---- 229 | e.label = e.label.replace('\\', ''); 230 | e.insertText = e.label.replace('\\', ''); 231 | // ---- /custom fix ---- 232 | res.set(e.label, e); 233 | }), 234 | ); 235 | 236 | return { ids, classes }; 237 | } 238 | 239 | // MEMO: Not supported by coc-html-css-support. 240 | async validate(document: TextDocument): Promise { 241 | const context = await this.findAll(document); 242 | const text = document.getText(); 243 | const diagnostics: Diagnostic[] = []; 244 | const findAttribute = /(id|class|className)\s*=\s*("|')(.*?)\2/gis; 245 | 246 | let attribute: string[] | null, 247 | offset: number, 248 | findSelector: RegExp, 249 | value: any[] | null, 250 | anchor: number, 251 | end: Position, 252 | start: Position; 253 | 254 | while ((attribute = findAttribute.exec(text)) !== null) { 255 | offset = findAttribute.lastIndex - attribute[3].length + attribute[3].indexOf(attribute[2]); 256 | 257 | findSelector = /([^(\[{}\])\s]+)(?![^(\[{]*[}\])])/gi; 258 | 259 | while ((value = findSelector.exec(attribute[3])) !== null) { 260 | if (!(attribute[1] === 'id' ? context.ids : context.classes).has(value[1])) { 261 | anchor = findSelector.lastIndex + offset; 262 | end = document.positionAt(anchor); 263 | start = document.positionAt(anchor - value[1].length); 264 | 265 | diagnostics.push( 266 | Diagnostic.create( 267 | Range.create(start, end), 268 | `CSS selector '${value[1]}' not found.`, 269 | DiagnosticSeverity.Information, 270 | ), 271 | ); 272 | } 273 | } 274 | } 275 | 276 | return diagnostics; 277 | } 278 | 279 | provideCompletionItems(document: TextDocument, position: Position): ProviderResult { 280 | return new Promise((resolve) => { 281 | const range = Range.create(this.start, position); 282 | const text = document.getText(range); 283 | const canComplete = this.canComplete.exec(text); 284 | 285 | if (canComplete) { 286 | this.findAll(document).then((context) => 287 | resolve([...(canComplete[1] === 'id' ? context.ids : context.classes).values()]), 288 | ); 289 | } else { 290 | resolve([]); 291 | } 292 | }); 293 | } 294 | } 295 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { commands, ExtensionContext, languages, workspace } from 'coc.nvim'; 2 | import { customDataSetupCommand } from './commands'; 3 | import { SelectorCompletionItemProvider } from './completion'; 4 | 5 | export async function activate(context: ExtensionContext): Promise { 6 | const config = workspace.getConfiguration('html-css-support'); 7 | 8 | const isEnable = config.get('enable', true); 9 | if (!isEnable) { 10 | return; 11 | } 12 | 13 | const enabledLanguages = config.get('enabledLanguages', ['html']); 14 | const provider = new SelectorCompletionItemProvider(); 15 | context.subscriptions.push( 16 | commands.registerCommand('html-css-support.dispose', () => provider.dispose()), 17 | languages.registerCompletionItemProvider('html-css-support', 'HCS', enabledLanguages, provider), 18 | provider, 19 | ); 20 | 21 | /** MEMO: Custom commands for coc-html-css-support */ 22 | context.subscriptions.push( 23 | commands.registerCommand('html-css-support.customDataSetup', customDataSetupCommand(context)), 24 | ); 25 | } 26 | 27 | export function deactivate() {} 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "lib": ["es2017", "es2018"], 5 | "module": "commonjs", 6 | "declaration": false, 7 | "sourceMap": true, 8 | "outDir": "lib", 9 | "strict": true, 10 | "moduleResolution": "node", 11 | "noImplicitAny": false, 12 | "esModuleInterop": true 13 | }, 14 | "include": ["src"] 15 | } 16 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aashutoshrathi/word-wrap@^1.2.3": 6 | version "1.2.6" 7 | resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" 8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== 9 | 10 | "@esbuild/android-arm64@0.16.17": 11 | version "0.16.17" 12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" 13 | integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== 14 | 15 | "@esbuild/android-arm@0.16.17": 16 | version "0.16.17" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" 18 | integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== 19 | 20 | "@esbuild/android-x64@0.16.17": 21 | version "0.16.17" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" 23 | integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== 24 | 25 | "@esbuild/darwin-arm64@0.16.17": 26 | version "0.16.17" 27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" 28 | integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== 29 | 30 | "@esbuild/darwin-x64@0.16.17": 31 | version "0.16.17" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" 33 | integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== 34 | 35 | "@esbuild/freebsd-arm64@0.16.17": 36 | version "0.16.17" 37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" 38 | integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== 39 | 40 | "@esbuild/freebsd-x64@0.16.17": 41 | version "0.16.17" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" 43 | integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== 44 | 45 | "@esbuild/linux-arm64@0.16.17": 46 | version "0.16.17" 47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" 48 | integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== 49 | 50 | "@esbuild/linux-arm@0.16.17": 51 | version "0.16.17" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" 53 | integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== 54 | 55 | "@esbuild/linux-ia32@0.16.17": 56 | version "0.16.17" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" 58 | integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== 59 | 60 | "@esbuild/linux-loong64@0.16.17": 61 | version "0.16.17" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" 63 | integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== 64 | 65 | "@esbuild/linux-mips64el@0.16.17": 66 | version "0.16.17" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" 68 | integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== 69 | 70 | "@esbuild/linux-ppc64@0.16.17": 71 | version "0.16.17" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" 73 | integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== 74 | 75 | "@esbuild/linux-riscv64@0.16.17": 76 | version "0.16.17" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" 78 | integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== 79 | 80 | "@esbuild/linux-s390x@0.16.17": 81 | version "0.16.17" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" 83 | integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== 84 | 85 | "@esbuild/linux-x64@0.16.17": 86 | version "0.16.17" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" 88 | integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== 89 | 90 | "@esbuild/netbsd-x64@0.16.17": 91 | version "0.16.17" 92 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" 93 | integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== 94 | 95 | "@esbuild/openbsd-x64@0.16.17": 96 | version "0.16.17" 97 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" 98 | integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== 99 | 100 | "@esbuild/sunos-x64@0.16.17": 101 | version "0.16.17" 102 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" 103 | integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== 104 | 105 | "@esbuild/win32-arm64@0.16.17": 106 | version "0.16.17" 107 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" 108 | integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== 109 | 110 | "@esbuild/win32-ia32@0.16.17": 111 | version "0.16.17" 112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" 113 | integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== 114 | 115 | "@esbuild/win32-x64@0.16.17": 116 | version "0.16.17" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" 118 | integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== 119 | 120 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": 121 | version "4.4.0" 122 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" 123 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 124 | dependencies: 125 | eslint-visitor-keys "^3.3.0" 126 | 127 | "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": 128 | version "4.10.0" 129 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" 130 | integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== 131 | 132 | "@eslint/eslintrc@^2.1.4": 133 | version "2.1.4" 134 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" 135 | integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== 136 | dependencies: 137 | ajv "^6.12.4" 138 | debug "^4.3.2" 139 | espree "^9.6.0" 140 | globals "^13.19.0" 141 | ignore "^5.2.0" 142 | import-fresh "^3.2.1" 143 | js-yaml "^4.1.0" 144 | minimatch "^3.1.2" 145 | strip-json-comments "^3.1.1" 146 | 147 | "@eslint/js@8.56.0": 148 | version "8.56.0" 149 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" 150 | integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== 151 | 152 | "@humanwhocodes/config-array@^0.11.13": 153 | version "0.11.13" 154 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" 155 | integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== 156 | dependencies: 157 | "@humanwhocodes/object-schema" "^2.0.1" 158 | debug "^4.1.1" 159 | minimatch "^3.0.5" 160 | 161 | "@humanwhocodes/module-importer@^1.0.1": 162 | version "1.0.1" 163 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 164 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 165 | 166 | "@humanwhocodes/object-schema@^2.0.1": 167 | version "2.0.1" 168 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" 169 | integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== 170 | 171 | "@isaacs/cliui@^8.0.2": 172 | version "8.0.2" 173 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 174 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 175 | dependencies: 176 | string-width "^5.1.2" 177 | string-width-cjs "npm:string-width@^4.2.0" 178 | strip-ansi "^7.0.1" 179 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 180 | wrap-ansi "^8.1.0" 181 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 182 | 183 | "@nodelib/fs.scandir@2.1.4": 184 | version "2.1.4" 185 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" 186 | integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== 187 | dependencies: 188 | "@nodelib/fs.stat" "2.0.4" 189 | run-parallel "^1.1.9" 190 | 191 | "@nodelib/fs.scandir@2.1.5": 192 | version "2.1.5" 193 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 194 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 195 | dependencies: 196 | "@nodelib/fs.stat" "2.0.5" 197 | run-parallel "^1.1.9" 198 | 199 | "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": 200 | version "2.0.4" 201 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" 202 | integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== 203 | 204 | "@nodelib/fs.stat@2.0.5": 205 | version "2.0.5" 206 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 207 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 208 | 209 | "@nodelib/fs.walk@^1.2.3": 210 | version "1.2.6" 211 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" 212 | integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== 213 | dependencies: 214 | "@nodelib/fs.scandir" "2.1.4" 215 | fastq "^1.6.0" 216 | 217 | "@nodelib/fs.walk@^1.2.8": 218 | version "1.2.8" 219 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 220 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 221 | dependencies: 222 | "@nodelib/fs.scandir" "2.1.5" 223 | fastq "^1.6.0" 224 | 225 | "@pkgjs/parseargs@^0.11.0": 226 | version "0.11.0" 227 | resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" 228 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 229 | 230 | "@pkgr/utils@^2.4.2": 231 | version "2.4.2" 232 | resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" 233 | integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== 234 | dependencies: 235 | cross-spawn "^7.0.3" 236 | fast-glob "^3.3.0" 237 | is-glob "^4.0.3" 238 | open "^9.1.0" 239 | picocolors "^1.0.0" 240 | tslib "^2.6.0" 241 | 242 | "@types/css-tree@^1.0.5": 243 | version "1.0.5" 244 | resolved "https://registry.yarnpkg.com/@types/css-tree/-/css-tree-1.0.5.tgz#181caecfc81c4e345e6ae0a71bfc0a58bfb3bd79" 245 | integrity sha512-3uTnqSdmUGrTRoGT8UjzpYSbK2EtrTTJTpdFr6MdMj6wMOSAdjHW1V+YqOgUzVrQsi3AwH+LHcBtXEuy0Sn/LQ== 246 | 247 | "@types/json-schema@^7.0.12": 248 | version "7.0.15" 249 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" 250 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 251 | 252 | "@types/node-fetch@^2.5.8": 253 | version "2.5.8" 254 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.8.tgz#e199c835d234c7eb0846f6618012e558544ee2fb" 255 | integrity sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw== 256 | dependencies: 257 | "@types/node" "*" 258 | form-data "^3.0.0" 259 | 260 | "@types/node@*": 261 | version "14.14.30" 262 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.30.tgz#7d5162eec085ba34f8cb9011e9ba12119f76f961" 263 | integrity sha512-gUWhy8s45fQp4PqqKecsnOkdW0kt1IaKjgOIR3HPokkzTmQj9ji2wWFID5THu1MKrtO+d4s2lVrlEhXUsPXSvg== 264 | 265 | "@types/node@^20.10.5": 266 | version "20.10.5" 267 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2" 268 | integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== 269 | dependencies: 270 | undici-types "~5.26.4" 271 | 272 | "@types/semver@^7.5.0": 273 | version "7.5.6" 274 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" 275 | integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== 276 | 277 | "@typescript-eslint/eslint-plugin@^6.15.0": 278 | version "6.15.0" 279 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz#b0b3e15fa8c3e67ed4386b765cc0ba98ad3a303b" 280 | integrity sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg== 281 | dependencies: 282 | "@eslint-community/regexpp" "^4.5.1" 283 | "@typescript-eslint/scope-manager" "6.15.0" 284 | "@typescript-eslint/type-utils" "6.15.0" 285 | "@typescript-eslint/utils" "6.15.0" 286 | "@typescript-eslint/visitor-keys" "6.15.0" 287 | debug "^4.3.4" 288 | graphemer "^1.4.0" 289 | ignore "^5.2.4" 290 | natural-compare "^1.4.0" 291 | semver "^7.5.4" 292 | ts-api-utils "^1.0.1" 293 | 294 | "@typescript-eslint/parser@^6.15.0": 295 | version "6.15.0" 296 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.15.0.tgz#1af69741cfa314a13c1434d0bdd5a0c3096699d7" 297 | integrity sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA== 298 | dependencies: 299 | "@typescript-eslint/scope-manager" "6.15.0" 300 | "@typescript-eslint/types" "6.15.0" 301 | "@typescript-eslint/typescript-estree" "6.15.0" 302 | "@typescript-eslint/visitor-keys" "6.15.0" 303 | debug "^4.3.4" 304 | 305 | "@typescript-eslint/scope-manager@6.15.0": 306 | version "6.15.0" 307 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz#40e5214a3e9e048aca55ce33381bc61b6b51c32a" 308 | integrity sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg== 309 | dependencies: 310 | "@typescript-eslint/types" "6.15.0" 311 | "@typescript-eslint/visitor-keys" "6.15.0" 312 | 313 | "@typescript-eslint/type-utils@6.15.0": 314 | version "6.15.0" 315 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz#c22261bd00566821a300d08f4632533a8f9bed01" 316 | integrity sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ== 317 | dependencies: 318 | "@typescript-eslint/typescript-estree" "6.15.0" 319 | "@typescript-eslint/utils" "6.15.0" 320 | debug "^4.3.4" 321 | ts-api-utils "^1.0.1" 322 | 323 | "@typescript-eslint/types@6.15.0": 324 | version "6.15.0" 325 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.15.0.tgz#a9f7b006aee52b0948be6e03f521814bf435ddd5" 326 | integrity sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ== 327 | 328 | "@typescript-eslint/typescript-estree@6.15.0": 329 | version "6.15.0" 330 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz#2f8a513df1ce5e6e1ba8e5c6aa52f392ae023fc5" 331 | integrity sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew== 332 | dependencies: 333 | "@typescript-eslint/types" "6.15.0" 334 | "@typescript-eslint/visitor-keys" "6.15.0" 335 | debug "^4.3.4" 336 | globby "^11.1.0" 337 | is-glob "^4.0.3" 338 | semver "^7.5.4" 339 | ts-api-utils "^1.0.1" 340 | 341 | "@typescript-eslint/utils@6.15.0": 342 | version "6.15.0" 343 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.15.0.tgz#f80dbb79f3b0f569077a8711dd44186a8933fa4c" 344 | integrity sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw== 345 | dependencies: 346 | "@eslint-community/eslint-utils" "^4.4.0" 347 | "@types/json-schema" "^7.0.12" 348 | "@types/semver" "^7.5.0" 349 | "@typescript-eslint/scope-manager" "6.15.0" 350 | "@typescript-eslint/types" "6.15.0" 351 | "@typescript-eslint/typescript-estree" "6.15.0" 352 | semver "^7.5.4" 353 | 354 | "@typescript-eslint/visitor-keys@6.15.0": 355 | version "6.15.0" 356 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz#5baf97a7bfeec6f4894d400437055155a46b2330" 357 | integrity sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w== 358 | dependencies: 359 | "@typescript-eslint/types" "6.15.0" 360 | eslint-visitor-keys "^3.4.1" 361 | 362 | "@ungap/structured-clone@^1.2.0": 363 | version "1.2.0" 364 | resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" 365 | integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== 366 | 367 | acorn-jsx@^5.3.2: 368 | version "5.3.2" 369 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 370 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 371 | 372 | acorn@^8.9.0: 373 | version "8.11.2" 374 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" 375 | integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== 376 | 377 | ajv@^6.12.4: 378 | version "6.12.6" 379 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 380 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 381 | dependencies: 382 | fast-deep-equal "^3.1.1" 383 | fast-json-stable-stringify "^2.0.0" 384 | json-schema-traverse "^0.4.1" 385 | uri-js "^4.2.2" 386 | 387 | ansi-regex@^5.0.1: 388 | version "5.0.1" 389 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 390 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 391 | 392 | ansi-regex@^6.0.1: 393 | version "6.0.1" 394 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" 395 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 396 | 397 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 398 | version "4.3.0" 399 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 400 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 401 | dependencies: 402 | color-convert "^2.0.1" 403 | 404 | ansi-styles@^6.1.0: 405 | version "6.2.1" 406 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 407 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 408 | 409 | argparse@^2.0.1: 410 | version "2.0.1" 411 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 412 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 413 | 414 | array-union@^2.1.0: 415 | version "2.1.0" 416 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 417 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 418 | 419 | asynckit@^0.4.0: 420 | version "0.4.0" 421 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 422 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 423 | 424 | balanced-match@^1.0.0: 425 | version "1.0.0" 426 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 427 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 428 | 429 | big-integer@^1.6.44: 430 | version "1.6.52" 431 | resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" 432 | integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== 433 | 434 | bplist-parser@^0.2.0: 435 | version "0.2.0" 436 | resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" 437 | integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== 438 | dependencies: 439 | big-integer "^1.6.44" 440 | 441 | brace-expansion@^1.1.7: 442 | version "1.1.11" 443 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 444 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 445 | dependencies: 446 | balanced-match "^1.0.0" 447 | concat-map "0.0.1" 448 | 449 | brace-expansion@^2.0.1: 450 | version "2.0.1" 451 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 452 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 453 | dependencies: 454 | balanced-match "^1.0.0" 455 | 456 | braces@^3.0.1: 457 | version "3.0.2" 458 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 459 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 460 | dependencies: 461 | fill-range "^7.0.1" 462 | 463 | bundle-name@^3.0.0: 464 | version "3.0.0" 465 | resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" 466 | integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== 467 | dependencies: 468 | run-applescript "^5.0.0" 469 | 470 | callsites@^3.0.0: 471 | version "3.1.0" 472 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 473 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 474 | 475 | chalk@^4.0.0: 476 | version "4.1.0" 477 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 478 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 479 | dependencies: 480 | ansi-styles "^4.1.0" 481 | supports-color "^7.1.0" 482 | 483 | coc.nvim@0.0.83-next.17: 484 | version "0.0.83-next.17" 485 | resolved "https://registry.yarnpkg.com/coc.nvim/-/coc.nvim-0.0.83-next.17.tgz#a1c4baa10927886366241ca0fd3acc7c941a5546" 486 | integrity sha512-VjGnxjbvBOboddNQMI5rZnS0HS0tdft9pbnwste5CncPNJaxfz5wEdWd7eFtifukE8STdLltPMNsoO0vul5r/A== 487 | 488 | color-convert@^2.0.1: 489 | version "2.0.1" 490 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 491 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 492 | dependencies: 493 | color-name "~1.1.4" 494 | 495 | color-name@~1.1.4: 496 | version "1.1.4" 497 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 498 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 499 | 500 | combined-stream@^1.0.8: 501 | version "1.0.8" 502 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 503 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 504 | dependencies: 505 | delayed-stream "~1.0.0" 506 | 507 | concat-map@0.0.1: 508 | version "0.0.1" 509 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 510 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 511 | 512 | cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: 513 | version "7.0.3" 514 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 515 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 516 | dependencies: 517 | path-key "^3.1.0" 518 | shebang-command "^2.0.0" 519 | which "^2.0.1" 520 | 521 | css-tree@1.1.2: 522 | version "1.1.2" 523 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" 524 | integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== 525 | dependencies: 526 | mdn-data "2.0.14" 527 | source-map "^0.6.1" 528 | 529 | debug@^4.1.1: 530 | version "4.3.1" 531 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 532 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 533 | dependencies: 534 | ms "2.1.2" 535 | 536 | debug@^4.3.2: 537 | version "4.3.3" 538 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 539 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 540 | dependencies: 541 | ms "2.1.2" 542 | 543 | debug@^4.3.4: 544 | version "4.3.4" 545 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 546 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 547 | dependencies: 548 | ms "2.1.2" 549 | 550 | deep-is@^0.1.3: 551 | version "0.1.3" 552 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 553 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 554 | 555 | default-browser-id@^3.0.0: 556 | version "3.0.0" 557 | resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" 558 | integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== 559 | dependencies: 560 | bplist-parser "^0.2.0" 561 | untildify "^4.0.0" 562 | 563 | default-browser@^4.0.0: 564 | version "4.0.0" 565 | resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" 566 | integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== 567 | dependencies: 568 | bundle-name "^3.0.0" 569 | default-browser-id "^3.0.0" 570 | execa "^7.1.1" 571 | titleize "^3.0.0" 572 | 573 | define-lazy-prop@^3.0.0: 574 | version "3.0.0" 575 | resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" 576 | integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== 577 | 578 | delayed-stream@~1.0.0: 579 | version "1.0.0" 580 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 581 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 582 | 583 | dir-glob@^3.0.1: 584 | version "3.0.1" 585 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 586 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 587 | dependencies: 588 | path-type "^4.0.0" 589 | 590 | doctrine@^3.0.0: 591 | version "3.0.0" 592 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 593 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 594 | dependencies: 595 | esutils "^2.0.2" 596 | 597 | eastasianwidth@^0.2.0: 598 | version "0.2.0" 599 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 600 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 601 | 602 | emoji-regex@^8.0.0: 603 | version "8.0.0" 604 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 605 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 606 | 607 | emoji-regex@^9.2.2: 608 | version "9.2.2" 609 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 610 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 611 | 612 | esbuild@^0.16.17: 613 | version "0.16.17" 614 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" 615 | integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== 616 | optionalDependencies: 617 | "@esbuild/android-arm" "0.16.17" 618 | "@esbuild/android-arm64" "0.16.17" 619 | "@esbuild/android-x64" "0.16.17" 620 | "@esbuild/darwin-arm64" "0.16.17" 621 | "@esbuild/darwin-x64" "0.16.17" 622 | "@esbuild/freebsd-arm64" "0.16.17" 623 | "@esbuild/freebsd-x64" "0.16.17" 624 | "@esbuild/linux-arm" "0.16.17" 625 | "@esbuild/linux-arm64" "0.16.17" 626 | "@esbuild/linux-ia32" "0.16.17" 627 | "@esbuild/linux-loong64" "0.16.17" 628 | "@esbuild/linux-mips64el" "0.16.17" 629 | "@esbuild/linux-ppc64" "0.16.17" 630 | "@esbuild/linux-riscv64" "0.16.17" 631 | "@esbuild/linux-s390x" "0.16.17" 632 | "@esbuild/linux-x64" "0.16.17" 633 | "@esbuild/netbsd-x64" "0.16.17" 634 | "@esbuild/openbsd-x64" "0.16.17" 635 | "@esbuild/sunos-x64" "0.16.17" 636 | "@esbuild/win32-arm64" "0.16.17" 637 | "@esbuild/win32-ia32" "0.16.17" 638 | "@esbuild/win32-x64" "0.16.17" 639 | 640 | escape-string-regexp@^4.0.0: 641 | version "4.0.0" 642 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 643 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 644 | 645 | eslint-config-prettier@^9.1.0: 646 | version "9.1.0" 647 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" 648 | integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== 649 | 650 | eslint-plugin-prettier@^5.1.2: 651 | version "5.1.2" 652 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz#584c94d4bf31329b2d4cbeb10fd600d17d6de742" 653 | integrity sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg== 654 | dependencies: 655 | prettier-linter-helpers "^1.0.0" 656 | synckit "^0.8.6" 657 | 658 | eslint-scope@^7.2.2: 659 | version "7.2.2" 660 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" 661 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== 662 | dependencies: 663 | esrecurse "^4.3.0" 664 | estraverse "^5.2.0" 665 | 666 | eslint-visitor-keys@^3.3.0: 667 | version "3.3.0" 668 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" 669 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 670 | 671 | eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: 672 | version "3.4.3" 673 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" 674 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== 675 | 676 | eslint@^8.56.0: 677 | version "8.56.0" 678 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" 679 | integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== 680 | dependencies: 681 | "@eslint-community/eslint-utils" "^4.2.0" 682 | "@eslint-community/regexpp" "^4.6.1" 683 | "@eslint/eslintrc" "^2.1.4" 684 | "@eslint/js" "8.56.0" 685 | "@humanwhocodes/config-array" "^0.11.13" 686 | "@humanwhocodes/module-importer" "^1.0.1" 687 | "@nodelib/fs.walk" "^1.2.8" 688 | "@ungap/structured-clone" "^1.2.0" 689 | ajv "^6.12.4" 690 | chalk "^4.0.0" 691 | cross-spawn "^7.0.2" 692 | debug "^4.3.2" 693 | doctrine "^3.0.0" 694 | escape-string-regexp "^4.0.0" 695 | eslint-scope "^7.2.2" 696 | eslint-visitor-keys "^3.4.3" 697 | espree "^9.6.1" 698 | esquery "^1.4.2" 699 | esutils "^2.0.2" 700 | fast-deep-equal "^3.1.3" 701 | file-entry-cache "^6.0.1" 702 | find-up "^5.0.0" 703 | glob-parent "^6.0.2" 704 | globals "^13.19.0" 705 | graphemer "^1.4.0" 706 | ignore "^5.2.0" 707 | imurmurhash "^0.1.4" 708 | is-glob "^4.0.0" 709 | is-path-inside "^3.0.3" 710 | js-yaml "^4.1.0" 711 | json-stable-stringify-without-jsonify "^1.0.1" 712 | levn "^0.4.1" 713 | lodash.merge "^4.6.2" 714 | minimatch "^3.1.2" 715 | natural-compare "^1.4.0" 716 | optionator "^0.9.3" 717 | strip-ansi "^6.0.1" 718 | text-table "^0.2.0" 719 | 720 | espree@^9.6.0, espree@^9.6.1: 721 | version "9.6.1" 722 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" 723 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== 724 | dependencies: 725 | acorn "^8.9.0" 726 | acorn-jsx "^5.3.2" 727 | eslint-visitor-keys "^3.4.1" 728 | 729 | esquery@^1.4.2: 730 | version "1.5.0" 731 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 732 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 733 | dependencies: 734 | estraverse "^5.1.0" 735 | 736 | esrecurse@^4.3.0: 737 | version "4.3.0" 738 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 739 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 740 | dependencies: 741 | estraverse "^5.2.0" 742 | 743 | estraverse@^5.1.0, estraverse@^5.2.0: 744 | version "5.2.0" 745 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 746 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 747 | 748 | esutils@^2.0.2: 749 | version "2.0.3" 750 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 751 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 752 | 753 | execa@^5.0.0: 754 | version "5.1.1" 755 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 756 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 757 | dependencies: 758 | cross-spawn "^7.0.3" 759 | get-stream "^6.0.0" 760 | human-signals "^2.1.0" 761 | is-stream "^2.0.0" 762 | merge-stream "^2.0.0" 763 | npm-run-path "^4.0.1" 764 | onetime "^5.1.2" 765 | signal-exit "^3.0.3" 766 | strip-final-newline "^2.0.0" 767 | 768 | execa@^7.1.1: 769 | version "7.2.0" 770 | resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" 771 | integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== 772 | dependencies: 773 | cross-spawn "^7.0.3" 774 | get-stream "^6.0.1" 775 | human-signals "^4.3.0" 776 | is-stream "^3.0.0" 777 | merge-stream "^2.0.0" 778 | npm-run-path "^5.1.0" 779 | onetime "^6.0.0" 780 | signal-exit "^3.0.7" 781 | strip-final-newline "^3.0.0" 782 | 783 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 784 | version "3.1.3" 785 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 786 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 787 | 788 | fast-diff@^1.1.2: 789 | version "1.2.0" 790 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 791 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 792 | 793 | fast-glob@^3.2.9: 794 | version "3.2.11" 795 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 796 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 797 | dependencies: 798 | "@nodelib/fs.stat" "^2.0.2" 799 | "@nodelib/fs.walk" "^1.2.3" 800 | glob-parent "^5.1.2" 801 | merge2 "^1.3.0" 802 | micromatch "^4.0.4" 803 | 804 | fast-glob@^3.3.0: 805 | version "3.3.2" 806 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" 807 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== 808 | dependencies: 809 | "@nodelib/fs.stat" "^2.0.2" 810 | "@nodelib/fs.walk" "^1.2.3" 811 | glob-parent "^5.1.2" 812 | merge2 "^1.3.0" 813 | micromatch "^4.0.4" 814 | 815 | fast-json-stable-stringify@^2.0.0: 816 | version "2.1.0" 817 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 818 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 819 | 820 | fast-levenshtein@^2.0.6: 821 | version "2.0.6" 822 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 823 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 824 | 825 | fastq@^1.6.0: 826 | version "1.10.1" 827 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" 828 | integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== 829 | dependencies: 830 | reusify "^1.0.4" 831 | 832 | file-entry-cache@^6.0.1: 833 | version "6.0.1" 834 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 835 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 836 | dependencies: 837 | flat-cache "^3.0.4" 838 | 839 | fill-range@^7.0.1: 840 | version "7.0.1" 841 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 842 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 843 | dependencies: 844 | to-regex-range "^5.0.1" 845 | 846 | find-up@^5.0.0: 847 | version "5.0.0" 848 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 849 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 850 | dependencies: 851 | locate-path "^6.0.0" 852 | path-exists "^4.0.0" 853 | 854 | flat-cache@^3.0.4: 855 | version "3.0.4" 856 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 857 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 858 | dependencies: 859 | flatted "^3.1.0" 860 | rimraf "^3.0.2" 861 | 862 | flatted@^3.1.0: 863 | version "3.1.1" 864 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" 865 | integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== 866 | 867 | foreground-child@^3.1.0: 868 | version "3.1.1" 869 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" 870 | integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== 871 | dependencies: 872 | cross-spawn "^7.0.0" 873 | signal-exit "^4.0.1" 874 | 875 | form-data@^3.0.0: 876 | version "3.0.1" 877 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 878 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 879 | dependencies: 880 | asynckit "^0.4.0" 881 | combined-stream "^1.0.8" 882 | mime-types "^2.1.12" 883 | 884 | fs.realpath@^1.0.0: 885 | version "1.0.0" 886 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 887 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 888 | 889 | get-stream@^6.0.0, get-stream@^6.0.1: 890 | version "6.0.1" 891 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 892 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 893 | 894 | glob-parent@^5.1.2: 895 | version "5.1.2" 896 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 897 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 898 | dependencies: 899 | is-glob "^4.0.1" 900 | 901 | glob-parent@^6.0.2: 902 | version "6.0.2" 903 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 904 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 905 | dependencies: 906 | is-glob "^4.0.3" 907 | 908 | glob@^10.3.7: 909 | version "10.3.10" 910 | resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" 911 | integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== 912 | dependencies: 913 | foreground-child "^3.1.0" 914 | jackspeak "^2.3.5" 915 | minimatch "^9.0.1" 916 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 917 | path-scurry "^1.10.1" 918 | 919 | glob@^7.1.3: 920 | version "7.1.6" 921 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 922 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 923 | dependencies: 924 | fs.realpath "^1.0.0" 925 | inflight "^1.0.4" 926 | inherits "2" 927 | minimatch "^3.0.4" 928 | once "^1.3.0" 929 | path-is-absolute "^1.0.0" 930 | 931 | globals@^13.19.0: 932 | version "13.20.0" 933 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 934 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 935 | dependencies: 936 | type-fest "^0.20.2" 937 | 938 | globby@^11.1.0: 939 | version "11.1.0" 940 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 941 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 942 | dependencies: 943 | array-union "^2.1.0" 944 | dir-glob "^3.0.1" 945 | fast-glob "^3.2.9" 946 | ignore "^5.2.0" 947 | merge2 "^1.4.1" 948 | slash "^3.0.0" 949 | 950 | graphemer@^1.4.0: 951 | version "1.4.0" 952 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" 953 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== 954 | 955 | has-flag@^4.0.0: 956 | version "4.0.0" 957 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 958 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 959 | 960 | human-signals@^2.1.0: 961 | version "2.1.0" 962 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 963 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 964 | 965 | human-signals@^4.3.0: 966 | version "4.3.1" 967 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" 968 | integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== 969 | 970 | ignore@^5.2.0: 971 | version "5.2.0" 972 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 973 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 974 | 975 | ignore@^5.2.4: 976 | version "5.3.0" 977 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" 978 | integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== 979 | 980 | import-fresh@^3.2.1: 981 | version "3.3.0" 982 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 983 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 984 | dependencies: 985 | parent-module "^1.0.0" 986 | resolve-from "^4.0.0" 987 | 988 | imurmurhash@^0.1.4: 989 | version "0.1.4" 990 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 991 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 992 | 993 | inflight@^1.0.4: 994 | version "1.0.6" 995 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 996 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 997 | dependencies: 998 | once "^1.3.0" 999 | wrappy "1" 1000 | 1001 | inherits@2: 1002 | version "2.0.4" 1003 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1004 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1005 | 1006 | is-docker@^2.0.0: 1007 | version "2.2.1" 1008 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" 1009 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== 1010 | 1011 | is-docker@^3.0.0: 1012 | version "3.0.0" 1013 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" 1014 | integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== 1015 | 1016 | is-extglob@^2.1.1: 1017 | version "2.1.1" 1018 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1019 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1020 | 1021 | is-fullwidth-code-point@^3.0.0: 1022 | version "3.0.0" 1023 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1024 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1025 | 1026 | is-glob@^4.0.0, is-glob@^4.0.1: 1027 | version "4.0.1" 1028 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1029 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1030 | dependencies: 1031 | is-extglob "^2.1.1" 1032 | 1033 | is-glob@^4.0.3: 1034 | version "4.0.3" 1035 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1036 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1037 | dependencies: 1038 | is-extglob "^2.1.1" 1039 | 1040 | is-inside-container@^1.0.0: 1041 | version "1.0.0" 1042 | resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" 1043 | integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== 1044 | dependencies: 1045 | is-docker "^3.0.0" 1046 | 1047 | is-number@^7.0.0: 1048 | version "7.0.0" 1049 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1050 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1051 | 1052 | is-path-inside@^3.0.3: 1053 | version "3.0.3" 1054 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1055 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1056 | 1057 | is-stream@^2.0.0: 1058 | version "2.0.1" 1059 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 1060 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 1061 | 1062 | is-stream@^3.0.0: 1063 | version "3.0.0" 1064 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" 1065 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== 1066 | 1067 | is-wsl@^2.2.0: 1068 | version "2.2.0" 1069 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 1070 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 1071 | dependencies: 1072 | is-docker "^2.0.0" 1073 | 1074 | isexe@^2.0.0: 1075 | version "2.0.0" 1076 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1077 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1078 | 1079 | jackspeak@^2.3.5: 1080 | version "2.3.6" 1081 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" 1082 | integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== 1083 | dependencies: 1084 | "@isaacs/cliui" "^8.0.2" 1085 | optionalDependencies: 1086 | "@pkgjs/parseargs" "^0.11.0" 1087 | 1088 | js-yaml@^4.1.0: 1089 | version "4.1.0" 1090 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1091 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1092 | dependencies: 1093 | argparse "^2.0.1" 1094 | 1095 | json-schema-traverse@^0.4.1: 1096 | version "0.4.1" 1097 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1098 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1099 | 1100 | json-stable-stringify-without-jsonify@^1.0.1: 1101 | version "1.0.1" 1102 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1103 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1104 | 1105 | levn@^0.4.1: 1106 | version "0.4.1" 1107 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1108 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1109 | dependencies: 1110 | prelude-ls "^1.2.1" 1111 | type-check "~0.4.0" 1112 | 1113 | locate-path@^6.0.0: 1114 | version "6.0.0" 1115 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1116 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1117 | dependencies: 1118 | p-locate "^5.0.0" 1119 | 1120 | lodash.merge@^4.6.2: 1121 | version "4.6.2" 1122 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1123 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1124 | 1125 | lru-cache@^6.0.0: 1126 | version "6.0.0" 1127 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1128 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1129 | dependencies: 1130 | yallist "^4.0.0" 1131 | 1132 | "lru-cache@^9.1.1 || ^10.0.0": 1133 | version "10.1.0" 1134 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" 1135 | integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== 1136 | 1137 | mdn-data@2.0.14: 1138 | version "2.0.14" 1139 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" 1140 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== 1141 | 1142 | merge-stream@^2.0.0: 1143 | version "2.0.0" 1144 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1145 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1146 | 1147 | merge2@^1.3.0, merge2@^1.4.1: 1148 | version "1.4.1" 1149 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1150 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1151 | 1152 | micromatch@^4.0.4: 1153 | version "4.0.4" 1154 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 1155 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 1156 | dependencies: 1157 | braces "^3.0.1" 1158 | picomatch "^2.2.3" 1159 | 1160 | mime-db@1.46.0: 1161 | version "1.46.0" 1162 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" 1163 | integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== 1164 | 1165 | mime-types@^2.1.12: 1166 | version "2.1.29" 1167 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" 1168 | integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== 1169 | dependencies: 1170 | mime-db "1.46.0" 1171 | 1172 | mimic-fn@^2.1.0: 1173 | version "2.1.0" 1174 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1175 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1176 | 1177 | mimic-fn@^4.0.0: 1178 | version "4.0.0" 1179 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" 1180 | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== 1181 | 1182 | minimatch@^3.0.4: 1183 | version "3.0.4" 1184 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1185 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1186 | dependencies: 1187 | brace-expansion "^1.1.7" 1188 | 1189 | minimatch@^3.0.5, minimatch@^3.1.2: 1190 | version "3.1.2" 1191 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1192 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1193 | dependencies: 1194 | brace-expansion "^1.1.7" 1195 | 1196 | minimatch@^9.0.1: 1197 | version "9.0.3" 1198 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" 1199 | integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== 1200 | dependencies: 1201 | brace-expansion "^2.0.1" 1202 | 1203 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": 1204 | version "7.0.4" 1205 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" 1206 | integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== 1207 | 1208 | ms@2.1.2: 1209 | version "2.1.2" 1210 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1211 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1212 | 1213 | natural-compare@^1.4.0: 1214 | version "1.4.0" 1215 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1216 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1217 | 1218 | node-fetch@^2.6.1: 1219 | version "2.6.1" 1220 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 1221 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 1222 | 1223 | npm-run-path@^4.0.1: 1224 | version "4.0.1" 1225 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1226 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1227 | dependencies: 1228 | path-key "^3.0.0" 1229 | 1230 | npm-run-path@^5.1.0: 1231 | version "5.2.0" 1232 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" 1233 | integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== 1234 | dependencies: 1235 | path-key "^4.0.0" 1236 | 1237 | once@^1.3.0: 1238 | version "1.4.0" 1239 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1240 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1241 | dependencies: 1242 | wrappy "1" 1243 | 1244 | onetime@^5.1.2: 1245 | version "5.1.2" 1246 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1247 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1248 | dependencies: 1249 | mimic-fn "^2.1.0" 1250 | 1251 | onetime@^6.0.0: 1252 | version "6.0.0" 1253 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" 1254 | integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== 1255 | dependencies: 1256 | mimic-fn "^4.0.0" 1257 | 1258 | open@^9.1.0: 1259 | version "9.1.0" 1260 | resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" 1261 | integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== 1262 | dependencies: 1263 | default-browser "^4.0.0" 1264 | define-lazy-prop "^3.0.0" 1265 | is-inside-container "^1.0.0" 1266 | is-wsl "^2.2.0" 1267 | 1268 | optionator@^0.9.3: 1269 | version "0.9.3" 1270 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" 1271 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== 1272 | dependencies: 1273 | "@aashutoshrathi/word-wrap" "^1.2.3" 1274 | deep-is "^0.1.3" 1275 | fast-levenshtein "^2.0.6" 1276 | levn "^0.4.1" 1277 | prelude-ls "^1.2.1" 1278 | type-check "^0.4.0" 1279 | 1280 | p-limit@^3.0.2: 1281 | version "3.1.0" 1282 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1283 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1284 | dependencies: 1285 | yocto-queue "^0.1.0" 1286 | 1287 | p-locate@^5.0.0: 1288 | version "5.0.0" 1289 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1290 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1291 | dependencies: 1292 | p-limit "^3.0.2" 1293 | 1294 | parent-module@^1.0.0: 1295 | version "1.0.1" 1296 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1297 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1298 | dependencies: 1299 | callsites "^3.0.0" 1300 | 1301 | path-exists@^4.0.0: 1302 | version "4.0.0" 1303 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1304 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1305 | 1306 | path-is-absolute@^1.0.0: 1307 | version "1.0.1" 1308 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1309 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1310 | 1311 | path-key@^3.0.0, path-key@^3.1.0: 1312 | version "3.1.1" 1313 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1314 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1315 | 1316 | path-key@^4.0.0: 1317 | version "4.0.0" 1318 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" 1319 | integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== 1320 | 1321 | path-scurry@^1.10.1: 1322 | version "1.10.1" 1323 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" 1324 | integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== 1325 | dependencies: 1326 | lru-cache "^9.1.1 || ^10.0.0" 1327 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 1328 | 1329 | path-type@^4.0.0: 1330 | version "4.0.0" 1331 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1332 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1333 | 1334 | picocolors@^1.0.0: 1335 | version "1.0.0" 1336 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1337 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1338 | 1339 | picomatch@^2.2.3: 1340 | version "2.3.1" 1341 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1342 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1343 | 1344 | prelude-ls@^1.2.1: 1345 | version "1.2.1" 1346 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1347 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1348 | 1349 | prettier-linter-helpers@^1.0.0: 1350 | version "1.0.0" 1351 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 1352 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 1353 | dependencies: 1354 | fast-diff "^1.1.2" 1355 | 1356 | prettier@^3.1.1: 1357 | version "3.1.1" 1358 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" 1359 | integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== 1360 | 1361 | punycode@^2.1.0: 1362 | version "2.1.1" 1363 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1364 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1365 | 1366 | queue-microtask@^1.2.2: 1367 | version "1.2.2" 1368 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" 1369 | integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== 1370 | 1371 | resolve-from@^4.0.0: 1372 | version "4.0.0" 1373 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1374 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1375 | 1376 | reusify@^1.0.4: 1377 | version "1.0.4" 1378 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1379 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1380 | 1381 | rimraf@^3.0.2: 1382 | version "3.0.2" 1383 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1384 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1385 | dependencies: 1386 | glob "^7.1.3" 1387 | 1388 | rimraf@^5.0.1: 1389 | version "5.0.5" 1390 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" 1391 | integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== 1392 | dependencies: 1393 | glob "^10.3.7" 1394 | 1395 | run-applescript@^5.0.0: 1396 | version "5.0.0" 1397 | resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" 1398 | integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== 1399 | dependencies: 1400 | execa "^5.0.0" 1401 | 1402 | run-parallel@^1.1.9: 1403 | version "1.2.0" 1404 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1405 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1406 | dependencies: 1407 | queue-microtask "^1.2.2" 1408 | 1409 | semver@^7.5.4: 1410 | version "7.5.4" 1411 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 1412 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 1413 | dependencies: 1414 | lru-cache "^6.0.0" 1415 | 1416 | shebang-command@^2.0.0: 1417 | version "2.0.0" 1418 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1419 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1420 | dependencies: 1421 | shebang-regex "^3.0.0" 1422 | 1423 | shebang-regex@^3.0.0: 1424 | version "3.0.0" 1425 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1426 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1427 | 1428 | signal-exit@^3.0.3, signal-exit@^3.0.7: 1429 | version "3.0.7" 1430 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 1431 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 1432 | 1433 | signal-exit@^4.0.1: 1434 | version "4.1.0" 1435 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" 1436 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1437 | 1438 | slash@^3.0.0: 1439 | version "3.0.0" 1440 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1441 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1442 | 1443 | source-map@^0.6.1: 1444 | version "0.6.1" 1445 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1446 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1447 | 1448 | "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: 1449 | name string-width-cjs 1450 | version "4.2.3" 1451 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1452 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1453 | dependencies: 1454 | emoji-regex "^8.0.0" 1455 | is-fullwidth-code-point "^3.0.0" 1456 | strip-ansi "^6.0.1" 1457 | 1458 | string-width@^5.0.1, string-width@^5.1.2: 1459 | version "5.1.2" 1460 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 1461 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1462 | dependencies: 1463 | eastasianwidth "^0.2.0" 1464 | emoji-regex "^9.2.2" 1465 | strip-ansi "^7.0.1" 1466 | 1467 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1468 | version "6.0.1" 1469 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1470 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1471 | dependencies: 1472 | ansi-regex "^5.0.1" 1473 | 1474 | strip-ansi@^7.0.1: 1475 | version "7.1.0" 1476 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 1477 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1478 | dependencies: 1479 | ansi-regex "^6.0.1" 1480 | 1481 | strip-final-newline@^2.0.0: 1482 | version "2.0.0" 1483 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 1484 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1485 | 1486 | strip-final-newline@^3.0.0: 1487 | version "3.0.0" 1488 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" 1489 | integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== 1490 | 1491 | strip-json-comments@^3.1.1: 1492 | version "3.1.1" 1493 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1494 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1495 | 1496 | supports-color@^7.1.0: 1497 | version "7.2.0" 1498 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1499 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1500 | dependencies: 1501 | has-flag "^4.0.0" 1502 | 1503 | synckit@^0.8.6: 1504 | version "0.8.6" 1505 | resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.6.tgz#b69b7fbce3917c2673cbdc0d87fb324db4a5b409" 1506 | integrity sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA== 1507 | dependencies: 1508 | "@pkgr/utils" "^2.4.2" 1509 | tslib "^2.6.2" 1510 | 1511 | text-table@^0.2.0: 1512 | version "0.2.0" 1513 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1514 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1515 | 1516 | titleize@^3.0.0: 1517 | version "3.0.0" 1518 | resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" 1519 | integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== 1520 | 1521 | to-regex-range@^5.0.1: 1522 | version "5.0.1" 1523 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1524 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1525 | dependencies: 1526 | is-number "^7.0.0" 1527 | 1528 | ts-api-utils@^1.0.1: 1529 | version "1.0.3" 1530 | resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" 1531 | integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== 1532 | 1533 | tslib@^2.6.0, tslib@^2.6.2: 1534 | version "2.6.2" 1535 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 1536 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 1537 | 1538 | type-check@^0.4.0, type-check@~0.4.0: 1539 | version "0.4.0" 1540 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1541 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1542 | dependencies: 1543 | prelude-ls "^1.2.1" 1544 | 1545 | type-fest@^0.20.2: 1546 | version "0.20.2" 1547 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1548 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1549 | 1550 | typescript@5.3.3: 1551 | version "5.3.3" 1552 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" 1553 | integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== 1554 | 1555 | undici-types@~5.26.4: 1556 | version "5.26.5" 1557 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1558 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1559 | 1560 | untildify@^4.0.0: 1561 | version "4.0.0" 1562 | resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" 1563 | integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== 1564 | 1565 | uri-js@^4.2.2: 1566 | version "4.4.1" 1567 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1568 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1569 | dependencies: 1570 | punycode "^2.1.0" 1571 | 1572 | which@^2.0.1: 1573 | version "2.0.2" 1574 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1575 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1576 | dependencies: 1577 | isexe "^2.0.0" 1578 | 1579 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1580 | version "7.0.0" 1581 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1582 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1583 | dependencies: 1584 | ansi-styles "^4.0.0" 1585 | string-width "^4.1.0" 1586 | strip-ansi "^6.0.0" 1587 | 1588 | wrap-ansi@^8.1.0: 1589 | version "8.1.0" 1590 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 1591 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1592 | dependencies: 1593 | ansi-styles "^6.1.0" 1594 | string-width "^5.0.1" 1595 | strip-ansi "^7.0.1" 1596 | 1597 | wrappy@1: 1598 | version "1.0.2" 1599 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1600 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1601 | 1602 | yallist@^4.0.0: 1603 | version "4.0.0" 1604 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1605 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1606 | 1607 | yocto-queue@^0.1.0: 1608 | version "0.1.0" 1609 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1610 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1611 | --------------------------------------------------------------------------------