├── .github
└── FUNDING.yml
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
├── settings.json
└── tasks.json
├── .vscodeignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── _config.yml
├── docker-compose.yml
├── media
├── gitea-issues.png
└── issue.svg
├── package-lock.json
├── package.json
├── resources
├── bug.svg
├── dark
│ ├── create.svg
│ ├── issue.svg
│ └── refresh.svg
├── feature.svg
├── icon-highres.png
├── icon.png
└── light
│ ├── create.svg
│ ├── issue.svg
│ └── refresh.svg
├── src
├── IGiteaResponse.ts
├── config.ts
├── extension.ts
├── giteaConnector.ts
├── issue.ts
├── issueProvider.ts
├── logger.ts
└── template.issues.ts
├── tsconfig.json
├── tslint.json
└── vsc-extension-quickstart.md
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: ijustdev
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | # *.vsix
5 | .gitea/
6 | gitea/
7 | mysql/
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "yzhang.markdown-all-in-one",
6 | "dbaeumer.vscode-eslint",
7 | "ms-vscode.vscode-typescript-next"
8 | ]
9 | }
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off",
11 | "editor.detectIndentation": false,
12 | "prettier.tabWidth": 2,
13 | "prettier.singleQuote": true
14 | }
15 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to the "gitea-vscode" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [0.0.2] - 2019-04-10
8 | ### Added:
9 | - Configfile with token and repo properties
10 | - Refresh button (Await HTTP Request)
11 | - Multiple Pages
12 | ### Removed:
13 | - Interval for updating
14 |
15 | ## [0.0.3] - 2019-04-10
16 | ### Added:
17 | - Implemented [Create issue icon](./resources/dark/create.svg)
18 | - Interval for updating (Issuelist now gets updated every ten minutes)
19 | - Closed Issues View
20 | - SSL server support
21 | - License
22 | ### Refactored:
23 | - [IssueProvider](./src/issueProvider.ts) splitted up in two parts: OpenIssuesProvider and ClosedIssuesProvider
24 | - class Issue is now in [issue.ts](./src/issue.ts)
25 | - organizing imports
26 | - renaming
27 |
28 | ## [0.0.4] - 2019-04-11
29 | ### Fixed:
30 | - [Issue 1][1] - `\n` is now represented as ´ ´-tag
31 | - [Issue 2][2] - Markdown is now represented as HTML
32 |
33 | ## [0.0.5] - 2019-04-12
34 | ### Added:
35 | - Child items to root items. Collapsable item now shows assignee, state, id and list all labels from the issue
36 | - Label dependent icons
37 | ### Refactored:
38 | - Created two methods that are used in both classes (the closed and the open issues provider)
39 |
40 | ## [0.0.6] - 2019-04-12
41 | ### Added:
42 | - Label dependent icons now allow the user to use the colors from the Gitea server
43 |
44 | ## [0.0.7] - 2019-06-14
45 | ### Added:
46 | - Every issue can now be opened just once at a time
47 | - Repo settings moved to workspace settings
48 | - Token setting moved to user settings
49 | ### Refactored:
50 | - Removed "filename" from `issue.ts` `labelDependentIcon()`
51 | - Cleaning files up
52 |
53 | ## [0.0.8] - 2019-07-29
54 | ### Added:
55 | - Icon for marketplace
56 | - ReadMe Icon and styling
57 | ### Removed:
58 | - InitRepo Command
59 | ### Refactored:
60 | - Changelog
61 |
62 | ## [0.0.9] - 2019-07-31
63 | ### Added:
64 | - Multiple gitea instances are now possible. The key is now stored in the workspace settings
65 | - BuyMeACoffeBadge ReadMe
66 |
67 | ## [1.0.0] - 2019-07-31
68 | ### Added:
69 | - Emojis in treeview
70 |
71 | ## [1.0.1] - 2020-08-02
72 | ### Added:
73 | - Port settings
74 |
75 | ## [1.2.0] - 2020-12-26
76 | ### Added:
77 | - feat: [#21][21]: introduce baseURL for Gitea instances.
78 |
79 | ## [1.2.1] - 2020-12-31
80 | ### Added:
81 | - fix: [#21][21] missing '/'
82 | ### Removed:
83 | - versions folder
84 |
85 | ## [Unreleased]
86 |
87 | [1]: https://github.com/IJustDev/Gitea-VSCode/issues/1
88 | [2]: https://github.com/IJustDev/Gitea-VSCode/issues/2
89 | [21]: https://github.com/IJustDev/Gitea-VSCode/issues/21
90 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | When contributing to this repository, please first discuss the change you wish to make via issue,
4 | email, or any other method with the owners of this repository before making a change.
5 |
6 | Please note we have a code of conduct, please follow it in all your interactions with the project.
7 |
8 | ## Pull Request Process
9 |
10 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a
11 | build.
12 | 2. Update the README.md with details of changes to the interface, this includes new environment
13 | variables, exposed ports, useful file locations and container parameters.
14 | 3. Increase the version numbers in any examples files and the README.md to the new version that this
15 | Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
16 | 4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
17 | do not have permission to do that, you may request the second reviewer to merge it for you.
18 |
19 | ## Code of Conduct
20 |
21 | ### Our Pledge
22 |
23 | In the interest of fostering an open and welcoming environment, we as
24 | contributors and maintainers pledge to making participation in our project and
25 | our community a harassment-free experience for everyone, regardless of age, body
26 | size, disability, ethnicity, gender identity and expression, level of experience,
27 | nationality, personal appearance, race, religion, or sexual identity and
28 | orientation.
29 |
30 | ### Our Standards
31 |
32 | Examples of behavior that contributes to creating a positive environment
33 | include:
34 |
35 | * Using welcoming and inclusive language
36 | * Being respectful of differing viewpoints and experiences
37 | * Gracefully accepting constructive criticism
38 | * Focusing on what is best for the community
39 | * Showing empathy towards other community members
40 |
41 | Examples of unacceptable behavior by participants include:
42 |
43 | * The use of sexualized language or imagery and unwelcome sexual attention or
44 | advances
45 | * Trolling, insulting/derogatory comments, and personal or political attacks
46 | * Public or private harassment
47 | * Publishing others' private information, such as a physical or electronic
48 | address, without explicit permission
49 | * Other conduct which could reasonably be considered inappropriate in a
50 | professional setting
51 |
52 | ### Our Responsibilities
53 |
54 | Project maintainers are responsible for clarifying the standards of acceptable
55 | behavior and are expected to take appropriate and fair corrective action in
56 | response to any instances of unacceptable behavior.
57 |
58 | Project maintainers have the right and responsibility to remove, edit, or
59 | reject comments, commits, code, wiki edits, issues, and other contributions
60 | that are not aligned to this Code of Conduct, or to ban temporarily or
61 | permanently any contributor for other behaviors that they deem inappropriate,
62 | threatening, offensive, or harmful.
63 |
64 | ### Scope
65 |
66 | This Code of Conduct applies both within project spaces and in public spaces
67 | when an individual is representing the project or its community. Examples of
68 | representing a project or community include using an official project e-mail
69 | address, posting via an official social media account, or acting as an appointed
70 | representative at an online or offline event. Representation of a project may be
71 | further defined and clarified by project maintainers.
72 |
73 | ### Enforcement
74 |
75 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
76 | reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
77 | complaints will be reviewed and investigated and will result in a response that
78 | is deemed necessary and appropriate to the circumstances. The project team is
79 | obligated to maintain confidentiality with regard to the reporter of an incident.
80 | Further details of specific enforcement policies may be posted separately.
81 |
82 | Project maintainers who do not follow or enforce the Code of Conduct in good
83 | faith may face temporary or permanent repercussions as determined by other
84 | members of the project's leadership.
85 |
86 | ### Attribution
87 |
88 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
89 | available at [http://contributor-covenant.org/version/1/4][version]
90 |
91 | [homepage]: http://contributor-covenant.org
92 | [version]: http://contributor-covenant.org/version/1/4/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Panov Alexander
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Gitea-VSCode
5 |
Issuetracker for Gitea
6 |
7 |
8 |
9 |
10 | 
11 | 
12 | 
13 | [](https://gitter.im/Gitea-VSCode/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
14 |
15 |
16 |
17 | ## Overview
18 | Gitea-VSCode is an Visual Studio Code extension that allows you to manage (currently only view) your issues.
19 |
20 | ## Support
21 |
22 |
23 | ## Getting Started
24 |
25 | Go to your settings, and find the `Gitea` section, and fill out the details.
26 |
27 | Please make sure not to make your authtoken public, as it can be used to act on your behalf.
28 | Keep instance key `"gitea.token"` in [user settings](https://vscode.readthedocs.io/en/latest/getstarted/settings/) other section keys keep in `.vscode/settings.json`.
29 | Otherwise do not push the .vscode folder to your repository and doublecheck this part. It contains your gitea server instance key.
30 |
31 | ### Config example
32 |
33 | - go to `https://%YOUR_GITEA_SERVER/user/settings/applications` and `Generate Token`
34 | - fill `,"gitea.token": "%YOUR_KEY%"` in VS code user settings in following locations:
35 | - Win %APPDATA%\Code\User\settings.json
36 | - Mac $HOME/Library/Application Support/Code/User/settings.json
37 | - Linux $HOME/.config/Code/User/settings.json
38 | - fill in `.vscode/settings.json`
39 | ```
40 | , "gitea.instanceURL": "%YOUR_GITEA_SERVER%"
41 | , "gitea.owner": "%OWNER%"
42 | , "gitea.repo": "%REPO_NAME%"
43 | ```
44 |
45 | ### The following details are needed
46 |
47 | - Authtoken
48 | - Port (either 80 or 443) in case that you use docker please enter the exposed port
49 | - BaseURL (default to "") in case you have your instance reachable on a suburl.
50 | - Domain in format: "example.com"
51 | - Repository owner (may be an organisation): "TestOrganisation"
52 | - Repository name "ExampleRepository"
53 |
54 | When you've finished you can press the refresh button in the open issues section and you'll see the issues of the first 10 pages (only open issues).
55 |
56 | ## Issue colors
57 |
58 | 
59 |
60 | In order to get nice looking issue icons in multiple colors (of your choice) you just need to assign a label to your issue. The color is being fetched automatically. In most cases you need to restart visual studio code to apply the icons in the issues tab if you've changed them though.
61 |
62 | ## Contributing
63 | Please refer to each project's style and [contribution guidelines](CONTRIBUTING.md) for submitting patches and additions. In general, we follow the "fork-and-pull" Git workflow.
64 |
65 | 1. **Fork** the repo on GitHub
66 | 2. **Clone** the project to your own machine
67 | 3. **Commit** changes to your own branch
68 | 4. **Push** your work back up to your fork
69 | 5. Submit a **Pull request** so that we can review your changes
70 |
71 | NOTE: Be sure to merge the latest from "upstream" before making a pull request!
72 |
73 | ## Roadmap
74 |
75 | - Implement a `Close Issue` Button
76 | - Create Issues via Webview
77 | - `Comment` Issues
78 | - Support multiple git servers
79 |
80 |
81 | [logo]: resources/icon.png
82 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-slate
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | networks:
4 | gitea:
5 | external: false
6 |
7 | services:
8 | db:
9 | image: mysql:5.7
10 | restart: always
11 | environment:
12 | - MYSQL_ROOT_PASSWORD=gitea
13 | - MYSQL_USER=gitea
14 | - MYSQL_PASSWORD=gitea
15 | - MYSQL_DATABASE=gitea
16 | networks:
17 | - gitea
18 | volumes:
19 | - ./mysql:/var/lib/mysql
20 | server:
21 | image: gitea/gitea:1.13.3
22 | container_name: gitea
23 | environment:
24 | - USER_UID=1000
25 | - USER_GID=1000
26 | - DB_TYPE=mysql
27 | - DB_HOST=db:3306
28 | - DB_NAME=gitea
29 | - DB_USER=gitea
30 | - DB_PASSWD=gitea
31 | restart: always
32 | networks:
33 | - gitea
34 | volumes:
35 | - ./gitea:/data
36 | - /etc/timezone:/etc/timezone:ro
37 | - /etc/localtime:/etc/localtime:ro
38 | ports:
39 | - "8080:3000"
40 | - "222:22"
41 | depends_on:
42 | - db
43 |
--------------------------------------------------------------------------------
/media/gitea-issues.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IJustDev/Gitea-VSCode/ea43e429b43866ce2010e5cfb27c0c308fa63d31/media/gitea-issues.png
--------------------------------------------------------------------------------
/media/issue.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gitea-vscode",
3 | "version": "2.1.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "gitea-vscode",
9 | "version": "2.1.0",
10 | "license": "MIT",
11 | "dependencies": {
12 | "axios": "^0.27.2",
13 | "markdown-it": "^13.0.1"
14 | },
15 | "devDependencies": {
16 | "@types/markdown-it": "^12.2.3",
17 | "@types/mocha": "^9.1.1",
18 | "@types/node": "16.x",
19 | "@types/vscode": "^1.70.0",
20 | "eslint": "^8.20.0",
21 | "typescript": "^4.7.4"
22 | },
23 | "engines": {
24 | "vscode": "^1.70.0"
25 | }
26 | },
27 | "node_modules/@eslint/eslintrc": {
28 | "version": "1.3.0",
29 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
30 | "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
31 | "dev": true,
32 | "dependencies": {
33 | "ajv": "^6.12.4",
34 | "debug": "^4.3.2",
35 | "espree": "^9.3.2",
36 | "globals": "^13.15.0",
37 | "ignore": "^5.2.0",
38 | "import-fresh": "^3.2.1",
39 | "js-yaml": "^4.1.0",
40 | "minimatch": "^3.1.2",
41 | "strip-json-comments": "^3.1.1"
42 | },
43 | "engines": {
44 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
45 | }
46 | },
47 | "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
48 | "version": "4.1.0",
49 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
50 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
51 | "dev": true,
52 | "dependencies": {
53 | "argparse": "^2.0.1"
54 | },
55 | "bin": {
56 | "js-yaml": "bin/js-yaml.js"
57 | }
58 | },
59 | "node_modules/@humanwhocodes/config-array": {
60 | "version": "0.10.4",
61 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz",
62 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==",
63 | "dev": true,
64 | "dependencies": {
65 | "@humanwhocodes/object-schema": "^1.2.1",
66 | "debug": "^4.1.1",
67 | "minimatch": "^3.0.4"
68 | },
69 | "engines": {
70 | "node": ">=10.10.0"
71 | }
72 | },
73 | "node_modules/@humanwhocodes/gitignore-to-minimatch": {
74 | "version": "1.0.2",
75 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
76 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
77 | "dev": true,
78 | "funding": {
79 | "type": "github",
80 | "url": "https://github.com/sponsors/nzakas"
81 | }
82 | },
83 | "node_modules/@humanwhocodes/object-schema": {
84 | "version": "1.2.1",
85 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
86 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
87 | "dev": true
88 | },
89 | "node_modules/@nodelib/fs.scandir": {
90 | "version": "2.1.5",
91 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
92 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
93 | "dev": true,
94 | "dependencies": {
95 | "@nodelib/fs.stat": "2.0.5",
96 | "run-parallel": "^1.1.9"
97 | },
98 | "engines": {
99 | "node": ">= 8"
100 | }
101 | },
102 | "node_modules/@nodelib/fs.stat": {
103 | "version": "2.0.5",
104 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
105 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
106 | "dev": true,
107 | "engines": {
108 | "node": ">= 8"
109 | }
110 | },
111 | "node_modules/@nodelib/fs.walk": {
112 | "version": "1.2.8",
113 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
114 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
115 | "dev": true,
116 | "dependencies": {
117 | "@nodelib/fs.scandir": "2.1.5",
118 | "fastq": "^1.6.0"
119 | },
120 | "engines": {
121 | "node": ">= 8"
122 | }
123 | },
124 | "node_modules/@types/linkify-it": {
125 | "version": "3.0.2",
126 | "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
127 | "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
128 | "dev": true
129 | },
130 | "node_modules/@types/markdown-it": {
131 | "version": "12.2.3",
132 | "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
133 | "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
134 | "dev": true,
135 | "dependencies": {
136 | "@types/linkify-it": "*",
137 | "@types/mdurl": "*"
138 | }
139 | },
140 | "node_modules/@types/mdurl": {
141 | "version": "1.0.2",
142 | "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
143 | "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
144 | "dev": true
145 | },
146 | "node_modules/@types/mocha": {
147 | "version": "9.1.1",
148 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
149 | "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
150 | "dev": true
151 | },
152 | "node_modules/@types/node": {
153 | "version": "16.11.49",
154 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz",
155 | "integrity": "sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw==",
156 | "dev": true
157 | },
158 | "node_modules/@types/vscode": {
159 | "version": "1.70.0",
160 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.70.0.tgz",
161 | "integrity": "sha512-3/9Fz0F2eBgwciazc94Ien+9u1elnjFg9YAhvAb3qDy/WeFWD9VrOPU7CIytryOVUdbxus8uzL4VZYONA0gDtA==",
162 | "dev": true
163 | },
164 | "node_modules/acorn": {
165 | "version": "8.8.0",
166 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
167 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
168 | "dev": true,
169 | "bin": {
170 | "acorn": "bin/acorn"
171 | },
172 | "engines": {
173 | "node": ">=0.4.0"
174 | }
175 | },
176 | "node_modules/acorn-jsx": {
177 | "version": "5.3.2",
178 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
179 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
180 | "dev": true,
181 | "peerDependencies": {
182 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
183 | }
184 | },
185 | "node_modules/ajv": {
186 | "version": "6.12.6",
187 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
188 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
189 | "dev": true,
190 | "dependencies": {
191 | "fast-deep-equal": "^3.1.1",
192 | "fast-json-stable-stringify": "^2.0.0",
193 | "json-schema-traverse": "^0.4.1",
194 | "uri-js": "^4.2.2"
195 | },
196 | "funding": {
197 | "type": "github",
198 | "url": "https://github.com/sponsors/epoberezkin"
199 | }
200 | },
201 | "node_modules/ansi-regex": {
202 | "version": "5.0.1",
203 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
204 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
205 | "dev": true,
206 | "engines": {
207 | "node": ">=8"
208 | }
209 | },
210 | "node_modules/argparse": {
211 | "version": "2.0.1",
212 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
213 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
214 | },
215 | "node_modules/array-union": {
216 | "version": "2.1.0",
217 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
218 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
219 | "dev": true,
220 | "engines": {
221 | "node": ">=8"
222 | }
223 | },
224 | "node_modules/asynckit": {
225 | "version": "0.4.0",
226 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
227 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
228 | },
229 | "node_modules/axios": {
230 | "version": "0.27.2",
231 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
232 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
233 | "dependencies": {
234 | "follow-redirects": "^1.14.9",
235 | "form-data": "^4.0.0"
236 | }
237 | },
238 | "node_modules/balanced-match": {
239 | "version": "1.0.0",
240 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
241 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
242 | "dev": true
243 | },
244 | "node_modules/brace-expansion": {
245 | "version": "1.1.11",
246 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
247 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
248 | "dev": true,
249 | "dependencies": {
250 | "balanced-match": "^1.0.0",
251 | "concat-map": "0.0.1"
252 | }
253 | },
254 | "node_modules/braces": {
255 | "version": "3.0.2",
256 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
257 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
258 | "dev": true,
259 | "dependencies": {
260 | "fill-range": "^7.0.1"
261 | },
262 | "engines": {
263 | "node": ">=8"
264 | }
265 | },
266 | "node_modules/callsites": {
267 | "version": "3.1.0",
268 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
269 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
270 | "dev": true,
271 | "engines": {
272 | "node": ">=6"
273 | }
274 | },
275 | "node_modules/combined-stream": {
276 | "version": "1.0.8",
277 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
278 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
279 | "dependencies": {
280 | "delayed-stream": "~1.0.0"
281 | },
282 | "engines": {
283 | "node": ">= 0.8"
284 | }
285 | },
286 | "node_modules/concat-map": {
287 | "version": "0.0.1",
288 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
289 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
290 | "dev": true
291 | },
292 | "node_modules/cross-spawn": {
293 | "version": "7.0.3",
294 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
295 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
296 | "dev": true,
297 | "dependencies": {
298 | "path-key": "^3.1.0",
299 | "shebang-command": "^2.0.0",
300 | "which": "^2.0.1"
301 | },
302 | "engines": {
303 | "node": ">= 8"
304 | }
305 | },
306 | "node_modules/debug": {
307 | "version": "4.3.4",
308 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
309 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
310 | "dev": true,
311 | "dependencies": {
312 | "ms": "2.1.2"
313 | },
314 | "engines": {
315 | "node": ">=6.0"
316 | },
317 | "peerDependenciesMeta": {
318 | "supports-color": {
319 | "optional": true
320 | }
321 | }
322 | },
323 | "node_modules/deep-is": {
324 | "version": "0.1.4",
325 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
326 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
327 | "dev": true
328 | },
329 | "node_modules/delayed-stream": {
330 | "version": "1.0.0",
331 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
332 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
333 | "engines": {
334 | "node": ">=0.4.0"
335 | }
336 | },
337 | "node_modules/dir-glob": {
338 | "version": "3.0.1",
339 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
340 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
341 | "dev": true,
342 | "dependencies": {
343 | "path-type": "^4.0.0"
344 | },
345 | "engines": {
346 | "node": ">=8"
347 | }
348 | },
349 | "node_modules/doctrine": {
350 | "version": "3.0.0",
351 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
352 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
353 | "dev": true,
354 | "dependencies": {
355 | "esutils": "^2.0.2"
356 | },
357 | "engines": {
358 | "node": ">=6.0.0"
359 | }
360 | },
361 | "node_modules/entities": {
362 | "version": "3.0.1",
363 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
364 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
365 | "engines": {
366 | "node": ">=0.12"
367 | },
368 | "funding": {
369 | "url": "https://github.com/fb55/entities?sponsor=1"
370 | }
371 | },
372 | "node_modules/eslint": {
373 | "version": "8.22.0",
374 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz",
375 | "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==",
376 | "dev": true,
377 | "dependencies": {
378 | "@eslint/eslintrc": "^1.3.0",
379 | "@humanwhocodes/config-array": "^0.10.4",
380 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
381 | "ajv": "^6.10.0",
382 | "chalk": "^4.0.0",
383 | "cross-spawn": "^7.0.2",
384 | "debug": "^4.3.2",
385 | "doctrine": "^3.0.0",
386 | "escape-string-regexp": "^4.0.0",
387 | "eslint-scope": "^7.1.1",
388 | "eslint-utils": "^3.0.0",
389 | "eslint-visitor-keys": "^3.3.0",
390 | "espree": "^9.3.3",
391 | "esquery": "^1.4.0",
392 | "esutils": "^2.0.2",
393 | "fast-deep-equal": "^3.1.3",
394 | "file-entry-cache": "^6.0.1",
395 | "find-up": "^5.0.0",
396 | "functional-red-black-tree": "^1.0.1",
397 | "glob-parent": "^6.0.1",
398 | "globals": "^13.15.0",
399 | "globby": "^11.1.0",
400 | "grapheme-splitter": "^1.0.4",
401 | "ignore": "^5.2.0",
402 | "import-fresh": "^3.0.0",
403 | "imurmurhash": "^0.1.4",
404 | "is-glob": "^4.0.0",
405 | "js-yaml": "^4.1.0",
406 | "json-stable-stringify-without-jsonify": "^1.0.1",
407 | "levn": "^0.4.1",
408 | "lodash.merge": "^4.6.2",
409 | "minimatch": "^3.1.2",
410 | "natural-compare": "^1.4.0",
411 | "optionator": "^0.9.1",
412 | "regexpp": "^3.2.0",
413 | "strip-ansi": "^6.0.1",
414 | "strip-json-comments": "^3.1.0",
415 | "text-table": "^0.2.0",
416 | "v8-compile-cache": "^2.0.3"
417 | },
418 | "bin": {
419 | "eslint": "bin/eslint.js"
420 | },
421 | "engines": {
422 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
423 | },
424 | "funding": {
425 | "url": "https://opencollective.com/eslint"
426 | }
427 | },
428 | "node_modules/eslint-scope": {
429 | "version": "7.1.1",
430 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
431 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
432 | "dev": true,
433 | "dependencies": {
434 | "esrecurse": "^4.3.0",
435 | "estraverse": "^5.2.0"
436 | },
437 | "engines": {
438 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
439 | }
440 | },
441 | "node_modules/eslint-utils": {
442 | "version": "3.0.0",
443 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
444 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
445 | "dev": true,
446 | "dependencies": {
447 | "eslint-visitor-keys": "^2.0.0"
448 | },
449 | "engines": {
450 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
451 | },
452 | "funding": {
453 | "url": "https://github.com/sponsors/mysticatea"
454 | },
455 | "peerDependencies": {
456 | "eslint": ">=5"
457 | }
458 | },
459 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
460 | "version": "2.1.0",
461 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
462 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
463 | "dev": true,
464 | "engines": {
465 | "node": ">=10"
466 | }
467 | },
468 | "node_modules/eslint-visitor-keys": {
469 | "version": "3.3.0",
470 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
471 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
472 | "dev": true,
473 | "engines": {
474 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
475 | }
476 | },
477 | "node_modules/eslint/node_modules/ansi-styles": {
478 | "version": "4.3.0",
479 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
480 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
481 | "dev": true,
482 | "dependencies": {
483 | "color-convert": "^2.0.1"
484 | },
485 | "engines": {
486 | "node": ">=8"
487 | },
488 | "funding": {
489 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
490 | }
491 | },
492 | "node_modules/eslint/node_modules/chalk": {
493 | "version": "4.1.2",
494 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
495 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
496 | "dev": true,
497 | "dependencies": {
498 | "ansi-styles": "^4.1.0",
499 | "supports-color": "^7.1.0"
500 | },
501 | "engines": {
502 | "node": ">=10"
503 | },
504 | "funding": {
505 | "url": "https://github.com/chalk/chalk?sponsor=1"
506 | }
507 | },
508 | "node_modules/eslint/node_modules/color-convert": {
509 | "version": "2.0.1",
510 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
511 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
512 | "dev": true,
513 | "dependencies": {
514 | "color-name": "~1.1.4"
515 | },
516 | "engines": {
517 | "node": ">=7.0.0"
518 | }
519 | },
520 | "node_modules/eslint/node_modules/color-name": {
521 | "version": "1.1.4",
522 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
523 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
524 | "dev": true
525 | },
526 | "node_modules/eslint/node_modules/escape-string-regexp": {
527 | "version": "4.0.0",
528 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
529 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
530 | "dev": true,
531 | "engines": {
532 | "node": ">=10"
533 | },
534 | "funding": {
535 | "url": "https://github.com/sponsors/sindresorhus"
536 | }
537 | },
538 | "node_modules/eslint/node_modules/has-flag": {
539 | "version": "4.0.0",
540 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
541 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
542 | "dev": true,
543 | "engines": {
544 | "node": ">=8"
545 | }
546 | },
547 | "node_modules/eslint/node_modules/js-yaml": {
548 | "version": "4.1.0",
549 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
550 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
551 | "dev": true,
552 | "dependencies": {
553 | "argparse": "^2.0.1"
554 | },
555 | "bin": {
556 | "js-yaml": "bin/js-yaml.js"
557 | }
558 | },
559 | "node_modules/eslint/node_modules/supports-color": {
560 | "version": "7.2.0",
561 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
562 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
563 | "dev": true,
564 | "dependencies": {
565 | "has-flag": "^4.0.0"
566 | },
567 | "engines": {
568 | "node": ">=8"
569 | }
570 | },
571 | "node_modules/espree": {
572 | "version": "9.3.3",
573 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz",
574 | "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==",
575 | "dev": true,
576 | "dependencies": {
577 | "acorn": "^8.8.0",
578 | "acorn-jsx": "^5.3.2",
579 | "eslint-visitor-keys": "^3.3.0"
580 | },
581 | "engines": {
582 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
583 | },
584 | "funding": {
585 | "url": "https://opencollective.com/eslint"
586 | }
587 | },
588 | "node_modules/esquery": {
589 | "version": "1.4.0",
590 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
591 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
592 | "dev": true,
593 | "dependencies": {
594 | "estraverse": "^5.1.0"
595 | },
596 | "engines": {
597 | "node": ">=0.10"
598 | }
599 | },
600 | "node_modules/esrecurse": {
601 | "version": "4.3.0",
602 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
603 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
604 | "dev": true,
605 | "dependencies": {
606 | "estraverse": "^5.2.0"
607 | },
608 | "engines": {
609 | "node": ">=4.0"
610 | }
611 | },
612 | "node_modules/estraverse": {
613 | "version": "5.3.0",
614 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
615 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
616 | "dev": true,
617 | "engines": {
618 | "node": ">=4.0"
619 | }
620 | },
621 | "node_modules/esutils": {
622 | "version": "2.0.3",
623 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
624 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
625 | "dev": true,
626 | "engines": {
627 | "node": ">=0.10.0"
628 | }
629 | },
630 | "node_modules/fast-deep-equal": {
631 | "version": "3.1.3",
632 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
633 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
634 | "dev": true
635 | },
636 | "node_modules/fast-glob": {
637 | "version": "3.2.11",
638 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
639 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
640 | "dev": true,
641 | "dependencies": {
642 | "@nodelib/fs.stat": "^2.0.2",
643 | "@nodelib/fs.walk": "^1.2.3",
644 | "glob-parent": "^5.1.2",
645 | "merge2": "^1.3.0",
646 | "micromatch": "^4.0.4"
647 | },
648 | "engines": {
649 | "node": ">=8.6.0"
650 | }
651 | },
652 | "node_modules/fast-glob/node_modules/glob-parent": {
653 | "version": "5.1.2",
654 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
655 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
656 | "dev": true,
657 | "dependencies": {
658 | "is-glob": "^4.0.1"
659 | },
660 | "engines": {
661 | "node": ">= 6"
662 | }
663 | },
664 | "node_modules/fast-json-stable-stringify": {
665 | "version": "2.1.0",
666 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
667 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
668 | "dev": true
669 | },
670 | "node_modules/fast-levenshtein": {
671 | "version": "2.0.6",
672 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
673 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
674 | "dev": true
675 | },
676 | "node_modules/fastq": {
677 | "version": "1.13.0",
678 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
679 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
680 | "dev": true,
681 | "dependencies": {
682 | "reusify": "^1.0.4"
683 | }
684 | },
685 | "node_modules/file-entry-cache": {
686 | "version": "6.0.1",
687 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
688 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
689 | "dev": true,
690 | "dependencies": {
691 | "flat-cache": "^3.0.4"
692 | },
693 | "engines": {
694 | "node": "^10.12.0 || >=12.0.0"
695 | }
696 | },
697 | "node_modules/fill-range": {
698 | "version": "7.0.1",
699 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
700 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
701 | "dev": true,
702 | "dependencies": {
703 | "to-regex-range": "^5.0.1"
704 | },
705 | "engines": {
706 | "node": ">=8"
707 | }
708 | },
709 | "node_modules/find-up": {
710 | "version": "5.0.0",
711 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
712 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
713 | "dev": true,
714 | "dependencies": {
715 | "locate-path": "^6.0.0",
716 | "path-exists": "^4.0.0"
717 | },
718 | "engines": {
719 | "node": ">=10"
720 | },
721 | "funding": {
722 | "url": "https://github.com/sponsors/sindresorhus"
723 | }
724 | },
725 | "node_modules/flat-cache": {
726 | "version": "3.0.4",
727 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
728 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
729 | "dev": true,
730 | "dependencies": {
731 | "flatted": "^3.1.0",
732 | "rimraf": "^3.0.2"
733 | },
734 | "engines": {
735 | "node": "^10.12.0 || >=12.0.0"
736 | }
737 | },
738 | "node_modules/flatted": {
739 | "version": "3.2.6",
740 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
741 | "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
742 | "dev": true
743 | },
744 | "node_modules/follow-redirects": {
745 | "version": "1.15.1",
746 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
747 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
748 | "funding": [
749 | {
750 | "type": "individual",
751 | "url": "https://github.com/sponsors/RubenVerborgh"
752 | }
753 | ],
754 | "engines": {
755 | "node": ">=4.0"
756 | },
757 | "peerDependenciesMeta": {
758 | "debug": {
759 | "optional": true
760 | }
761 | }
762 | },
763 | "node_modules/form-data": {
764 | "version": "4.0.0",
765 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
766 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
767 | "dependencies": {
768 | "asynckit": "^0.4.0",
769 | "combined-stream": "^1.0.8",
770 | "mime-types": "^2.1.12"
771 | },
772 | "engines": {
773 | "node": ">= 6"
774 | }
775 | },
776 | "node_modules/fs.realpath": {
777 | "version": "1.0.0",
778 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
779 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
780 | "dev": true
781 | },
782 | "node_modules/functional-red-black-tree": {
783 | "version": "1.0.1",
784 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
785 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
786 | "dev": true
787 | },
788 | "node_modules/glob": {
789 | "version": "7.2.3",
790 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
791 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
792 | "dev": true,
793 | "dependencies": {
794 | "fs.realpath": "^1.0.0",
795 | "inflight": "^1.0.4",
796 | "inherits": "2",
797 | "minimatch": "^3.1.1",
798 | "once": "^1.3.0",
799 | "path-is-absolute": "^1.0.0"
800 | },
801 | "engines": {
802 | "node": "*"
803 | },
804 | "funding": {
805 | "url": "https://github.com/sponsors/isaacs"
806 | }
807 | },
808 | "node_modules/glob-parent": {
809 | "version": "6.0.2",
810 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
811 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
812 | "dev": true,
813 | "dependencies": {
814 | "is-glob": "^4.0.3"
815 | },
816 | "engines": {
817 | "node": ">=10.13.0"
818 | }
819 | },
820 | "node_modules/globals": {
821 | "version": "13.17.0",
822 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
823 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
824 | "dev": true,
825 | "dependencies": {
826 | "type-fest": "^0.20.2"
827 | },
828 | "engines": {
829 | "node": ">=8"
830 | },
831 | "funding": {
832 | "url": "https://github.com/sponsors/sindresorhus"
833 | }
834 | },
835 | "node_modules/globby": {
836 | "version": "11.1.0",
837 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
838 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
839 | "dev": true,
840 | "dependencies": {
841 | "array-union": "^2.1.0",
842 | "dir-glob": "^3.0.1",
843 | "fast-glob": "^3.2.9",
844 | "ignore": "^5.2.0",
845 | "merge2": "^1.4.1",
846 | "slash": "^3.0.0"
847 | },
848 | "engines": {
849 | "node": ">=10"
850 | },
851 | "funding": {
852 | "url": "https://github.com/sponsors/sindresorhus"
853 | }
854 | },
855 | "node_modules/grapheme-splitter": {
856 | "version": "1.0.4",
857 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
858 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
859 | "dev": true
860 | },
861 | "node_modules/ignore": {
862 | "version": "5.2.0",
863 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
864 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
865 | "dev": true,
866 | "engines": {
867 | "node": ">= 4"
868 | }
869 | },
870 | "node_modules/import-fresh": {
871 | "version": "3.3.0",
872 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
873 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
874 | "dev": true,
875 | "dependencies": {
876 | "parent-module": "^1.0.0",
877 | "resolve-from": "^4.0.0"
878 | },
879 | "engines": {
880 | "node": ">=6"
881 | },
882 | "funding": {
883 | "url": "https://github.com/sponsors/sindresorhus"
884 | }
885 | },
886 | "node_modules/imurmurhash": {
887 | "version": "0.1.4",
888 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
889 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
890 | "dev": true,
891 | "engines": {
892 | "node": ">=0.8.19"
893 | }
894 | },
895 | "node_modules/inflight": {
896 | "version": "1.0.6",
897 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
898 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
899 | "dev": true,
900 | "dependencies": {
901 | "once": "^1.3.0",
902 | "wrappy": "1"
903 | }
904 | },
905 | "node_modules/inherits": {
906 | "version": "2.0.3",
907 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
908 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
909 | "dev": true
910 | },
911 | "node_modules/is-extglob": {
912 | "version": "2.1.1",
913 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
914 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
915 | "dev": true,
916 | "engines": {
917 | "node": ">=0.10.0"
918 | }
919 | },
920 | "node_modules/is-glob": {
921 | "version": "4.0.3",
922 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
923 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
924 | "dev": true,
925 | "dependencies": {
926 | "is-extglob": "^2.1.1"
927 | },
928 | "engines": {
929 | "node": ">=0.10.0"
930 | }
931 | },
932 | "node_modules/is-number": {
933 | "version": "7.0.0",
934 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
935 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
936 | "dev": true,
937 | "engines": {
938 | "node": ">=0.12.0"
939 | }
940 | },
941 | "node_modules/isexe": {
942 | "version": "2.0.0",
943 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
944 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
945 | "dev": true
946 | },
947 | "node_modules/json-schema-traverse": {
948 | "version": "0.4.1",
949 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
950 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
951 | "dev": true
952 | },
953 | "node_modules/json-stable-stringify-without-jsonify": {
954 | "version": "1.0.1",
955 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
956 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
957 | "dev": true
958 | },
959 | "node_modules/levn": {
960 | "version": "0.4.1",
961 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
962 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
963 | "dev": true,
964 | "dependencies": {
965 | "prelude-ls": "^1.2.1",
966 | "type-check": "~0.4.0"
967 | },
968 | "engines": {
969 | "node": ">= 0.8.0"
970 | }
971 | },
972 | "node_modules/linkify-it": {
973 | "version": "4.0.1",
974 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
975 | "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
976 | "dependencies": {
977 | "uc.micro": "^1.0.1"
978 | }
979 | },
980 | "node_modules/locate-path": {
981 | "version": "6.0.0",
982 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
983 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
984 | "dev": true,
985 | "dependencies": {
986 | "p-locate": "^5.0.0"
987 | },
988 | "engines": {
989 | "node": ">=10"
990 | },
991 | "funding": {
992 | "url": "https://github.com/sponsors/sindresorhus"
993 | }
994 | },
995 | "node_modules/lodash.merge": {
996 | "version": "4.6.2",
997 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
998 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
999 | "dev": true
1000 | },
1001 | "node_modules/markdown-it": {
1002 | "version": "13.0.1",
1003 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
1004 | "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
1005 | "dependencies": {
1006 | "argparse": "^2.0.1",
1007 | "entities": "~3.0.1",
1008 | "linkify-it": "^4.0.1",
1009 | "mdurl": "^1.0.1",
1010 | "uc.micro": "^1.0.5"
1011 | },
1012 | "bin": {
1013 | "markdown-it": "bin/markdown-it.js"
1014 | }
1015 | },
1016 | "node_modules/mdurl": {
1017 | "version": "1.0.1",
1018 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
1019 | "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
1020 | },
1021 | "node_modules/merge2": {
1022 | "version": "1.4.1",
1023 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1024 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1025 | "dev": true,
1026 | "engines": {
1027 | "node": ">= 8"
1028 | }
1029 | },
1030 | "node_modules/micromatch": {
1031 | "version": "4.0.5",
1032 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1033 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1034 | "dev": true,
1035 | "dependencies": {
1036 | "braces": "^3.0.2",
1037 | "picomatch": "^2.3.1"
1038 | },
1039 | "engines": {
1040 | "node": ">=8.6"
1041 | }
1042 | },
1043 | "node_modules/mime-db": {
1044 | "version": "1.52.0",
1045 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1046 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1047 | "engines": {
1048 | "node": ">= 0.6"
1049 | }
1050 | },
1051 | "node_modules/mime-types": {
1052 | "version": "2.1.35",
1053 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1054 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1055 | "dependencies": {
1056 | "mime-db": "1.52.0"
1057 | },
1058 | "engines": {
1059 | "node": ">= 0.6"
1060 | }
1061 | },
1062 | "node_modules/minimatch": {
1063 | "version": "3.1.2",
1064 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1065 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1066 | "dev": true,
1067 | "dependencies": {
1068 | "brace-expansion": "^1.1.7"
1069 | },
1070 | "engines": {
1071 | "node": "*"
1072 | }
1073 | },
1074 | "node_modules/ms": {
1075 | "version": "2.1.2",
1076 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1077 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1078 | "dev": true
1079 | },
1080 | "node_modules/natural-compare": {
1081 | "version": "1.4.0",
1082 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1083 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
1084 | "dev": true
1085 | },
1086 | "node_modules/once": {
1087 | "version": "1.4.0",
1088 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1089 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1090 | "dev": true,
1091 | "dependencies": {
1092 | "wrappy": "1"
1093 | }
1094 | },
1095 | "node_modules/optionator": {
1096 | "version": "0.9.1",
1097 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
1098 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1099 | "dev": true,
1100 | "dependencies": {
1101 | "deep-is": "^0.1.3",
1102 | "fast-levenshtein": "^2.0.6",
1103 | "levn": "^0.4.1",
1104 | "prelude-ls": "^1.2.1",
1105 | "type-check": "^0.4.0",
1106 | "word-wrap": "^1.2.3"
1107 | },
1108 | "engines": {
1109 | "node": ">= 0.8.0"
1110 | }
1111 | },
1112 | "node_modules/p-limit": {
1113 | "version": "3.1.0",
1114 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1115 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1116 | "dev": true,
1117 | "dependencies": {
1118 | "yocto-queue": "^0.1.0"
1119 | },
1120 | "engines": {
1121 | "node": ">=10"
1122 | },
1123 | "funding": {
1124 | "url": "https://github.com/sponsors/sindresorhus"
1125 | }
1126 | },
1127 | "node_modules/p-locate": {
1128 | "version": "5.0.0",
1129 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1130 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1131 | "dev": true,
1132 | "dependencies": {
1133 | "p-limit": "^3.0.2"
1134 | },
1135 | "engines": {
1136 | "node": ">=10"
1137 | },
1138 | "funding": {
1139 | "url": "https://github.com/sponsors/sindresorhus"
1140 | }
1141 | },
1142 | "node_modules/parent-module": {
1143 | "version": "1.0.1",
1144 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1145 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1146 | "dev": true,
1147 | "dependencies": {
1148 | "callsites": "^3.0.0"
1149 | },
1150 | "engines": {
1151 | "node": ">=6"
1152 | }
1153 | },
1154 | "node_modules/path-exists": {
1155 | "version": "4.0.0",
1156 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1157 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1158 | "dev": true,
1159 | "engines": {
1160 | "node": ">=8"
1161 | }
1162 | },
1163 | "node_modules/path-is-absolute": {
1164 | "version": "1.0.1",
1165 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1166 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1167 | "dev": true,
1168 | "engines": {
1169 | "node": ">=0.10.0"
1170 | }
1171 | },
1172 | "node_modules/path-key": {
1173 | "version": "3.1.1",
1174 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1175 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1176 | "dev": true,
1177 | "engines": {
1178 | "node": ">=8"
1179 | }
1180 | },
1181 | "node_modules/path-type": {
1182 | "version": "4.0.0",
1183 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1184 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1185 | "dev": true,
1186 | "engines": {
1187 | "node": ">=8"
1188 | }
1189 | },
1190 | "node_modules/picomatch": {
1191 | "version": "2.3.1",
1192 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1193 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1194 | "dev": true,
1195 | "engines": {
1196 | "node": ">=8.6"
1197 | },
1198 | "funding": {
1199 | "url": "https://github.com/sponsors/jonschlinkert"
1200 | }
1201 | },
1202 | "node_modules/prelude-ls": {
1203 | "version": "1.2.1",
1204 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
1205 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
1206 | "dev": true,
1207 | "engines": {
1208 | "node": ">= 0.8.0"
1209 | }
1210 | },
1211 | "node_modules/punycode": {
1212 | "version": "2.1.1",
1213 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1214 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1215 | "dev": true,
1216 | "engines": {
1217 | "node": ">=6"
1218 | }
1219 | },
1220 | "node_modules/queue-microtask": {
1221 | "version": "1.2.3",
1222 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1223 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1224 | "dev": true,
1225 | "funding": [
1226 | {
1227 | "type": "github",
1228 | "url": "https://github.com/sponsors/feross"
1229 | },
1230 | {
1231 | "type": "patreon",
1232 | "url": "https://www.patreon.com/feross"
1233 | },
1234 | {
1235 | "type": "consulting",
1236 | "url": "https://feross.org/support"
1237 | }
1238 | ]
1239 | },
1240 | "node_modules/regexpp": {
1241 | "version": "3.2.0",
1242 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
1243 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
1244 | "dev": true,
1245 | "engines": {
1246 | "node": ">=8"
1247 | },
1248 | "funding": {
1249 | "url": "https://github.com/sponsors/mysticatea"
1250 | }
1251 | },
1252 | "node_modules/resolve-from": {
1253 | "version": "4.0.0",
1254 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1255 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1256 | "dev": true,
1257 | "engines": {
1258 | "node": ">=4"
1259 | }
1260 | },
1261 | "node_modules/reusify": {
1262 | "version": "1.0.4",
1263 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1264 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1265 | "dev": true,
1266 | "engines": {
1267 | "iojs": ">=1.0.0",
1268 | "node": ">=0.10.0"
1269 | }
1270 | },
1271 | "node_modules/rimraf": {
1272 | "version": "3.0.2",
1273 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1274 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1275 | "dev": true,
1276 | "dependencies": {
1277 | "glob": "^7.1.3"
1278 | },
1279 | "bin": {
1280 | "rimraf": "bin.js"
1281 | },
1282 | "funding": {
1283 | "url": "https://github.com/sponsors/isaacs"
1284 | }
1285 | },
1286 | "node_modules/run-parallel": {
1287 | "version": "1.2.0",
1288 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1289 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1290 | "dev": true,
1291 | "funding": [
1292 | {
1293 | "type": "github",
1294 | "url": "https://github.com/sponsors/feross"
1295 | },
1296 | {
1297 | "type": "patreon",
1298 | "url": "https://www.patreon.com/feross"
1299 | },
1300 | {
1301 | "type": "consulting",
1302 | "url": "https://feross.org/support"
1303 | }
1304 | ],
1305 | "dependencies": {
1306 | "queue-microtask": "^1.2.2"
1307 | }
1308 | },
1309 | "node_modules/shebang-command": {
1310 | "version": "2.0.0",
1311 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1312 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1313 | "dev": true,
1314 | "dependencies": {
1315 | "shebang-regex": "^3.0.0"
1316 | },
1317 | "engines": {
1318 | "node": ">=8"
1319 | }
1320 | },
1321 | "node_modules/shebang-regex": {
1322 | "version": "3.0.0",
1323 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1324 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1325 | "dev": true,
1326 | "engines": {
1327 | "node": ">=8"
1328 | }
1329 | },
1330 | "node_modules/slash": {
1331 | "version": "3.0.0",
1332 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1333 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
1334 | "dev": true,
1335 | "engines": {
1336 | "node": ">=8"
1337 | }
1338 | },
1339 | "node_modules/strip-ansi": {
1340 | "version": "6.0.1",
1341 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1342 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1343 | "dev": true,
1344 | "dependencies": {
1345 | "ansi-regex": "^5.0.1"
1346 | },
1347 | "engines": {
1348 | "node": ">=8"
1349 | }
1350 | },
1351 | "node_modules/strip-json-comments": {
1352 | "version": "3.1.1",
1353 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1354 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1355 | "dev": true,
1356 | "engines": {
1357 | "node": ">=8"
1358 | },
1359 | "funding": {
1360 | "url": "https://github.com/sponsors/sindresorhus"
1361 | }
1362 | },
1363 | "node_modules/text-table": {
1364 | "version": "0.2.0",
1365 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1366 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
1367 | "dev": true
1368 | },
1369 | "node_modules/to-regex-range": {
1370 | "version": "5.0.1",
1371 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1372 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1373 | "dev": true,
1374 | "dependencies": {
1375 | "is-number": "^7.0.0"
1376 | },
1377 | "engines": {
1378 | "node": ">=8.0"
1379 | }
1380 | },
1381 | "node_modules/type-check": {
1382 | "version": "0.4.0",
1383 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
1384 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
1385 | "dev": true,
1386 | "dependencies": {
1387 | "prelude-ls": "^1.2.1"
1388 | },
1389 | "engines": {
1390 | "node": ">= 0.8.0"
1391 | }
1392 | },
1393 | "node_modules/type-fest": {
1394 | "version": "0.20.2",
1395 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
1396 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
1397 | "dev": true,
1398 | "engines": {
1399 | "node": ">=10"
1400 | },
1401 | "funding": {
1402 | "url": "https://github.com/sponsors/sindresorhus"
1403 | }
1404 | },
1405 | "node_modules/typescript": {
1406 | "version": "4.7.4",
1407 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
1408 | "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
1409 | "dev": true,
1410 | "bin": {
1411 | "tsc": "bin/tsc",
1412 | "tsserver": "bin/tsserver"
1413 | },
1414 | "engines": {
1415 | "node": ">=4.2.0"
1416 | }
1417 | },
1418 | "node_modules/uc.micro": {
1419 | "version": "1.0.6",
1420 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
1421 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
1422 | },
1423 | "node_modules/uri-js": {
1424 | "version": "4.4.1",
1425 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1426 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1427 | "dev": true,
1428 | "dependencies": {
1429 | "punycode": "^2.1.0"
1430 | }
1431 | },
1432 | "node_modules/v8-compile-cache": {
1433 | "version": "2.3.0",
1434 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
1435 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
1436 | "dev": true
1437 | },
1438 | "node_modules/which": {
1439 | "version": "2.0.2",
1440 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1441 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1442 | "dev": true,
1443 | "dependencies": {
1444 | "isexe": "^2.0.0"
1445 | },
1446 | "bin": {
1447 | "node-which": "bin/node-which"
1448 | },
1449 | "engines": {
1450 | "node": ">= 8"
1451 | }
1452 | },
1453 | "node_modules/word-wrap": {
1454 | "version": "1.2.4",
1455 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
1456 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
1457 | "dev": true,
1458 | "engines": {
1459 | "node": ">=0.10.0"
1460 | }
1461 | },
1462 | "node_modules/wrappy": {
1463 | "version": "1.0.2",
1464 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1465 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1466 | "dev": true
1467 | },
1468 | "node_modules/yocto-queue": {
1469 | "version": "0.1.0",
1470 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1471 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1472 | "dev": true,
1473 | "engines": {
1474 | "node": ">=10"
1475 | },
1476 | "funding": {
1477 | "url": "https://github.com/sponsors/sindresorhus"
1478 | }
1479 | }
1480 | },
1481 | "dependencies": {
1482 | "@eslint/eslintrc": {
1483 | "version": "1.3.0",
1484 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
1485 | "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
1486 | "dev": true,
1487 | "requires": {
1488 | "ajv": "^6.12.4",
1489 | "debug": "^4.3.2",
1490 | "espree": "^9.3.2",
1491 | "globals": "^13.15.0",
1492 | "ignore": "^5.2.0",
1493 | "import-fresh": "^3.2.1",
1494 | "js-yaml": "^4.1.0",
1495 | "minimatch": "^3.1.2",
1496 | "strip-json-comments": "^3.1.1"
1497 | },
1498 | "dependencies": {
1499 | "js-yaml": {
1500 | "version": "4.1.0",
1501 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1502 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1503 | "dev": true,
1504 | "requires": {
1505 | "argparse": "^2.0.1"
1506 | }
1507 | }
1508 | }
1509 | },
1510 | "@humanwhocodes/config-array": {
1511 | "version": "0.10.4",
1512 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz",
1513 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==",
1514 | "dev": true,
1515 | "requires": {
1516 | "@humanwhocodes/object-schema": "^1.2.1",
1517 | "debug": "^4.1.1",
1518 | "minimatch": "^3.0.4"
1519 | }
1520 | },
1521 | "@humanwhocodes/gitignore-to-minimatch": {
1522 | "version": "1.0.2",
1523 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz",
1524 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
1525 | "dev": true
1526 | },
1527 | "@humanwhocodes/object-schema": {
1528 | "version": "1.2.1",
1529 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
1530 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
1531 | "dev": true
1532 | },
1533 | "@nodelib/fs.scandir": {
1534 | "version": "2.1.5",
1535 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1536 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1537 | "dev": true,
1538 | "requires": {
1539 | "@nodelib/fs.stat": "2.0.5",
1540 | "run-parallel": "^1.1.9"
1541 | }
1542 | },
1543 | "@nodelib/fs.stat": {
1544 | "version": "2.0.5",
1545 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1546 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
1547 | "dev": true
1548 | },
1549 | "@nodelib/fs.walk": {
1550 | "version": "1.2.8",
1551 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1552 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1553 | "dev": true,
1554 | "requires": {
1555 | "@nodelib/fs.scandir": "2.1.5",
1556 | "fastq": "^1.6.0"
1557 | }
1558 | },
1559 | "@types/linkify-it": {
1560 | "version": "3.0.2",
1561 | "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
1562 | "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
1563 | "dev": true
1564 | },
1565 | "@types/markdown-it": {
1566 | "version": "12.2.3",
1567 | "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
1568 | "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
1569 | "dev": true,
1570 | "requires": {
1571 | "@types/linkify-it": "*",
1572 | "@types/mdurl": "*"
1573 | }
1574 | },
1575 | "@types/mdurl": {
1576 | "version": "1.0.2",
1577 | "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
1578 | "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
1579 | "dev": true
1580 | },
1581 | "@types/mocha": {
1582 | "version": "9.1.1",
1583 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
1584 | "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
1585 | "dev": true
1586 | },
1587 | "@types/node": {
1588 | "version": "16.11.49",
1589 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz",
1590 | "integrity": "sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw==",
1591 | "dev": true
1592 | },
1593 | "@types/vscode": {
1594 | "version": "1.70.0",
1595 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.70.0.tgz",
1596 | "integrity": "sha512-3/9Fz0F2eBgwciazc94Ien+9u1elnjFg9YAhvAb3qDy/WeFWD9VrOPU7CIytryOVUdbxus8uzL4VZYONA0gDtA==",
1597 | "dev": true
1598 | },
1599 | "acorn": {
1600 | "version": "8.8.0",
1601 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
1602 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
1603 | "dev": true
1604 | },
1605 | "acorn-jsx": {
1606 | "version": "5.3.2",
1607 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
1608 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
1609 | "dev": true,
1610 | "requires": {}
1611 | },
1612 | "ajv": {
1613 | "version": "6.12.6",
1614 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1615 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1616 | "dev": true,
1617 | "requires": {
1618 | "fast-deep-equal": "^3.1.1",
1619 | "fast-json-stable-stringify": "^2.0.0",
1620 | "json-schema-traverse": "^0.4.1",
1621 | "uri-js": "^4.2.2"
1622 | }
1623 | },
1624 | "ansi-regex": {
1625 | "version": "5.0.1",
1626 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1627 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1628 | "dev": true
1629 | },
1630 | "argparse": {
1631 | "version": "2.0.1",
1632 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1633 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
1634 | },
1635 | "array-union": {
1636 | "version": "2.1.0",
1637 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
1638 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
1639 | "dev": true
1640 | },
1641 | "asynckit": {
1642 | "version": "0.4.0",
1643 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1644 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
1645 | },
1646 | "axios": {
1647 | "version": "0.27.2",
1648 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
1649 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
1650 | "requires": {
1651 | "follow-redirects": "^1.14.9",
1652 | "form-data": "^4.0.0"
1653 | }
1654 | },
1655 | "balanced-match": {
1656 | "version": "1.0.0",
1657 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1658 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1659 | "dev": true
1660 | },
1661 | "brace-expansion": {
1662 | "version": "1.1.11",
1663 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1664 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1665 | "dev": true,
1666 | "requires": {
1667 | "balanced-match": "^1.0.0",
1668 | "concat-map": "0.0.1"
1669 | }
1670 | },
1671 | "braces": {
1672 | "version": "3.0.2",
1673 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1674 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1675 | "dev": true,
1676 | "requires": {
1677 | "fill-range": "^7.0.1"
1678 | }
1679 | },
1680 | "callsites": {
1681 | "version": "3.1.0",
1682 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1683 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1684 | "dev": true
1685 | },
1686 | "combined-stream": {
1687 | "version": "1.0.8",
1688 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1689 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1690 | "requires": {
1691 | "delayed-stream": "~1.0.0"
1692 | }
1693 | },
1694 | "concat-map": {
1695 | "version": "0.0.1",
1696 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1697 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1698 | "dev": true
1699 | },
1700 | "cross-spawn": {
1701 | "version": "7.0.3",
1702 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1703 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1704 | "dev": true,
1705 | "requires": {
1706 | "path-key": "^3.1.0",
1707 | "shebang-command": "^2.0.0",
1708 | "which": "^2.0.1"
1709 | }
1710 | },
1711 | "debug": {
1712 | "version": "4.3.4",
1713 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1714 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1715 | "dev": true,
1716 | "requires": {
1717 | "ms": "2.1.2"
1718 | }
1719 | },
1720 | "deep-is": {
1721 | "version": "0.1.4",
1722 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1723 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1724 | "dev": true
1725 | },
1726 | "delayed-stream": {
1727 | "version": "1.0.0",
1728 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1729 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
1730 | },
1731 | "dir-glob": {
1732 | "version": "3.0.1",
1733 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
1734 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
1735 | "dev": true,
1736 | "requires": {
1737 | "path-type": "^4.0.0"
1738 | }
1739 | },
1740 | "doctrine": {
1741 | "version": "3.0.0",
1742 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1743 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1744 | "dev": true,
1745 | "requires": {
1746 | "esutils": "^2.0.2"
1747 | }
1748 | },
1749 | "entities": {
1750 | "version": "3.0.1",
1751 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
1752 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
1753 | },
1754 | "eslint": {
1755 | "version": "8.22.0",
1756 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz",
1757 | "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==",
1758 | "dev": true,
1759 | "requires": {
1760 | "@eslint/eslintrc": "^1.3.0",
1761 | "@humanwhocodes/config-array": "^0.10.4",
1762 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
1763 | "ajv": "^6.10.0",
1764 | "chalk": "^4.0.0",
1765 | "cross-spawn": "^7.0.2",
1766 | "debug": "^4.3.2",
1767 | "doctrine": "^3.0.0",
1768 | "escape-string-regexp": "^4.0.0",
1769 | "eslint-scope": "^7.1.1",
1770 | "eslint-utils": "^3.0.0",
1771 | "eslint-visitor-keys": "^3.3.0",
1772 | "espree": "^9.3.3",
1773 | "esquery": "^1.4.0",
1774 | "esutils": "^2.0.2",
1775 | "fast-deep-equal": "^3.1.3",
1776 | "file-entry-cache": "^6.0.1",
1777 | "find-up": "^5.0.0",
1778 | "functional-red-black-tree": "^1.0.1",
1779 | "glob-parent": "^6.0.1",
1780 | "globals": "^13.15.0",
1781 | "globby": "^11.1.0",
1782 | "grapheme-splitter": "^1.0.4",
1783 | "ignore": "^5.2.0",
1784 | "import-fresh": "^3.0.0",
1785 | "imurmurhash": "^0.1.4",
1786 | "is-glob": "^4.0.0",
1787 | "js-yaml": "^4.1.0",
1788 | "json-stable-stringify-without-jsonify": "^1.0.1",
1789 | "levn": "^0.4.1",
1790 | "lodash.merge": "^4.6.2",
1791 | "minimatch": "^3.1.2",
1792 | "natural-compare": "^1.4.0",
1793 | "optionator": "^0.9.1",
1794 | "regexpp": "^3.2.0",
1795 | "strip-ansi": "^6.0.1",
1796 | "strip-json-comments": "^3.1.0",
1797 | "text-table": "^0.2.0",
1798 | "v8-compile-cache": "^2.0.3"
1799 | },
1800 | "dependencies": {
1801 | "ansi-styles": {
1802 | "version": "4.3.0",
1803 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1804 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1805 | "dev": true,
1806 | "requires": {
1807 | "color-convert": "^2.0.1"
1808 | }
1809 | },
1810 | "chalk": {
1811 | "version": "4.1.2",
1812 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1813 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1814 | "dev": true,
1815 | "requires": {
1816 | "ansi-styles": "^4.1.0",
1817 | "supports-color": "^7.1.0"
1818 | }
1819 | },
1820 | "color-convert": {
1821 | "version": "2.0.1",
1822 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1823 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1824 | "dev": true,
1825 | "requires": {
1826 | "color-name": "~1.1.4"
1827 | }
1828 | },
1829 | "color-name": {
1830 | "version": "1.1.4",
1831 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1832 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1833 | "dev": true
1834 | },
1835 | "escape-string-regexp": {
1836 | "version": "4.0.0",
1837 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1838 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1839 | "dev": true
1840 | },
1841 | "has-flag": {
1842 | "version": "4.0.0",
1843 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1844 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1845 | "dev": true
1846 | },
1847 | "js-yaml": {
1848 | "version": "4.1.0",
1849 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1850 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1851 | "dev": true,
1852 | "requires": {
1853 | "argparse": "^2.0.1"
1854 | }
1855 | },
1856 | "supports-color": {
1857 | "version": "7.2.0",
1858 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1859 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1860 | "dev": true,
1861 | "requires": {
1862 | "has-flag": "^4.0.0"
1863 | }
1864 | }
1865 | }
1866 | },
1867 | "eslint-scope": {
1868 | "version": "7.1.1",
1869 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
1870 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
1871 | "dev": true,
1872 | "requires": {
1873 | "esrecurse": "^4.3.0",
1874 | "estraverse": "^5.2.0"
1875 | }
1876 | },
1877 | "eslint-utils": {
1878 | "version": "3.0.0",
1879 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
1880 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
1881 | "dev": true,
1882 | "requires": {
1883 | "eslint-visitor-keys": "^2.0.0"
1884 | },
1885 | "dependencies": {
1886 | "eslint-visitor-keys": {
1887 | "version": "2.1.0",
1888 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1889 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1890 | "dev": true
1891 | }
1892 | }
1893 | },
1894 | "eslint-visitor-keys": {
1895 | "version": "3.3.0",
1896 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
1897 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
1898 | "dev": true
1899 | },
1900 | "espree": {
1901 | "version": "9.3.3",
1902 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz",
1903 | "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==",
1904 | "dev": true,
1905 | "requires": {
1906 | "acorn": "^8.8.0",
1907 | "acorn-jsx": "^5.3.2",
1908 | "eslint-visitor-keys": "^3.3.0"
1909 | }
1910 | },
1911 | "esquery": {
1912 | "version": "1.4.0",
1913 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1914 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1915 | "dev": true,
1916 | "requires": {
1917 | "estraverse": "^5.1.0"
1918 | }
1919 | },
1920 | "esrecurse": {
1921 | "version": "4.3.0",
1922 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1923 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1924 | "dev": true,
1925 | "requires": {
1926 | "estraverse": "^5.2.0"
1927 | }
1928 | },
1929 | "estraverse": {
1930 | "version": "5.3.0",
1931 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1932 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1933 | "dev": true
1934 | },
1935 | "esutils": {
1936 | "version": "2.0.3",
1937 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1938 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1939 | "dev": true
1940 | },
1941 | "fast-deep-equal": {
1942 | "version": "3.1.3",
1943 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1944 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1945 | "dev": true
1946 | },
1947 | "fast-glob": {
1948 | "version": "3.2.11",
1949 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
1950 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
1951 | "dev": true,
1952 | "requires": {
1953 | "@nodelib/fs.stat": "^2.0.2",
1954 | "@nodelib/fs.walk": "^1.2.3",
1955 | "glob-parent": "^5.1.2",
1956 | "merge2": "^1.3.0",
1957 | "micromatch": "^4.0.4"
1958 | },
1959 | "dependencies": {
1960 | "glob-parent": {
1961 | "version": "5.1.2",
1962 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1963 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1964 | "dev": true,
1965 | "requires": {
1966 | "is-glob": "^4.0.1"
1967 | }
1968 | }
1969 | }
1970 | },
1971 | "fast-json-stable-stringify": {
1972 | "version": "2.1.0",
1973 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1974 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1975 | "dev": true
1976 | },
1977 | "fast-levenshtein": {
1978 | "version": "2.0.6",
1979 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1980 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
1981 | "dev": true
1982 | },
1983 | "fastq": {
1984 | "version": "1.13.0",
1985 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
1986 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
1987 | "dev": true,
1988 | "requires": {
1989 | "reusify": "^1.0.4"
1990 | }
1991 | },
1992 | "file-entry-cache": {
1993 | "version": "6.0.1",
1994 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1995 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1996 | "dev": true,
1997 | "requires": {
1998 | "flat-cache": "^3.0.4"
1999 | }
2000 | },
2001 | "fill-range": {
2002 | "version": "7.0.1",
2003 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2004 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2005 | "dev": true,
2006 | "requires": {
2007 | "to-regex-range": "^5.0.1"
2008 | }
2009 | },
2010 | "find-up": {
2011 | "version": "5.0.0",
2012 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2013 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2014 | "dev": true,
2015 | "requires": {
2016 | "locate-path": "^6.0.0",
2017 | "path-exists": "^4.0.0"
2018 | }
2019 | },
2020 | "flat-cache": {
2021 | "version": "3.0.4",
2022 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
2023 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
2024 | "dev": true,
2025 | "requires": {
2026 | "flatted": "^3.1.0",
2027 | "rimraf": "^3.0.2"
2028 | }
2029 | },
2030 | "flatted": {
2031 | "version": "3.2.6",
2032 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
2033 | "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
2034 | "dev": true
2035 | },
2036 | "follow-redirects": {
2037 | "version": "1.15.1",
2038 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
2039 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
2040 | },
2041 | "form-data": {
2042 | "version": "4.0.0",
2043 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
2044 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
2045 | "requires": {
2046 | "asynckit": "^0.4.0",
2047 | "combined-stream": "^1.0.8",
2048 | "mime-types": "^2.1.12"
2049 | }
2050 | },
2051 | "fs.realpath": {
2052 | "version": "1.0.0",
2053 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2054 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2055 | "dev": true
2056 | },
2057 | "functional-red-black-tree": {
2058 | "version": "1.0.1",
2059 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
2060 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
2061 | "dev": true
2062 | },
2063 | "glob": {
2064 | "version": "7.2.3",
2065 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2066 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2067 | "dev": true,
2068 | "requires": {
2069 | "fs.realpath": "^1.0.0",
2070 | "inflight": "^1.0.4",
2071 | "inherits": "2",
2072 | "minimatch": "^3.1.1",
2073 | "once": "^1.3.0",
2074 | "path-is-absolute": "^1.0.0"
2075 | }
2076 | },
2077 | "glob-parent": {
2078 | "version": "6.0.2",
2079 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
2080 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
2081 | "dev": true,
2082 | "requires": {
2083 | "is-glob": "^4.0.3"
2084 | }
2085 | },
2086 | "globals": {
2087 | "version": "13.17.0",
2088 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
2089 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
2090 | "dev": true,
2091 | "requires": {
2092 | "type-fest": "^0.20.2"
2093 | }
2094 | },
2095 | "globby": {
2096 | "version": "11.1.0",
2097 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
2098 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
2099 | "dev": true,
2100 | "requires": {
2101 | "array-union": "^2.1.0",
2102 | "dir-glob": "^3.0.1",
2103 | "fast-glob": "^3.2.9",
2104 | "ignore": "^5.2.0",
2105 | "merge2": "^1.4.1",
2106 | "slash": "^3.0.0"
2107 | }
2108 | },
2109 | "grapheme-splitter": {
2110 | "version": "1.0.4",
2111 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
2112 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
2113 | "dev": true
2114 | },
2115 | "ignore": {
2116 | "version": "5.2.0",
2117 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
2118 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
2119 | "dev": true
2120 | },
2121 | "import-fresh": {
2122 | "version": "3.3.0",
2123 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2124 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2125 | "dev": true,
2126 | "requires": {
2127 | "parent-module": "^1.0.0",
2128 | "resolve-from": "^4.0.0"
2129 | }
2130 | },
2131 | "imurmurhash": {
2132 | "version": "0.1.4",
2133 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2134 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2135 | "dev": true
2136 | },
2137 | "inflight": {
2138 | "version": "1.0.6",
2139 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2140 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2141 | "dev": true,
2142 | "requires": {
2143 | "once": "^1.3.0",
2144 | "wrappy": "1"
2145 | }
2146 | },
2147 | "inherits": {
2148 | "version": "2.0.3",
2149 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2150 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2151 | "dev": true
2152 | },
2153 | "is-extglob": {
2154 | "version": "2.1.1",
2155 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2156 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2157 | "dev": true
2158 | },
2159 | "is-glob": {
2160 | "version": "4.0.3",
2161 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2162 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2163 | "dev": true,
2164 | "requires": {
2165 | "is-extglob": "^2.1.1"
2166 | }
2167 | },
2168 | "is-number": {
2169 | "version": "7.0.0",
2170 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2171 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2172 | "dev": true
2173 | },
2174 | "isexe": {
2175 | "version": "2.0.0",
2176 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2177 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2178 | "dev": true
2179 | },
2180 | "json-schema-traverse": {
2181 | "version": "0.4.1",
2182 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2183 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2184 | "dev": true
2185 | },
2186 | "json-stable-stringify-without-jsonify": {
2187 | "version": "1.0.1",
2188 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2189 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
2190 | "dev": true
2191 | },
2192 | "levn": {
2193 | "version": "0.4.1",
2194 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2195 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2196 | "dev": true,
2197 | "requires": {
2198 | "prelude-ls": "^1.2.1",
2199 | "type-check": "~0.4.0"
2200 | }
2201 | },
2202 | "linkify-it": {
2203 | "version": "4.0.1",
2204 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
2205 | "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
2206 | "requires": {
2207 | "uc.micro": "^1.0.1"
2208 | }
2209 | },
2210 | "locate-path": {
2211 | "version": "6.0.0",
2212 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2213 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2214 | "dev": true,
2215 | "requires": {
2216 | "p-locate": "^5.0.0"
2217 | }
2218 | },
2219 | "lodash.merge": {
2220 | "version": "4.6.2",
2221 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2222 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2223 | "dev": true
2224 | },
2225 | "markdown-it": {
2226 | "version": "13.0.1",
2227 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
2228 | "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
2229 | "requires": {
2230 | "argparse": "^2.0.1",
2231 | "entities": "~3.0.1",
2232 | "linkify-it": "^4.0.1",
2233 | "mdurl": "^1.0.1",
2234 | "uc.micro": "^1.0.5"
2235 | }
2236 | },
2237 | "mdurl": {
2238 | "version": "1.0.1",
2239 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
2240 | "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
2241 | },
2242 | "merge2": {
2243 | "version": "1.4.1",
2244 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2245 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2246 | "dev": true
2247 | },
2248 | "micromatch": {
2249 | "version": "4.0.5",
2250 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
2251 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
2252 | "dev": true,
2253 | "requires": {
2254 | "braces": "^3.0.2",
2255 | "picomatch": "^2.3.1"
2256 | }
2257 | },
2258 | "mime-db": {
2259 | "version": "1.52.0",
2260 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2261 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
2262 | },
2263 | "mime-types": {
2264 | "version": "2.1.35",
2265 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2266 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2267 | "requires": {
2268 | "mime-db": "1.52.0"
2269 | }
2270 | },
2271 | "minimatch": {
2272 | "version": "3.1.2",
2273 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2274 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2275 | "dev": true,
2276 | "requires": {
2277 | "brace-expansion": "^1.1.7"
2278 | }
2279 | },
2280 | "ms": {
2281 | "version": "2.1.2",
2282 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2283 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2284 | "dev": true
2285 | },
2286 | "natural-compare": {
2287 | "version": "1.4.0",
2288 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2289 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2290 | "dev": true
2291 | },
2292 | "once": {
2293 | "version": "1.4.0",
2294 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2295 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2296 | "dev": true,
2297 | "requires": {
2298 | "wrappy": "1"
2299 | }
2300 | },
2301 | "optionator": {
2302 | "version": "0.9.1",
2303 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
2304 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
2305 | "dev": true,
2306 | "requires": {
2307 | "deep-is": "^0.1.3",
2308 | "fast-levenshtein": "^2.0.6",
2309 | "levn": "^0.4.1",
2310 | "prelude-ls": "^1.2.1",
2311 | "type-check": "^0.4.0",
2312 | "word-wrap": "^1.2.3"
2313 | }
2314 | },
2315 | "p-limit": {
2316 | "version": "3.1.0",
2317 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2318 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2319 | "dev": true,
2320 | "requires": {
2321 | "yocto-queue": "^0.1.0"
2322 | }
2323 | },
2324 | "p-locate": {
2325 | "version": "5.0.0",
2326 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2327 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2328 | "dev": true,
2329 | "requires": {
2330 | "p-limit": "^3.0.2"
2331 | }
2332 | },
2333 | "parent-module": {
2334 | "version": "1.0.1",
2335 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2336 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2337 | "dev": true,
2338 | "requires": {
2339 | "callsites": "^3.0.0"
2340 | }
2341 | },
2342 | "path-exists": {
2343 | "version": "4.0.0",
2344 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2345 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2346 | "dev": true
2347 | },
2348 | "path-is-absolute": {
2349 | "version": "1.0.1",
2350 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2351 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2352 | "dev": true
2353 | },
2354 | "path-key": {
2355 | "version": "3.1.1",
2356 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2357 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2358 | "dev": true
2359 | },
2360 | "path-type": {
2361 | "version": "4.0.0",
2362 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2363 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2364 | "dev": true
2365 | },
2366 | "picomatch": {
2367 | "version": "2.3.1",
2368 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2369 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2370 | "dev": true
2371 | },
2372 | "prelude-ls": {
2373 | "version": "1.2.1",
2374 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2375 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2376 | "dev": true
2377 | },
2378 | "punycode": {
2379 | "version": "2.1.1",
2380 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2381 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2382 | "dev": true
2383 | },
2384 | "queue-microtask": {
2385 | "version": "1.2.3",
2386 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2387 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2388 | "dev": true
2389 | },
2390 | "regexpp": {
2391 | "version": "3.2.0",
2392 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
2393 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
2394 | "dev": true
2395 | },
2396 | "resolve-from": {
2397 | "version": "4.0.0",
2398 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2399 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2400 | "dev": true
2401 | },
2402 | "reusify": {
2403 | "version": "1.0.4",
2404 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2405 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2406 | "dev": true
2407 | },
2408 | "rimraf": {
2409 | "version": "3.0.2",
2410 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2411 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2412 | "dev": true,
2413 | "requires": {
2414 | "glob": "^7.1.3"
2415 | }
2416 | },
2417 | "run-parallel": {
2418 | "version": "1.2.0",
2419 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2420 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2421 | "dev": true,
2422 | "requires": {
2423 | "queue-microtask": "^1.2.2"
2424 | }
2425 | },
2426 | "shebang-command": {
2427 | "version": "2.0.0",
2428 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2429 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2430 | "dev": true,
2431 | "requires": {
2432 | "shebang-regex": "^3.0.0"
2433 | }
2434 | },
2435 | "shebang-regex": {
2436 | "version": "3.0.0",
2437 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2438 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2439 | "dev": true
2440 | },
2441 | "slash": {
2442 | "version": "3.0.0",
2443 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2444 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2445 | "dev": true
2446 | },
2447 | "strip-ansi": {
2448 | "version": "6.0.1",
2449 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2450 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2451 | "dev": true,
2452 | "requires": {
2453 | "ansi-regex": "^5.0.1"
2454 | }
2455 | },
2456 | "strip-json-comments": {
2457 | "version": "3.1.1",
2458 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2459 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2460 | "dev": true
2461 | },
2462 | "text-table": {
2463 | "version": "0.2.0",
2464 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2465 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
2466 | "dev": true
2467 | },
2468 | "to-regex-range": {
2469 | "version": "5.0.1",
2470 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2471 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2472 | "dev": true,
2473 | "requires": {
2474 | "is-number": "^7.0.0"
2475 | }
2476 | },
2477 | "type-check": {
2478 | "version": "0.4.0",
2479 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
2480 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
2481 | "dev": true,
2482 | "requires": {
2483 | "prelude-ls": "^1.2.1"
2484 | }
2485 | },
2486 | "type-fest": {
2487 | "version": "0.20.2",
2488 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2489 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2490 | "dev": true
2491 | },
2492 | "typescript": {
2493 | "version": "4.7.4",
2494 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
2495 | "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
2496 | "dev": true
2497 | },
2498 | "uc.micro": {
2499 | "version": "1.0.6",
2500 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
2501 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
2502 | },
2503 | "uri-js": {
2504 | "version": "4.4.1",
2505 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2506 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2507 | "dev": true,
2508 | "requires": {
2509 | "punycode": "^2.1.0"
2510 | }
2511 | },
2512 | "v8-compile-cache": {
2513 | "version": "2.3.0",
2514 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
2515 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
2516 | "dev": true
2517 | },
2518 | "which": {
2519 | "version": "2.0.2",
2520 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2521 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2522 | "dev": true,
2523 | "requires": {
2524 | "isexe": "^2.0.0"
2525 | }
2526 | },
2527 | "word-wrap": {
2528 | "version": "1.2.4",
2529 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
2530 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
2531 | "dev": true
2532 | },
2533 | "wrappy": {
2534 | "version": "1.0.2",
2535 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2536 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2537 | "dev": true
2538 | },
2539 | "yocto-queue": {
2540 | "version": "0.1.0",
2541 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
2542 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
2543 | "dev": true
2544 | }
2545 | }
2546 | }
2547 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gitea-vscode",
3 | "displayName": "Gitea-VSCode",
4 | "description": "Gitea Issue Tracker for vs-code",
5 | "publisher": "IJustDev",
6 | "version": "2.1.0",
7 | "engines": {
8 | "vscode": "^1.70.0"
9 | },
10 | "categories": [
11 | "Other"
12 | ],
13 | "activationEvents": [
14 | "onView:giteaIssues.opened-issues",
15 | "onCommand:giteaIssues.initRepo",
16 | "onCommand:giteaIssues.refreshIssues"
17 | ],
18 | "main": "./out/extension.js",
19 | "icon": "resources/icon.png",
20 | "contributes": {
21 | "viewsWelcome": [
22 | {
23 | "view": "giteaIssues.opened-issues",
24 | "contents": "Refresh to get Gitea opened issues .\n[Refresh](command:giteaIssues.refreshIssues)"
25 | },
26 | {
27 | "view": "giteaIssues.closed-issues",
28 | "contents": "Refresh to get Gitea closed issues .\n[Refresh](command:giteaIssues.refreshIssues)"
29 | }
30 | ],
31 | "viewsContainers": {
32 | "activitybar": [
33 | {
34 | "id": "giteaIssues",
35 | "title": "Gitea-Issues",
36 | "icon": "media/issue.svg"
37 | }
38 | ]
39 | },
40 | "views": {
41 | "giteaIssues": [
42 | {
43 | "id": "giteaIssues.opened-issues",
44 | "name": "Open Issues"
45 | },
46 | {
47 | "id": "giteaIssues.closed-issues",
48 | "name": "Closed Issues"
49 | }
50 | ]
51 | },
52 | "commands": [
53 | {
54 | "command": "giteaIssues.openIssue",
55 | "title": "Show"
56 | },
57 | {
58 | "command": "giteaIssues.refreshIssues",
59 | "title": "Refresh",
60 | "icon": {
61 | "dark": "resources/dark/refresh.svg",
62 | "light": "resources/light/refresh.svg"
63 | }
64 | }
65 | ],
66 | "menus": {
67 | "view/title": [
68 | {
69 | "command": "giteaIssues.refreshIssues",
70 | "group": "navigation",
71 | "when": "view == giteaIssues.opened-issues"
72 | }
73 | ]
74 | },
75 | "configuration": {
76 | "title": "Gitea",
77 | "properties": {
78 | "gitea.token": {
79 | "scope": "resource",
80 | "type": "string",
81 | "default": "",
82 | "description": "The token for the gitea server."
83 | },
84 | "gitea.instanceURL": {
85 | "scope": "resource",
86 | "type": "string",
87 | "default": "",
88 | "examples": [
89 | "http://example.com:3000",
90 | "https://gitea.com"
91 | ],
92 | "description": "The remote gitea instance's url. Append base url to this string eg. http://localhost:8080 or http://localhost/gitea",
93 | "pattern": "^(https|http)://"
94 | },
95 | "gitea.owner": {
96 | "scope": "resource",
97 | "type": "string",
98 | "default": "",
99 | "description": "The username for the repository."
100 | },
101 | "gitea.repo": {
102 | "scope": "resource",
103 | "type": "string",
104 | "default": "",
105 | "description": "The repository name."
106 | },
107 | "gitea.sslVerify": {
108 | "scope": "resource",
109 | "type": "boolean",
110 | "default": true,
111 | "description": "true=Stop when cannot verify SSL certificate, false=Continue any way. Like git config 'sslVerify'."
112 | },
113 |
114 | "gitea.render": {
115 | "scope": "resource",
116 | "type": "string",
117 | "default": "markdown",
118 | "enum": [
119 | "markdown",
120 | "html"
121 | ],
122 | "enumDescriptions": [
123 | "Render Issue in markdown format",
124 | "Render Issue in html format"
125 | ],
126 | "description": "Choose render to show issues in editor"
127 | },
128 | "gitea.debug": {
129 | "scope": "window",
130 | "type": "boolean",
131 | "default": false,
132 | "description": "Enable debug mode. Need to reload window to apply"
133 | }
134 | }
135 | }
136 | },
137 | "scripts": {
138 | "vscode:prepublish": "npm run compile",
139 | "compile": "tsc -p ./",
140 | "watch": "tsc -watch -p ./",
141 | "pretest": "npm run compile && npm run lint",
142 | "lint": "eslint src --ext ts",
143 | "test": "node ./out/test/runTest.js"
144 | },
145 | "devDependencies": {
146 | "@types/vscode": "^1.70.0",
147 | "@types/mocha": "^9.1.1",
148 | "@types/node": "16.x",
149 | "@types/markdown-it": "^12.2.3",
150 | "eslint": "^8.20.0",
151 | "typescript": "^4.7.4"
152 | },
153 | "dependencies": {
154 | "axios": "^0.27.2",
155 | "markdown-it": "^13.0.1"
156 | },
157 | "repository": {
158 | "type": "github",
159 | "url": "https://github.com/IJustdev/Gitea-VSCode.git"
160 | },
161 | "license": "MIT"
162 | }
163 |
--------------------------------------------------------------------------------
/resources/bug.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/dark/create.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/resources/dark/issue.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/dark/refresh.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/resources/feature.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/icon-highres.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IJustDev/Gitea-VSCode/ea43e429b43866ce2010e5cfb27c0c308fa63d31/resources/icon-highres.png
--------------------------------------------------------------------------------
/resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IJustDev/Gitea-VSCode/ea43e429b43866ce2010e5cfb27c0c308fa63d31/resources/icon.png
--------------------------------------------------------------------------------
/resources/light/create.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/resources/light/issue.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/light/refresh.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/IGiteaResponse.ts:
--------------------------------------------------------------------------------
1 | export interface IGiteaResponse {
2 | data: any[];
3 | }
4 |
--------------------------------------------------------------------------------
/src/config.ts:
--------------------------------------------------------------------------------
1 | import { workspace, window } from 'vscode';
2 |
3 | interface ConfigStorage {
4 | token: string;
5 | instanceURL: string;
6 | owner: string;
7 | repo: string;
8 | sslVerify: boolean;
9 | baseURL: string;
10 | render: string;
11 | debug: boolean;
12 | }
13 |
14 | export interface ConfigTypes extends ConfigStorage {
15 | readonly repoApiUrl: string;
16 | }
17 |
18 | export class Config implements ConfigTypes {
19 | private get storage() {
20 | return workspace.getConfiguration('gitea', null);
21 | }
22 |
23 | private loadConfigValue(configKey: T, type: 'string' | 'boolean' | 'number', acceptDetault = false): ConfigStorage[T] {
24 | if (!acceptDetault && !this.storage.has(configKey)) {
25 | window.showErrorMessage("Gitea-VSCode didn't find a required configuration value: " + configKey);
26 | throw new Error(`Failed to load configuration: "${configKey}"`);
27 | }
28 |
29 | const value = this.storage.has(configKey)
30 | ? (this.storage.get(configKey) as ConfigStorage[T])
31 | : (this.storage.inspect(configKey) as { defaultValue: ConfigStorage[T]; key: string }).defaultValue;
32 |
33 | if (typeof value === type && (type !== 'string' || (value as string).length > 0)) {
34 | return value as ConfigStorage[T];
35 | }
36 |
37 | window.showErrorMessage('Gitea-VSCode failed to load a configuration value that is needed: ' + configKey);
38 | throw new Error(`Failed to load configuration: "gitea.${configKey}"`);
39 | }
40 |
41 | public get token() {
42 | return this.loadConfigValue('token', 'string');
43 | }
44 |
45 | public set token(value) {
46 | this.storage.update('token', value);
47 | }
48 |
49 | public set instanceUrl(value: string) {
50 | this.storage.update('instanceURL', value);
51 | }
52 |
53 | public get instanceURL(): any {
54 | return this.loadConfigValue('instanceURL', 'string');
55 | }
56 |
57 | public get baseURL(): string {
58 | return this.loadConfigValue('baseURL', 'string');
59 | }
60 |
61 | public set baseURL(value) {
62 | this.storage.update('baseURL', 'string');
63 | }
64 |
65 | public get owner() {
66 | return this.loadConfigValue('owner', 'string');
67 | }
68 |
69 | public set owner(value) {
70 | this.storage.update('owner', value);
71 | }
72 |
73 | public get repo() {
74 | return this.loadConfigValue('repo', 'string');
75 | }
76 |
77 | public set repo(value) {
78 | this.storage.update('repo', value);
79 | }
80 |
81 | public get repoApiUrl(): string {
82 | return this.instanceURL.replace(/\/$/, "") +
83 | '/api/v1/repos/' +
84 | this.owner +
85 | '/' + this.repo + '/issues';
86 | }
87 |
88 | public set sslVerify(value) {
89 | this.storage.update('sslVerify', value);
90 | }
91 |
92 | public get sslVerify() {
93 | return this.loadConfigValue('sslVerify', 'boolean');
94 | }
95 |
96 |
97 | public get render() {
98 | return this.loadConfigValue('render', 'string')
99 | }
100 |
101 | public set render(value) {
102 | this.storage.update('render', value)
103 | }
104 |
105 | public set debug(value) {
106 | this.storage.update('debug', value)
107 | }
108 |
109 | public get debug(): boolean {
110 | return this.loadConfigValue('debug', 'boolean');
111 | }
112 | }
113 |
--------------------------------------------------------------------------------
/src/extension.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 |
3 | import { showIssueHTML, showIssueMD } from './template.issues';
4 | import { Issue } from './issue';
5 | import { IssueProvider } from './issueProvider';
6 | import { Config } from './config';
7 | import MarkdownIt = require('markdown-it');
8 | import { Logger } from './logger';
9 |
10 | export function showIssueInWebPanel(issue: Issue) {
11 | const panel = vscode.window.createWebviewPanel(
12 | 'issue',
13 | issue.label,
14 | vscode.ViewColumn.Active,
15 | {
16 | enableScripts: true
17 | }
18 | );
19 |
20 | const config = new Config();
21 |
22 | if(config.render == 'html') {
23 | panel.webview.html = showIssueHTML(issue);
24 | } else {
25 | let markdownIt = new MarkdownIt()
26 | panel.webview.html = markdownIt.render(showIssueMD(issue));
27 | }
28 |
29 | return panel;
30 | }
31 |
32 | export function activate(context: vscode.ExtensionContext) {
33 | Logger.init()
34 | Logger.log('Starting Gitea ...');
35 |
36 | // Array of issues; This is used to determine whether a issue is already open
37 | // in a tab or not.
38 | let openIssues: Array = [];
39 | const openIssuesProvider = new IssueProvider("open");
40 | const closedIssuesProvider = new IssueProvider("closed");
41 |
42 | vscode.window.registerTreeDataProvider('giteaIssues.opened-issues', openIssuesProvider);
43 | vscode.window.registerTreeDataProvider('giteaIssues.closed-issues', closedIssuesProvider);
44 |
45 | vscode.commands.registerCommand('giteaIssues.openIssue', (issue: Issue) => {
46 | const issueOpenable = openIssues.find((c) => c.issueId === issue.issueId) === undefined;
47 |
48 | if (issueOpenable) {
49 | const panel = showIssueInWebPanel(issue);
50 | openIssues.push(issue);
51 | panel.onDidDispose((event) => {
52 | openIssues.splice(openIssues.indexOf(issue), 1);
53 | });
54 | }
55 | });
56 |
57 | vscode.commands.registerCommand('giteaIssues.refreshIssues', () => {
58 | openIssuesProvider.refresh();
59 | closedIssuesProvider.refresh();
60 | });
61 |
62 | Logger.log('Gitea is ready')
63 | }
64 |
65 | export function deactivate() {}
66 |
--------------------------------------------------------------------------------
/src/giteaConnector.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 | import * as https from 'https';
3 | import axios from 'axios';
4 |
5 | import { IGiteaResponse } from './IGiteaResponse';
6 | import { Logger } from './logger';
7 |
8 | export class GiteaConnector {
9 | private authToken: string;
10 | private ssl: boolean;
11 |
12 | public constructor(authToken: string, ssl: boolean = false) {
13 | this.authToken = authToken;
14 | this.ssl = ssl;
15 | }
16 |
17 | public async getIssues(repoUri: string, state: string, page: number = 0): Promise {
18 | return this.getEndpoint(`${repoUri}?state=${state}&page=${page}`);
19 | }
20 |
21 | private async getEndpoint(url: string): Promise {
22 | Logger.debug('getEndpoint', 'request', {'url': url})
23 | return new Promise((resolve, reject) => {
24 | return axios.get(url, this.requestOptions).then((data) => {
25 | resolve(data);
26 | Logger.debug('getEndpoint', 'response', {'url': url, 'status': data.status, 'size': data.data.length})
27 | }).catch((err) => {
28 | this.displayErrorMessage(err);
29 | Logger.log(err)
30 | reject(err);
31 | });
32 | });
33 | }
34 |
35 | private async postEndpoint(url: string): Promise {
36 | return new Promise((resolve, reject) => {
37 | return axios.post(url, this.requestOptions);
38 | });
39 | }
40 |
41 | private get requestOptions(): object {
42 | const agent = new https.Agent({
43 | rejectUnauthorized: this.ssl,
44 | });
45 | return {
46 | headers: {Authorization: 'token ' + this.authToken},
47 | httpsAgent: agent,
48 | };
49 | }
50 |
51 | private displayErrorMessage(err: string) {
52 | vscode.window.showErrorMessage("Error occoured. " + err);
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/issue.ts:
--------------------------------------------------------------------------------
1 | import { Uri, TreeItem, TreeItemCollapsibleState, Command } from 'vscode';
2 |
3 | interface Label {
4 | color: string;
5 | id: number;
6 | name: string;
7 | url: string;
8 | }
9 |
10 | export class Issue extends TreeItem {
11 | contextValue = 'issue';
12 | original_issue? : Issue;
13 |
14 | static createIssue(element: Issue) {
15 | let ret = new Issue(
16 | element.label,
17 | element.issueId,
18 | element.body,
19 | element.state,
20 | element.assignee,
21 | element.assignees,
22 | element.creator,
23 | element.labels,
24 | element.collapsibleState,
25 | element.title,
26 | element.html_url)
27 | ret.original_issue = element;
28 | return ret
29 | }
30 |
31 | constructor(
32 | public readonly label: string,
33 | public issueId: number,
34 | public body: string,
35 | public state: string,
36 | public assignee: string,
37 | public assignees: any[],
38 | public creator: string,
39 | public labels: Label[],
40 | public collapsibleState: TreeItemCollapsibleState,
41 | public title: string,
42 | public html_url: string,
43 | public command?: Command
44 | ) {
45 | super(label, collapsibleState);
46 | this.tooltip = this.label + ' - ' + this.assignee;
47 | }
48 |
49 | labelDependentIcon(dark: boolean = false): Uri {
50 | if (this.labels.length === 0) {
51 | return createIconWithColor('#868686');
52 | } else {
53 | return createIconWithColor(this.labels[0].color);
54 | }
55 | }
56 |
57 | iconPath = {
58 | light: this.labelDependentIcon(),
59 | dark: this.labelDependentIcon(true),
60 | };
61 |
62 | }
63 |
64 | export function createIconWithColor(color: string): Uri {
65 | const icon = `
66 |
67 |
68 |
69 |
70 | `.replace(new RegExp('{{color}}', 'g'), '#' + color);
71 |
72 | return Uri.parse('data:image/svg+xml;base64,' + Buffer.from(icon).toString('base64'));
73 | }
74 |
--------------------------------------------------------------------------------
/src/issueProvider.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 |
3 | import { Issue } from './issue';
4 | import { Config } from './config';
5 | import { GiteaConnector } from './giteaConnector';
6 | import { Logger } from './logger';
7 |
8 | export class IssueProvider implements vscode.TreeDataProvider {
9 | private _onDidChangeTreeData: vscode.EventEmitter = new vscode.EventEmitter();
10 |
11 | readonly onDidChangeTreeData: vscode.Event = this._onDidChangeTreeData.event;
12 |
13 | private state: string;
14 | private issueList: Issue[] = [];
15 |
16 | constructor(state: string) {
17 | this.state = state;
18 | }
19 |
20 | public getTreeItem(element: Issue): vscode.TreeItem | Thenable {
21 | return element;
22 | }
23 |
24 | public async getIssuesAsync() : Promise {
25 | this.issueList = [];
26 | const config = new Config();
27 | const giteaConnector = new GiteaConnector(config.token, config.sslVerify);
28 |
29 | const issues = [];
30 | let page = 1;
31 | while (page < 11) {
32 | Logger.log( `Retrieve issues. State: ${this.state} - page ${page}`);
33 | const issuesOfPage = (await giteaConnector.getIssues(config.repoApiUrl, this.state, page)).data;
34 | Logger.log( `${issuesOfPage.length} issues retrieved (state: ${this.state} - page: ${page})`);
35 | issues.push(...issuesOfPage);
36 | issuesOfPage.forEach((c) => {
37 | c.label = `#${c.number} - ${c.title}`;
38 | c.issueId = c.number;
39 | c.assignee = c.assignee === null ? 'Nobody' : c.assignee.login;
40 | c.assignees = c.assignees;
41 | c.creator = c.user.login;
42 | c.id = c.id.toString();
43 | });
44 | page++;
45 | if (issuesOfPage.length < 10) {
46 | break;
47 | }
48 | }
49 |
50 | this.issueList = []
51 | issues.forEach((element: Issue) => {
52 | let issue = Issue.createIssue(element)
53 |
54 | issue.command = {
55 | command: 'giteaIssues.openIssue',
56 | title: '',
57 | arguments: [element],
58 | };
59 | issue.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed;
60 | issue.contextValue = 'issue';
61 | this.issueList.push(issue)
62 | Logger.debug('Issue processed', { 'id': issue.issueId, 'state': issue.state })
63 | });
64 |
65 | return this.issueList
66 | }
67 |
68 | public async refresh() {
69 | await this.getIssuesAsync();
70 | this._onDidChangeTreeData.fire();
71 | }
72 |
73 | public getChildren(element?: Issue): vscode.ProviderResult {
74 | return this.createChildNodes(element, this.issueList);
75 | }
76 |
77 | private createChildNodes(element: Issue | undefined, issues: Issue[]) {
78 | for (const issue of issues) {
79 | if (element === issue) {
80 | let childItems: vscode.TreeItem[] = [
81 | new vscode.TreeItem('Assignee - ' + element.assignee, vscode.TreeItemCollapsibleState.None),
82 | new vscode.TreeItem('State - ' + element.state, vscode.TreeItemCollapsibleState.None),
83 | new vscode.TreeItem('ID - ' + element.issueId, vscode.TreeItemCollapsibleState.None),
84 | new vscode.TreeItem('From - ' + element.creator, vscode.TreeItemCollapsibleState.None),
85 | ];
86 | return Promise.resolve(childItems);
87 | }
88 | }
89 | return issues;
90 | }
91 | }
92 |
93 |
--------------------------------------------------------------------------------
/src/logger.ts:
--------------------------------------------------------------------------------
1 | import { type } from "os";
2 | import { OutputChannel, window } from "vscode";
3 | import { Config } from "./config";
4 |
5 | // Inspiration : GitLens - https://github.com/gitkraken/vscode-gitlens/blob/main/src/logger.ts
6 | export class Logger {
7 | private static channel: OutputChannel | undefined
8 | private static debugEnabled: boolean = false
9 |
10 | private constructor() { }
11 |
12 | public static init() {
13 | this.channel = window.createOutputChannel('Gitea')
14 | const config = new Config()
15 | this.debugEnabled = config.debug ?? false
16 | }
17 |
18 | public static log(message: string): void {
19 | if (this.channel == null) return
20 | this.channel.appendLine(`${this.timestamp} ${message}`);
21 | }
22 |
23 | public static debug(message: string, ...params: any[]): void {
24 | if (this.channel == null) return
25 | if (!this.debugEnabled) return
26 |
27 | params = this.convertParams(params)
28 | this.channel.appendLine(`${this.timestamp}[DEBUG] ${message} - ${params.join(' - ')}`);
29 | }
30 |
31 | private static convertParams(params: any[]): any[] {
32 | return params.flatMap((param: any) => {
33 | if (typeof param === 'object') {
34 | return Object.entries(param).map((entry) => {
35 | return entry[0] + ': ' + entry[1];
36 | });
37 | }
38 | return param;
39 | });
40 | }
41 |
42 | private static get timestamp(): string {
43 | return `[${new Date().toISOString().replace(/.*T/, '').slice(0, -1)}]`;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/template.issues.ts:
--------------------------------------------------------------------------------
1 | import { Issue } from './issue';
2 |
3 | export function showIssueHTML(issue: Issue) {
4 | return `
5 | {{label}}
6 |
7 |
8 |
9 | Title
10 |
11 |
12 | {{label}}
13 |
14 |
15 |
16 |
17 | State
18 |
19 |
20 | {{state}}
21 |
22 |
23 |
24 |
25 | Assignee
26 |
27 |
28 | {{assignee}}
29 |
30 |
31 |
32 |
33 | {{description}}
34 |
35 |
36 | `
37 | .replace('{{label}}', issue.label)
38 | .replace('{{state}}', issue.state)
39 | .replace('{{assignee}}', issue.assignee)
40 | .replace('{{description}}', issue.body)
41 | .replace('{{label}}', issue.label);
42 | }
43 |
44 |
45 | export function showIssueMD(issue: Issue) {
46 | let md_labels = issue.labels.map(label => {
47 | return ''
48 | }).join(', ')
49 |
50 | let assignees = issue.assignees === null ? "Nobody" : issue.assignees.map(assignee => { return assignee.login }).join(', ');
51 |
52 | let md = `# {{title}} (#{{id}})
53 |
54 | {{description}}
55 |
56 | ---
57 |
58 | * State: {{state}}
59 | * Assignee: {{assignee}}
60 | * Labels: {{labels}}
61 | * [See in browser]({{html_url}})
62 | `
63 | .replace('{{title}}', issue.title)
64 | .replace('{{id}}', issue.issueId.toString())
65 | .replace('{{description}}', issue.body)
66 | .replace('{{state}}', issue.state)
67 | .replace('{{assignee}}', assignees)
68 | .replace('{{labels}}', md_labels)
69 | .replace('{{html_url}}', issue.html_url)
70 |
71 | return md
72 | }
73 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true /* enable all strict type-checking options */
12 | /* Additional Checks */
13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */
16 | },
17 | "exclude": [
18 | "node_modules",
19 | ".vscode-test"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
--------------------------------------------------------------------------------