├── .DS_Store ├── .editorconfig ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── create-release.yml │ └── deploy.yml ├── .gitignore ├── .prettierrc.toml ├── .vscode ├── launch.json └── settings.json ├── .vscodeignore ├── CHANGELOG.md ├── INSTALL.md ├── LICENSE ├── README.md ├── dracula-pro.png ├── icon.png ├── jsconfig.json ├── known_issues.md ├── package-lock.json ├── package.json ├── screenshot.png ├── scripts ├── build.js ├── generate.js └── lint.js └── src └── dracula.yml /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dracula/visual-studio-code/8ff210519579f838640bd398b5f05c0dbf75584b/.DS_Store -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | end_of_line = lf 3 | 4 | [*.yml] 5 | indent_style = space 6 | indent_size = 2 7 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## How to contribute 2 | 3 | 1. Fork and clone this repo. `git clone https://github.com//visual-studio-code` 4 | 2. Create a branch for your changes. `git checkout -b my-new-feature` 5 | 3. Install dependencies. `npm install` 6 | 4. Open the *visual-studio-code* folder in vscode. 7 | 5. Hack away. 8 | 6. Build and examine your changes in an Extension Development Host. 9 | * Debug > Start Debugging or use F5 as a shortcut 10 | 7. Commit and push your changes. 11 | 8. Submit a PR for discussion, keeping in mind that not all suggestions can be accepted. 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /.github/workflows/create-release.yml: -------------------------------------------------------------------------------- 1 | name: Create Release 2 | on: 3 | push: 4 | tags: 5 | - 'v*' 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - uses: actions/setup-node@v2 12 | with: 13 | node-version: lts/* 14 | cache: npm 15 | - run: npm install && mkdir -p ./bin 16 | - run: npm run package 17 | - uses: actions/create-release@v1 18 | id: create_release 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | with: 22 | tag_name: ${{ github.ref }} 23 | release_name: ${{ github.ref }} 24 | draft: true 25 | - uses: actions/upload-release-asset@v1 26 | env: 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 28 | with: 29 | upload_url: ${{ steps.create_release.outputs.upload_url }} 30 | asset_path: ./bin/dracula.vsix 31 | asset_name: dracula.vsix 32 | asset_content_type: application/octet-stream 33 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Release 2 | on: 3 | release: 4 | types: 5 | - published 6 | jobs: 7 | deploy: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - uses: actions/setup-node@v2 12 | with: 13 | node-version: lts/* 14 | cache: npm 15 | - run: npm install 16 | - env: 17 | VSCE_PUBLISHER_TOKEN: ${{ secrets.VSCE_PUBLISHER_TOKEN }} 18 | run: npm run vsce-publish -- -p $VSCE_PUBLISHER_TOKEN 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | /theme/ 3 | /tests/ 4 | bin/ 5 | -------------------------------------------------------------------------------- /.prettierrc.toml: -------------------------------------------------------------------------------- 1 | printWidth = 80 2 | singleQuote = true 3 | tabWidth = 4 4 | trailingComma = 'all' 5 | 6 | [[overrides]] 7 | files = '*.js' 8 | [overrides.options] 9 | trailingComma = 'es5' 10 | 11 | [[overrides]] 12 | files = '*.{yml,yaml}' 13 | [overrides.options] 14 | tabWidth = 2 15 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Launch Theme", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "runtimeExecutable": "${execPath}", 13 | "preLaunchTask": "npm: build", 14 | "args": [ 15 | "--extensionDevelopmentPath=${workspaceFolder}", 16 | "--disable-extensions", 17 | "${file}" 18 | ] 19 | }, 20 | { 21 | "name": "Launch Theme (with extensions)", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "runtimeExecutable": "${execPath}", 25 | "preLaunchTask": "npm: build", 26 | "args": ["--extensionDevelopmentPath=${workspaceFolder}", "${file}"] 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.trimTrailingWhitespace": true, 3 | "[yaml]": { 4 | "editor.renderWhitespace": "boundary", 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .github/** 2 | .vscode/** 3 | bin/** 4 | node_modules/** 5 | scripts/** 6 | src/** 7 | tests/** 8 | .editorconfig 9 | .prettierrc.toml 10 | generate.js 11 | jsconfig.json 12 | known_issues.md 13 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 2.24.3 4 | 5 | ### Patch 6 | 7 | - Fix highlight color for inline chat region for copilot. #238 8 | 9 | ## 2.24.2 10 | 11 | ### Patch 12 | 13 | - Fix incorrect javascript destructuring colors in certain conditions. #203 14 | - Correctly highlight PHP semicolons when php expression is inside string. #208 15 | - Fix issue preventing folded regions from receiving any highlight colors. #210 16 | 17 | ## 2.24.1 18 | 19 | ### Patch 20 | 21 | - Fix incorrect colors in `log` syntax. (#200) 22 | 23 | ## 2.24.0 24 | 25 | ### Minor 26 | 27 | - add support for bracket pair highlighting. (#195) 28 | 29 | ## 2.23.1 30 | 31 | ### Fix 32 | 33 | - [python]: Only apply function highlighting for functions that are actually defined. (#186) 34 | 35 | 36 | ## 2.23.0 37 | 38 | ### Feat 39 | 40 | - Add secondary button styles. (closes #176) 41 | 42 | ### Fix 43 | 44 | - Remove preset contrast borders. (closes #120, #147) 45 | - Improve contrast of "open a remote window" button. (closes #146) 46 | 47 | ## 2.22.4 48 | 49 | ### Fix 50 | 51 | - Address broken style property in html filetypes. #177 52 | 53 | ## 2.22.3 54 | 55 | ### Fix 56 | 57 | - Fix another small issue impacting the build of the soft theme. #165 58 | 59 | ## 2.22.2 60 | 61 | ### Patch 62 | 63 | - fix: address issue of black cursor in ipynb file for soft variant #124 64 | - chore: add `$schema` property to theme's json output 65 | 66 | ## 2.22.1 67 | 68 | ### Patch 69 | 70 | - Fix small bug that caused hover color to be black for directories in the terminal (#156). 71 | 72 | ## 2.22.0 73 | 74 | ### Minor 75 | 76 | - enable semantic highlighting. 77 | - update screenshot. 78 | 79 | **NOTE:** This is probably going to be somewhat buggy in certain situations. We can address those bugs as they come up. Feel free to open issues for these. 80 | 81 | Keep in mind, the source of truth for "correctness" should come from https://spec.draculatheme.com 82 | 83 | ## 2.21.0 84 | 85 | ### Minor 86 | 87 | - make breadcrumb color match active tab color (#138) 88 | - improve rendered whitespace color. (#135) 89 | 90 | ## 2.20.0 91 | 92 | ### Minor 93 | 94 | - support new `editor.foldBackground` highlight group. 95 | 96 | ## 2.19.2 97 | 98 | ### Patch 99 | 100 | - noop update to fix screenshot in readme. 101 | 102 | ## 2.19.1 103 | 104 | ### Patch 105 | 106 | - noop update to fix screenshot in readme. 107 | 108 | ## 2.19.0 109 | 110 | ### Minor 111 | 112 | - Add activitybar colors. #121 113 | 114 | ### Patch 115 | 116 | - Fix cursor color in `ipynb` files. #124 117 | 118 | ## 2.18.1 119 | 120 | ### Patch 121 | 122 | - Fix class keyword highlighting in babel syntax. #118 123 | 124 | Thanks @black-black-cat for your contribution! 125 | 126 | ## 2.18.0 127 | 128 | ### Minor 129 | 130 | - Add support for `statusBarItem.remoteBackground` (currently available in insiders) #105 131 | 132 | ## 2.17.0 133 | 134 | ### Minor 135 | 136 | - Adjust JSDoc-style comments to align with specification. 137 | 138 | ### Patch 139 | 140 | - Fix python docstring highlighting. 141 | 142 | ## 2.16.0 143 | 144 | ### Minor 145 | 146 | - Implement colors for new `List Filter Widget` scopes. (#95). 147 | 148 | ## 2.15.0 149 | 150 | ### Minor 151 | 152 | - Themeing for the following areas added/modified: 153 | - `sideBarSectionHeader` 154 | - `snippetTabStop`, `snippetFinalTabStop` 155 | 156 | ### Patch 157 | 158 | - Fix incorrect highlighting for variable names in JavaScript (and friends) in the body of default-exported classes/functions/etc. (#88, #82) 159 | 160 | ## 2.14.1 161 | 162 | ### Patch 163 | 164 | - Fix the incorrect syntax highlighting of "pseudo-constants" in `tsx` files. #84 165 | 166 | 167 | ## 2.14.0 168 | 169 | ### Minor 170 | 171 | - Add theme support to 2 new UI scopes added in VSCode `v1.27` 172 | 173 | 174 | ## 2.13.0 175 | 176 | ### Minor 177 | 178 | - Add basic styling to the new settings window. 179 | - Add styling to the new breadcrumbs UI elements. #85 180 | 181 | ### Fix 182 | 183 | - Fix the incorrect syntax highlighting of javascript/typescript "pseudo-constants" (a change that recently was added to the syntaxes). #84 184 | 185 | 186 | ## 2.12.1 187 | 188 | ### Patch 189 | 190 | - Fix color of editor rulers to match indent guides. #79 191 | 192 | Thanks @gabbes for your contribution! 193 | 194 | ## 2.12.0 195 | 196 | ### Minor 197 | 198 | - Improve integrated terminal ANSI colors. 199 | 200 | ## 2.11.0 201 | 202 | ### Minor 203 | 204 | - Change git modified color from `Orange` to `Cyan` (rationale: less jarring on the eyes). 205 | - Change warning color from `Yellow` to `Orange` (rationale: more jarring on the eyes). 206 | 207 | ### Patch 208 | 209 | - Fix warning color decorations in the explorer. #77 210 | 211 | ## 2.10.0 212 | 213 | - Add support for new highlighted indent guides. #74 214 | 215 | Thanks @smt923 for your contribution! 216 | 217 | ## 2.9.0 218 | 219 | ### Minor 220 | 221 | - Implement improved ANSI colors for integrated terminal. #66 222 | 223 | Thanks @teddybradford for your contribution! 224 | 225 | ## 2.8.1 226 | 227 | ### Patch 228 | 229 | - Fix small syntax highlighting issues in PHP. 230 | 231 | ## 2.8.0 232 | 233 | ### Minor 234 | 235 | - Fix missing syntax highlighting of markdown code block backticks. 236 | - Fix missing syntax highlighting for decorator objects in JS & TS. 237 | - Fix incorrect highlighting for braces/punctuation inside template strings in JS & TS. 238 | 239 | ### Patch 240 | 241 | - Fix overpowering opaque orange color of `editor.findMatchBackground`. 242 | 243 | ## 2.7.0 244 | 245 | ### Minor 246 | 247 | - Improve highlighting for `invalid` and `invalid.deprecated` scopes. 248 | - Italicize html attribute names so that Operator Mono font users can have their fancy pseudo-cursive. #62 249 | 250 | ### Patch 251 | 252 | - Fix incorrectly colored type annotation separators in Python. 253 | 254 | ## 2.6.1 255 | 256 | ### Patch 257 | 258 | - Fix highlighting for pragma instructions in Haskell. 259 | 260 | ## 2.6.0 261 | 262 | ### Minor 263 | 264 | - Add support for new git status colors in the file explorer. 265 | - Change `editorGutter.modifiedBackground` from `cyan` to `orange` to match above. 266 | 267 | As usual, feedback welcomed and encouraged. 268 | 269 | ## 2.5.2 270 | 271 | ### Patch 272 | 273 | - Improve terminal white contrast. #59 274 | 275 | ### Credits 276 | 277 | Thanks @nickcernis for your contribution! 278 | 279 | ## 2.5.1 280 | 281 | ### Patch 282 | 283 | - Fix variable interpolation operators in `Make` language 284 | - Change codelens from `orange` to `comment` color so it's less distracting. #57 285 | 286 | ### Credits 287 | 288 | Thanks @smt923 for your contribution! 289 | 290 | ## 2.5.0 291 | 292 | ### Minor 293 | 294 | - Add support for improved RegExp highlighting released in VSCode `v1.17.0` (JS and TS especially) 295 | 296 | ## 2.4.2 297 | 298 | ### Patch 299 | 300 | - Fix SCSS attribute selector string highlighting. 301 | 302 | In other words... 303 | 304 | ```scss 305 | input[type='text'] {} 306 | // ^^^^ now highlighted correctly 307 | ``` 308 | 309 | ## 2.4.1 310 | 311 | ### Patch 312 | 313 | - Fix small upstream issue causing expand selection to quotes to not work properly in JSON keys 314 | - Fix opacity in pane drag and drop 315 | 316 | ### Credits 317 | 318 | Thanks @ajitid for your contribution! 319 | 320 | ## 2.4.0 321 | 322 | ### Minor 323 | 324 | - Add support for elixir's underscored vars (#53) 325 | 326 | ## 2.3.0 327 | 328 | ### Minor 329 | 330 | - Add theme support for a few newly implemented scopes (`tab.activeBorder`, `editorOverviewRuler`, etc.) 331 | - Change current find match highlight to orange so it stands out a tad more 332 | 333 | ### Patch 334 | 335 | - Fix small bug that caused notification button highlight color to be bright red 336 | 337 | ## 2.2.0 338 | 339 | ### Minor 340 | 341 | - Improve colors of info, warning, and error dialogs. 342 | - Switch terminal background color back to default editor background color in an attempt to make contrast better. 343 | 344 | ### Patch 345 | 346 | - Fix red default colors from appearing on insiders edition. 347 | 348 | ## 2.1.3 349 | 350 | ### Patch 351 | 352 | - Improve `dracula-soft` theme by heavily desaturating the bright/intense colors of the theme while leaving the darker/softer colors as-is. 353 | 354 | **Notes:** Mac users should have a better experience with this one. Feel free to leave any critiques/comments on #30 on github and we'll go from there. 355 | 356 | ## 2.1.2 357 | 358 | ### Patch 359 | 360 | - Fix broken `OCaml` type highlighting. #44 361 | 362 | ### Credits 363 | 364 | Huge thanks to @hackwaly for his help on this! 365 | 366 | --- 367 | 368 | ## 2.1.1 369 | 370 | ### Patch 371 | 372 | - Fix extension install/update button color. #43 373 | 374 | --- 375 | 376 | ## 2.1.0 377 | 378 | ### Minor 379 | 380 | - Apply dracula theme to (nearly) all the newly released UI scopes that became available in VSCode 1.13.0. 381 | - Add support for `Haskell` and (some) other Standard ML languages. 382 | 383 | ### Patch 384 | 385 | - `[Make]`: Fix incorrect color for prerequisites. 386 | - `[CSS]`: Fix incorrect comma colors. 387 | 388 | ### Notes 389 | 390 | Because highlight color of bracket matches seems to be a taste that differs broadly from person-to-person, built-in support was not added for it. 391 | 392 | If you'd prefer your bracket matches highlighted with a noticable color, add the following to your User Settings (adjusting the colors to your own taste): 393 | 394 | ```json 395 | { 396 | "workbench.colorCustomizations": { 397 | "editorBracketMatch.background": "#ff79c680", 398 | "editorBracketMatch.border": "#ff00ff" 399 | } 400 | } 401 | ``` 402 | 403 | --- 404 | 405 | ## 2.0.1 406 | 407 | ### Patch 408 | 409 | - Fix curly braces for embedded JS in `.jsx` and `.tsx` files. 410 | 411 | --- 412 | 413 | ## 2.0.0 414 | 415 | The theme has been completely overhauled in accordance to the new [Dracula Theme Specification RFC](https://github.com/dracula/dracula-theme/issues/232) that I put together. 416 | 417 | All languages provided by VSCode as well as `GraphQL` and `TOML` were scrutinized and have been confirmed to be spec compliant with a few exceptions (see [`known_issues.md`](https://github.com/dracula/visual-studio-code/blob/master/known_issues.md) in this repo for details). (#38) 418 | 419 | Please leave your comments in the RFC issue thread if you have any suggestions. 420 | 421 | ### Minor 422 | 423 | - Add UI color for `statusBarItem.prominentBackground` and `statusBarItem.prominentHoverBackground`. (#42) 424 | 425 | --- 426 | 427 | ## 1.17.1 428 | 429 | ### Patch 430 | 431 | - Change variable-setting keywords (e.g. `var`, `const`, etc.) to pink color to match other reserved language words. 432 | - Fix color of parameterless decorators. 433 | 434 | --- 435 | 436 | ## 1.17.0 437 | 438 | ### Minor 439 | 440 | - Apply theme to notification panel. #35 441 | - Apply theme to buttons. 442 | 443 | ### Patch 444 | 445 | - Make colorization of python raw string literals more consistent. #36 446 | - Switch from yellow to green for current highlight match to improve contrast over purple tokens. #33 447 | 448 | ### Chore 449 | 450 | - Add contributing guidelines. 451 | 452 | --- 453 | 454 | ## 1.16.0 455 | 456 | ### Minor 457 | 458 | - Add `Dracula Soft` theme variant (beta - comments/critiques welcomed). #30 459 | 460 | ### Patch 461 | 462 | - Lighten ANSI `color0` and `color8` so that they're more legible in the terminal. #32 463 | 464 | --- 465 | 466 | ## 1.15.1 467 | 468 | ### Patch 469 | 470 | - Fix dropdown colors. 471 | - Revert button colors to system default. 472 | - Small adjustements to `findMatchHighlight` and `findRangeHighlight` in an attempt to improve contrast. #31 473 | 474 | --- 475 | 476 | ## 1.15.0 477 | 478 | ### Minor 479 | 480 | - Switch from highlighting the entire current line to coloring only the border. 481 | 482 | ### Patch 483 | 484 | - General overhaul/improvement of new UI scopes. 485 | 486 | **Note:** If you prefer to have the entire current line highlighted like it was previously, you can enable it by adding the following in your User Settings: 487 | 488 | ```json 489 | { 490 | "workbench.colorCustomizations": { 491 | "editor.lineHighlightBackground": "#44475A" 492 | } 493 | } 494 | ``` 495 | 496 | --- 497 | 498 | ## 1.14.0 499 | 500 | ### Minor 501 | 502 | - Upgrade from experimental UI theme scopes (requires VSCode `v1.12.0`). #28 503 | 504 | Thanks @Eric-Jackson for your contribution! 505 | 506 | --- 507 | 508 | ## 1.13.1 509 | 510 | ### Patch 511 | 512 | - Fix magic variable highlighting in python. (e.g. `__name__`) 513 | 514 | --- 515 | 516 | ## 1.13.0 517 | 518 | ### Minor 519 | 520 | - Add highlighting for HTML entities. (HT: @ajitid) 521 | 522 | --- 523 | 524 | ## 1.12.0 525 | 526 | ### Minor 527 | 528 | - Add highlighting for escape characters. (HT: @ajitid) 529 | 530 | --- 531 | 532 | ## 1.11.1 533 | 534 | ### Patch 535 | 536 | - Adjust TextMate scopes for strings so that VSCode "Expand Select" function works properly. Closes #24 (HT: @ajitid) 537 | 538 | --- 539 | 540 | ## 1.11.0 541 | 542 | ### Minor 543 | 544 | - Adjust tab colors to make active/inactive tabs more identifiable. 545 | - Darken the status bar to match the tab bar. 546 | 547 | Thanks @DanielRamosAcosta for the contribution! 548 | 549 | --- 550 | 551 | ## 1.10.0 552 | 553 | ### Patch 554 | 555 | - Fix status bar background color when there's no folder selected. Closes #20 (HT: @23doors) 556 | 557 | **Note:** Published as a minor bump by mistake. Should have been patch. 558 | 559 | --- 560 | 561 | ## 1.9.1 562 | 563 | ### Patch 564 | 565 | - Fix peekview colorization. 566 | - Fix debug panel background color. Closes #19 (HT: @23doors) 567 | - Add contrast to the Activity Bar. (HT: @rajasimon) 568 | - Adjust find match highlight to be differentiable from selection. Closes #18 (HT: @nguyenhuumy) 569 | - Adjust active/inactive tab colors. 570 | - Add requirement for VSCode engine `^1.11.0` in package.json 571 | 572 | --- 573 | 574 | ## 1.9.0 575 | 576 | ### Minor 577 | 578 | - Early experimental support for custom UI theming. (Feedback appreciated). 579 | - Add basic support for GraphQL. (Requires `GraphQL for VSCode` extension). 580 | 581 | ### Patch 582 | 583 | - **PHP**: Fix double quoted variable highlighting for `${variablename}` and `{$variablename}` forms. 584 | - **PHP**: Fix color of language constants. 585 | 586 | **Note:** UI changes are very preliminary and partially incomplete. This will be improved when the API stabilizes and gets documented. 587 | 588 | --- 589 | 590 | ## 1.8.0 591 | 592 | ### Minor 593 | 594 | - Remove italics from JSON keys. 595 | - Colorize JSON key-value separators 596 | - Complete overhaul of Yaml lang to better align with JSON highlighting. 597 | - `this`, `var`, `const`, `let`, etc.. text formatting removed. 598 | - Various reserved words (e.g. `class`, `interface`, `type`, etc..) color switched to be uniform with other reserved words. 599 | - Add highlighting for import aliases in JS and friends. 600 | - Improve background color for selected symbols. 601 | - Read access => cyan 602 | - Write access => green 603 | 604 | ### Patch 605 | 606 | - Adjust `currentFindMatchHighlight` so that it doesn't completely mask comments. HT: @nguyenhuumy (#11) 607 | - Fix highlighting for variable constants (i.e. variables in all caps in JS). 608 | - Fix highlighting for JS string interpolation. 609 | - Fix miscolor of quoted object literal keys in JS and friends. 610 | 611 | ### Chore 612 | 613 | - Add test files for a handful of popular languages 614 | 615 | ### Notes 616 | 617 | The goal of the next several upcoming updates is to improve the uniformity of semantic highlighting between languages. I find it personally disorienting when using one language that has cyan as the color for types and then switch to another where it is green. The experience should be seamless across all languages. 618 | 619 | I've [opened an issue on github](https://github.com/dracula/visual-studio-code/issues/12) for this process. Your feedback is welcomed and encouraged! 620 | 621 | --- 622 | 623 | ## 1.7.0 624 | 625 | ### Minor 626 | 627 | - Remove italics from JS & friends arrow functions to play nicer with fonts using custom ligatures (e.g. FiraCode). HT: @joaoevangelista 628 | - Improve syntax for object destructuring assignment with renaming in JS and friends. 629 | 630 | ### Patch 631 | 632 | - Fix miscolored decorators. 633 | - Fix template string syntax in JS (previously only applied to TS). 634 | 635 | Feedback, suggestions, comments appreciated. 636 | 637 | --- 638 | 639 | ## 1.6.1 640 | 641 | - Fix highlighting for numbers (`constant.numeric.decimal`). 642 | - Fix hex color highlighting for CSS and friends. 643 | 644 | --- 645 | 646 | ## 1.6.0 647 | 648 | - Change Maintainers 649 | - Add Markdown Syntax. 650 | - Add better support for TypeScript. 651 | - Add base language fallbacks to better support esoteric languages. 652 | - Fix version conflicts (had to bump 2 `minor` versions) 653 | 654 | Please feel free to request changes or leave feedback. 655 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | ### [Visual Studio Code](https://code.visualstudio.com/) 2 | 3 | #### Install using Command Palette 4 | 5 | 1. Go to `View -> Command Palette` or press `Ctrl+Shift+P` 6 | 2. Then enter `Install Extension` 7 | 3. Write `Dracula Official` 8 | 4. Select it or press Enter to install 9 | 10 | #### Install using Git 11 | 12 | If you are a git user, you can install the theme and keep up to date by cloning the repo: 13 | 14 | ```bash 15 | git clone https://github.com/dracula/visual-studio-code.git ~/.vscode/extensions/theme-dracula 16 | cd ~/.vscode/extensions/theme-dracula 17 | npm install 18 | npm run build 19 | ``` 20 | 21 | #### Activating theme 22 | 23 | Run Visual Studio Code. The Dracula Syntax Theme will be available from `File -> Preferences -> Color Theme` dropdown menu. 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Dracula Theme 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 | # Dracula for [Visual Studio Code](http://code.visualstudio.com) 2 | 3 | > A dark theme for [Visual Studio Code](http://code.visualstudio.com). 4 | 5 | ![Screenshot](https://raw.githubusercontent.com/dracula/visual-studio-code/master/screenshot.png) 6 | 7 | ## Install 8 | 9 | All instructions can be found at [draculatheme.com/visual-studio-code](https://draculatheme.com/visual-studio-code). 10 | 11 | ## Team 12 | 13 | This theme is maintained by the following person(s) and a bunch of [awesome contributors](https://github.com/dracula/visual-studio-code/graphs/contributors). 14 | 15 | [![Derek S.](https://avatars3.githubusercontent.com/u/5240018?v=3&s=70)](https://github.com/dsifford) | 16 | :---: | 17 | [Derek S.](https://github.com/dsifford) | 18 | 19 | ## Community 20 | 21 | * [Twitter](https://twitter.com/draculatheme) - Best for getting updates about themes and new stuff. 22 | * [GitHub](https://github.com/dracula/dracula-theme/discussions) - Best for asking questions and discussing issues. 23 | * [Discord](https://draculatheme.com/discord-invite) - Best for hanging out with the community. 24 | 25 | ## Contributing 26 | 27 | If you'd like to contribute to this theme, please read the [contributing guidelines](./.github/CONTRIBUTING.md). 28 | 29 | ## Dracula PRO 30 | 31 | [![Dracula PRO](./dracula-pro.png)](https://draculatheme.com/pro) 32 | 33 | ## License 34 | 35 | [MIT License](./LICENSE) -------------------------------------------------------------------------------- /dracula-pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dracula/visual-studio-code/8ff210519579f838640bd398b5f05c0dbf75584b/dracula-pro.png -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dracula/visual-studio-code/8ff210519579f838640bd398b5f05c0dbf75584b/icon.png -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "commonjs", 5 | "strict": true, 6 | "noImplicitAny": true, 7 | "strictNullChecks": true, 8 | "strictFunctionTypes": true, 9 | "strictBindCallApply": true, 10 | "strictPropertyInitialization": true, 11 | "noImplicitThis": true, 12 | "alwaysStrict": true, 13 | "noUnusedLocals": true, 14 | "noUnusedParameters": true, 15 | "noImplicitReturns": true, 16 | "noFallthroughCasesInSwitch": true, 17 | "forceConsistentCasingInFileNames": true 18 | }, 19 | "include": [ 20 | "scripts/**/*" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /known_issues.md: -------------------------------------------------------------------------------- 1 | # Known Issues 2 | 3 | The following issues are problems with the textmate language files and out of the control of this project. If these affect you, please contact the maintainer of the language file affecting you and file an issue with them. 4 | 5 | If you don't see your issue reported below, then please open an issue here and let us know. 6 | 7 | ## Fixes Pending 8 | 9 | - `scss`: Broken highlighting for properties sharing selector names atom/language-sass#234 10 | - `less`: Mixin parameters and guards fully scoped and highlighted. atom/language-less#82 11 | - `php`: Ternary and null coalescing operator highlighting. atom/language-php#285 12 | 13 | ## Contents 14 | 15 | - [C++](#c++) 16 | - [C#](#c-sharp) 17 | - [Clojure](#clojure) 18 | - [Coffeescript](#coffeescript) 19 | - [F#](#f-sharp) 20 | - [Go](#go) 21 | - [Java](#java) 22 | - [Makefile](#makefile) 23 | - [Objective-C](#objective-c) 24 | - [Perl](#perl) 25 | - [Powershell](#powershell) 26 | - [Python](#python) 27 | - [R](#r) 28 | - [Ruby](#ruby) 29 | - [Rust](#rust) 30 | - [Shell](#shell) 31 | - [Swift](#swift) 32 | 33 | ## C++ 34 | 35 | ```cpp 36 | // Accessor tokens not scoped when accessing member methods 37 | std::abs(1); 38 | // ^^ 39 | 40 | // Template brackets scoped as comparison operators 41 | template void hello() {} 42 | // ^ ^ 43 | ``` 44 | 45 | ## C# 46 | 47 | **Note:** There are several other breaks in C# that occur when you have deeply nested classes or structures. 48 | 49 | ```cs 50 | // "bool" types not scoped under certain circumstances 51 | class Foo { 52 | public bool isFoo() {} 53 | // ^^^^ 54 | } 55 | ``` 56 | 57 | ## Clojure 58 | 59 | ```clj 60 | ; Math operators (`+`, `-`, `/`, `*`, etc) are incorrectly scoped to `entity.name.function`. 61 | (+ 1 1) 62 | ;^ 63 | (- 4 2) 64 | ;^ 65 | (* 5 5) 66 | ;^ 67 | (/ 10 5) 68 | ;^ 69 | 70 | ; Logic operators (`not`, `is`, etc) are incorrectly scoped to `entity.name.function`. 71 | (not true) 72 | ;^^^ 73 | (is false) 74 | ;^^ 75 | 76 | ; Function parameters have no scope. 77 | (defn hello [name] 78 | ; ^^^^ 79 | (str "Hello " name)) 80 | 81 | ``` 82 | 83 | ## Coffeescript 84 | 85 | ```coffee 86 | # imports and exports are scope incorrectly across the board 87 | import _ from 'underscore' 88 | # ^ 89 | import * as underscore from 'underscore' 90 | # ^^^^^^^^^^ 91 | import { now } from 'underscore' 92 | # ^^^ 93 | import { now as currentTimestamp } from 'underscore' 94 | # ^^^ 95 | export { sqrt as squareRoot } 96 | # ^^^^ ^^ 97 | export { Mathematics as default, sqrt as squareRoot } 98 | # ^^^^^^^^^^^ ^^ ^^^^ 99 | ``` 100 | 101 | ## F# 102 | 103 | ```fs 104 | // Brackets and semicolons scoped incorrectly to `keyword.other`. 105 | let issueOne = [2; 3; 4; 5] 106 | // ^ ^ ^ ^ ^ 107 | 108 | // Function names are incorrectly scoped to `variable.other`. 109 | let square x = x * x // #2 110 | // ^^^^^^ 111 | 112 | // Modulo operator `%` unscoped. 113 | let isEven x = x % 2 = 0 114 | // ^ 115 | 116 | // Function calls are unscoped. 117 | isEven 5 118 | //^^^^ 119 | 120 | // Range operator `..` scope is broken. 121 | let y = [1..10] 122 | // ^^ 123 | 124 | // `->` operator not scoped under certain circumstances. 125 | [1..100] |> List.map (fun x -> x * x) |> List.sum 126 | // ^^ 127 | 128 | // `=` operator not scoped under certain circumstances. 129 | module Example = 130 | // ^ 131 | 132 | // Type scopes break under certain circumstances. 133 | type Rectangle(x:int, y:int) = 134 | // ^^^ ^^^^ ^ 135 | 136 | // Parens scoped incorrectly to `constant.language.unit` 137 | r.Print() 138 | // ^^ 139 | ``` 140 | 141 | ## Go 142 | 143 | ```go 144 | // Scientific numbers not scoped correctly. 145 | x := 1.3e3 146 | // ^^ 147 | 148 | // Function params not scoped 149 | func sentenceFactory(mystring string) func(before, after string) string {} 150 | // ^^^^^^^^ ^^^^^^ ^^^^^ 151 | ``` 152 | 153 | ## Java 154 | 155 | ```java 156 | // Generic scopes span all the way into the brackets (brackets need their own scope) 157 | private static final Set COUNTRIES = new HashSet(); 158 | // ^^^^^^^^ ^^^^^^^^ 159 | ``` 160 | 161 | ## Makefile 162 | 163 | ```Makefile 164 | hello=hello 165 | 166 | # Curly brace variable interpolation 167 | .PHONY: thing 168 | thing: 169 | echo ${hello} 170 | 171 | # Uncommon variant of ":=" scoped incorrectly 172 | uncommonEqual ::= foo bar baz 173 | # ^^^^^^^^^^^^^^ 174 | ``` 175 | 176 | ## Objective-C 177 | 178 | ```objc 179 | // Pragma lines with comments don't work 180 | #pragma mark Navigation Functions // New tag on jump bar named 'Navigation Functions' 181 | // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 182 | 183 | // "@protocol" scoped incorrectly under certain circumstances 184 | @protocol Brother; /* 185 | ^^^^^^^^^^^^^^^^^ 186 | ``` 187 | 188 | ## Perl 189 | 190 | ```pl 191 | # "=" not scoped 192 | my $thing = "foo"; 193 | # ^ 194 | 195 | # Range operator not scoped 196 | for my $i (0 .. $max) { 197 | # ^^ 198 | 199 | # Namespace accessor not scoped 200 | MyModule::foo($thing); 201 | # ^^ 202 | 203 | # Increment operator not scoped 204 | $self->{count}++; 205 | # ^^ 206 | ``` 207 | 208 | ## Powershell 209 | 210 | There is too much wrong with the scopes to list. The textmate scopes need a full refactor. 211 | 212 | ## Python 213 | 214 | ```py 215 | # Decorator scopes don't distinguish the "@" symbol 216 | @property 217 | #^ 218 | ``` 219 | 220 | ## R 221 | 222 | There is too much wrong with the scopes to list. The textmate scopes need a full refactor. 223 | 224 | ## Ruby 225 | 226 | ```rb 227 | # Function names not scoped during calls 228 | def add1(x) 229 | x + 1 230 | end 231 | add1(5) 232 | #^^^^ 233 | 234 | # Existence operator "?" not scoped 235 | hash = { foo: 'foo' } 236 | hash.key?(:foo) 237 | # ^ 238 | 239 | # Range ".." and double bar "| |" operators not scoped 240 | (1..5).each do |counter| 241 | # ^^ ^ ^ 242 | ``` 243 | 244 | ## Rust 245 | 246 | ```rs 247 | // Function parameters and "->" operator not scoped 248 | fn add2(x: i32, y: i32) -> i32 {} 249 | // ^ ^ ^^ 250 | 251 | // Generic types are scoped all the way through the brackets 252 | struct Foo { bar: T } 253 | // ^^^ 254 | 255 | // Generic types are not scoped when used 256 | struct Foo { bar: T } 257 | // ^ 258 | 259 | // Separators not scoped 260 | struct Foo { bar: T } 261 | // ^ 262 | ``` 263 | 264 | ## Shell 265 | 266 | ```sh 267 | # "!" is scoped as a pipe operator, not a logical negation operator 268 | echo Hello World! 269 | # ^ 270 | 271 | # Semicolons have the same scope as "&&" 272 | echo hello; echo foo && echo bar 273 | # ^ ^^ 274 | 275 | # Range operator not scoped 276 | echo {1..5} 277 | # ^^ 278 | 279 | # The word "in" in case statements has no scope 280 | case 'hello' in 281 | # ^^ 282 | hello) 283 | ;; 284 | esac 285 | ``` 286 | 287 | ## Swift 288 | 289 | There is too much wrong with the scopes to list. The textmate scopes need a full refactor. 290 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-dracula", 3 | "version": "2.25.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "theme-dracula", 9 | "version": "2.25.1", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "js-yaml": "^4.1.0", 13 | "prettier": "^3.0.0", 14 | "tinycolor2": "^1.6.0", 15 | "vsce": "^2.15.0" 16 | }, 17 | "engines": { 18 | "vscode": "^1.13.0" 19 | } 20 | }, 21 | "node_modules/ansi-regex": { 22 | "version": "2.1.1", 23 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 24 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 25 | "dev": true, 26 | "engines": { 27 | "node": ">=0.10.0" 28 | } 29 | }, 30 | "node_modules/ansi-styles": { 31 | "version": "3.2.1", 32 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 33 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 34 | "dev": true, 35 | "dependencies": { 36 | "color-convert": "^1.9.0" 37 | }, 38 | "engines": { 39 | "node": ">=4" 40 | } 41 | }, 42 | "node_modules/aproba": { 43 | "version": "1.2.0", 44 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 45 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 46 | "dev": true 47 | }, 48 | "node_modules/are-we-there-yet": { 49 | "version": "1.1.7", 50 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", 51 | "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", 52 | "dev": true, 53 | "dependencies": { 54 | "delegates": "^1.0.0", 55 | "readable-stream": "^2.0.6" 56 | } 57 | }, 58 | "node_modules/argparse": { 59 | "version": "2.0.1", 60 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 61 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 62 | "dev": true 63 | }, 64 | "node_modules/azure-devops-node-api": { 65 | "version": "11.0.1", 66 | "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz", 67 | "integrity": "sha512-YMdjAw9l5p/6leiyIloxj3k7VIvYThKjvqgiQn88r3nhT93ENwsoDS3A83CyJ4uTWzCZ5f5jCi6c27rTU5Pz+A==", 68 | "dev": true, 69 | "dependencies": { 70 | "tunnel": "0.0.6", 71 | "typed-rest-client": "^1.8.4" 72 | } 73 | }, 74 | "node_modules/balanced-match": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 77 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 78 | "dev": true 79 | }, 80 | "node_modules/base64-js": { 81 | "version": "1.5.1", 82 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 83 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 84 | "dev": true, 85 | "funding": [ 86 | { 87 | "type": "github", 88 | "url": "https://github.com/sponsors/feross" 89 | }, 90 | { 91 | "type": "patreon", 92 | "url": "https://www.patreon.com/feross" 93 | }, 94 | { 95 | "type": "consulting", 96 | "url": "https://feross.org/support" 97 | } 98 | ] 99 | }, 100 | "node_modules/bl": { 101 | "version": "4.1.0", 102 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 103 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 104 | "dev": true, 105 | "dependencies": { 106 | "buffer": "^5.5.0", 107 | "inherits": "^2.0.4", 108 | "readable-stream": "^3.4.0" 109 | } 110 | }, 111 | "node_modules/bl/node_modules/readable-stream": { 112 | "version": "3.6.0", 113 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 114 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 115 | "dev": true, 116 | "dependencies": { 117 | "inherits": "^2.0.3", 118 | "string_decoder": "^1.1.1", 119 | "util-deprecate": "^1.0.1" 120 | }, 121 | "engines": { 122 | "node": ">= 6" 123 | } 124 | }, 125 | "node_modules/boolbase": { 126 | "version": "1.0.0", 127 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 128 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", 129 | "dev": true 130 | }, 131 | "node_modules/brace-expansion": { 132 | "version": "1.1.11", 133 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 134 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 135 | "dev": true, 136 | "dependencies": { 137 | "balanced-match": "^1.0.0", 138 | "concat-map": "0.0.1" 139 | } 140 | }, 141 | "node_modules/buffer": { 142 | "version": "5.7.1", 143 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 144 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 145 | "dev": true, 146 | "funding": [ 147 | { 148 | "type": "github", 149 | "url": "https://github.com/sponsors/feross" 150 | }, 151 | { 152 | "type": "patreon", 153 | "url": "https://www.patreon.com/feross" 154 | }, 155 | { 156 | "type": "consulting", 157 | "url": "https://feross.org/support" 158 | } 159 | ], 160 | "dependencies": { 161 | "base64-js": "^1.3.1", 162 | "ieee754": "^1.1.13" 163 | } 164 | }, 165 | "node_modules/buffer-crc32": { 166 | "version": "0.2.13", 167 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 168 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 169 | "dev": true, 170 | "engines": { 171 | "node": "*" 172 | } 173 | }, 174 | "node_modules/call-bind": { 175 | "version": "1.0.2", 176 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 177 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 178 | "dev": true, 179 | "dependencies": { 180 | "function-bind": "^1.1.1", 181 | "get-intrinsic": "^1.0.2" 182 | }, 183 | "funding": { 184 | "url": "https://github.com/sponsors/ljharb" 185 | } 186 | }, 187 | "node_modules/chalk": { 188 | "version": "2.4.2", 189 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 190 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 191 | "dev": true, 192 | "dependencies": { 193 | "ansi-styles": "^3.2.1", 194 | "escape-string-regexp": "^1.0.5", 195 | "supports-color": "^5.3.0" 196 | }, 197 | "engines": { 198 | "node": ">=4" 199 | } 200 | }, 201 | "node_modules/cheerio": { 202 | "version": "1.0.0-rc.10", 203 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", 204 | "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", 205 | "dev": true, 206 | "dependencies": { 207 | "cheerio-select": "^1.5.0", 208 | "dom-serializer": "^1.3.2", 209 | "domhandler": "^4.2.0", 210 | "htmlparser2": "^6.1.0", 211 | "parse5": "^6.0.1", 212 | "parse5-htmlparser2-tree-adapter": "^6.0.1", 213 | "tslib": "^2.2.0" 214 | }, 215 | "engines": { 216 | "node": ">= 6" 217 | }, 218 | "funding": { 219 | "url": "https://github.com/cheeriojs/cheerio?sponsor=1" 220 | } 221 | }, 222 | "node_modules/cheerio-select": { 223 | "version": "1.5.0", 224 | "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", 225 | "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", 226 | "dev": true, 227 | "dependencies": { 228 | "css-select": "^4.1.3", 229 | "css-what": "^5.0.1", 230 | "domelementtype": "^2.2.0", 231 | "domhandler": "^4.2.0", 232 | "domutils": "^2.7.0" 233 | }, 234 | "funding": { 235 | "url": "https://github.com/sponsors/fb55" 236 | } 237 | }, 238 | "node_modules/chownr": { 239 | "version": "1.1.4", 240 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 241 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 242 | "dev": true 243 | }, 244 | "node_modules/code-point-at": { 245 | "version": "1.1.0", 246 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 247 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 248 | "dev": true, 249 | "engines": { 250 | "node": ">=0.10.0" 251 | } 252 | }, 253 | "node_modules/color-convert": { 254 | "version": "1.9.3", 255 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 256 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 257 | "dev": true, 258 | "dependencies": { 259 | "color-name": "1.1.3" 260 | } 261 | }, 262 | "node_modules/color-name": { 263 | "version": "1.1.3", 264 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 265 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 266 | "dev": true 267 | }, 268 | "node_modules/commander": { 269 | "version": "6.2.1", 270 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", 271 | "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", 272 | "dev": true, 273 | "engines": { 274 | "node": ">= 6" 275 | } 276 | }, 277 | "node_modules/concat-map": { 278 | "version": "0.0.1", 279 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 280 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 281 | "dev": true 282 | }, 283 | "node_modules/console-control-strings": { 284 | "version": "1.1.0", 285 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 286 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", 287 | "dev": true 288 | }, 289 | "node_modules/core-util-is": { 290 | "version": "1.0.3", 291 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 292 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", 293 | "dev": true 294 | }, 295 | "node_modules/css-select": { 296 | "version": "4.1.3", 297 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", 298 | "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", 299 | "dev": true, 300 | "dependencies": { 301 | "boolbase": "^1.0.0", 302 | "css-what": "^5.0.0", 303 | "domhandler": "^4.2.0", 304 | "domutils": "^2.6.0", 305 | "nth-check": "^2.0.0" 306 | }, 307 | "funding": { 308 | "url": "https://github.com/sponsors/fb55" 309 | } 310 | }, 311 | "node_modules/css-what": { 312 | "version": "5.0.1", 313 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", 314 | "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", 315 | "dev": true, 316 | "engines": { 317 | "node": ">= 6" 318 | }, 319 | "funding": { 320 | "url": "https://github.com/sponsors/fb55" 321 | } 322 | }, 323 | "node_modules/decompress-response": { 324 | "version": "4.2.1", 325 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 326 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 327 | "dev": true, 328 | "dependencies": { 329 | "mimic-response": "^2.0.0" 330 | }, 331 | "engines": { 332 | "node": ">=8" 333 | } 334 | }, 335 | "node_modules/deep-extend": { 336 | "version": "0.6.0", 337 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 338 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 339 | "dev": true, 340 | "engines": { 341 | "node": ">=4.0.0" 342 | } 343 | }, 344 | "node_modules/delegates": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 347 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", 348 | "dev": true 349 | }, 350 | "node_modules/detect-libc": { 351 | "version": "1.0.3", 352 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 353 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", 354 | "dev": true, 355 | "bin": { 356 | "detect-libc": "bin/detect-libc.js" 357 | }, 358 | "engines": { 359 | "node": ">=0.10" 360 | } 361 | }, 362 | "node_modules/dom-serializer": { 363 | "version": "1.3.2", 364 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", 365 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", 366 | "dev": true, 367 | "dependencies": { 368 | "domelementtype": "^2.0.1", 369 | "domhandler": "^4.2.0", 370 | "entities": "^2.0.0" 371 | }, 372 | "funding": { 373 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 374 | } 375 | }, 376 | "node_modules/domelementtype": { 377 | "version": "2.2.0", 378 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", 379 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", 380 | "dev": true, 381 | "funding": [ 382 | { 383 | "type": "github", 384 | "url": "https://github.com/sponsors/fb55" 385 | } 386 | ] 387 | }, 388 | "node_modules/domhandler": { 389 | "version": "4.2.0", 390 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", 391 | "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", 392 | "dev": true, 393 | "dependencies": { 394 | "domelementtype": "^2.2.0" 395 | }, 396 | "engines": { 397 | "node": ">= 4" 398 | }, 399 | "funding": { 400 | "url": "https://github.com/fb55/domhandler?sponsor=1" 401 | } 402 | }, 403 | "node_modules/domutils": { 404 | "version": "2.7.0", 405 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", 406 | "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", 407 | "dev": true, 408 | "dependencies": { 409 | "dom-serializer": "^1.0.1", 410 | "domelementtype": "^2.2.0", 411 | "domhandler": "^4.2.0" 412 | }, 413 | "funding": { 414 | "url": "https://github.com/fb55/domutils?sponsor=1" 415 | } 416 | }, 417 | "node_modules/end-of-stream": { 418 | "version": "1.4.4", 419 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 420 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 421 | "dev": true, 422 | "dependencies": { 423 | "once": "^1.4.0" 424 | } 425 | }, 426 | "node_modules/entities": { 427 | "version": "2.2.0", 428 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 429 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 430 | "dev": true, 431 | "funding": { 432 | "url": "https://github.com/fb55/entities?sponsor=1" 433 | } 434 | }, 435 | "node_modules/escape-string-regexp": { 436 | "version": "1.0.5", 437 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 438 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 439 | "dev": true, 440 | "engines": { 441 | "node": ">=0.8.0" 442 | } 443 | }, 444 | "node_modules/expand-template": { 445 | "version": "2.0.3", 446 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 447 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", 448 | "dev": true, 449 | "engines": { 450 | "node": ">=6" 451 | } 452 | }, 453 | "node_modules/fd-slicer": { 454 | "version": "1.1.0", 455 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 456 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 457 | "dev": true, 458 | "dependencies": { 459 | "pend": "~1.2.0" 460 | } 461 | }, 462 | "node_modules/fs-constants": { 463 | "version": "1.0.0", 464 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 465 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 466 | "dev": true 467 | }, 468 | "node_modules/fs.realpath": { 469 | "version": "1.0.0", 470 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 471 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 472 | "dev": true 473 | }, 474 | "node_modules/function-bind": { 475 | "version": "1.1.1", 476 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 477 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 478 | "dev": true 479 | }, 480 | "node_modules/gauge": { 481 | "version": "2.7.4", 482 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 483 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 484 | "dev": true, 485 | "dependencies": { 486 | "aproba": "^1.0.3", 487 | "console-control-strings": "^1.0.0", 488 | "has-unicode": "^2.0.0", 489 | "object-assign": "^4.1.0", 490 | "signal-exit": "^3.0.0", 491 | "string-width": "^1.0.1", 492 | "strip-ansi": "^3.0.1", 493 | "wide-align": "^1.1.0" 494 | } 495 | }, 496 | "node_modules/get-intrinsic": { 497 | "version": "1.1.1", 498 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 499 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 500 | "dev": true, 501 | "dependencies": { 502 | "function-bind": "^1.1.1", 503 | "has": "^1.0.3", 504 | "has-symbols": "^1.0.1" 505 | }, 506 | "funding": { 507 | "url": "https://github.com/sponsors/ljharb" 508 | } 509 | }, 510 | "node_modules/github-from-package": { 511 | "version": "0.0.0", 512 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 513 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", 514 | "dev": true 515 | }, 516 | "node_modules/glob": { 517 | "version": "7.1.6", 518 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 519 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 520 | "dev": true, 521 | "dependencies": { 522 | "fs.realpath": "^1.0.0", 523 | "inflight": "^1.0.4", 524 | "inherits": "2", 525 | "minimatch": "^3.0.4", 526 | "once": "^1.3.0", 527 | "path-is-absolute": "^1.0.0" 528 | }, 529 | "engines": { 530 | "node": "*" 531 | } 532 | }, 533 | "node_modules/has": { 534 | "version": "1.0.3", 535 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 536 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 537 | "dev": true, 538 | "dependencies": { 539 | "function-bind": "^1.1.1" 540 | }, 541 | "engines": { 542 | "node": ">= 0.4.0" 543 | } 544 | }, 545 | "node_modules/has-flag": { 546 | "version": "3.0.0", 547 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 548 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 549 | "dev": true, 550 | "engines": { 551 | "node": ">=4" 552 | } 553 | }, 554 | "node_modules/has-symbols": { 555 | "version": "1.0.2", 556 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 557 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 558 | "dev": true, 559 | "engines": { 560 | "node": ">= 0.4" 561 | }, 562 | "funding": { 563 | "url": "https://github.com/sponsors/ljharb" 564 | } 565 | }, 566 | "node_modules/has-unicode": { 567 | "version": "2.0.1", 568 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 569 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", 570 | "dev": true 571 | }, 572 | "node_modules/hosted-git-info": { 573 | "version": "4.0.2", 574 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", 575 | "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", 576 | "dev": true, 577 | "dependencies": { 578 | "lru-cache": "^6.0.0" 579 | }, 580 | "engines": { 581 | "node": ">=10" 582 | } 583 | }, 584 | "node_modules/htmlparser2": { 585 | "version": "6.1.0", 586 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", 587 | "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", 588 | "dev": true, 589 | "funding": [ 590 | "https://github.com/fb55/htmlparser2?sponsor=1", 591 | { 592 | "type": "github", 593 | "url": "https://github.com/sponsors/fb55" 594 | } 595 | ], 596 | "dependencies": { 597 | "domelementtype": "^2.0.1", 598 | "domhandler": "^4.0.0", 599 | "domutils": "^2.5.2", 600 | "entities": "^2.0.0" 601 | } 602 | }, 603 | "node_modules/ieee754": { 604 | "version": "1.2.1", 605 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 606 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 607 | "dev": true, 608 | "funding": [ 609 | { 610 | "type": "github", 611 | "url": "https://github.com/sponsors/feross" 612 | }, 613 | { 614 | "type": "patreon", 615 | "url": "https://www.patreon.com/feross" 616 | }, 617 | { 618 | "type": "consulting", 619 | "url": "https://feross.org/support" 620 | } 621 | ] 622 | }, 623 | "node_modules/inflight": { 624 | "version": "1.0.6", 625 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 626 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 627 | "dev": true, 628 | "dependencies": { 629 | "once": "^1.3.0", 630 | "wrappy": "1" 631 | } 632 | }, 633 | "node_modules/inherits": { 634 | "version": "2.0.4", 635 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 636 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 637 | "dev": true 638 | }, 639 | "node_modules/ini": { 640 | "version": "1.3.8", 641 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 642 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 643 | "dev": true 644 | }, 645 | "node_modules/is-fullwidth-code-point": { 646 | "version": "1.0.0", 647 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 648 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 649 | "dev": true, 650 | "dependencies": { 651 | "number-is-nan": "^1.0.0" 652 | }, 653 | "engines": { 654 | "node": ">=0.10.0" 655 | } 656 | }, 657 | "node_modules/isarray": { 658 | "version": "1.0.0", 659 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 660 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 661 | "dev": true 662 | }, 663 | "node_modules/js-yaml": { 664 | "version": "4.1.0", 665 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 666 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 667 | "dev": true, 668 | "dependencies": { 669 | "argparse": "^2.0.1" 670 | }, 671 | "bin": { 672 | "js-yaml": "bin/js-yaml.js" 673 | } 674 | }, 675 | "node_modules/keytar": { 676 | "version": "7.7.0", 677 | "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", 678 | "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", 679 | "dev": true, 680 | "hasInstallScript": true, 681 | "dependencies": { 682 | "node-addon-api": "^3.0.0", 683 | "prebuild-install": "^6.0.0" 684 | } 685 | }, 686 | "node_modules/leven": { 687 | "version": "3.1.0", 688 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", 689 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", 690 | "dev": true, 691 | "engines": { 692 | "node": ">=6" 693 | } 694 | }, 695 | "node_modules/linkify-it": { 696 | "version": "3.0.3", 697 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", 698 | "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", 699 | "dev": true, 700 | "dependencies": { 701 | "uc.micro": "^1.0.1" 702 | } 703 | }, 704 | "node_modules/lru-cache": { 705 | "version": "6.0.0", 706 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 707 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 708 | "dev": true, 709 | "dependencies": { 710 | "yallist": "^4.0.0" 711 | }, 712 | "engines": { 713 | "node": ">=10" 714 | } 715 | }, 716 | "node_modules/markdown-it": { 717 | "version": "12.3.2", 718 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", 719 | "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", 720 | "dev": true, 721 | "dependencies": { 722 | "argparse": "^2.0.1", 723 | "entities": "~2.1.0", 724 | "linkify-it": "^3.0.1", 725 | "mdurl": "^1.0.1", 726 | "uc.micro": "^1.0.5" 727 | }, 728 | "bin": { 729 | "markdown-it": "bin/markdown-it.js" 730 | } 731 | }, 732 | "node_modules/markdown-it/node_modules/entities": { 733 | "version": "2.1.0", 734 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", 735 | "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", 736 | "dev": true, 737 | "funding": { 738 | "url": "https://github.com/fb55/entities?sponsor=1" 739 | } 740 | }, 741 | "node_modules/mdurl": { 742 | "version": "1.0.1", 743 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 744 | "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", 745 | "dev": true 746 | }, 747 | "node_modules/mime": { 748 | "version": "1.6.0", 749 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 750 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 751 | "dev": true, 752 | "bin": { 753 | "mime": "cli.js" 754 | }, 755 | "engines": { 756 | "node": ">=4" 757 | } 758 | }, 759 | "node_modules/mimic-response": { 760 | "version": "2.1.0", 761 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 762 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", 763 | "dev": true, 764 | "engines": { 765 | "node": ">=8" 766 | }, 767 | "funding": { 768 | "url": "https://github.com/sponsors/sindresorhus" 769 | } 770 | }, 771 | "node_modules/minimatch": { 772 | "version": "3.1.2", 773 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 774 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 775 | "dev": true, 776 | "dependencies": { 777 | "brace-expansion": "^1.1.7" 778 | }, 779 | "engines": { 780 | "node": "*" 781 | } 782 | }, 783 | "node_modules/minimist": { 784 | "version": "1.2.6", 785 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 786 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 787 | "dev": true 788 | }, 789 | "node_modules/mkdirp-classic": { 790 | "version": "0.5.3", 791 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 792 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", 793 | "dev": true 794 | }, 795 | "node_modules/mute-stream": { 796 | "version": "0.0.8", 797 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 798 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 799 | "dev": true 800 | }, 801 | "node_modules/napi-build-utils": { 802 | "version": "1.0.2", 803 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 804 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", 805 | "dev": true 806 | }, 807 | "node_modules/node-abi": { 808 | "version": "2.30.1", 809 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", 810 | "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", 811 | "dev": true, 812 | "dependencies": { 813 | "semver": "^5.4.1" 814 | } 815 | }, 816 | "node_modules/node-addon-api": { 817 | "version": "3.2.1", 818 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", 819 | "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", 820 | "dev": true 821 | }, 822 | "node_modules/npmlog": { 823 | "version": "4.1.2", 824 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 825 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 826 | "dev": true, 827 | "dependencies": { 828 | "are-we-there-yet": "~1.1.2", 829 | "console-control-strings": "~1.1.0", 830 | "gauge": "~2.7.3", 831 | "set-blocking": "~2.0.0" 832 | } 833 | }, 834 | "node_modules/nth-check": { 835 | "version": "2.0.1", 836 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", 837 | "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", 838 | "dev": true, 839 | "dependencies": { 840 | "boolbase": "^1.0.0" 841 | }, 842 | "funding": { 843 | "url": "https://github.com/fb55/nth-check?sponsor=1" 844 | } 845 | }, 846 | "node_modules/number-is-nan": { 847 | "version": "1.0.1", 848 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 849 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 850 | "dev": true, 851 | "engines": { 852 | "node": ">=0.10.0" 853 | } 854 | }, 855 | "node_modules/object-assign": { 856 | "version": "4.1.1", 857 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 858 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 859 | "dev": true, 860 | "engines": { 861 | "node": ">=0.10.0" 862 | } 863 | }, 864 | "node_modules/object-inspect": { 865 | "version": "1.11.0", 866 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", 867 | "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", 868 | "dev": true, 869 | "funding": { 870 | "url": "https://github.com/sponsors/ljharb" 871 | } 872 | }, 873 | "node_modules/once": { 874 | "version": "1.4.0", 875 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 876 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 877 | "dev": true, 878 | "dependencies": { 879 | "wrappy": "1" 880 | } 881 | }, 882 | "node_modules/parse-semver": { 883 | "version": "1.1.1", 884 | "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", 885 | "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", 886 | "dev": true, 887 | "dependencies": { 888 | "semver": "^5.1.0" 889 | } 890 | }, 891 | "node_modules/parse5": { 892 | "version": "6.0.1", 893 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 894 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", 895 | "dev": true 896 | }, 897 | "node_modules/parse5-htmlparser2-tree-adapter": { 898 | "version": "6.0.1", 899 | "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", 900 | "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", 901 | "dev": true, 902 | "dependencies": { 903 | "parse5": "^6.0.1" 904 | } 905 | }, 906 | "node_modules/path-is-absolute": { 907 | "version": "1.0.1", 908 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 909 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 910 | "dev": true, 911 | "engines": { 912 | "node": ">=0.10.0" 913 | } 914 | }, 915 | "node_modules/pend": { 916 | "version": "1.2.0", 917 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 918 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 919 | "dev": true 920 | }, 921 | "node_modules/prebuild-install": { 922 | "version": "6.1.4", 923 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", 924 | "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", 925 | "dev": true, 926 | "dependencies": { 927 | "detect-libc": "^1.0.3", 928 | "expand-template": "^2.0.3", 929 | "github-from-package": "0.0.0", 930 | "minimist": "^1.2.3", 931 | "mkdirp-classic": "^0.5.3", 932 | "napi-build-utils": "^1.0.1", 933 | "node-abi": "^2.21.0", 934 | "npmlog": "^4.0.1", 935 | "pump": "^3.0.0", 936 | "rc": "^1.2.7", 937 | "simple-get": "^3.0.3", 938 | "tar-fs": "^2.0.0", 939 | "tunnel-agent": "^0.6.0" 940 | }, 941 | "bin": { 942 | "prebuild-install": "bin.js" 943 | }, 944 | "engines": { 945 | "node": ">=6" 946 | } 947 | }, 948 | "node_modules/prettier": { 949 | "version": "3.0.0", 950 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", 951 | "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", 952 | "dev": true, 953 | "bin": { 954 | "prettier": "bin/prettier.cjs" 955 | }, 956 | "engines": { 957 | "node": ">=14" 958 | }, 959 | "funding": { 960 | "url": "https://github.com/prettier/prettier?sponsor=1" 961 | } 962 | }, 963 | "node_modules/process-nextick-args": { 964 | "version": "2.0.1", 965 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 966 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 967 | "dev": true 968 | }, 969 | "node_modules/pump": { 970 | "version": "3.0.0", 971 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 972 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 973 | "dev": true, 974 | "dependencies": { 975 | "end-of-stream": "^1.1.0", 976 | "once": "^1.3.1" 977 | } 978 | }, 979 | "node_modules/qs": { 980 | "version": "6.11.0", 981 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", 982 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", 983 | "dev": true, 984 | "dependencies": { 985 | "side-channel": "^1.0.4" 986 | }, 987 | "engines": { 988 | "node": ">=0.6" 989 | }, 990 | "funding": { 991 | "url": "https://github.com/sponsors/ljharb" 992 | } 993 | }, 994 | "node_modules/rc": { 995 | "version": "1.2.8", 996 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 997 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 998 | "dev": true, 999 | "dependencies": { 1000 | "deep-extend": "^0.6.0", 1001 | "ini": "~1.3.0", 1002 | "minimist": "^1.2.0", 1003 | "strip-json-comments": "~2.0.1" 1004 | }, 1005 | "bin": { 1006 | "rc": "cli.js" 1007 | } 1008 | }, 1009 | "node_modules/read": { 1010 | "version": "1.0.7", 1011 | "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", 1012 | "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", 1013 | "dev": true, 1014 | "dependencies": { 1015 | "mute-stream": "~0.0.4" 1016 | }, 1017 | "engines": { 1018 | "node": ">=0.8" 1019 | } 1020 | }, 1021 | "node_modules/readable-stream": { 1022 | "version": "2.3.7", 1023 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1024 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1025 | "dev": true, 1026 | "dependencies": { 1027 | "core-util-is": "~1.0.0", 1028 | "inherits": "~2.0.3", 1029 | "isarray": "~1.0.0", 1030 | "process-nextick-args": "~2.0.0", 1031 | "safe-buffer": "~5.1.1", 1032 | "string_decoder": "~1.1.1", 1033 | "util-deprecate": "~1.0.1" 1034 | } 1035 | }, 1036 | "node_modules/rimraf": { 1037 | "version": "3.0.2", 1038 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1039 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1040 | "dev": true, 1041 | "dependencies": { 1042 | "glob": "^7.1.3" 1043 | }, 1044 | "bin": { 1045 | "rimraf": "bin.js" 1046 | }, 1047 | "funding": { 1048 | "url": "https://github.com/sponsors/isaacs" 1049 | } 1050 | }, 1051 | "node_modules/safe-buffer": { 1052 | "version": "5.1.2", 1053 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1054 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1055 | "dev": true 1056 | }, 1057 | "node_modules/sax": { 1058 | "version": "1.2.4", 1059 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1060 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 1061 | "dev": true 1062 | }, 1063 | "node_modules/semver": { 1064 | "version": "5.7.1", 1065 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1066 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1067 | "dev": true, 1068 | "bin": { 1069 | "semver": "bin/semver" 1070 | } 1071 | }, 1072 | "node_modules/set-blocking": { 1073 | "version": "2.0.0", 1074 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1075 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1076 | "dev": true 1077 | }, 1078 | "node_modules/side-channel": { 1079 | "version": "1.0.4", 1080 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1081 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1082 | "dev": true, 1083 | "dependencies": { 1084 | "call-bind": "^1.0.0", 1085 | "get-intrinsic": "^1.0.2", 1086 | "object-inspect": "^1.9.0" 1087 | }, 1088 | "funding": { 1089 | "url": "https://github.com/sponsors/ljharb" 1090 | } 1091 | }, 1092 | "node_modules/signal-exit": { 1093 | "version": "3.0.6", 1094 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", 1095 | "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", 1096 | "dev": true 1097 | }, 1098 | "node_modules/simple-concat": { 1099 | "version": "1.0.1", 1100 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 1101 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 1102 | "dev": true, 1103 | "funding": [ 1104 | { 1105 | "type": "github", 1106 | "url": "https://github.com/sponsors/feross" 1107 | }, 1108 | { 1109 | "type": "patreon", 1110 | "url": "https://www.patreon.com/feross" 1111 | }, 1112 | { 1113 | "type": "consulting", 1114 | "url": "https://feross.org/support" 1115 | } 1116 | ] 1117 | }, 1118 | "node_modules/simple-get": { 1119 | "version": "3.1.1", 1120 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", 1121 | "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", 1122 | "dev": true, 1123 | "dependencies": { 1124 | "decompress-response": "^4.2.0", 1125 | "once": "^1.3.1", 1126 | "simple-concat": "^1.0.0" 1127 | } 1128 | }, 1129 | "node_modules/string_decoder": { 1130 | "version": "1.1.1", 1131 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1132 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1133 | "dev": true, 1134 | "dependencies": { 1135 | "safe-buffer": "~5.1.0" 1136 | } 1137 | }, 1138 | "node_modules/string-width": { 1139 | "version": "1.0.2", 1140 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1141 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1142 | "dev": true, 1143 | "dependencies": { 1144 | "code-point-at": "^1.0.0", 1145 | "is-fullwidth-code-point": "^1.0.0", 1146 | "strip-ansi": "^3.0.0" 1147 | }, 1148 | "engines": { 1149 | "node": ">=0.10.0" 1150 | } 1151 | }, 1152 | "node_modules/strip-ansi": { 1153 | "version": "3.0.1", 1154 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1155 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1156 | "dev": true, 1157 | "dependencies": { 1158 | "ansi-regex": "^2.0.0" 1159 | }, 1160 | "engines": { 1161 | "node": ">=0.10.0" 1162 | } 1163 | }, 1164 | "node_modules/strip-json-comments": { 1165 | "version": "2.0.1", 1166 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1167 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1168 | "dev": true, 1169 | "engines": { 1170 | "node": ">=0.10.0" 1171 | } 1172 | }, 1173 | "node_modules/supports-color": { 1174 | "version": "5.5.0", 1175 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1176 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1177 | "dev": true, 1178 | "dependencies": { 1179 | "has-flag": "^3.0.0" 1180 | }, 1181 | "engines": { 1182 | "node": ">=4" 1183 | } 1184 | }, 1185 | "node_modules/tar-fs": { 1186 | "version": "2.1.3", 1187 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", 1188 | "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", 1189 | "dev": true, 1190 | "license": "MIT", 1191 | "dependencies": { 1192 | "chownr": "^1.1.1", 1193 | "mkdirp-classic": "^0.5.2", 1194 | "pump": "^3.0.0", 1195 | "tar-stream": "^2.1.4" 1196 | } 1197 | }, 1198 | "node_modules/tar-stream": { 1199 | "version": "2.2.0", 1200 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 1201 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 1202 | "dev": true, 1203 | "dependencies": { 1204 | "bl": "^4.0.3", 1205 | "end-of-stream": "^1.4.1", 1206 | "fs-constants": "^1.0.0", 1207 | "inherits": "^2.0.3", 1208 | "readable-stream": "^3.1.1" 1209 | }, 1210 | "engines": { 1211 | "node": ">=6" 1212 | } 1213 | }, 1214 | "node_modules/tar-stream/node_modules/readable-stream": { 1215 | "version": "3.6.0", 1216 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1217 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1218 | "dev": true, 1219 | "dependencies": { 1220 | "inherits": "^2.0.3", 1221 | "string_decoder": "^1.1.1", 1222 | "util-deprecate": "^1.0.1" 1223 | }, 1224 | "engines": { 1225 | "node": ">= 6" 1226 | } 1227 | }, 1228 | "node_modules/tinycolor2": { 1229 | "version": "1.6.0", 1230 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", 1231 | "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", 1232 | "dev": true 1233 | }, 1234 | "node_modules/tmp": { 1235 | "version": "0.2.1", 1236 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 1237 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 1238 | "dev": true, 1239 | "dependencies": { 1240 | "rimraf": "^3.0.0" 1241 | }, 1242 | "engines": { 1243 | "node": ">=8.17.0" 1244 | } 1245 | }, 1246 | "node_modules/tslib": { 1247 | "version": "2.3.0", 1248 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", 1249 | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", 1250 | "dev": true 1251 | }, 1252 | "node_modules/tunnel": { 1253 | "version": "0.0.6", 1254 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", 1255 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", 1256 | "dev": true, 1257 | "engines": { 1258 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3" 1259 | } 1260 | }, 1261 | "node_modules/tunnel-agent": { 1262 | "version": "0.6.0", 1263 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1264 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1265 | "dev": true, 1266 | "dependencies": { 1267 | "safe-buffer": "^5.0.1" 1268 | }, 1269 | "engines": { 1270 | "node": "*" 1271 | } 1272 | }, 1273 | "node_modules/typed-rest-client": { 1274 | "version": "1.8.4", 1275 | "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", 1276 | "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", 1277 | "dev": true, 1278 | "dependencies": { 1279 | "qs": "^6.9.1", 1280 | "tunnel": "0.0.6", 1281 | "underscore": "^1.12.1" 1282 | } 1283 | }, 1284 | "node_modules/uc.micro": { 1285 | "version": "1.0.6", 1286 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", 1287 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", 1288 | "dev": true 1289 | }, 1290 | "node_modules/underscore": { 1291 | "version": "1.13.1", 1292 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", 1293 | "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", 1294 | "dev": true 1295 | }, 1296 | "node_modules/url-join": { 1297 | "version": "4.0.1", 1298 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", 1299 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", 1300 | "dev": true 1301 | }, 1302 | "node_modules/util-deprecate": { 1303 | "version": "1.0.2", 1304 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1305 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1306 | "dev": true 1307 | }, 1308 | "node_modules/vsce": { 1309 | "version": "2.15.0", 1310 | "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", 1311 | "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", 1312 | "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", 1313 | "dev": true, 1314 | "dependencies": { 1315 | "azure-devops-node-api": "^11.0.1", 1316 | "chalk": "^2.4.2", 1317 | "cheerio": "^1.0.0-rc.9", 1318 | "commander": "^6.1.0", 1319 | "glob": "^7.0.6", 1320 | "hosted-git-info": "^4.0.2", 1321 | "keytar": "^7.7.0", 1322 | "leven": "^3.1.0", 1323 | "markdown-it": "^12.3.2", 1324 | "mime": "^1.3.4", 1325 | "minimatch": "^3.0.3", 1326 | "parse-semver": "^1.1.1", 1327 | "read": "^1.0.7", 1328 | "semver": "^5.1.0", 1329 | "tmp": "^0.2.1", 1330 | "typed-rest-client": "^1.8.4", 1331 | "url-join": "^4.0.1", 1332 | "xml2js": "^0.4.23", 1333 | "yauzl": "^2.3.1", 1334 | "yazl": "^2.2.2" 1335 | }, 1336 | "bin": { 1337 | "vsce": "vsce" 1338 | }, 1339 | "engines": { 1340 | "node": ">= 14" 1341 | } 1342 | }, 1343 | "node_modules/wide-align": { 1344 | "version": "1.1.5", 1345 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 1346 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 1347 | "dev": true, 1348 | "dependencies": { 1349 | "string-width": "^1.0.2 || 2 || 3 || 4" 1350 | } 1351 | }, 1352 | "node_modules/wrappy": { 1353 | "version": "1.0.2", 1354 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1355 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1356 | "dev": true 1357 | }, 1358 | "node_modules/xml2js": { 1359 | "version": "0.4.23", 1360 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", 1361 | "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", 1362 | "dev": true, 1363 | "dependencies": { 1364 | "sax": ">=0.6.0", 1365 | "xmlbuilder": "~11.0.0" 1366 | }, 1367 | "engines": { 1368 | "node": ">=4.0.0" 1369 | } 1370 | }, 1371 | "node_modules/xmlbuilder": { 1372 | "version": "11.0.1", 1373 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 1374 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 1375 | "dev": true, 1376 | "engines": { 1377 | "node": ">=4.0" 1378 | } 1379 | }, 1380 | "node_modules/yallist": { 1381 | "version": "4.0.0", 1382 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1383 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1384 | "dev": true 1385 | }, 1386 | "node_modules/yauzl": { 1387 | "version": "2.10.0", 1388 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 1389 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 1390 | "dev": true, 1391 | "dependencies": { 1392 | "buffer-crc32": "~0.2.3", 1393 | "fd-slicer": "~1.1.0" 1394 | } 1395 | }, 1396 | "node_modules/yazl": { 1397 | "version": "2.5.1", 1398 | "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", 1399 | "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", 1400 | "dev": true, 1401 | "dependencies": { 1402 | "buffer-crc32": "~0.2.3" 1403 | } 1404 | } 1405 | }, 1406 | "dependencies": { 1407 | "ansi-regex": { 1408 | "version": "2.1.1", 1409 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1410 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 1411 | "dev": true 1412 | }, 1413 | "ansi-styles": { 1414 | "version": "3.2.1", 1415 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1416 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1417 | "dev": true, 1418 | "requires": { 1419 | "color-convert": "^1.9.0" 1420 | } 1421 | }, 1422 | "aproba": { 1423 | "version": "1.2.0", 1424 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 1425 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 1426 | "dev": true 1427 | }, 1428 | "are-we-there-yet": { 1429 | "version": "1.1.7", 1430 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", 1431 | "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", 1432 | "dev": true, 1433 | "requires": { 1434 | "delegates": "^1.0.0", 1435 | "readable-stream": "^2.0.6" 1436 | } 1437 | }, 1438 | "argparse": { 1439 | "version": "2.0.1", 1440 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1441 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1442 | "dev": true 1443 | }, 1444 | "azure-devops-node-api": { 1445 | "version": "11.0.1", 1446 | "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz", 1447 | "integrity": "sha512-YMdjAw9l5p/6leiyIloxj3k7VIvYThKjvqgiQn88r3nhT93ENwsoDS3A83CyJ4uTWzCZ5f5jCi6c27rTU5Pz+A==", 1448 | "dev": true, 1449 | "requires": { 1450 | "tunnel": "0.0.6", 1451 | "typed-rest-client": "^1.8.4" 1452 | } 1453 | }, 1454 | "balanced-match": { 1455 | "version": "1.0.0", 1456 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1457 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 1458 | "dev": true 1459 | }, 1460 | "base64-js": { 1461 | "version": "1.5.1", 1462 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1463 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1464 | "dev": true 1465 | }, 1466 | "bl": { 1467 | "version": "4.1.0", 1468 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 1469 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 1470 | "dev": true, 1471 | "requires": { 1472 | "buffer": "^5.5.0", 1473 | "inherits": "^2.0.4", 1474 | "readable-stream": "^3.4.0" 1475 | }, 1476 | "dependencies": { 1477 | "readable-stream": { 1478 | "version": "3.6.0", 1479 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1480 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1481 | "dev": true, 1482 | "requires": { 1483 | "inherits": "^2.0.3", 1484 | "string_decoder": "^1.1.1", 1485 | "util-deprecate": "^1.0.1" 1486 | } 1487 | } 1488 | } 1489 | }, 1490 | "boolbase": { 1491 | "version": "1.0.0", 1492 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 1493 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", 1494 | "dev": true 1495 | }, 1496 | "brace-expansion": { 1497 | "version": "1.1.11", 1498 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1499 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1500 | "dev": true, 1501 | "requires": { 1502 | "balanced-match": "^1.0.0", 1503 | "concat-map": "0.0.1" 1504 | } 1505 | }, 1506 | "buffer": { 1507 | "version": "5.7.1", 1508 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 1509 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 1510 | "dev": true, 1511 | "requires": { 1512 | "base64-js": "^1.3.1", 1513 | "ieee754": "^1.1.13" 1514 | } 1515 | }, 1516 | "buffer-crc32": { 1517 | "version": "0.2.13", 1518 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 1519 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 1520 | "dev": true 1521 | }, 1522 | "call-bind": { 1523 | "version": "1.0.2", 1524 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1525 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1526 | "dev": true, 1527 | "requires": { 1528 | "function-bind": "^1.1.1", 1529 | "get-intrinsic": "^1.0.2" 1530 | } 1531 | }, 1532 | "chalk": { 1533 | "version": "2.4.2", 1534 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1535 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1536 | "dev": true, 1537 | "requires": { 1538 | "ansi-styles": "^3.2.1", 1539 | "escape-string-regexp": "^1.0.5", 1540 | "supports-color": "^5.3.0" 1541 | } 1542 | }, 1543 | "cheerio": { 1544 | "version": "1.0.0-rc.10", 1545 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", 1546 | "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", 1547 | "dev": true, 1548 | "requires": { 1549 | "cheerio-select": "^1.5.0", 1550 | "dom-serializer": "^1.3.2", 1551 | "domhandler": "^4.2.0", 1552 | "htmlparser2": "^6.1.0", 1553 | "parse5": "^6.0.1", 1554 | "parse5-htmlparser2-tree-adapter": "^6.0.1", 1555 | "tslib": "^2.2.0" 1556 | } 1557 | }, 1558 | "cheerio-select": { 1559 | "version": "1.5.0", 1560 | "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", 1561 | "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", 1562 | "dev": true, 1563 | "requires": { 1564 | "css-select": "^4.1.3", 1565 | "css-what": "^5.0.1", 1566 | "domelementtype": "^2.2.0", 1567 | "domhandler": "^4.2.0", 1568 | "domutils": "^2.7.0" 1569 | } 1570 | }, 1571 | "chownr": { 1572 | "version": "1.1.4", 1573 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 1574 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 1575 | "dev": true 1576 | }, 1577 | "code-point-at": { 1578 | "version": "1.1.0", 1579 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 1580 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 1581 | "dev": true 1582 | }, 1583 | "color-convert": { 1584 | "version": "1.9.3", 1585 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1586 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1587 | "dev": true, 1588 | "requires": { 1589 | "color-name": "1.1.3" 1590 | } 1591 | }, 1592 | "color-name": { 1593 | "version": "1.1.3", 1594 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1595 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1596 | "dev": true 1597 | }, 1598 | "commander": { 1599 | "version": "6.2.1", 1600 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", 1601 | "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", 1602 | "dev": true 1603 | }, 1604 | "concat-map": { 1605 | "version": "0.0.1", 1606 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1607 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1608 | "dev": true 1609 | }, 1610 | "console-control-strings": { 1611 | "version": "1.1.0", 1612 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 1613 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", 1614 | "dev": true 1615 | }, 1616 | "core-util-is": { 1617 | "version": "1.0.3", 1618 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 1619 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", 1620 | "dev": true 1621 | }, 1622 | "css-select": { 1623 | "version": "4.1.3", 1624 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", 1625 | "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", 1626 | "dev": true, 1627 | "requires": { 1628 | "boolbase": "^1.0.0", 1629 | "css-what": "^5.0.0", 1630 | "domhandler": "^4.2.0", 1631 | "domutils": "^2.6.0", 1632 | "nth-check": "^2.0.0" 1633 | } 1634 | }, 1635 | "css-what": { 1636 | "version": "5.0.1", 1637 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", 1638 | "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", 1639 | "dev": true 1640 | }, 1641 | "decompress-response": { 1642 | "version": "4.2.1", 1643 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 1644 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 1645 | "dev": true, 1646 | "requires": { 1647 | "mimic-response": "^2.0.0" 1648 | } 1649 | }, 1650 | "deep-extend": { 1651 | "version": "0.6.0", 1652 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 1653 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 1654 | "dev": true 1655 | }, 1656 | "delegates": { 1657 | "version": "1.0.0", 1658 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 1659 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", 1660 | "dev": true 1661 | }, 1662 | "detect-libc": { 1663 | "version": "1.0.3", 1664 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 1665 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", 1666 | "dev": true 1667 | }, 1668 | "dom-serializer": { 1669 | "version": "1.3.2", 1670 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", 1671 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", 1672 | "dev": true, 1673 | "requires": { 1674 | "domelementtype": "^2.0.1", 1675 | "domhandler": "^4.2.0", 1676 | "entities": "^2.0.0" 1677 | } 1678 | }, 1679 | "domelementtype": { 1680 | "version": "2.2.0", 1681 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", 1682 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", 1683 | "dev": true 1684 | }, 1685 | "domhandler": { 1686 | "version": "4.2.0", 1687 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", 1688 | "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", 1689 | "dev": true, 1690 | "requires": { 1691 | "domelementtype": "^2.2.0" 1692 | } 1693 | }, 1694 | "domutils": { 1695 | "version": "2.7.0", 1696 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", 1697 | "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", 1698 | "dev": true, 1699 | "requires": { 1700 | "dom-serializer": "^1.0.1", 1701 | "domelementtype": "^2.2.0", 1702 | "domhandler": "^4.2.0" 1703 | } 1704 | }, 1705 | "end-of-stream": { 1706 | "version": "1.4.4", 1707 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1708 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1709 | "dev": true, 1710 | "requires": { 1711 | "once": "^1.4.0" 1712 | } 1713 | }, 1714 | "entities": { 1715 | "version": "2.2.0", 1716 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 1717 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 1718 | "dev": true 1719 | }, 1720 | "escape-string-regexp": { 1721 | "version": "1.0.5", 1722 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1723 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1724 | "dev": true 1725 | }, 1726 | "expand-template": { 1727 | "version": "2.0.3", 1728 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 1729 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", 1730 | "dev": true 1731 | }, 1732 | "fd-slicer": { 1733 | "version": "1.1.0", 1734 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 1735 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 1736 | "dev": true, 1737 | "requires": { 1738 | "pend": "~1.2.0" 1739 | } 1740 | }, 1741 | "fs-constants": { 1742 | "version": "1.0.0", 1743 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1744 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 1745 | "dev": true 1746 | }, 1747 | "fs.realpath": { 1748 | "version": "1.0.0", 1749 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1750 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1751 | "dev": true 1752 | }, 1753 | "function-bind": { 1754 | "version": "1.1.1", 1755 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1756 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1757 | "dev": true 1758 | }, 1759 | "gauge": { 1760 | "version": "2.7.4", 1761 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 1762 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 1763 | "dev": true, 1764 | "requires": { 1765 | "aproba": "^1.0.3", 1766 | "console-control-strings": "^1.0.0", 1767 | "has-unicode": "^2.0.0", 1768 | "object-assign": "^4.1.0", 1769 | "signal-exit": "^3.0.0", 1770 | "string-width": "^1.0.1", 1771 | "strip-ansi": "^3.0.1", 1772 | "wide-align": "^1.1.0" 1773 | } 1774 | }, 1775 | "get-intrinsic": { 1776 | "version": "1.1.1", 1777 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 1778 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1779 | "dev": true, 1780 | "requires": { 1781 | "function-bind": "^1.1.1", 1782 | "has": "^1.0.3", 1783 | "has-symbols": "^1.0.1" 1784 | } 1785 | }, 1786 | "github-from-package": { 1787 | "version": "0.0.0", 1788 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 1789 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", 1790 | "dev": true 1791 | }, 1792 | "glob": { 1793 | "version": "7.1.6", 1794 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1795 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1796 | "dev": true, 1797 | "requires": { 1798 | "fs.realpath": "^1.0.0", 1799 | "inflight": "^1.0.4", 1800 | "inherits": "2", 1801 | "minimatch": "^3.0.4", 1802 | "once": "^1.3.0", 1803 | "path-is-absolute": "^1.0.0" 1804 | } 1805 | }, 1806 | "has": { 1807 | "version": "1.0.3", 1808 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1809 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1810 | "dev": true, 1811 | "requires": { 1812 | "function-bind": "^1.1.1" 1813 | } 1814 | }, 1815 | "has-flag": { 1816 | "version": "3.0.0", 1817 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1818 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1819 | "dev": true 1820 | }, 1821 | "has-symbols": { 1822 | "version": "1.0.2", 1823 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 1824 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 1825 | "dev": true 1826 | }, 1827 | "has-unicode": { 1828 | "version": "2.0.1", 1829 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 1830 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", 1831 | "dev": true 1832 | }, 1833 | "hosted-git-info": { 1834 | "version": "4.0.2", 1835 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", 1836 | "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", 1837 | "dev": true, 1838 | "requires": { 1839 | "lru-cache": "^6.0.0" 1840 | } 1841 | }, 1842 | "htmlparser2": { 1843 | "version": "6.1.0", 1844 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", 1845 | "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", 1846 | "dev": true, 1847 | "requires": { 1848 | "domelementtype": "^2.0.1", 1849 | "domhandler": "^4.0.0", 1850 | "domutils": "^2.5.2", 1851 | "entities": "^2.0.0" 1852 | } 1853 | }, 1854 | "ieee754": { 1855 | "version": "1.2.1", 1856 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1857 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1858 | "dev": true 1859 | }, 1860 | "inflight": { 1861 | "version": "1.0.6", 1862 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1863 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1864 | "dev": true, 1865 | "requires": { 1866 | "once": "^1.3.0", 1867 | "wrappy": "1" 1868 | } 1869 | }, 1870 | "inherits": { 1871 | "version": "2.0.4", 1872 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1873 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1874 | "dev": true 1875 | }, 1876 | "ini": { 1877 | "version": "1.3.8", 1878 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 1879 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 1880 | "dev": true 1881 | }, 1882 | "is-fullwidth-code-point": { 1883 | "version": "1.0.0", 1884 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1885 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1886 | "dev": true, 1887 | "requires": { 1888 | "number-is-nan": "^1.0.0" 1889 | } 1890 | }, 1891 | "isarray": { 1892 | "version": "1.0.0", 1893 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1894 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1895 | "dev": true 1896 | }, 1897 | "js-yaml": { 1898 | "version": "4.1.0", 1899 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1900 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1901 | "dev": true, 1902 | "requires": { 1903 | "argparse": "^2.0.1" 1904 | } 1905 | }, 1906 | "keytar": { 1907 | "version": "7.7.0", 1908 | "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", 1909 | "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", 1910 | "dev": true, 1911 | "requires": { 1912 | "node-addon-api": "^3.0.0", 1913 | "prebuild-install": "^6.0.0" 1914 | } 1915 | }, 1916 | "leven": { 1917 | "version": "3.1.0", 1918 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", 1919 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", 1920 | "dev": true 1921 | }, 1922 | "linkify-it": { 1923 | "version": "3.0.3", 1924 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", 1925 | "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", 1926 | "dev": true, 1927 | "requires": { 1928 | "uc.micro": "^1.0.1" 1929 | } 1930 | }, 1931 | "lru-cache": { 1932 | "version": "6.0.0", 1933 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1934 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1935 | "dev": true, 1936 | "requires": { 1937 | "yallist": "^4.0.0" 1938 | } 1939 | }, 1940 | "markdown-it": { 1941 | "version": "12.3.2", 1942 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", 1943 | "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", 1944 | "dev": true, 1945 | "requires": { 1946 | "argparse": "^2.0.1", 1947 | "entities": "~2.1.0", 1948 | "linkify-it": "^3.0.1", 1949 | "mdurl": "^1.0.1", 1950 | "uc.micro": "^1.0.5" 1951 | }, 1952 | "dependencies": { 1953 | "entities": { 1954 | "version": "2.1.0", 1955 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", 1956 | "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", 1957 | "dev": true 1958 | } 1959 | } 1960 | }, 1961 | "mdurl": { 1962 | "version": "1.0.1", 1963 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 1964 | "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", 1965 | "dev": true 1966 | }, 1967 | "mime": { 1968 | "version": "1.6.0", 1969 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1970 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 1971 | "dev": true 1972 | }, 1973 | "mimic-response": { 1974 | "version": "2.1.0", 1975 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 1976 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", 1977 | "dev": true 1978 | }, 1979 | "minimatch": { 1980 | "version": "3.1.2", 1981 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1982 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1983 | "dev": true, 1984 | "requires": { 1985 | "brace-expansion": "^1.1.7" 1986 | } 1987 | }, 1988 | "minimist": { 1989 | "version": "1.2.6", 1990 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1991 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1992 | "dev": true 1993 | }, 1994 | "mkdirp-classic": { 1995 | "version": "0.5.3", 1996 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 1997 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", 1998 | "dev": true 1999 | }, 2000 | "mute-stream": { 2001 | "version": "0.0.8", 2002 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 2003 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 2004 | "dev": true 2005 | }, 2006 | "napi-build-utils": { 2007 | "version": "1.0.2", 2008 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 2009 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", 2010 | "dev": true 2011 | }, 2012 | "node-abi": { 2013 | "version": "2.30.1", 2014 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", 2015 | "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", 2016 | "dev": true, 2017 | "requires": { 2018 | "semver": "^5.4.1" 2019 | } 2020 | }, 2021 | "node-addon-api": { 2022 | "version": "3.2.1", 2023 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", 2024 | "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", 2025 | "dev": true 2026 | }, 2027 | "npmlog": { 2028 | "version": "4.1.2", 2029 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 2030 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 2031 | "dev": true, 2032 | "requires": { 2033 | "are-we-there-yet": "~1.1.2", 2034 | "console-control-strings": "~1.1.0", 2035 | "gauge": "~2.7.3", 2036 | "set-blocking": "~2.0.0" 2037 | } 2038 | }, 2039 | "nth-check": { 2040 | "version": "2.0.1", 2041 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", 2042 | "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", 2043 | "dev": true, 2044 | "requires": { 2045 | "boolbase": "^1.0.0" 2046 | } 2047 | }, 2048 | "number-is-nan": { 2049 | "version": "1.0.1", 2050 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2051 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2052 | "dev": true 2053 | }, 2054 | "object-assign": { 2055 | "version": "4.1.1", 2056 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2057 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2058 | "dev": true 2059 | }, 2060 | "object-inspect": { 2061 | "version": "1.11.0", 2062 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", 2063 | "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", 2064 | "dev": true 2065 | }, 2066 | "once": { 2067 | "version": "1.4.0", 2068 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2069 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2070 | "dev": true, 2071 | "requires": { 2072 | "wrappy": "1" 2073 | } 2074 | }, 2075 | "parse-semver": { 2076 | "version": "1.1.1", 2077 | "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", 2078 | "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", 2079 | "dev": true, 2080 | "requires": { 2081 | "semver": "^5.1.0" 2082 | } 2083 | }, 2084 | "parse5": { 2085 | "version": "6.0.1", 2086 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 2087 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", 2088 | "dev": true 2089 | }, 2090 | "parse5-htmlparser2-tree-adapter": { 2091 | "version": "6.0.1", 2092 | "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", 2093 | "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", 2094 | "dev": true, 2095 | "requires": { 2096 | "parse5": "^6.0.1" 2097 | } 2098 | }, 2099 | "path-is-absolute": { 2100 | "version": "1.0.1", 2101 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2102 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2103 | "dev": true 2104 | }, 2105 | "pend": { 2106 | "version": "1.2.0", 2107 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 2108 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 2109 | "dev": true 2110 | }, 2111 | "prebuild-install": { 2112 | "version": "6.1.4", 2113 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", 2114 | "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", 2115 | "dev": true, 2116 | "requires": { 2117 | "detect-libc": "^1.0.3", 2118 | "expand-template": "^2.0.3", 2119 | "github-from-package": "0.0.0", 2120 | "minimist": "^1.2.3", 2121 | "mkdirp-classic": "^0.5.3", 2122 | "napi-build-utils": "^1.0.1", 2123 | "node-abi": "^2.21.0", 2124 | "npmlog": "^4.0.1", 2125 | "pump": "^3.0.0", 2126 | "rc": "^1.2.7", 2127 | "simple-get": "^3.0.3", 2128 | "tar-fs": "^2.0.0", 2129 | "tunnel-agent": "^0.6.0" 2130 | } 2131 | }, 2132 | "prettier": { 2133 | "version": "3.0.0", 2134 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", 2135 | "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", 2136 | "dev": true 2137 | }, 2138 | "process-nextick-args": { 2139 | "version": "2.0.1", 2140 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2141 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 2142 | "dev": true 2143 | }, 2144 | "pump": { 2145 | "version": "3.0.0", 2146 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 2147 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 2148 | "dev": true, 2149 | "requires": { 2150 | "end-of-stream": "^1.1.0", 2151 | "once": "^1.3.1" 2152 | } 2153 | }, 2154 | "qs": { 2155 | "version": "6.11.0", 2156 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", 2157 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", 2158 | "dev": true, 2159 | "requires": { 2160 | "side-channel": "^1.0.4" 2161 | } 2162 | }, 2163 | "rc": { 2164 | "version": "1.2.8", 2165 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 2166 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 2167 | "dev": true, 2168 | "requires": { 2169 | "deep-extend": "^0.6.0", 2170 | "ini": "~1.3.0", 2171 | "minimist": "^1.2.0", 2172 | "strip-json-comments": "~2.0.1" 2173 | } 2174 | }, 2175 | "read": { 2176 | "version": "1.0.7", 2177 | "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", 2178 | "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", 2179 | "dev": true, 2180 | "requires": { 2181 | "mute-stream": "~0.0.4" 2182 | } 2183 | }, 2184 | "readable-stream": { 2185 | "version": "2.3.7", 2186 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2187 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2188 | "dev": true, 2189 | "requires": { 2190 | "core-util-is": "~1.0.0", 2191 | "inherits": "~2.0.3", 2192 | "isarray": "~1.0.0", 2193 | "process-nextick-args": "~2.0.0", 2194 | "safe-buffer": "~5.1.1", 2195 | "string_decoder": "~1.1.1", 2196 | "util-deprecate": "~1.0.1" 2197 | } 2198 | }, 2199 | "rimraf": { 2200 | "version": "3.0.2", 2201 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2202 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2203 | "dev": true, 2204 | "requires": { 2205 | "glob": "^7.1.3" 2206 | } 2207 | }, 2208 | "safe-buffer": { 2209 | "version": "5.1.2", 2210 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2211 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2212 | "dev": true 2213 | }, 2214 | "sax": { 2215 | "version": "1.2.4", 2216 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 2217 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 2218 | "dev": true 2219 | }, 2220 | "semver": { 2221 | "version": "5.7.1", 2222 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2223 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 2224 | "dev": true 2225 | }, 2226 | "set-blocking": { 2227 | "version": "2.0.0", 2228 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2229 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2230 | "dev": true 2231 | }, 2232 | "side-channel": { 2233 | "version": "1.0.4", 2234 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2235 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2236 | "dev": true, 2237 | "requires": { 2238 | "call-bind": "^1.0.0", 2239 | "get-intrinsic": "^1.0.2", 2240 | "object-inspect": "^1.9.0" 2241 | } 2242 | }, 2243 | "signal-exit": { 2244 | "version": "3.0.6", 2245 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", 2246 | "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", 2247 | "dev": true 2248 | }, 2249 | "simple-concat": { 2250 | "version": "1.0.1", 2251 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 2252 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 2253 | "dev": true 2254 | }, 2255 | "simple-get": { 2256 | "version": "3.1.1", 2257 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", 2258 | "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", 2259 | "dev": true, 2260 | "requires": { 2261 | "decompress-response": "^4.2.0", 2262 | "once": "^1.3.1", 2263 | "simple-concat": "^1.0.0" 2264 | } 2265 | }, 2266 | "string_decoder": { 2267 | "version": "1.1.1", 2268 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2269 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2270 | "dev": true, 2271 | "requires": { 2272 | "safe-buffer": "~5.1.0" 2273 | } 2274 | }, 2275 | "string-width": { 2276 | "version": "1.0.2", 2277 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2278 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2279 | "dev": true, 2280 | "requires": { 2281 | "code-point-at": "^1.0.0", 2282 | "is-fullwidth-code-point": "^1.0.0", 2283 | "strip-ansi": "^3.0.0" 2284 | } 2285 | }, 2286 | "strip-ansi": { 2287 | "version": "3.0.1", 2288 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2289 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2290 | "dev": true, 2291 | "requires": { 2292 | "ansi-regex": "^2.0.0" 2293 | } 2294 | }, 2295 | "strip-json-comments": { 2296 | "version": "2.0.1", 2297 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2298 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2299 | "dev": true 2300 | }, 2301 | "supports-color": { 2302 | "version": "5.5.0", 2303 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2304 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2305 | "dev": true, 2306 | "requires": { 2307 | "has-flag": "^3.0.0" 2308 | } 2309 | }, 2310 | "tar-fs": { 2311 | "version": "2.1.3", 2312 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", 2313 | "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", 2314 | "dev": true, 2315 | "requires": { 2316 | "chownr": "^1.1.1", 2317 | "mkdirp-classic": "^0.5.2", 2318 | "pump": "^3.0.0", 2319 | "tar-stream": "^2.1.4" 2320 | } 2321 | }, 2322 | "tar-stream": { 2323 | "version": "2.2.0", 2324 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 2325 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 2326 | "dev": true, 2327 | "requires": { 2328 | "bl": "^4.0.3", 2329 | "end-of-stream": "^1.4.1", 2330 | "fs-constants": "^1.0.0", 2331 | "inherits": "^2.0.3", 2332 | "readable-stream": "^3.1.1" 2333 | }, 2334 | "dependencies": { 2335 | "readable-stream": { 2336 | "version": "3.6.0", 2337 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 2338 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 2339 | "dev": true, 2340 | "requires": { 2341 | "inherits": "^2.0.3", 2342 | "string_decoder": "^1.1.1", 2343 | "util-deprecate": "^1.0.1" 2344 | } 2345 | } 2346 | } 2347 | }, 2348 | "tinycolor2": { 2349 | "version": "1.6.0", 2350 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", 2351 | "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", 2352 | "dev": true 2353 | }, 2354 | "tmp": { 2355 | "version": "0.2.1", 2356 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 2357 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 2358 | "dev": true, 2359 | "requires": { 2360 | "rimraf": "^3.0.0" 2361 | } 2362 | }, 2363 | "tslib": { 2364 | "version": "2.3.0", 2365 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", 2366 | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", 2367 | "dev": true 2368 | }, 2369 | "tunnel": { 2370 | "version": "0.0.6", 2371 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", 2372 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", 2373 | "dev": true 2374 | }, 2375 | "tunnel-agent": { 2376 | "version": "0.6.0", 2377 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2378 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2379 | "dev": true, 2380 | "requires": { 2381 | "safe-buffer": "^5.0.1" 2382 | } 2383 | }, 2384 | "typed-rest-client": { 2385 | "version": "1.8.4", 2386 | "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", 2387 | "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", 2388 | "dev": true, 2389 | "requires": { 2390 | "qs": "^6.9.1", 2391 | "tunnel": "0.0.6", 2392 | "underscore": "^1.12.1" 2393 | } 2394 | }, 2395 | "uc.micro": { 2396 | "version": "1.0.6", 2397 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", 2398 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", 2399 | "dev": true 2400 | }, 2401 | "underscore": { 2402 | "version": "1.13.1", 2403 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", 2404 | "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", 2405 | "dev": true 2406 | }, 2407 | "url-join": { 2408 | "version": "4.0.1", 2409 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", 2410 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", 2411 | "dev": true 2412 | }, 2413 | "util-deprecate": { 2414 | "version": "1.0.2", 2415 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2416 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2417 | "dev": true 2418 | }, 2419 | "vsce": { 2420 | "version": "2.15.0", 2421 | "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", 2422 | "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", 2423 | "dev": true, 2424 | "requires": { 2425 | "azure-devops-node-api": "^11.0.1", 2426 | "chalk": "^2.4.2", 2427 | "cheerio": "^1.0.0-rc.9", 2428 | "commander": "^6.1.0", 2429 | "glob": "^7.0.6", 2430 | "hosted-git-info": "^4.0.2", 2431 | "keytar": "^7.7.0", 2432 | "leven": "^3.1.0", 2433 | "markdown-it": "^12.3.2", 2434 | "mime": "^1.3.4", 2435 | "minimatch": "^3.0.3", 2436 | "parse-semver": "^1.1.1", 2437 | "read": "^1.0.7", 2438 | "semver": "^5.1.0", 2439 | "tmp": "^0.2.1", 2440 | "typed-rest-client": "^1.8.4", 2441 | "url-join": "^4.0.1", 2442 | "xml2js": "^0.4.23", 2443 | "yauzl": "^2.3.1", 2444 | "yazl": "^2.2.2" 2445 | } 2446 | }, 2447 | "wide-align": { 2448 | "version": "1.1.5", 2449 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 2450 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 2451 | "dev": true, 2452 | "requires": { 2453 | "string-width": "^1.0.2 || 2 || 3 || 4" 2454 | } 2455 | }, 2456 | "wrappy": { 2457 | "version": "1.0.2", 2458 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2459 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2460 | "dev": true 2461 | }, 2462 | "xml2js": { 2463 | "version": "0.4.23", 2464 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", 2465 | "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", 2466 | "dev": true, 2467 | "requires": { 2468 | "sax": ">=0.6.0", 2469 | "xmlbuilder": "~11.0.0" 2470 | } 2471 | }, 2472 | "xmlbuilder": { 2473 | "version": "11.0.1", 2474 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 2475 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 2476 | "dev": true 2477 | }, 2478 | "yallist": { 2479 | "version": "4.0.0", 2480 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2481 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2482 | "dev": true 2483 | }, 2484 | "yauzl": { 2485 | "version": "2.10.0", 2486 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 2487 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 2488 | "dev": true, 2489 | "requires": { 2490 | "buffer-crc32": "~0.2.3", 2491 | "fd-slicer": "~1.1.0" 2492 | } 2493 | }, 2494 | "yazl": { 2495 | "version": "2.5.1", 2496 | "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", 2497 | "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", 2498 | "dev": true, 2499 | "requires": { 2500 | "buffer-crc32": "~0.2.3" 2501 | } 2502 | } 2503 | } 2504 | } 2505 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-dracula", 3 | "version": "2.25.1", 4 | "displayName": "Dracula Theme Official", 5 | "homepage": "https://draculatheme.com/", 6 | "description": "The official Dracula Theme: a dark theme for many editors, shells, and more. 🦇", 7 | "publisher": "dracula-theme", 8 | "license": "MIT", 9 | "scripts": { 10 | "build": "node ./scripts/build.js", 11 | "lint": "node ./scripts/lint.js", 12 | "package": "vsce package -o ./bin/dracula.vsix", 13 | "vscode:prepublish": "npm run build", 14 | "vsce-publish": "vsce publish" 15 | }, 16 | "maintainers": [ 17 | "Derek Sifford", 18 | "Lucas de França (luxonauta)", 19 | "Zeno Rocha" 20 | ], 21 | "contributors": [ 22 | "Krzysztof Wisznarewski", 23 | "Daniel Ramos", 24 | "Eric Jackson", 25 | "Elliott Pogue", 26 | "Ajit Singh", 27 | "Teddy Bradford" 28 | ], 29 | "repository": { 30 | "type": "git", 31 | "url": "https://github.com/dracula/visual-studio-code.git" 32 | }, 33 | "bugs": { 34 | "url": "https://github.com/dracula/visual-studio-code/issues" 35 | }, 36 | "engines": { 37 | "vscode": "^1.13.0" 38 | }, 39 | "categories": [ 40 | "Themes" 41 | ], 42 | "keywords": [ 43 | "dracula", 44 | "dark", 45 | "theme", 46 | "color-theme" 47 | ], 48 | "icon": "icon.png", 49 | "galleryBanner": { 50 | "color": "#3c4557", 51 | "theme": "dark" 52 | }, 53 | "contributes": { 54 | "themes": [ 55 | { 56 | "label": "Dracula Theme", 57 | "uiTheme": "vs-dark", 58 | "path": "./theme/dracula.json" 59 | }, 60 | { 61 | "label": "Dracula Theme Soft", 62 | "uiTheme": "vs-dark", 63 | "path": "./theme/dracula-soft.json" 64 | } 65 | ] 66 | }, 67 | "devDependencies": { 68 | "js-yaml": "^4.1.0", 69 | "prettier": "^3.0.0", 70 | "tinycolor2": "^1.6.0", 71 | "vsce": "^2.15.0" 72 | }, 73 | "__metadata": { 74 | "id": "4e44877c-1c8d-4f9c-ba86-1372d0fbeeb1", 75 | "publisherDisplayName": "Dracula Theme", 76 | "publisherId": "fbb3d024-f8f2-460c-bdb5-99552f6d8c4b" 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dracula/visual-studio-code/8ff210519579f838640bd398b5f05c0dbf75584b/screenshot.png -------------------------------------------------------------------------------- /scripts/build.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const generate = require('./generate'); 4 | 5 | const THEME_DIR = path.join(__dirname, '..', 'theme'); 6 | 7 | if (!fs.existsSync(THEME_DIR)) { 8 | fs.mkdirSync(THEME_DIR); 9 | } 10 | 11 | module.exports = async () => { 12 | const { base, soft } = await generate(); 13 | 14 | return Promise.all([ 15 | fs.promises.writeFile( 16 | path.join(THEME_DIR, 'dracula.json'), 17 | JSON.stringify(base, null, 4) 18 | ), 19 | fs.promises.writeFile( 20 | path.join(THEME_DIR, 'dracula-soft.json'), 21 | JSON.stringify(soft, null, 4) 22 | ), 23 | ]); 24 | }; 25 | 26 | if (require.main === module) { 27 | module.exports(); 28 | } 29 | -------------------------------------------------------------------------------- /scripts/generate.js: -------------------------------------------------------------------------------- 1 | const { readFile } = require('fs').promises; 2 | const { join } = require('path'); 3 | const { Type, DEFAULT_SCHEMA, load } = require('js-yaml'); 4 | const tinycolor = require('tinycolor2'); 5 | 6 | /** 7 | * @typedef {Object} TokenColor - Textmate token color. 8 | * @prop {string} [name] - Optional name. 9 | * @prop {string[]} scope - Array of scopes. 10 | * @prop {Record<'foreground'|'background'|'fontStyle',string|undefined>} settings - Textmate token settings. 11 | * Note: fontStyle is a space-separated list of any of `italic`, `bold`, `underline`. 12 | */ 13 | 14 | /** 15 | * @typedef {Object} Theme - Parsed theme object. 16 | * @prop {Record<'base'|'ansi'|'brightOther'|'other', string[]>} dracula - Dracula color variables. 17 | * @prop {Record} colors - VSCode color mapping. 18 | * @prop {TokenColor[]} tokenColors - Textmate token colors. 19 | */ 20 | 21 | /** 22 | * @typedef {(yamlObj: Theme) => Theme} ThemeTransform 23 | */ 24 | 25 | const withAlphaType = new Type('!alpha', { 26 | kind: 'sequence', 27 | construct: ([hexRGB, alpha]) => hexRGB + alpha, 28 | represent: ([hexRGB, alpha]) => hexRGB + alpha, 29 | }); 30 | 31 | const schema = DEFAULT_SCHEMA.extend([withAlphaType]); 32 | 33 | /** 34 | * Soft variant transform. 35 | * @type {ThemeTransform} 36 | */ 37 | const transformSoft = theme => { 38 | /** @type {Theme} */ 39 | const soft = JSON.parse(JSON.stringify(theme)); 40 | const brightColors = [...soft.dracula.ansi, ...soft.dracula.brightOther]; 41 | for (const key of Object.keys(soft.colors)) { 42 | if (brightColors.includes(soft.colors[key])) { 43 | soft.colors[key] = tinycolor(soft.colors[key]) 44 | .desaturate(20) 45 | .toHexString(); 46 | } 47 | } 48 | soft.tokenColors = soft.tokenColors.map((value) => { 49 | if (brightColors.includes(value.settings.foreground)) { 50 | value.settings.foreground = tinycolor(value.settings.foreground).desaturate(20).toHexString(); 51 | } 52 | return value; 53 | }) 54 | return soft; 55 | }; 56 | 57 | module.exports = async () => { 58 | const yamlFile = await readFile( 59 | join(__dirname, '..', 'src', 'dracula.yml'), 60 | 'utf-8' 61 | ); 62 | 63 | /** @type {Theme} */ 64 | const base = load(yamlFile, { schema }); 65 | 66 | // Remove nulls and other falsey values from colors 67 | for (const key of Object.keys(base.colors)) { 68 | if (!base.colors[key]) { 69 | delete base.colors[key]; 70 | } 71 | } 72 | 73 | return { 74 | base, 75 | soft: transformSoft(base), 76 | }; 77 | }; 78 | -------------------------------------------------------------------------------- /scripts/lint.js: -------------------------------------------------------------------------------- 1 | const https = require('https'); 2 | const generate = require('./generate'); 3 | 4 | const THEME_COLOR_REFERENCE_URL = 5 | 'https://code.visualstudio.com/api/references/theme-color'; 6 | 7 | const NOT_THEME_KEYS = [ 8 | 'workbench.colorCustomizations', 9 | 'editor.tokenColorCustomizations', 10 | ]; 11 | 12 | const get = url => 13 | new Promise((resolve, reject) => { 14 | https.get(url, res => { 15 | let body = ''; 16 | res.setEncoding('utf8'); 17 | res.on('data', data => (body += data)); 18 | res.on('end', () => resolve(body)); 19 | res.on('error', reject); 20 | }); 21 | }); 22 | 23 | async function scrapeThemeAvailableKeys() { 24 | const data = await get(THEME_COLOR_REFERENCE_URL); 25 | 26 | const matches = data.match(new RegExp('.+?', 'g')); 27 | 28 | if (!matches) { 29 | throw new Error( 30 | "Couldn't find any matches with ..., maybe docs have changed?" 31 | ); 32 | } 33 | 34 | return [...matches] 35 | .map(key => key.replace('', '').replace('', '')) 36 | .filter(key => !/ /.test(key)) // Remove if contains spaces 37 | .filter(key => !/#.../.test(key)) // Remove if is a hex color 38 | .filter(key => !/"/.test(key)) // Remove if contains quotes 39 | .filter(key => key.length > 4) // Remove if it's very small 40 | .filter(key => !NOT_THEME_KEYS.includes(key)) // Remove if its in the blacklist 41 | .sort(); 42 | } 43 | 44 | (async () => { 45 | const availableKeys = await scrapeThemeAvailableKeys(); 46 | const { base } = await generate(); 47 | 48 | for (const key of Object.keys(base.colors)) { 49 | if (!availableKeys.includes(key)) { 50 | console.warn(`Unsupported key "${key}", probably deprecated?`); 51 | } 52 | } 53 | 54 | for (const key of availableKeys) { 55 | if (!Object.keys(base.colors).includes(key)) { 56 | console.warn(`Missing key "${key}" in theme`); 57 | } 58 | } 59 | })().catch(console.error); 60 | -------------------------------------------------------------------------------- /src/dracula.yml: -------------------------------------------------------------------------------- 1 | $schema: vscode://schemas/color-theme 2 | name: Dracula 3 | author: Zeno Rocha 4 | maintainers: 5 | - Derek P Sifford 6 | semanticClass: theme.dracula 7 | semanticHighlighting: true 8 | dracula: 9 | base: 10 | - &BG '#282A36' 11 | - &FG '#F8F8F2' 12 | - &SELECTION '#44475A' 13 | - &COMMENT '#6272A4' 14 | - &CYAN '#8BE9FD' 15 | - &GREEN '#50FA7B' 16 | - &ORANGE '#FFB86C' 17 | - &PINK '#FF79C6' 18 | - &PURPLE '#BD93F9' 19 | - &RED '#FF5555' 20 | - &YELLOW '#F1FA8C' 21 | ansi: 22 | - &COLOR0 '#21222C' 23 | - &COLOR1 '#FF5555' 24 | - &COLOR2 '#50FA7B' 25 | - &COLOR3 '#F1FA8C' 26 | - &COLOR4 '#BD93F9' 27 | - &COLOR5 '#FF79C6' 28 | - &COLOR6 '#8BE9FD' 29 | - &COLOR7 '#F8F8F2' 30 | - &COLOR8 '#6272A4' 31 | - &COLOR9 '#FF6E6E' 32 | - &COLOR10 '#69FF94' 33 | - &COLOR11 '#FFFFA5' 34 | - &COLOR12 '#D6ACFF' 35 | - &COLOR13 '#FF92DF' 36 | - &COLOR14 '#A4FFFF' 37 | - &COLOR15 '#FFFFFF' 38 | brightOther: 39 | # Temporary (awaiting fix) 40 | - &TEMP_QUOTES '#E9F284' 41 | - &TEMP_PROPERTY_QUOTES '#8BE9FE' 42 | other: 43 | - &LineHighlight '#44475A75' 44 | - &NonText '#FFFFFF1A' 45 | - &WHITE '#FFFFFF' 46 | - &TAB_DROP_BG '#44475A70' 47 | # UI Variants 48 | - &BGLighter '#424450' 49 | - &BGLight '#343746' # HSV (230 , 25.71, 27.45) 50 | - &BGDark '#21222C' # HSV (234.55, 25 , 17.25) 51 | - &BGDarker '#191A21' # HSV (234.55, 25 , 13 ) 52 | 53 | # User Interface (more info: https://code.visualstudio.com/docs/getstarted/theme-color-reference) 54 | colors: 55 | 56 | # Integrated Terminal Colors 57 | terminal.background: *BG 58 | terminal.foreground: *FG 59 | terminal.ansiBrightBlack: *COLOR8 60 | terminal.ansiBrightRed: *COLOR9 61 | terminal.ansiBrightGreen: *COLOR10 62 | terminal.ansiBrightYellow: *COLOR11 63 | terminal.ansiBrightBlue: *COLOR12 64 | terminal.ansiBrightMagenta: *COLOR13 65 | terminal.ansiBrightCyan: *COLOR14 66 | terminal.ansiBrightWhite: *COLOR15 67 | terminal.ansiBlack: *COLOR0 68 | terminal.ansiRed: *COLOR1 69 | terminal.ansiGreen: *COLOR2 70 | terminal.ansiYellow: *COLOR3 71 | terminal.ansiBlue: *COLOR4 72 | terminal.ansiMagenta: *COLOR5 73 | terminal.ansiCyan: *COLOR6 74 | terminal.ansiWhite: *COLOR7 75 | 76 | # Contrast Colors 77 | contrastBorder: # An extra border around elements to separate them from others for greater contrast 78 | contrastActiveBorder: # An extra border around active elements to separate them from others for greater contrast 79 | 80 | # Base Colors 81 | focusBorder: *COMMENT # Overall border color for focused elements. This color is only used if not overridden by a component 82 | foreground: *FG # Overall foreground color. This color is only used if not overridden by a component 83 | widget.shadow: # Shadow color of widgets such as Find/Replace inside the editor 84 | selection.background: *PURPLE # Background color of text selections in the workbench (for input fields or text areas, does not apply to selections within the editor and the terminal) 85 | errorForeground: *RED # Overall foreground color for error messages (this color is only used if not overridden by a component) 86 | 87 | # Button Control 88 | button.background: *SELECTION # Button background color 89 | button.foreground: *FG # Button foreground color 90 | button.border: # Button border color 91 | button.hoverBackground: # Button background color when hovering 92 | button.secondaryBackground: *BG # Secondary button background color. 93 | button.secondaryForeground: *FG # Secondary button foreground color. 94 | button.secondaryHoverBackground: *BGLight # Secondary button background color when hovering. 95 | 96 | 97 | # Dropdown Control 98 | dropdown.background: *BGLight # Dropdown background 99 | dropdown.border: *BGDarker # Dropdown border 100 | dropdown.foreground: *FG # Dropdown foreground 101 | 102 | # Input Control 103 | input.background: *BG # Input box background 104 | input.foreground: *FG # Input box foreground 105 | input.border: *BGDarker # Input box border 106 | input.placeholderForeground: *COMMENT # Input box foreground color for placeholder text 107 | inputOption.activeBorder: *PURPLE # Border color of activated options in input fields 108 | inputValidation.infoForeground: # Input validation foreground color for information severity 109 | inputValidation.infoBackground: # Input validation background color for information severity 110 | inputValidation.infoBorder: *PINK # Input validation border color for information severity 111 | inputValidation.warningForeground: # Input validation foreground color for warning severity 112 | inputValidation.warningBackground: # Input validation background color for information warning 113 | inputValidation.warningBorder: *ORANGE # Input validation border color for warning severity 114 | inputValidation.errorForeground: # Input validation foreground color for error severity 115 | inputValidation.errorBackground: # Input validation background color for error severity 116 | inputValidation.errorBorder: *RED # Input validation border color for error severity 117 | 118 | # Scroll Bar Control 119 | scrollbar.shadow: # Scroll Bar shadow to indicate that the view is scrolled 120 | scrollbarSlider.activeBackground: # Slider background color when active 121 | scrollbarSlider.background: # Slider background color 122 | scrollbarSlider.hoverBackground: # Slider background color when hovering 123 | 124 | # Badge 125 | badge.foreground: *FG # Badge foreground color 126 | badge.background: *SELECTION # Badge background color 127 | 128 | # Progress Bar 129 | progressBar.background: *PINK # Background color of the progress bar shown for long running operations 130 | 131 | # List & Trees 132 | list.activeSelectionBackground: *SELECTION # List/Tree background color for the selected item when the list/tree is active 133 | list.activeSelectionForeground: *FG # List/Tree foreground color for the selected item when the list/tree is active 134 | list.dropBackground: *SELECTION # List/Tree drag and drop background when moving items around using the mouse 135 | list.focusBackground: *LineHighlight # List/Tree background color for the focused item when the list/tree is active 136 | list.highlightForeground: *CYAN # List/Tree foreground color of the match highlights when searching inside the list/tree 137 | list.hoverBackground: *LineHighlight # List/Tree background when hovering over items using the mouse 138 | list.inactiveSelectionBackground: *LineHighlight # List/Tree background color for the selected item when the list/tree is inactive 139 | list.inactiveSelectionForeground: # List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not 140 | list.warningForeground: *ORANGE # Color of warning decorations in the explorer 141 | list.errorForeground: *RED # Color of error decorations in the explorer 142 | list.hoverForeground: # List/Tree foreground when hovering over items using the mouse 143 | list.focusForeground: # List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not 144 | 145 | # Activity Bar 146 | activityBar.background: *BGLight # Activity Bar background color 147 | activityBar.inactiveForeground: *COMMENT # Activity bar item foreground color when it is inactive 148 | activityBar.dropBackground: # Drag and drop feedback color for the Activity Bar items 149 | activityBar.foreground: *FG # Activity bar foreground color (for example used for the icons) 150 | activityBar.border: # Activity Bar border color with the Side Bar 151 | activityBar.activeBorder: !alpha [*PINK, 80] # Activity Bar indicator color 152 | activityBar.activeBackground: !alpha [*PURPLE, 10] # Activity Bar indicator background color 153 | activityBarBadge.background: *PINK # Activity notification badge background color 154 | activityBarBadge.foreground: *FG # Activity notification badge foreground color 155 | 156 | # Side Bar 157 | sideBar.background: *BGDark # Side Bar background color 158 | sideBar.foreground: # Side Bar foreground color. The Side Bar is the container for views like Explorer and Search 159 | sideBar.border: # Side Bar border color on the side separating the editor 160 | sideBarTitle.foreground: *FG # Side Bar title foreground color 161 | sideBarSectionHeader.background: *BG # Side Bar section header background color 162 | sideBarSectionHeader.foreground: # Side Bar section header foreground color 163 | sideBarSectionHeader.border: *BGDarker # Side bar section header border color 164 | 165 | # Editor Group & Tabs 166 | editorGroup.background: # Background color of an editor group. The background color shows up when dragging editor groups around 167 | editorGroup.border: *PURPLE # Color to separate multiple editor groups from each other 168 | editorGroup.dropBackground: *TAB_DROP_BG # Background color when dragging editors around 169 | editorGroupHeader.noTabsBackground: # Background color of the editor group title header when Tabs are disabled 170 | editorGroupHeader.tabsBackground: *BGDarker # Background color of the Tabs container 171 | editorGroupHeader.tabsBorder: # Border color of the editor group title header when tabs are enabled. Editor groups are the containers of editors 172 | tab.activeBackground: *BG # Active Tab background color 173 | tab.activeForeground: *FG # Active Tab foreground color in an active group 174 | tab.border: *BGDarker # Border to separate Tabs from each other 175 | tab.activeBorderTop: !alpha [*PINK, 80] # A border drawn to the top of the active tab 176 | tab.activeBorder: # A border drawn to the bottom of the active tab 177 | tab.unfocusedActiveBorder: # A border drawn to the bottom of the active tab in an editor group that is not focused 178 | tab.inactiveBackground: *BGDark # Inactive Tab background color 179 | tab.inactiveForeground: *COMMENT # Inactive Tab foreground color in an active group 180 | tab.unfocusedActiveForeground: # Active tab foreground color in an inactive editor group 181 | tab.unfocusedInactiveForeground: # Inactive tab foreground color in an inactive editor group 182 | 183 | # Editor Colors 184 | editor.foreground: *FG 185 | editor.background: *BG 186 | editorLineNumber.foreground: *COMMENT 187 | editorCursor.foreground: 188 | 189 | editor.selectionBackground: *SELECTION # Color of the editor selection 190 | editor.selectionHighlightBackground: *BGLighter # Color for regions with the same content as the selection 191 | editor.inactiveSelectionBackground: # Color of the selection in an inactive editor 192 | editor.foldBackground: !alpha [ *BGDark, 80 ] # Background color for folded ranges 193 | 194 | editor.wordHighlightBackground: !alpha [ *CYAN, 50 ] # Background color of a symbol during read-access, for example when reading a variable 195 | editor.wordHighlightStrongBackground: !alpha [ *GREEN, 50 ] # Background color of a symbol during write-access, for example when writing to a variable 196 | 197 | editor.findMatchBackground: !alpha [ *ORANGE, 80 ] 198 | editor.findMatchHighlightBackground: !alpha [ *WHITE, 40 ] # Color of the other search matches 199 | editor.findRangeHighlightBackground: *LineHighlight # Color the range limiting the search 200 | 201 | editor.hoverHighlightBackground: !alpha [*CYAN, 50] # Highlight below the word for which a hover is shown 202 | 203 | editor.lineHighlightBackground: # Background color for the highlight of line at the cursor position 204 | editor.lineHighlightBorder: *SELECTION # Background color for the border around the line at the cursor position 205 | 206 | editorLink.activeForeground: *CYAN # Color of active links 207 | editor.rangeHighlightBackground: !alpha [ *PURPLE, 15 ] # Background color of highlighted ranges, like by Quick Open and Find features 208 | 209 | editor.snippetTabstopHighlightBackground: *BG # Highlight background color of a snippet tabstop 210 | editor.snippetTabstopHighlightBorder: *COMMENT # Highlight border color of a snippet tabstop 211 | editor.snippetFinalTabstopHighlightBackground: *BG # Highlight background color of the final tabstop of a snippet 212 | editor.snippetFinalTabstopHighlightBorder: *GREEN # Highlight border color of the final tabstop of a snippet 213 | 214 | editorWhitespace.foreground: *NonText # Color of whitespace characters in the editor 215 | editorIndentGuide.background: *NonText # Color of the editor indentation guides 216 | editorIndentGuide.activeBackground: !alpha [ *WHITE, 45] # Color of the active indentation guide 217 | editorRuler.foreground: *NonText # Color of the editor rulers 218 | 219 | editorCodeLens.foreground: *COMMENT # Foreground color of an editor CodeLens 220 | 221 | # NOTE: These are not set because they tend to be highly contested from 222 | # person to person. Thus, setting these is probably better suited 223 | # for workbench.colorCustomizations in User Settings 224 | editorBracketMatch.background: # Background color behind matching brackets 225 | editorBracketMatch.border: # Color for matching brackets boxes 226 | 227 | editorBracketHighlight.foreground1: *FG # Color of first pair of brackets 228 | editorBracketHighlight.foreground2: *PINK # Color of second pair of brackets 229 | editorBracketHighlight.foreground3: *CYAN # Color of third pair of brackets 230 | editorBracketHighlight.foreground4: *GREEN # Color of fourth pair of brackets 231 | editorBracketHighlight.foreground5: *PURPLE # Color of fifth pair of brackets 232 | editorBracketHighlight.foreground6: *ORANGE # Color of sixth pair of brackets 233 | editorBracketHighlight.unexpectedBracket.foreground: *RED # Color of bracket matching error 234 | 235 | editorOverviewRuler.border: *BGDarker # Color of the overview ruler border 236 | editorOverviewRuler.findMatchForeground: 237 | editorOverviewRuler.rangeHighlightForeground: 238 | editorOverviewRuler.selectionHighlightForeground: *ORANGE 239 | editorOverviewRuler.wordHighlightForeground: *CYAN 240 | editorOverviewRuler.wordHighlightStrongForeground: *GREEN 241 | editorOverviewRuler.modifiedForeground: !alpha [ *CYAN, 80 ] 242 | editorOverviewRuler.addedForeground: !alpha [ *GREEN, 80 ] 243 | editorOverviewRuler.deletedForeground: !alpha [ *RED, 80 ] 244 | editorOverviewRuler.errorForeground: !alpha [ *RED, 80 ] 245 | editorOverviewRuler.warningForeground: !alpha [ *ORANGE, 80 ] 246 | editorOverviewRuler.infoForeground: !alpha [ *CYAN, 80 ] 247 | 248 | editorError.foreground: *RED # Foreground color of error squigglies in the editor 249 | editorError.border: # Border color of error squigglies in the editor 250 | editorWarning.foreground: *CYAN # Foreground color of warning squigglies in the editor 251 | editorWarning.border: # Border color of warning squigglies in the editor 252 | 253 | editorGutter.background: # Background color of the editor gutter 254 | editorGutter.modifiedBackground: !alpha [ *CYAN, 80 ] # Editor gutter background color for lines that are modified 255 | editorGutter.addedBackground: !alpha [ *GREEN, 80 ] # Editor gutter background color for lines that are added 256 | editorGutter.deletedBackground: !alpha [ *RED, 80 ] # Editor gutter background color for lines that are deleted 257 | 258 | # Explorer Colors 259 | gitDecoration.modifiedResourceForeground: *CYAN 260 | gitDecoration.deletedResourceForeground: *RED 261 | gitDecoration.untrackedResourceForeground: *GREEN 262 | gitDecoration.ignoredResourceForeground: *COMMENT 263 | gitDecoration.conflictingResourceForeground: *ORANGE 264 | 265 | # Diff Editor Colors 266 | diffEditor.insertedTextBackground: !alpha [ *GREEN, 20 ] # Background color for inserted text 267 | diffEditor.insertedTextBorder: # Outline color for inserted text 268 | diffEditor.removedTextBackground: !alpha [ *RED, 50 ] # Background color for removed text 269 | diffEditor.removedTextBorder: # Outline color for removed text 270 | inlineChat.regionHighlight: *BGLight # Background color for the inline chat diff region 271 | 272 | # Editor Widget Colors 273 | editorWidget.background: *BGDark # Background color of editor widgets, such as Find/Replace 274 | editorWidgetBorder: # Border color of the editor widget unless the widget does not contain a border or defines its own border color 275 | 276 | editorSuggestWidget.background: *BGDark # Background color of the suggestion widget 277 | editorSuggestWidget.border: # Border color of the suggestion widget 278 | editorSuggestWidget.foreground: *FG # Foreground color of the suggestion widget 279 | editorSuggestWidget.highlightForeground: # Color of the match highlights in the suggestion widget 280 | editorSuggestWidget.selectedBackground: *SELECTION # Background color of the selected entry in the suggestion widget 281 | 282 | editorHoverWidget.background: *BG # Background color of the editor hover 283 | editorHoverWidget.border: *COMMENT # Border color of the editor hover 284 | 285 | debugExceptionWidget.background: # Exception widget background color 286 | debugExceptionWidget.border: # Exception widget border color 287 | 288 | editorMarkerNavigation.background: *BGDark # Editor marker navigation widget background 289 | editorMarkerNavigationError.background: # Editor marker navigation widget error color 290 | editorMarkerNavigationWarning.background: # Editor marker navigation widget warning color 291 | 292 | # Peek View Colors 293 | peekView.border: *SELECTION # Color of the peek view borders and arrow 294 | peekViewEditor.background: *BG # Background color of the peek view editor 295 | peekViewEditorGutter.background: # Background color of the gutter in the peek view editor 296 | peekViewEditor.matchHighlightBackground: !alpha [ *YELLOW, 80 ] # Match highlight color in the peek view editor 297 | peekViewResult.background: *BGDark # Background color of the peek view result list 298 | peekViewResult.fileForeground: *FG # Foreground color for file nodes in the peek view result list 299 | peekViewResult.lineForeground: *FG # Foreground color for line nodes in the peek view result list 300 | peekViewResult.matchHighlightBackground: !alpha [ *YELLOW, 80 ] # Match highlight color in the peek view result list 301 | peekViewResult.selectionBackground: *SELECTION # Background color of the selected entry in the peek view result list 302 | peekViewResult.selectionForeground: *FG # Foreground color of the selected entry in the peek view result list 303 | peekViewTitle.background: *BGDarker # Background color of the peek view title area 304 | peekViewTitleDescription.foreground: *COMMENT # Color of the peek view title info 305 | peekViewTitleLabel.foreground: *FG # Color of the peek view title 306 | 307 | # Merge Conflicts 308 | merge.currentHeaderBackground: !alpha [ *GREEN, 90 ] # Current header background in inline merge conflicts 309 | merge.currentContentBackground: # Current content background in inline merge conflicts 310 | merge.incomingHeaderBackground: !alpha [ *PURPLE, 90 ] # Incoming header background in inline merge conflicts 311 | merge.incomingContentBackground: # Incoming content background in inline merge conflicts 312 | merge.border: # Border color on headers and the splitter in inline merge conflicts 313 | editorOverviewRuler.currentContentForeground: *GREEN # Current overview ruler foreground for inline merge conflicts 314 | editorOverviewRuler.incomingContentForeground: *PURPLE # Incoming overview ruler foreground for inline merge conflicts 315 | 316 | # Panel Colors 317 | panel.background: *BG # Panel background color 318 | panel.border: *PURPLE # Panel border color on the top separating to the editor 319 | panelTitle.activeBorder: *PINK # Border color for the active panel title 320 | panelTitle.activeForeground: *FG # Title color for the active panel 321 | panelTitle.inactiveForeground: *COMMENT # Title color for the inactive panel 322 | 323 | # Status Bar Colors 324 | statusBar.background: *BGDarker # Standard Status Bar background color 325 | statusBar.foreground: *FG # Status Bar foreground color 326 | statusBar.debuggingBackground: *RED # Status Bar background color when a program is being debugged 327 | statusBar.debuggingForeground: *BGDarker # Status Bar foreground color when a program is being debugged 328 | statusBar.noFolderBackground: *BGDarker # Status Bar foreground color when no folder is opened 329 | statusBar.noFolderForeground: *FG # Status Bar background color when no folder is opened 330 | statusBarItem.activeBackground: # Status Bar item background color when clicking 331 | statusBarItem.hoverBackground: # Status Bar item background color when hovering 332 | statusBarItem.prominentBackground: *RED # Status Bar prominent items background color. Prominent items stand out from other Status Bar entries to indicate importance 333 | statusBarItem.prominentHoverBackground: *ORANGE # Status Bar prominent items background color when hovering. Prominent items stand out from other Status Bar entries to indicate importance 334 | statusBarItem.remoteForeground: *BG # Background color for the remote indicator on the status bar 335 | statusBarItem.remoteBackground: *PURPLE # Foreground color for the remote indicator on the status bar 336 | statusBar.border: 337 | 338 | # Title Bar Colors (MacOS Only) 339 | titleBar.activeBackground: *BGDark # Title Bar background when the window is active 340 | titleBar.activeForeground: *FG # Title Bar foreground when the window is active 341 | titleBar.inactiveBackground: *BGDarker # Title Bar background when the window is inactive 342 | titleBar.inactiveForeground: *COMMENT # Title Bar foreground when the window is inactive 343 | 344 | # Extensions 345 | extensionButton.prominentForeground: *FG # Extension view button foreground color (for example Install button) 346 | extensionButton.prominentBackground: !alpha [ *GREEN, 90 ] # Extension view button background color 347 | extensionButton.prominentHoverBackground: !alpha [ *GREEN, 60 ] # Extension view button background hover color 348 | 349 | # Quick Picker 350 | pickerGroup.border: *PURPLE # Quick picker (Quick Open) color for grouping borders 351 | pickerGroup.foreground: *CYAN # Quick picker (Quick Open) color for grouping labels 352 | 353 | # Debug 354 | debugToolBar.background: *BGDark # Debug toolbar background color 355 | 356 | # Welcome Page 357 | welcomePage.buttonBackground: # Background color for the buttons on the Welcome page 358 | welcomePage.buttonHoverBackground: # Hover background color for the buttons on the Welcome page 359 | walkThrough.embeddedEditorBackground: *BGDark # Background color for the embedded editors on the Interactive Playground 360 | 361 | # Setting Editor 362 | settings.headerForeground: *FG # The foreground color for a section header or active title 363 | settings.modifiedItemIndicator: *ORANGE # The color of the line that indicates a modified setting 364 | settings.inactiveSelectedItemBorder: # The color of the selected setting row border, when the settings list does not have focus 365 | settings.dropdownBackground: *BGDark # Dropdown background 366 | settings.dropdownForeground: *FG # Dropdown foreground 367 | settings.dropdownBorder: *BGDarker # Dropdown border 368 | settings.checkboxBackground: *BGDark # Checkbox background 369 | settings.checkboxForeground: *FG # Checkbox foreground 370 | settings.checkboxBorder: *BGDarker # Checkbox border 371 | settings.textInputBackground: *BGDark # Text input box background 372 | settings.textInputForeground: *FG # Text input box foreground 373 | settings.textInputBorder: *BGDarker # Text input box border 374 | settings.numberInputBackground: *BGDark # Number input box background 375 | settings.numberInputForeground: *FG # Number input box foreground 376 | settings.numberInputBorder: *BGDarker # Number input box border 377 | 378 | # Breadcrumbs 379 | breadcrumb.foreground: *COMMENT # Color of breadcrumb items 380 | breadcrumb.background: *BG 381 | breadcrumb.focusForeground: *FG # Color of focused breadcrumb items 382 | breadcrumb.activeSelectionForeground: *FG # Color of selected breadcrumb items 383 | breadcrumbPicker.background: *BGDarker # Background color of breadcrumb item picker 384 | 385 | # Misc 386 | menu.separatorBackground: # Color of a separator menu item in menus 387 | listFilterWidget.background: *BGLight # Background color of the type filter widget in lists and trees. 388 | listFilterWidget.outline: *BGLighter # Outline color of the type filter widget in lists and trees. 389 | listFilterWidget.noMatchesOutline: *RED # Outline color of the type filter widget in lists and trees, when there are no matches. 390 | 391 | # Syntaxes 392 | tokenColors: 393 | 394 | # ============================================================================= 395 | # General 396 | # ============================================================================= 397 | 398 | - scope: 399 | - emphasis 400 | settings: 401 | fontStyle: italic 402 | - scope: 403 | - strong 404 | settings: 405 | fontStyle: bold 406 | - scope: 407 | - header 408 | settings: 409 | foreground: *PURPLE 410 | 411 | # Diffs 412 | # ====== 413 | - scope: 414 | - meta.diff 415 | - meta.diff.header 416 | settings: 417 | foreground: *COMMENT 418 | - scope: 419 | - markup.inserted 420 | settings: 421 | foreground: *GREEN 422 | - scope: 423 | - markup.deleted 424 | settings: 425 | foreground: *RED 426 | - scope: 427 | - markup.changed 428 | settings: 429 | foreground: *ORANGE 430 | - scope: 431 | - invalid 432 | settings: 433 | foreground: *RED 434 | fontStyle: underline italic 435 | - scope: 436 | - invalid.deprecated 437 | settings: 438 | foreground: *FG 439 | fontStyle: underline italic 440 | - scope: 441 | - entity.name.filename 442 | settings: 443 | foreground: *YELLOW 444 | - scope: 445 | - markup.error 446 | settings: 447 | foreground: *RED 448 | 449 | # Markdown / RST / Prose 450 | # ====================== 451 | 452 | - name: Underlined markup 453 | scope: 454 | - markup.underline 455 | settings: 456 | fontStyle: underline 457 | 458 | - name: Bold markup 459 | scope: 460 | - markup.bold 461 | settings: 462 | fontStyle: bold 463 | foreground: *ORANGE 464 | 465 | - name: Markup headings 466 | scope: 467 | - markup.heading 468 | settings: 469 | fontStyle: bold 470 | foreground: *PURPLE 471 | 472 | - name: Markup italic 473 | scope: 474 | - markup.italic 475 | settings: 476 | foreground: *YELLOW 477 | fontStyle: italic 478 | 479 | - name: Bullets, lists (prose) 480 | scope: 481 | - beginning.punctuation.definition.list.markdown 482 | - beginning.punctuation.definition.quote.markdown 483 | - punctuation.definition.link.restructuredtext 484 | settings: 485 | foreground: *CYAN 486 | 487 | - name: Inline code (prose) 488 | scope: 489 | - markup.inline.raw 490 | - markup.raw.restructuredtext 491 | settings: 492 | foreground: *GREEN 493 | 494 | - name: Links (prose) 495 | scope: 496 | - markup.underline.link 497 | - markup.underline.link.image 498 | settings: 499 | foreground: *CYAN 500 | 501 | - name: Link text, image alt text (prose) 502 | scope: 503 | - meta.link.reference.def.restructuredtext 504 | - punctuation.definition.directive.restructuredtext 505 | - string.other.link.description 506 | - string.other.link.title 507 | settings: 508 | foreground: *PINK 509 | 510 | - name: Blockquotes (prose) 511 | scope: 512 | - entity.name.directive.restructuredtext 513 | - markup.quote 514 | settings: 515 | foreground: *YELLOW 516 | fontStyle: italic 517 | 518 | - name: Horizontal rule (prose) 519 | scope: 520 | - meta.separator.markdown 521 | settings: 522 | foreground: *COMMENT 523 | 524 | - name: Code blocks 525 | scope: 526 | - fenced_code.block.language 527 | - markup.raw.inner.restructuredtext 528 | - markup.fenced_code.block.markdown punctuation.definition.markdown 529 | settings: 530 | foreground: *GREEN 531 | 532 | - name: Prose constants 533 | scope: 534 | - punctuation.definition.constant.restructuredtext 535 | settings: 536 | foreground: *PURPLE 537 | 538 | - name: Braces in markdown headings 539 | scope: 540 | - markup.heading.markdown punctuation.definition.string.begin 541 | - markup.heading.markdown punctuation.definition.string.end 542 | settings: 543 | foreground: *PURPLE 544 | 545 | - name: Braces in markdown paragraphs 546 | scope: 547 | - meta.paragraph.markdown punctuation.definition.string.begin 548 | - meta.paragraph.markdown punctuation.definition.string.end 549 | settings: 550 | foreground: *FG 551 | 552 | - name: Braces in markdown blockquotes 553 | scope: 554 | - markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin 555 | - markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end 556 | settings: 557 | foreground: *YELLOW 558 | 559 | # ============================================================================= 560 | # Classes 561 | # ============================================================================= 562 | 563 | - name: User-defined class names 564 | scope: 565 | - entity.name.type.class 566 | - entity.name.class 567 | settings: 568 | foreground: *CYAN 569 | fontStyle: normal 570 | 571 | - name: this, super, self, etc. 572 | scope: 573 | - keyword.expressions-and-types.swift 574 | - keyword.other.this 575 | - variable.language 576 | - variable.language punctuation.definition.variable.php # the "$" symbol in $this 577 | - variable.other.readwrite.instance.ruby # ruby's "@" instance symbol 578 | - variable.parameter.function.language.special # Special words as parameters 579 | settings: 580 | foreground: *PURPLE 581 | fontStyle: italic 582 | 583 | - name: Inherited classes 584 | scope: 585 | - entity.other.inherited-class 586 | settings: 587 | fontStyle: italic 588 | foreground: *CYAN 589 | 590 | # ============================================================================= 591 | # Comments 592 | # ============================================================================= 593 | 594 | - name: Comments 595 | scope: 596 | - comment 597 | - punctuation.definition.comment 598 | - unused.comment 599 | - wildcard.comment 600 | settings: 601 | foreground: *COMMENT 602 | 603 | - name: JSDoc-style keywords 604 | scope: 605 | - comment keyword.codetag.notation 606 | - comment.block.documentation keyword 607 | - comment.block.documentation storage.type.class 608 | settings: 609 | foreground: *PINK 610 | 611 | - name: JSDoc-style types 612 | scope: 613 | - comment.block.documentation entity.name.type 614 | settings: 615 | foreground: *CYAN 616 | fontStyle: italic 617 | 618 | - name: JSDoc-style type brackets 619 | scope: 620 | - comment.block.documentation entity.name.type punctuation.definition.bracket 621 | settings: 622 | foreground: *CYAN 623 | 624 | - name: JSDoc-style comment parameters 625 | scope: 626 | - comment.block.documentation variable 627 | settings: 628 | foreground: *ORANGE 629 | fontStyle: italic 630 | 631 | # ============================================================================= 632 | # Constants 633 | # ============================================================================= 634 | 635 | - name: Constants 636 | scope: 637 | - constant 638 | - variable.other.constant 639 | settings: 640 | foreground: *PURPLE 641 | 642 | - name: Constant escape sequences 643 | scope: 644 | - constant.character.escape 645 | - constant.character.string.escape 646 | - constant.regexp 647 | settings: 648 | foreground: *PINK 649 | 650 | # ============================================================================= 651 | # Entities 652 | # ============================================================================= 653 | 654 | - name: HTML tags 655 | scope: 656 | - entity.name.tag 657 | settings: 658 | foreground: *PINK 659 | 660 | - name: CSS attribute parent selectors ('&') 661 | scope: 662 | - entity.other.attribute-name.parent-selector 663 | settings: 664 | foreground: *PINK 665 | 666 | - name: HTML/CSS attribute names 667 | scope: 668 | - entity.other.attribute-name 669 | settings: 670 | foreground: *GREEN 671 | fontStyle: italic 672 | 673 | # ============================================================================= 674 | # Functions/Methods 675 | # ============================================================================= 676 | 677 | - name: Function names 678 | scope: 679 | - entity.name.function 680 | - meta.function-call.object 681 | - meta.function-call.php 682 | - meta.function-call.static 683 | - meta.method-call.java meta.method 684 | - meta.method.groovy 685 | - support.function.any-method.lua 686 | - keyword.operator.function.infix 687 | settings: 688 | foreground: *GREEN 689 | 690 | - name: Function parameters 691 | scope: 692 | - entity.name.variable.parameter 693 | - meta.at-rule.function variable # Sass function params 694 | - meta.at-rule.mixin variable # Sass mixin params 695 | - meta.function.arguments variable.other.php 696 | - meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql 697 | - variable.parameter 698 | settings: 699 | fontStyle: italic 700 | foreground: *ORANGE 701 | 702 | - name: Decorators 703 | scope: 704 | - meta.decorator variable.other.readwrite 705 | - meta.decorator variable.other.property 706 | settings: 707 | foreground: *GREEN 708 | fontStyle: italic 709 | 710 | - name: Decorator Objects 711 | scope: 712 | - meta.decorator variable.other.object 713 | settings: 714 | foreground: *GREEN 715 | 716 | # ============================================================================= 717 | # Keywords 718 | # ============================================================================= 719 | 720 | - name: Keywords 721 | scope: 722 | - keyword 723 | - punctuation.definition.keyword 724 | settings: 725 | foreground: *PINK 726 | 727 | - name: Keyword "new" 728 | scope: 729 | - keyword.control.new 730 | - keyword.operator.new 731 | settings: 732 | fontStyle: bold 733 | 734 | - name: Generic selectors (CSS/SCSS/Less/Stylus) 735 | scope: 736 | - meta.selector 737 | settings: 738 | foreground: *PINK 739 | 740 | # ============================================================================= 741 | # Language Built-ins 742 | # ============================================================================= 743 | 744 | - name: Language Built-ins 745 | scope: 746 | - support 747 | settings: 748 | fontStyle: italic 749 | foreground: *CYAN 750 | 751 | - name: Built-in magic functions and constants 752 | scope: 753 | - support.function.magic 754 | - support.variable 755 | - variable.other.predefined 756 | settings: 757 | fontStyle: regular 758 | foreground: *PURPLE 759 | 760 | - name: Built-in functions / properties 761 | scope: 762 | - support.function 763 | - support.type.property-name 764 | settings: 765 | fontStyle: regular 766 | 767 | # ============================================================================= 768 | # Punctuation 769 | # ============================================================================= 770 | 771 | - name: Separators (key/value, namespace, inheritance, pointer, hash, slice, etc) 772 | scope: 773 | - constant.other.symbol.hashkey punctuation.definition.constant.ruby 774 | - entity.other.attribute-name.placeholder punctuation # Sass placeholder `%` symbols 775 | - entity.other.attribute-name.pseudo-class punctuation 776 | - entity.other.attribute-name.pseudo-element punctuation 777 | - meta.group.double.toml 778 | - meta.group.toml 779 | - meta.object-binding-pattern-variable punctuation.destructuring 780 | - punctuation.colon.graphql 781 | - punctuation.definition.block.scalar.folded.yaml 782 | - punctuation.definition.block.scalar.literal.yaml 783 | - punctuation.definition.block.sequence.item.yaml 784 | - punctuation.definition.entity.other.inherited-class 785 | - punctuation.function.swift 786 | - punctuation.separator.dictionary.key-value 787 | - punctuation.separator.hash 788 | - punctuation.separator.inheritance 789 | - punctuation.separator.key-value 790 | - punctuation.separator.key-value.mapping.yaml 791 | - punctuation.separator.namespace 792 | - punctuation.separator.pointer-access 793 | - punctuation.separator.slice 794 | - string.unquoted.heredoc punctuation.definition.string 795 | - support.other.chomping-indicator.yaml 796 | - punctuation.separator.annotation 797 | settings: 798 | foreground: *PINK 799 | 800 | - name: Brackets, braces, parens, etc. 801 | scope: 802 | - keyword.operator.other.powershell # Commas 803 | - keyword.other.statement-separator.powershell 804 | - meta.brace.round 805 | - meta.function-call punctuation 806 | - punctuation.definition.arguments.begin 807 | - punctuation.definition.arguments.end 808 | - punctuation.definition.entity.begin 809 | - punctuation.definition.entity.end 810 | - punctuation.definition.tag.cs # HTML tags in comments 811 | - punctuation.definition.type.begin 812 | - punctuation.definition.type.end 813 | - punctuation.section.scope.begin 814 | - punctuation.section.scope.end 815 | - punctuation.terminator.expression.php 816 | - storage.type.generic.java 817 | - string.template meta.brace 818 | - string.template punctuation.accessor 819 | settings: 820 | foreground: *FG 821 | 822 | - name: Variable interpolation operators 823 | scope: 824 | - meta.string-contents.quoted.double punctuation.definition.variable 825 | - punctuation.definition.interpolation.begin 826 | - punctuation.definition.interpolation.end 827 | - punctuation.definition.template-expression.begin 828 | - punctuation.definition.template-expression.end 829 | - punctuation.section.embedded.begin 830 | - punctuation.section.embedded.coffee 831 | - punctuation.section.embedded.end 832 | - punctuation.section.embedded.end source.php # PHP edge case 833 | - punctuation.section.embedded.end source.ruby # Issue with ruby's tmLanguage 834 | - punctuation.definition.variable.makefile 835 | settings: 836 | foreground: *PINK 837 | 838 | # ============================================================================= 839 | # Serializable / Config Langages 840 | # ============================================================================= 841 | 842 | - name: Keys (serializable languages) 843 | scope: 844 | - entity.name.function.target.makefile 845 | - entity.name.section.toml 846 | - entity.name.tag.yaml 847 | - variable.other.key.toml 848 | settings: 849 | foreground: *CYAN 850 | 851 | - name: Dates / timestamps (serializable languages) 852 | scope: 853 | - constant.other.date 854 | - constant.other.timestamp 855 | settings: 856 | foreground: *ORANGE 857 | 858 | - name: YAML aliases 859 | scope: 860 | - variable.other.alias.yaml 861 | settings: 862 | fontStyle: italic underline 863 | foreground: *GREEN 864 | 865 | # ============================================================================= 866 | # Storage 867 | # ============================================================================= 868 | 869 | - name: Storage 870 | scope: 871 | - storage 872 | - meta.implementation storage.type.objc 873 | - meta.interface-or-protocol storage.type.objc 874 | - source.groovy storage.type.def 875 | settings: 876 | fontStyle: regular 877 | foreground: *PINK 878 | 879 | - name: Types 880 | scope: 881 | - entity.name.type 882 | - keyword.primitive-datatypes.swift 883 | - keyword.type.cs 884 | - meta.protocol-list.objc 885 | - meta.return-type.objc 886 | - source.go storage.type 887 | - source.groovy storage.type 888 | - source.java storage.type 889 | - source.powershell entity.other.attribute-name 890 | - storage.class.std.rust 891 | - storage.type.attribute.swift 892 | - storage.type.c 893 | - storage.type.core.rust 894 | - storage.type.cs 895 | - storage.type.groovy 896 | - storage.type.objc 897 | - storage.type.php 898 | - storage.type.haskell 899 | - storage.type.ocaml 900 | settings: 901 | fontStyle: italic 902 | foreground: *CYAN 903 | 904 | - name: Generics, templates, and mapped type declarations 905 | scope: 906 | - entity.name.type.type-parameter 907 | - meta.indexer.mappedtype.declaration entity.name.type # Mapped type declarations 908 | - meta.type.parameters entity.name.type # Generic type declarations 909 | settings: 910 | foreground: *ORANGE 911 | 912 | - name: Modifiers 913 | scope: 914 | - storage.modifier 915 | settings: 916 | foreground: *PINK 917 | 918 | # ============================================================================= 919 | # RegExp 920 | # ============================================================================= 921 | 922 | - name: RegExp string 923 | scope: 924 | - string.regexp 925 | - constant.other.character-class.set.regexp 926 | - constant.character.escape.backslash.regexp 927 | settings: 928 | foreground: *YELLOW 929 | 930 | - name: Non-capture operators 931 | scope: 932 | # NOTE: The scope name is a misnomer. It is actually non-capture operators 933 | - punctuation.definition.group.capture.regexp 934 | settings: 935 | foreground: *PINK 936 | 937 | - name: RegExp start and end characters 938 | scope: 939 | - string.regexp punctuation.definition.string.begin 940 | - string.regexp punctuation.definition.string.end 941 | settings: 942 | foreground: *RED 943 | 944 | - name: Character group 945 | scope: 946 | - punctuation.definition.character-class.regexp 947 | settings: 948 | foreground: *CYAN 949 | 950 | - name: Capture groups 951 | scope: 952 | - punctuation.definition.group.regexp 953 | settings: 954 | foreground: *ORANGE 955 | 956 | - name: Assertion operators 957 | scope: 958 | - punctuation.definition.group.assertion.regexp 959 | - keyword.operator.negation.regexp 960 | settings: 961 | foreground: *RED 962 | 963 | - name: Positive lookaheads 964 | scope: 965 | - meta.assertion.look-ahead.regexp 966 | settings: 967 | foreground: *GREEN 968 | 969 | 970 | # ============================================================================= 971 | # Strings 972 | # ============================================================================= 973 | 974 | - name: Strings 975 | scope: 976 | - string 977 | settings: 978 | foreground: *YELLOW 979 | 980 | - name: String quotes (temporary vscode fix) 981 | scope: 982 | # NOTE: This is a temporary fix for VSCode expand selection. 983 | # See (https://github.com/Microsoft/vscode/issues/4795) 984 | - punctuation.definition.string.begin 985 | - punctuation.definition.string.end 986 | settings: 987 | foreground: *TEMP_QUOTES 988 | 989 | - name: Property quotes (temporary vscode fix) 990 | scope: 991 | # NOTE: Same as above 992 | - punctuation.support.type.property-name.begin 993 | - punctuation.support.type.property-name.end 994 | settings: 995 | foreground: *TEMP_PROPERTY_QUOTES 996 | 997 | - name: Docstrings 998 | scope: 999 | - string.quoted.docstring.multi 1000 | - string.quoted.docstring.multi.python punctuation.definition.string.begin 1001 | - string.quoted.docstring.multi.python punctuation.definition.string.end 1002 | - string.quoted.docstring.multi.python constant.character.escape 1003 | settings: 1004 | foreground: *COMMENT 1005 | 1006 | # ============================================================================= 1007 | # Variables 1008 | # ============================================================================= 1009 | 1010 | - name: Variables and object properties 1011 | scope: 1012 | - variable 1013 | - constant.other.key.perl # Perl edge case 1014 | - support.variable.property # Object properties 1015 | - variable.other.constant.js # Fix incorrect highlighting of pseudo-constants in js, jsx 1016 | - variable.other.constant.ts # Fixes incorrect highlighting of pseudo-constants in ts 1017 | - variable.other.constant.tsx # Fixes incorrect highlighting of pseudo-constants in tsx 1018 | settings: 1019 | foreground: *FG 1020 | 1021 | - name: Destructuring / aliasing reference name (LHS) 1022 | scope: 1023 | - meta.import variable.other.readwrite # Module import aliasing (real name) 1024 | - meta.variable.assignment.destructured.object.coffee variable # Object destructuring property (coffeescript) 1025 | settings: 1026 | fontStyle: italic 1027 | foreground: *ORANGE 1028 | 1029 | - name: Destructuring / aliasing variable name (RHS) 1030 | scope: 1031 | - meta.import variable.other.readwrite.alias # Module import aliasing (alias name) 1032 | - meta.export variable.other.readwrite.alias # Module import aliasing (alias name) 1033 | - meta.variable.assignment.destructured.object.coffee variable variable # Object destructuring variable (coffeescript) 1034 | settings: 1035 | fontStyle: normal 1036 | foreground: *FG 1037 | 1038 | # ============================================================================= 1039 | # Language Extensions / Edge Cases 1040 | # ============================================================================= 1041 | 1042 | # GraphQL 1043 | # ======= 1044 | - name: GraphQL keys 1045 | scope: 1046 | - meta.selectionset.graphql variable 1047 | settings: 1048 | foreground: *YELLOW 1049 | 1050 | - name: GraphQL function arguments 1051 | scope: 1052 | - meta.selectionset.graphql meta.arguments variable 1053 | settings: 1054 | foreground: *FG 1055 | 1056 | - name: GraphQL fragment name (definition) 1057 | scope: 1058 | - entity.name.fragment.graphql 1059 | - variable.fragment.graphql 1060 | settings: 1061 | foreground: *CYAN 1062 | 1063 | # Edge Cases 1064 | # ========== 1065 | - name: Edge cases (foreground color resets) 1066 | scope: 1067 | - constant.other.symbol.hashkey.ruby # Ruby hash keys 1068 | - keyword.operator.dereference.java # Java dot access 1069 | - keyword.operator.navigation.groovy # groovy dot access 1070 | - meta.scope.for-loop.shell punctuation.definition.string.begin 1071 | - meta.scope.for-loop.shell punctuation.definition.string.end 1072 | - meta.scope.for-loop.shell string 1073 | - storage.modifier.import # Java / Groovy imports 1074 | - punctuation.section.embedded.begin.tsx 1075 | - punctuation.section.embedded.end.tsx 1076 | - punctuation.section.embedded.begin.jsx 1077 | - punctuation.section.embedded.end.jsx 1078 | - punctuation.separator.list.comma.css # Commas separating selectors in CSS 1079 | - constant.language.empty-list.haskell 1080 | settings: 1081 | foreground: *FG 1082 | 1083 | # This is set to conform to the standard of coloring langage constants purple. 1084 | # In this case, this colors "$?", "$@", "$*", "$1", etc.. 1085 | - name: Shell variables prefixed with "$" (edge case) 1086 | scope: 1087 | - source.shell variable.other 1088 | settings: 1089 | foreground: *PURPLE 1090 | 1091 | - name: Powershell constants mistakenly scoped to `support`, rather than `constant` (edge) 1092 | scope: 1093 | - support.constant 1094 | settings: 1095 | fontStyle: normal 1096 | foreground: *PURPLE 1097 | 1098 | - name: Makefile prerequisite names 1099 | scope: 1100 | - meta.scope.prerequisites.makefile 1101 | settings: 1102 | foreground: *YELLOW 1103 | 1104 | - name: SCSS attibute selector strings 1105 | scope: 1106 | - meta.attribute-selector.scss 1107 | settings: 1108 | foreground: *YELLOW 1109 | 1110 | - name: SCSS attribute selector brackets 1111 | scope: 1112 | - punctuation.definition.attribute-selector.end.bracket.square.scss 1113 | - punctuation.definition.attribute-selector.begin.bracket.square.scss 1114 | settings: 1115 | foreground: *FG 1116 | 1117 | - name: Haskell Pragmas 1118 | scope: 1119 | - meta.preprocessor.haskell 1120 | settings: 1121 | foreground: *COMMENT 1122 | 1123 | - name: Log file error 1124 | scope: 1125 | - log.error 1126 | settings: 1127 | foreground: *RED 1128 | fontStyle: bold 1129 | 1130 | - name: Log file warning 1131 | scope: 1132 | - log.warning 1133 | settings: 1134 | foreground: *YELLOW 1135 | fontStyle: bold --------------------------------------------------------------------------------