mirror of
https://github.com/open-goal/opengoal-vscode.git
synced 2024-10-19 20:47:37 -04:00
lsp: Add initial LSP support (#16)
This commit is contained in:
parent
f6c7dc9b3a
commit
410ce616e6
13
.eslintrc.yml
Normal file
13
.eslintrc.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
env:
|
||||||
|
browser: true
|
||||||
|
es2021: true
|
||||||
|
extends:
|
||||||
|
- eslint:recommended
|
||||||
|
- plugin:@typescript-eslint/recommended
|
||||||
|
parser: "@typescript-eslint/parser"
|
||||||
|
parserOptions:
|
||||||
|
ecmaVersion: latest
|
||||||
|
sourceType: module
|
||||||
|
plugins:
|
||||||
|
- "@typescript-eslint"
|
||||||
|
rules: {}
|
10
.github/dependabot.yml
vendored
Normal file
10
.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
30
.github/workflows/build.yaml
vendored
Normal file
30
.github/workflows/build.yaml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
name: 🔨 Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
tags:
|
||||||
|
- v*
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Extension
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- name: Install NPM Dependencies and Build Extension
|
||||||
|
run: |
|
||||||
|
npm ci
|
||||||
|
npm run compile
|
45
.github/workflows/lint.yaml
vendored
Normal file
45
.github/workflows/lint.yaml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
name: 📝 Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
name: ESLint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- name: Install Dependencies and Check Formatting
|
||||||
|
run: |
|
||||||
|
npm ci
|
||||||
|
npm run lint
|
||||||
|
formatting:
|
||||||
|
name: Formatting
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- name: Install Dependencies and Check Formatting
|
||||||
|
run: |
|
||||||
|
npm ci
|
||||||
|
npm run format:check
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,3 +1,6 @@
|
||||||
node_modules
|
node_modules
|
||||||
*.vsix
|
*.vsix
|
||||||
out/
|
out/
|
||||||
|
*.log
|
||||||
|
*.exe
|
||||||
|
*.bin
|
||||||
|
|
6
.prettierignore
Normal file
6
.prettierignore
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
node_modules
|
||||||
|
*.vsix
|
||||||
|
out/
|
||||||
|
*.log
|
||||||
|
*.exe
|
||||||
|
*.bin
|
0
.prettierrc.json
Normal file
0
.prettierrc.json
Normal file
28
.vscode/launch.json
vendored
28
.vscode/launch.json
vendored
|
@ -3,20 +3,16 @@
|
||||||
// Hover to view descriptions of existing attributes.
|
// Hover to view descriptions of existing attributes.
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
{
|
{
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Extension",
|
"name": "Extension",
|
||||||
"type": "extensionHost",
|
"type": "extensionHost",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"runtimeExecutable": "${execPath}",
|
"runtimeExecutable": "${execPath}",
|
||||||
"args": [
|
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
|
||||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
"outFiles": ["${workspaceFolder}/out/**/*.js"],
|
||||||
],
|
"preLaunchTask": "npm: watch"
|
||||||
"outFiles": [
|
}
|
||||||
"${workspaceFolder}/out/**/*.js"
|
]
|
||||||
],
|
|
||||||
"preLaunchTask": "npm: watch"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
32
.vscode/tasks.json
vendored
32
.vscode/tasks.json
vendored
|
@ -1,20 +1,20 @@
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
// for the documentation about the tasks.json format
|
// for the documentation about the tasks.json format
|
||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"type": "npm",
|
"type": "npm",
|
||||||
"script": "watch",
|
"script": "watch",
|
||||||
"problemMatcher": "$tsc-watch",
|
"problemMatcher": "$tsc-watch",
|
||||||
"isBackground": true,
|
"isBackground": true,
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"reveal": "never"
|
"reveal": "never"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"kind": "build",
|
"kind": "build",
|
||||||
"isDefault": true
|
"isDefault": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
407
package-lock.json
generated
407
package-lock.json
generated
|
@ -8,7 +8,13 @@
|
||||||
"name": "opengoal",
|
"name": "opengoal",
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"follow-redirects": "^1.15.1",
|
||||||
|
"open": "^8.4.0",
|
||||||
|
"vscode-languageclient": "^8.0.1"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/follow-redirects": "^1.14.1",
|
||||||
"@types/node": "^12.12.0",
|
"@types/node": "^12.12.0",
|
||||||
"@types/vscode": "^1.34.0",
|
"@types/vscode": "^1.34.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
||||||
|
@ -95,6 +101,15 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/follow-redirects": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/json-schema": {
|
"node_modules/@types/json-schema": {
|
||||||
"version": "7.0.11",
|
"version": "7.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||||
|
@ -114,19 +129,19 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz",
|
||||||
"integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==",
|
"integrity": "sha512-l4L6Do+tfeM2OK0GJsU7TUcM/1oN/N25xHm3Jb4z3OiDU4Lj8dIuxX9LpVMS9riSXQs42D1ieX7b85/r16H9Fw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/type-utils": "5.19.0",
|
"@typescript-eslint/type-utils": "5.30.7",
|
||||||
"@typescript-eslint/utils": "5.19.0",
|
"@typescript-eslint/utils": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"functional-red-black-tree": "^1.0.1",
|
"functional-red-black-tree": "^1.0.1",
|
||||||
"ignore": "^5.1.8",
|
"ignore": "^5.2.0",
|
||||||
"regexpp": "^3.2.0",
|
"regexpp": "^3.2.0",
|
||||||
"semver": "^7.3.5",
|
"semver": "^7.3.7",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -147,15 +162,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.7.tgz",
|
||||||
"integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==",
|
"integrity": "sha512-Rg5xwznHWWSy7v2o0cdho6n+xLhK2gntImp0rJroVVFkcYFYQ8C8UJTSuTw/3CnExBmPjycjmUJkxVmjXsld6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/typescript-estree": "5.19.0",
|
"@typescript-eslint/typescript-estree": "5.30.7",
|
||||||
"debug": "^4.3.2"
|
"debug": "^4.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
@ -174,13 +189,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz",
|
||||||
"integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==",
|
"integrity": "sha512-7BM1bwvdF1UUvt+b9smhqdc/eniOnCKxQT/kj3oXtj3LqnTWCAM0qHRHfyzCzhEfWX0zrW7KqXXeE4DlchZBKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/visitor-keys": "5.19.0"
|
"@typescript-eslint/visitor-keys": "5.30.7"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
@ -191,13 +206,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz",
|
||||||
"integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==",
|
"integrity": "sha512-nD5qAE2aJX/YLyKMvOU5jvJyku4QN5XBVsoTynFrjQZaDgDV6i7QHFiYCx10wvn7hFvfuqIRNBtsgaLe0DbWhw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/utils": "5.19.0",
|
"@typescript-eslint/utils": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -217,9 +232,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/types": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.7.tgz",
|
||||||
"integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==",
|
"integrity": "sha512-ocVkETUs82+U+HowkovV6uxf1AnVRKCmDRNUBUUo46/5SQv1owC/EBFkiu4MOHeZqhKz2ktZ3kvJJ1uFqQ8QPg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
@ -230,17 +245,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz",
|
||||||
"integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==",
|
"integrity": "sha512-tNslqXI1ZdmXXrHER83TJ8OTYl4epUzJC0aj2i4DMDT4iU+UqLT3EJeGQvJ17BMbm31x5scSwo3hPM0nqQ1AEA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/visitor-keys": "5.19.0",
|
"@typescript-eslint/visitor-keys": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.0.4",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
"semver": "^7.3.5",
|
"semver": "^7.3.7",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -257,15 +272,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.7.tgz",
|
||||||
"integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==",
|
"integrity": "sha512-Z3pHdbFw+ftZiGUnm1GZhkJgVqsDL5CYW2yj+TB2mfXDFOMqtbzQi2dNJIyPqPbx9mv2kUxS1gU+r2gKlKi1rQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/json-schema": "^7.0.9",
|
"@types/json-schema": "^7.0.9",
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/typescript-estree": "5.19.0",
|
"@typescript-eslint/typescript-estree": "5.30.7",
|
||||||
"eslint-scope": "^5.1.1",
|
"eslint-scope": "^5.1.1",
|
||||||
"eslint-utils": "^3.0.0"
|
"eslint-utils": "^3.0.0"
|
||||||
},
|
},
|
||||||
|
@ -281,13 +296,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz",
|
||||||
"integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==",
|
"integrity": "sha512-KrRXf8nnjvcpxDFOKej4xkD7657+PClJs5cJVSG7NNoCNnjEdc46juNAQt7AyuWctuCgs6mVRc1xGctEqrjxWw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"eslint-visitor-keys": "^3.0.0"
|
"eslint-visitor-keys": "^3.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
@ -376,14 +391,12 @@
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -447,8 +460,7 @@
|
||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/cross-spawn": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
|
@ -487,6 +499,14 @@
|
||||||
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/define-lazy-prop": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dir-glob": {
|
"node_modules/dir-glob": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||||
|
@ -818,6 +838,25 @@
|
||||||
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
|
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/follow-redirects": {
|
||||||
|
"version": "1.15.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||||
|
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"debug": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fs.realpath": {
|
"node_modules/fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
@ -956,6 +995,20 @@
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/is-docker": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
|
||||||
|
"bin": {
|
||||||
|
"is-docker": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-extglob": {
|
"node_modules/is-extglob": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
@ -986,6 +1039,17 @@
|
||||||
"node": ">=0.12.0"
|
"node": ">=0.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-wsl": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
|
||||||
|
"dependencies": {
|
||||||
|
"is-docker": "^2.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/isexe": {
|
"node_modules/isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||||
|
@ -1039,7 +1103,6 @@
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
},
|
},
|
||||||
|
@ -1073,7 +1136,6 @@
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
},
|
},
|
||||||
|
@ -1102,6 +1164,22 @@
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/open": {
|
||||||
|
"version": "8.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
|
||||||
|
"integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"define-lazy-prop": "^2.0.0",
|
||||||
|
"is-docker": "^2.1.1",
|
||||||
|
"is-wsl": "^2.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/optionator": {
|
"node_modules/optionator": {
|
||||||
"version": "0.9.1",
|
"version": "0.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
|
||||||
|
@ -1281,7 +1359,6 @@
|
||||||
"version": "7.3.7",
|
"version": "7.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
},
|
},
|
||||||
|
@ -1449,6 +1526,41 @@
|
||||||
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/vscode-jsonrpc": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/vscode-languageclient": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"semver": "^7.3.5",
|
||||||
|
"vscode-languageserver-protocol": "3.17.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.67.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/vscode-languageserver-protocol": {
|
||||||
|
"version": "3.17.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
|
||||||
|
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
|
||||||
|
"dependencies": {
|
||||||
|
"vscode-jsonrpc": "8.0.2",
|
||||||
|
"vscode-languageserver-types": "3.17.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/vscode-languageserver-types": {
|
||||||
|
"version": "3.17.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
|
||||||
|
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
|
||||||
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
@ -1482,8 +1594,7 @@
|
||||||
"node_modules/yallist": {
|
"node_modules/yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1547,6 +1658,15 @@
|
||||||
"fastq": "^1.6.0"
|
"fastq": "^1.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/follow-redirects": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/json-schema": {
|
"@types/json-schema": {
|
||||||
"version": "7.0.11",
|
"version": "7.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||||
|
@ -1566,98 +1686,98 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@typescript-eslint/eslint-plugin": {
|
"@typescript-eslint/eslint-plugin": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz",
|
||||||
"integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==",
|
"integrity": "sha512-l4L6Do+tfeM2OK0GJsU7TUcM/1oN/N25xHm3Jb4z3OiDU4Lj8dIuxX9LpVMS9riSXQs42D1ieX7b85/r16H9Fw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/type-utils": "5.19.0",
|
"@typescript-eslint/type-utils": "5.30.7",
|
||||||
"@typescript-eslint/utils": "5.19.0",
|
"@typescript-eslint/utils": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"functional-red-black-tree": "^1.0.1",
|
"functional-red-black-tree": "^1.0.1",
|
||||||
"ignore": "^5.1.8",
|
"ignore": "^5.2.0",
|
||||||
"regexpp": "^3.2.0",
|
"regexpp": "^3.2.0",
|
||||||
"semver": "^7.3.5",
|
"semver": "^7.3.7",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/parser": {
|
"@typescript-eslint/parser": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.7.tgz",
|
||||||
"integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==",
|
"integrity": "sha512-Rg5xwznHWWSy7v2o0cdho6n+xLhK2gntImp0rJroVVFkcYFYQ8C8UJTSuTw/3CnExBmPjycjmUJkxVmjXsld6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/typescript-estree": "5.19.0",
|
"@typescript-eslint/typescript-estree": "5.30.7",
|
||||||
"debug": "^4.3.2"
|
"debug": "^4.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/scope-manager": {
|
"@typescript-eslint/scope-manager": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz",
|
||||||
"integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==",
|
"integrity": "sha512-7BM1bwvdF1UUvt+b9smhqdc/eniOnCKxQT/kj3oXtj3LqnTWCAM0qHRHfyzCzhEfWX0zrW7KqXXeE4DlchZBKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/visitor-keys": "5.19.0"
|
"@typescript-eslint/visitor-keys": "5.30.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/type-utils": {
|
"@typescript-eslint/type-utils": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz",
|
||||||
"integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==",
|
"integrity": "sha512-nD5qAE2aJX/YLyKMvOU5jvJyku4QN5XBVsoTynFrjQZaDgDV6i7QHFiYCx10wvn7hFvfuqIRNBtsgaLe0DbWhw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/utils": "5.19.0",
|
"@typescript-eslint/utils": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/types": {
|
"@typescript-eslint/types": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.7.tgz",
|
||||||
"integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==",
|
"integrity": "sha512-ocVkETUs82+U+HowkovV6uxf1AnVRKCmDRNUBUUo46/5SQv1owC/EBFkiu4MOHeZqhKz2ktZ3kvJJ1uFqQ8QPg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@typescript-eslint/typescript-estree": {
|
"@typescript-eslint/typescript-estree": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz",
|
||||||
"integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==",
|
"integrity": "sha512-tNslqXI1ZdmXXrHER83TJ8OTYl4epUzJC0aj2i4DMDT4iU+UqLT3EJeGQvJ17BMbm31x5scSwo3hPM0nqQ1AEA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/visitor-keys": "5.19.0",
|
"@typescript-eslint/visitor-keys": "5.30.7",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.0.4",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
"semver": "^7.3.5",
|
"semver": "^7.3.7",
|
||||||
"tsutils": "^3.21.0"
|
"tsutils": "^3.21.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/utils": {
|
"@typescript-eslint/utils": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.7.tgz",
|
||||||
"integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==",
|
"integrity": "sha512-Z3pHdbFw+ftZiGUnm1GZhkJgVqsDL5CYW2yj+TB2mfXDFOMqtbzQi2dNJIyPqPbx9mv2kUxS1gU+r2gKlKi1rQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/json-schema": "^7.0.9",
|
"@types/json-schema": "^7.0.9",
|
||||||
"@typescript-eslint/scope-manager": "5.19.0",
|
"@typescript-eslint/scope-manager": "5.30.7",
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"@typescript-eslint/typescript-estree": "5.19.0",
|
"@typescript-eslint/typescript-estree": "5.30.7",
|
||||||
"eslint-scope": "^5.1.1",
|
"eslint-scope": "^5.1.1",
|
||||||
"eslint-utils": "^3.0.0"
|
"eslint-utils": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@typescript-eslint/visitor-keys": {
|
"@typescript-eslint/visitor-keys": {
|
||||||
"version": "5.19.0",
|
"version": "5.30.7",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz",
|
||||||
"integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==",
|
"integrity": "sha512-KrRXf8nnjvcpxDFOKej4xkD7657+PClJs5cJVSG7NNoCNnjEdc46juNAQt7AyuWctuCgs6mVRc1xGctEqrjxWw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/types": "5.19.0",
|
"@typescript-eslint/types": "5.30.7",
|
||||||
"eslint-visitor-keys": "^3.0.0"
|
"eslint-visitor-keys": "^3.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"acorn": {
|
"acorn": {
|
||||||
|
@ -1715,14 +1835,12 @@
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -1771,8 +1889,7 @@
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"cross-spawn": {
|
"cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
|
@ -1800,6 +1917,11 @@
|
||||||
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"define-lazy-prop": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
|
||||||
|
},
|
||||||
"dir-glob": {
|
"dir-glob": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||||
|
@ -2060,6 +2182,11 @@
|
||||||
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
|
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"follow-redirects": {
|
||||||
|
"version": "1.15.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||||
|
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
|
||||||
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
@ -2162,6 +2289,11 @@
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-docker": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
|
||||||
|
},
|
||||||
"is-extglob": {
|
"is-extglob": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
@ -2183,6 +2315,14 @@
|
||||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"is-wsl": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
|
||||||
|
"requires": {
|
||||||
|
"is-docker": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"isexe": {
|
"isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||||
|
@ -2230,7 +2370,6 @@
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
}
|
}
|
||||||
|
@ -2255,7 +2394,6 @@
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
|
@ -2281,6 +2419,16 @@
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"open": {
|
||||||
|
"version": "8.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
|
||||||
|
"integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
|
||||||
|
"requires": {
|
||||||
|
"define-lazy-prop": "^2.0.0",
|
||||||
|
"is-docker": "^2.1.1",
|
||||||
|
"is-wsl": "^2.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"optionator": {
|
"optionator": {
|
||||||
"version": "0.9.1",
|
"version": "0.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
|
||||||
|
@ -2386,7 +2534,6 @@
|
||||||
"version": "7.3.7",
|
"version": "7.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
}
|
}
|
||||||
|
@ -2502,6 +2649,35 @@
|
||||||
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"vscode-jsonrpc": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ=="
|
||||||
|
},
|
||||||
|
"vscode-languageclient": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-lHlthJtphG9gibGb/y72CKqQUxwPsMXijJVpHEC2bvbFqxmkj9LwQ3aGU9dwjBLqsX1S4KjShYppLvg1UJDF/Q==",
|
||||||
|
"requires": {
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"semver": "^7.3.5",
|
||||||
|
"vscode-languageserver-protocol": "3.17.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vscode-languageserver-protocol": {
|
||||||
|
"version": "3.17.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
|
||||||
|
"integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
|
||||||
|
"requires": {
|
||||||
|
"vscode-jsonrpc": "8.0.2",
|
||||||
|
"vscode-languageserver-types": "3.17.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vscode-languageserver-types": {
|
||||||
|
"version": "3.17.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
|
||||||
|
"integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
|
||||||
|
},
|
||||||
"which": {
|
"which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
@ -2526,8 +2702,7 @@
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
26
package.json
26
package.json
|
@ -21,7 +21,23 @@
|
||||||
"vscode:prepublish": "npm run compile",
|
"vscode:prepublish": "npm run compile",
|
||||||
"compile": "tsc -p ./",
|
"compile": "tsc -p ./",
|
||||||
"lint": "eslint . --ext .ts,.tsx",
|
"lint": "eslint . --ext .ts,.tsx",
|
||||||
"watch": "tsc -watch -p ./"
|
"watch": "tsc -watch -p ./",
|
||||||
|
"format": "npx prettier --write .",
|
||||||
|
"format:check": "npx prettier --check ."
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/follow-redirects": "^1.14.1",
|
||||||
|
"@types/node": "^12.12.0",
|
||||||
|
"@types/vscode": "^1.34.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
||||||
|
"@typescript-eslint/parser": "^5.19.0",
|
||||||
|
"eslint": "^8.13.0",
|
||||||
|
"typescript": "^4.6.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"follow-redirects": "^1.15.1",
|
||||||
|
"open": "^8.4.0",
|
||||||
|
"vscode-languageclient": "^8.0.1"
|
||||||
},
|
},
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
"onLanguage:opengoal",
|
"onLanguage:opengoal",
|
||||||
|
@ -277,13 +293,5 @@
|
||||||
"path": "./snippets/opengoal.json"
|
"path": "./snippets/opengoal.json"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^12.12.0",
|
|
||||||
"@types/vscode": "^1.34.0",
|
|
||||||
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
|
||||||
"@typescript-eslint/parser": "^5.19.0",
|
|
||||||
"eslint": "^8.13.0",
|
|
||||||
"typescript": "^4.6.3"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
{
|
{
|
||||||
"defun": {
|
"defun": {
|
||||||
"prefix": "defun",
|
"prefix": "defun",
|
||||||
"body": [
|
"body": ["(defun ${1:name} (${2:vars})", "\t\"${3:doc-string}\"", "\t$0)"],
|
||||||
"(defun ${1:name} (${2:vars})",
|
"description": "Create a new function"
|
||||||
"\t\"${3:doc-string}\"",
|
}
|
||||||
"\t$0)"
|
|
||||||
],
|
|
||||||
"description": "Create a new function"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as vscode from "vscode";
|
import * as vscode from "vscode";
|
||||||
import * as path from "path";
|
|
||||||
|
|
||||||
export class RecentFiles {
|
export class RecentFiles {
|
||||||
recentFiles: Array<string> = [];
|
recentFiles: Array<string> = [];
|
||||||
|
@ -11,11 +10,9 @@ export class RecentFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
addFile(filePath: string) {
|
addFile(filePath: string) {
|
||||||
console.log(`Adding - ${filePath}`);
|
|
||||||
// dont add duplicates
|
// dont add duplicates
|
||||||
// if it exists, take it out and put it on the top
|
// if it exists, take it out and put it on the top
|
||||||
const idx = this.indexOf(filePath);
|
const idx = this.indexOf(filePath);
|
||||||
console.log(idx);
|
|
||||||
if (idx !== -1) {
|
if (idx !== -1) {
|
||||||
this.recentFiles.splice(idx, 1);
|
this.recentFiles.splice(idx, 1);
|
||||||
}
|
}
|
||||||
|
|
10
src/config/config.ts
Normal file
10
src/config/config.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import * as vscode from "vscode";
|
||||||
|
|
||||||
|
export function getConfig() {
|
||||||
|
const configOptions = vscode.workspace.getConfiguration("opengoal");
|
||||||
|
|
||||||
|
return {
|
||||||
|
opengoalLspVersion: configOptions.get<string>("opengoalLspVersion"),
|
||||||
|
opengoalLspPath: configOptions.get<string>("opengoalLspPath"),
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,6 +3,7 @@
|
||||||
import * as vscode from "vscode";
|
import * as vscode from "vscode";
|
||||||
import { RecentFiles } from "./RecentFiles";
|
import { RecentFiles } from "./RecentFiles";
|
||||||
import * as fileUtils from "./utils/FileUtils";
|
import * as fileUtils from "./utils/FileUtils";
|
||||||
|
import * as lsp from "./lsp/main";
|
||||||
|
|
||||||
let recentFiles: RecentFiles;
|
let recentFiles: RecentFiles;
|
||||||
|
|
||||||
|
@ -34,4 +35,11 @@ export function activate(context: vscode.ExtensionContext) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Start the LSP
|
||||||
|
lsp.activate(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deactivate(): Promise<void> | undefined {
|
||||||
|
return lsp.deactivate();
|
||||||
}
|
}
|
||||||
|
|
24
src/lsp/LICENSE
Normal file
24
src/lsp/LICENSE
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
Code heavily borrowed from https://github.com/BetterThanTomorrow/calva/tree/v2.0.289/src/lsp
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Parts of the software are Copyright (c) 2016-2018 Stian Sivertsen
|
||||||
|
Other parts are Copyright (c) 2018 -> Better than Tomorrow
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
28
src/lsp/download.ts
Normal file
28
src/lsp/download.ts
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import { getLspReleaseAssetName, writeLspMetadata } from "./util";
|
||||||
|
import * as path from "path";
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { downloadFromUrl } from "../utils/download";
|
||||||
|
|
||||||
|
export async function downloadLsp(
|
||||||
|
extensionPath: string,
|
||||||
|
version: string
|
||||||
|
): Promise<string | undefined> {
|
||||||
|
const assetName = getLspReleaseAssetName(extensionPath, version);
|
||||||
|
if (assetName === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const url = `https://github.com/open-goal/jak-project/releases/download/${version}/${assetName}`;
|
||||||
|
const savePath = path.join(extensionPath, assetName);
|
||||||
|
try {
|
||||||
|
await downloadFromUrl(url, savePath);
|
||||||
|
if (path.extname(savePath) === ".bin") {
|
||||||
|
fs.chmodSync(savePath, 0o775);
|
||||||
|
}
|
||||||
|
writeLspMetadata(extensionPath, version);
|
||||||
|
} catch (e: any) {
|
||||||
|
console.log("Error downloading opengoal-lsp", e);
|
||||||
|
// TODO - backup existing and return that path
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return savePath;
|
||||||
|
}
|
306
src/lsp/main.ts
Normal file
306
src/lsp/main.ts
Normal file
|
@ -0,0 +1,306 @@
|
||||||
|
import * as vscode from "vscode";
|
||||||
|
import * as path from "path";
|
||||||
|
import {
|
||||||
|
LanguageClient,
|
||||||
|
LanguageClientOptions,
|
||||||
|
ServerOptions,
|
||||||
|
TransportKind,
|
||||||
|
} from "vscode-languageclient/node";
|
||||||
|
import { getConfig } from "../config/config";
|
||||||
|
import { downloadLsp } from "./download";
|
||||||
|
import { getLatestVersion, getVersionFromMetaFile } from "./util";
|
||||||
|
|
||||||
|
let extensionContext: vscode.ExtensionContext;
|
||||||
|
let opengoalLspPath: string | undefined;
|
||||||
|
let activeClient: LanguageClient | undefined;
|
||||||
|
|
||||||
|
const lspStatusItem = vscode.window.createStatusBarItem(
|
||||||
|
vscode.StatusBarAlignment.Left,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
export type LspStatus =
|
||||||
|
| "stopped"
|
||||||
|
| "starting"
|
||||||
|
| "started"
|
||||||
|
| "downloading"
|
||||||
|
| "error";
|
||||||
|
export let lspStatus: LspStatus = "stopped";
|
||||||
|
|
||||||
|
function updateStatus(status: LspStatus, extraInfo?: string) {
|
||||||
|
lspStatus = status;
|
||||||
|
switch (status) {
|
||||||
|
case "stopped":
|
||||||
|
lspStatusItem.text = "$(circle-outline) opengoal-lsp";
|
||||||
|
lspStatusItem.tooltip = "opengoal-lsp is not active, click to get a menu";
|
||||||
|
lspStatusItem.command = "opengoal.lsp.showLspStoppedMenu";
|
||||||
|
break;
|
||||||
|
case "starting":
|
||||||
|
lspStatusItem.text = "$(rocket) opengoal-lsp";
|
||||||
|
lspStatusItem.tooltip = "opengoal-lsp is starting";
|
||||||
|
lspStatusItem.command = undefined;
|
||||||
|
break;
|
||||||
|
case "started":
|
||||||
|
lspStatusItem.text = "$(circle-filled) opengoal-lsp";
|
||||||
|
lspStatusItem.tooltip = "opengoal-lsp is active";
|
||||||
|
lspStatusItem.command = "opengoal.lsp.showLspStartedMenu";
|
||||||
|
break;
|
||||||
|
case "downloading":
|
||||||
|
lspStatusItem.text = "$(sync~spin) opengoal-lsp downloading";
|
||||||
|
lspStatusItem.tooltip = `OpenGOAL is downloading opengoal-lsp version: ${extraInfo}`;
|
||||||
|
lspStatusItem.command = undefined;
|
||||||
|
break;
|
||||||
|
case "error":
|
||||||
|
lspStatusItem.text = "$(error) opengoal-lsp";
|
||||||
|
lspStatusItem.tooltip =
|
||||||
|
"opengoal-lsp is not running because of some error";
|
||||||
|
lspStatusItem.command = "opengoal.lsp.showLspStoppedMenu";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function ensureServerDownloaded(): Promise<string | undefined> {
|
||||||
|
const installedVersion = getVersionFromMetaFile(
|
||||||
|
extensionContext.extensionPath
|
||||||
|
);
|
||||||
|
const configuredVersion = getConfig().opengoalLspVersion;
|
||||||
|
|
||||||
|
// See if we have the right version
|
||||||
|
// - either its the latest
|
||||||
|
// - or we have the one that's configured
|
||||||
|
let needDownload = false;
|
||||||
|
let versionToDownload = "";
|
||||||
|
if (
|
||||||
|
configuredVersion !== undefined &&
|
||||||
|
configuredVersion !== installedVersion
|
||||||
|
) {
|
||||||
|
needDownload = true;
|
||||||
|
versionToDownload = configuredVersion;
|
||||||
|
} else {
|
||||||
|
const latestVersion = await getLatestVersion();
|
||||||
|
if (latestVersion !== installedVersion) {
|
||||||
|
needDownload = true;
|
||||||
|
versionToDownload = latestVersion;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!needDownload) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Install the LSP and update the version metadata file
|
||||||
|
updateStatus("downloading", versionToDownload);
|
||||||
|
const newLspPath = await downloadLsp(
|
||||||
|
extensionContext.extensionPath,
|
||||||
|
versionToDownload
|
||||||
|
);
|
||||||
|
if (newLspPath === undefined) {
|
||||||
|
updateStatus("error");
|
||||||
|
} else {
|
||||||
|
updateStatus("stopped");
|
||||||
|
}
|
||||||
|
return newLspPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function maybeDownloadLspServer(): Promise<void> {
|
||||||
|
const userConfiguredOpengoalLspPath = getConfig().opengoalLspPath;
|
||||||
|
if (
|
||||||
|
userConfiguredOpengoalLspPath !== "" &&
|
||||||
|
userConfiguredOpengoalLspPath !== undefined
|
||||||
|
) {
|
||||||
|
opengoalLspPath = userConfiguredOpengoalLspPath;
|
||||||
|
} else {
|
||||||
|
opengoalLspPath = await ensureServerDownloaded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createClient(lspPath: string): LanguageClient {
|
||||||
|
const serverOptions: ServerOptions = {
|
||||||
|
run: {
|
||||||
|
command: lspPath,
|
||||||
|
transport: TransportKind.stdio,
|
||||||
|
args: ["--log", path.join(extensionContext.extensionPath, "lsp.log")],
|
||||||
|
},
|
||||||
|
debug: {
|
||||||
|
command: lspPath,
|
||||||
|
transport: TransportKind.stdio,
|
||||||
|
args: [
|
||||||
|
"--verbose",
|
||||||
|
"--log",
|
||||||
|
path.join(extensionContext.extensionPath, "lsp.log"),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const clientOptions: LanguageClientOptions = {
|
||||||
|
documentSelector: [
|
||||||
|
{ scheme: "file", language: "opengoal-ir" },
|
||||||
|
{ scheme: "file", language: "opengoal" },
|
||||||
|
],
|
||||||
|
synchronize: {
|
||||||
|
fileEvents: [
|
||||||
|
vscode.workspace.createFileSystemWatcher("**/*_ir2.asm"),
|
||||||
|
vscode.workspace.createFileSystemWatcher("**/all-types.gc"),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
progressOnInitialization: true,
|
||||||
|
initializationOptions: {
|
||||||
|
"dependency-scheme": "jar",
|
||||||
|
"auto-add-ns-to-new-files?": true,
|
||||||
|
"document-formatting?": false,
|
||||||
|
"document-range-formatting?": false,
|
||||||
|
"keep-require-at-start?": true,
|
||||||
|
},
|
||||||
|
middleware: {
|
||||||
|
async provideHover(document, position, token, next) {
|
||||||
|
return next(document, position, token);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return new LanguageClient(
|
||||||
|
"opengoal-lsp",
|
||||||
|
"OpenGOAL LSP",
|
||||||
|
serverOptions,
|
||||||
|
clientOptions
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function stopClient() {
|
||||||
|
updateStatus("stopped");
|
||||||
|
if (activeClient !== undefined) {
|
||||||
|
console.log("Stopping opengoal-lsp");
|
||||||
|
return await activeClient
|
||||||
|
.stop()
|
||||||
|
.then(() => {
|
||||||
|
activeClient = undefined;
|
||||||
|
})
|
||||||
|
.catch((e: any) => {
|
||||||
|
console.error("Stopping client error:", e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function startClient(): Promise<void> {
|
||||||
|
if (opengoalLspPath === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const client = createClient(opengoalLspPath);
|
||||||
|
console.log("Starting opengoal-lsp at", opengoalLspPath);
|
||||||
|
|
||||||
|
// TODO - some form of startup test would be nice
|
||||||
|
try {
|
||||||
|
updateStatus("starting");
|
||||||
|
await client.start();
|
||||||
|
activeClient = client;
|
||||||
|
updateStatus("started");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("opengoal-lsp:", error);
|
||||||
|
updateStatus("error");
|
||||||
|
lspStatusItem.hide();
|
||||||
|
await stopClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function startClientCommand() {
|
||||||
|
lspStatusItem.show();
|
||||||
|
await maybeDownloadLspServer();
|
||||||
|
if (opengoalLspPath !== undefined) {
|
||||||
|
await startClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function restartClient() {
|
||||||
|
await stopClient();
|
||||||
|
await startClientCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showMenu(
|
||||||
|
items: vscode.QuickPickItem[],
|
||||||
|
commands: Record<string, string>
|
||||||
|
) {
|
||||||
|
void vscode.window
|
||||||
|
.showQuickPick(items, { title: "clojure-lsp" })
|
||||||
|
.then((v) => {
|
||||||
|
if (v !== undefined && commands[v.label]) {
|
||||||
|
void vscode.commands.executeCommand(commands[v.label]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function stoppedMenuCommand() {
|
||||||
|
const START_OPTION = "Start";
|
||||||
|
const START_COMMAND = "opengoal.lsp.start";
|
||||||
|
const commands: any = {};
|
||||||
|
commands[START_OPTION] = START_COMMAND;
|
||||||
|
const items: vscode.QuickPickItem[] = [
|
||||||
|
{
|
||||||
|
label: START_OPTION,
|
||||||
|
description: "Start the clojure-lsp server",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
showMenu(items, commands);
|
||||||
|
}
|
||||||
|
|
||||||
|
function startedMenuCommand() {
|
||||||
|
const STOP_OPTION = "Stop";
|
||||||
|
const STOP_COMMAND = "opengoal.lsp.stop";
|
||||||
|
const RESTART_OPTION = "Restart";
|
||||||
|
const RESTART_COMMAND = "opengoal.lsp.restart";
|
||||||
|
// TODO - add info and open log file options
|
||||||
|
const commands = {
|
||||||
|
[STOP_OPTION]: STOP_COMMAND,
|
||||||
|
[RESTART_OPTION]: RESTART_COMMAND,
|
||||||
|
};
|
||||||
|
const items: vscode.QuickPickItem[] = [
|
||||||
|
{
|
||||||
|
label: STOP_OPTION,
|
||||||
|
description: "Stop the clojure-lsp server",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: RESTART_OPTION,
|
||||||
|
description: "Restart the clojure-lsp server",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
showMenu(items, commands);
|
||||||
|
}
|
||||||
|
|
||||||
|
function registerLifeCycleCommands(context: vscode.ExtensionContext): void {
|
||||||
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand("opengoal.lsp.start", startClientCommand)
|
||||||
|
);
|
||||||
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand("opengoal.lsp.stop", stopClient)
|
||||||
|
);
|
||||||
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand("opengoal.lsp.restart", restartClient)
|
||||||
|
);
|
||||||
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand(
|
||||||
|
"opengoal.lsp.showLspStoppedMenu",
|
||||||
|
stoppedMenuCommand
|
||||||
|
)
|
||||||
|
);
|
||||||
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand(
|
||||||
|
"opengoal.lsp.showLspStartedMenu",
|
||||||
|
startedMenuCommand
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function activate(
|
||||||
|
context: vscode.ExtensionContext
|
||||||
|
): Promise<void> {
|
||||||
|
extensionContext = context;
|
||||||
|
registerLifeCycleCommands(context);
|
||||||
|
// TODO - add info and open log file options
|
||||||
|
// registerDiagnosticsCommands(context);
|
||||||
|
updateStatus("stopped");
|
||||||
|
lspStatusItem.show();
|
||||||
|
await startClientCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deactivate(): Promise<void> {
|
||||||
|
return stopClient();
|
||||||
|
}
|
64
src/lsp/util.ts
Normal file
64
src/lsp/util.ts
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
import { fetchFromUrl } from "../utils/download";
|
||||||
|
import * as path from "path";
|
||||||
|
import * as fs from "fs";
|
||||||
|
import * as process from "process";
|
||||||
|
|
||||||
|
const artifactNameTemplates: any = {
|
||||||
|
darwin: undefined,
|
||||||
|
linux: "opengoal-lsp-linux-__VERSION__.bin",
|
||||||
|
win32: "opengoal-lsp-windows-__VERSION__.exe",
|
||||||
|
};
|
||||||
|
|
||||||
|
const versionFileName = "lsp-metadata.json";
|
||||||
|
|
||||||
|
export function getLspReleaseAssetName(
|
||||||
|
extensionPath: string,
|
||||||
|
version: string,
|
||||||
|
platform: string = process.platform
|
||||||
|
): string | undefined {
|
||||||
|
if (!(platform in artifactNameTemplates)) {
|
||||||
|
console.log(`Unsupported platform '${platform}'`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const nameTemplate = artifactNameTemplates[platform];
|
||||||
|
if (nameTemplate === undefined) {
|
||||||
|
console.log(`Unsupported platform '${platform}'`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nameTemplate.replace("__VERSION__", version);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getLatestVersion(): Promise<string> {
|
||||||
|
try {
|
||||||
|
const releasesJSON = await fetchFromUrl(
|
||||||
|
"https://api.github.com/repos/open-goal/jak-project/releases"
|
||||||
|
);
|
||||||
|
const releases = JSON.parse(releasesJSON);
|
||||||
|
return releases[0].tag_name;
|
||||||
|
} catch (err) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getVersionFromMetaFile(extensionPath: string): string {
|
||||||
|
const filePath = path.join(extensionPath, versionFileName);
|
||||||
|
try {
|
||||||
|
const meta = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
||||||
|
return meta.version;
|
||||||
|
} catch (e: any) {
|
||||||
|
console.log("Could not read lsp metadata version file.", e.message);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function writeLspMetadata(extensionPath: string, version: string): void {
|
||||||
|
const filePath = path.join(extensionPath, versionFileName);
|
||||||
|
try {
|
||||||
|
fs.writeFileSync(filePath, {
|
||||||
|
version: version,
|
||||||
|
});
|
||||||
|
} catch (e: any) {
|
||||||
|
console.log("Could not write lsp metadata file.", e.message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,9 +16,9 @@ export function switchFile() {
|
||||||
for (const [key, value] of Object.entries(fileSwitchingAssoc)) {
|
for (const [key, value] of Object.entries(fileSwitchingAssoc)) {
|
||||||
if (currName.endsWith(key)) {
|
if (currName.endsWith(key)) {
|
||||||
// Get everything before the suffix, check if a file with the associated suffix exists
|
// Get everything before the suffix, check if a file with the associated suffix exists
|
||||||
let prefix = currName.slice(0, -key.length);
|
const prefix = currName.slice(0, -key.length);
|
||||||
let switchFileName = prefix + value;
|
const switchFileName = prefix + value;
|
||||||
let switchFilePath = path.join(path.dirname(currPath), switchFileName);
|
const switchFilePath = path.join(path.dirname(currPath), switchFileName);
|
||||||
vscode.window.showTextDocument(vscode.Uri.file(switchFilePath));
|
vscode.window.showTextDocument(vscode.Uri.file(switchFilePath));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
57
src/utils/download.ts
Normal file
57
src/utils/download.ts
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
import * as url from "url";
|
||||||
|
import { https } from "follow-redirects";
|
||||||
|
import * as fs from "fs";
|
||||||
|
|
||||||
|
export async function fetchFromUrl(fullUrl: string): Promise<string> {
|
||||||
|
const q = url.parse(fullUrl);
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
https
|
||||||
|
.get(
|
||||||
|
{
|
||||||
|
host: q.hostname,
|
||||||
|
path: q.pathname,
|
||||||
|
port: q.port,
|
||||||
|
headers: { "user-agent": "node.js" },
|
||||||
|
},
|
||||||
|
(res: any) => {
|
||||||
|
let data = "";
|
||||||
|
res.on("data", (chunk: any) => {
|
||||||
|
data += chunk;
|
||||||
|
});
|
||||||
|
res.on("end", () => {
|
||||||
|
resolve(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.on("error", (err: any) => {
|
||||||
|
console.error(`Error downloading file from ${url}: ${err.message}`);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function downloadFromUrl(
|
||||||
|
url: string,
|
||||||
|
filePath: string
|
||||||
|
): Promise<void> {
|
||||||
|
console.log("Downloading file from", url);
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
https
|
||||||
|
.get(url, (response) => {
|
||||||
|
if (response.statusCode === 200) {
|
||||||
|
const writeStream = fs.createWriteStream(filePath);
|
||||||
|
response
|
||||||
|
.on("end", () => {
|
||||||
|
writeStream.close();
|
||||||
|
console.log("file downloaded to", filePath);
|
||||||
|
resolve();
|
||||||
|
})
|
||||||
|
.pipe(writeStream);
|
||||||
|
} else {
|
||||||
|
response.resume(); // Consume response to free up memory
|
||||||
|
reject(new Error(response.statusMessage));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.on("error", reject);
|
||||||
|
});
|
||||||
|
}
|
30214
test/sample_ir2.asm
30214
test/sample_ir2.asm
File diff suppressed because it is too large
Load diff
|
@ -1,12 +1,13 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "commonjs",
|
"module": "commonjs",
|
||||||
"target": "es2020",
|
"target": "es2020",
|
||||||
"lib": ["es2020"],
|
"lib": ["es2020"],
|
||||||
"outDir": "out",
|
"outDir": "out",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"rootDir": "src"
|
"rootDir": "src",
|
||||||
},
|
"resolveJsonModule": true
|
||||||
"exclude": ["node_modules", ".vscode-test"]
|
},
|
||||||
|
"exclude": ["node_modules", ".vscode-test"]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue