mirror of
https://github.com/jlengrand/elm-language-client-vscode.git
synced 2026-03-23 15:50:04 +00:00
Compare commits
89 Commits
0.2.2
...
add-test-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c00cc0c450 | ||
|
|
22838b669c | ||
|
|
3e2e52a1a1 | ||
|
|
9ded76fc98 | ||
|
|
28788e723c | ||
|
|
1481344d97 | ||
|
|
49dd002815 | ||
|
|
d657e01d24 | ||
|
|
ce68939204 | ||
|
|
505f1b4bd6 | ||
|
|
be39020307 | ||
|
|
90106b5429 | ||
|
|
2a82d2aaa9 | ||
|
|
547222bd4a | ||
|
|
48530aacc5 | ||
|
|
fffd9aa852 | ||
|
|
0538b06b69 | ||
|
|
6e2ab9242b | ||
|
|
621c51969c | ||
|
|
08e122aa2f | ||
|
|
4b89864b9e | ||
|
|
f973dc56d2 | ||
|
|
0e068f1154 | ||
|
|
f848fb6565 | ||
|
|
e649306dc9 | ||
|
|
4a7dd0a4aa | ||
|
|
1f3a862be8 | ||
|
|
a05bbae522 | ||
|
|
fea0ab6a14 | ||
|
|
70c4ed3e90 | ||
|
|
169702c3f7 | ||
|
|
05a458c422 | ||
|
|
2b680f4737 | ||
|
|
09f6e49a22 | ||
|
|
d4f4f9cb2f | ||
|
|
182401a51c | ||
|
|
436d332881 | ||
|
|
cfb4824875 | ||
|
|
5c030613fa | ||
|
|
9de9c4b7d1 | ||
|
|
5d25b9f8d8 | ||
|
|
a1fa8fd187 | ||
|
|
c43263f814 | ||
|
|
14d7408c63 | ||
|
|
514fe3070c | ||
|
|
384ef29fd1 | ||
|
|
4bf35e411d | ||
|
|
850d0b8917 | ||
|
|
dde5f2435b | ||
|
|
5448fc114e | ||
|
|
e2247e3185 | ||
|
|
8a6f6aca93 | ||
|
|
9750c6869d | ||
|
|
fc5f32293d | ||
|
|
3a6d948fc5 | ||
|
|
7519790071 | ||
|
|
d9410422cc | ||
|
|
338f7c8548 | ||
|
|
721286ed50 | ||
|
|
1632a0dd38 | ||
|
|
4db9c9d65d | ||
|
|
cb87d56bee | ||
|
|
1ee0523c79 | ||
|
|
1bf56562d3 | ||
|
|
78b503a964 | ||
|
|
5cb14fe9e6 | ||
|
|
74df68ee38 | ||
|
|
88e02cd4e9 | ||
|
|
d04d2ee68b | ||
|
|
c5f77c5bfb | ||
|
|
765e0bffe8 | ||
|
|
4d6e149a53 | ||
|
|
2ab9f7c4ee | ||
|
|
2917aea2a7 | ||
|
|
47f1f89154 | ||
|
|
5d71d65531 | ||
|
|
b2c95225ef | ||
|
|
08e1f5404e | ||
|
|
f011fc645d | ||
|
|
584de2cb71 | ||
|
|
d20d3a47fb | ||
|
|
b385406d1b | ||
|
|
18ab1ae826 | ||
|
|
b36c1aa9c1 | ||
|
|
d979fa548e | ||
|
|
dde90f53fd | ||
|
|
ff6f39e671 | ||
|
|
36970ee13c | ||
|
|
0bcadbae5f |
33
.github/ISSUE_TEMPLATE.md
vendored
Normal file
33
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
## Expected Behavior
|
||||
<!--- If you're describing a bug, tell us what should happen -->
|
||||
<!--- If you're suggesting a change/improvement, tell us how it should work -->
|
||||
|
||||
## Current Behavior
|
||||
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
|
||||
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
|
||||
|
||||
## Possible Solution
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
<!--- or ideas how to implement the addition or change -->
|
||||
|
||||
## Steps to Reproduce (for bugs)
|
||||
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Context
|
||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||
|
||||
## Your Environment
|
||||
<!--- Include as many relevant details about the environment you experienced the bug in -->
|
||||
* Version used:
|
||||
* Editor name and version (e.g. VSCode 1.36.1):
|
||||
* Environment name and version (e.g. node.js 5.4):
|
||||
* Operating System and version:
|
||||
|
||||
27
.github/workflows/compile.yaml
vendored
Normal file
27
.github/workflows/compile.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: Compile
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||
node-version: [12]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Setup node ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: npm ci and compile
|
||||
run: |
|
||||
npm ci
|
||||
npm run compile
|
||||
env:
|
||||
CI: true
|
||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "server"]
|
||||
path = server
|
||||
url = git@github.com:elm-tooling/elm-language-server.git
|
||||
url = https://github.com/elm-tooling/elm-language-server.git
|
||||
|
||||
3
.vscode/launch.json
vendored
3
.vscode/launch.json
vendored
@@ -10,7 +10,8 @@
|
||||
"args": [
|
||||
// Needs to be set to your vscode path, for arch this works
|
||||
"/usr/lib/code",
|
||||
"--extensionDevelopmentPath=${workspaceRoot}"
|
||||
"--extensionDevelopmentPath=${workspaceRoot}",
|
||||
"code --inspect-extensions=9993"
|
||||
],
|
||||
"sourceMaps": true,
|
||||
"outFiles": ["${workspaceRoot}/client/out/**/*.js"],
|
||||
|
||||
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@@ -2,5 +2,12 @@
|
||||
"editor.insertSpaces": false,
|
||||
"tslint.enable": true,
|
||||
"typescript.tsc.autoDetect": "off",
|
||||
"typescript.preferences.quoteStyle": "single"
|
||||
"typescript.preferences.quoteStyle": "single",
|
||||
"editor.tabSize": 2,
|
||||
"cSpell.words": [
|
||||
"Jsons",
|
||||
"execa",
|
||||
"globby",
|
||||
"promisify"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
.github/**
|
||||
server/.github/**
|
||||
.vscode/**
|
||||
**/*.ts
|
||||
**/*.map
|
||||
|
||||
111
CHANGELOG.md
111
CHANGELOG.md
@@ -1,5 +1,114 @@
|
||||
# Change Log
|
||||
|
||||
## 0.1.0
|
||||
## 0.7.3
|
||||
|
||||
- Fix a case of wrong highlighting
|
||||
|
||||
- Update the language server
|
||||
- Improved completions for type annotations, functions, import and module statements
|
||||
- Fixed a bug where files without imports would not index the virtual imports
|
||||
|
||||
## 0.7.2
|
||||
|
||||
- Update `elm.json` schema to allow `0.19.1` as a version
|
||||
- Renamed extension from `ElmLS` to `Elm`
|
||||
|
||||
- Updated the language server
|
||||
- Add more feedback on init for common errors
|
||||
- Make sure a file without permissions doesn't crash the server
|
||||
- `-v` to print version was not working
|
||||
|
||||
## 0.7.1
|
||||
|
||||
- Updated the language server
|
||||
- Remove completions committing when space is pressed
|
||||
|
||||
## 0.7.0
|
||||
|
||||
- Made elm.json schema completions better and more helpful
|
||||
- Fixed '"' breaking syntax highlighting
|
||||
|
||||
- Updated the language server
|
||||
- Completions should be much nicer to use now
|
||||
- Improved performance for codeLenses
|
||||
- Do not crash when the elm compiler generates invalid json
|
||||
- Fix codeLens bug showing wrong count for types
|
||||
- Print version with `-v` or `--version`
|
||||
|
||||
|
||||
## 0.6.0
|
||||
|
||||
- Reference code lenses are now clickable, try it!
|
||||
|
||||
- Updated the language server
|
||||
- Add elm make code actions for more compiler errors
|
||||
- Various improvements to folding
|
||||
- Process files on init in parallel
|
||||
- Fixed some problems with references not being correct
|
||||
- Fallback to old configuration flow when clients don't support the new one
|
||||
- Get rid of crypto deprecation warnings
|
||||
|
||||
- Updated tree-sitter syntax parsing
|
||||
- Add glsl parsing
|
||||
- Nest if/then/else expressions
|
||||
- Let and in now correctly nest
|
||||
- Change when block_comments are set, should now be better for annotations
|
||||
- End functions/case as early as possible, so they don't include whitespace
|
||||
|
||||
## 0.5.2
|
||||
|
||||
- Updated the language server
|
||||
- Fixed case where elm-format might have stripped the last line from you files
|
||||
|
||||
## 0.5.1
|
||||
|
||||
- Fixed missing dependency on startup
|
||||
- Updated the language server
|
||||
- Fix problem on init on windows systems
|
||||
|
||||
## 0.5.0
|
||||
|
||||
- Added commands for installing and browsing Elm packages
|
||||
- Change extension icon
|
||||
- Updated the language server
|
||||
- Updated and clarified the readme in multiple ways, also added sublime text instructions
|
||||
- Reworked settings and detection of `elm`, `elm-test` and `elm-format`
|
||||
- Server figures out the elm version automatically
|
||||
- Correctly detect cursors on or after the last character of a token
|
||||
- elm.json detection is now handled by the server, the setting is deprecated
|
||||
- Handle elm libraries better, we failed to load the correct deps before this
|
||||
- You can configure when to run elm-analyse via the setting `elmAnalyseTrigger` ("change" | "save" | "never")
|
||||
- Some cleanups for cases where the elm compiler does not respond with a json
|
||||
|
||||
|
||||
## 0.4.2
|
||||
|
||||
- Updated the language server
|
||||
- Fixed document changes causing high cpu load
|
||||
- Included a fix for a memory out of bounds error that could occur
|
||||
- Removed `runtime` option, that is now unneeded due to us using wasm
|
||||
- Use normal file path rather than file:// protocol when reading a file
|
||||
|
||||
## 0.4.1
|
||||
|
||||
- Revert determination of used elm compiler version, as it was causing file open to go unnoticed
|
||||
|
||||
## 0.4.0
|
||||
|
||||
- Updated the language server
|
||||
- Use WASM version of tree-sitter and updated tree-sitter - This mean multiple parsing improvements
|
||||
- Added completions for methods defined in a let scope
|
||||
- Added completions from case branches
|
||||
- Added code actions for some rename suggestions from elm make
|
||||
- Removed the ability to run elm-test for now, as it was problematic
|
||||
- Determine the used elm version, so that we're ready for 0.19.1
|
||||
- Cleaned up the symbols that we show in the outline or when searching
|
||||
- Fixed multiple problems with multi workspace useage
|
||||
- Fixed type references including (..) on search or rename
|
||||
- Fixed elm make not reporting the correct path in some edgecases
|
||||
- Don't reveal the output channel on each log
|
||||
- Better names for output channels in multi workspace projects
|
||||
|
||||
## 0.3.0
|
||||
|
||||
- Initial release
|
||||
|
||||
7
HOW_TO_RELEASE.md
Normal file
7
HOW_TO_RELEASE.md
Normal file
@@ -0,0 +1,7 @@
|
||||
- Update the changelog in `CHANGELOG.md`
|
||||
- Increase the version in `package.json`
|
||||
- Run `npm install`
|
||||
- Run `npm run compile`
|
||||
- Push the code to github and wait for the CI
|
||||
- Run `vsce publish`
|
||||
- Tag the new version on github
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Kolja Lampe
|
||||
|
||||
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.
|
||||
69
README.md
69
README.md
@@ -1,30 +1,30 @@
|
||||
# elm-vscode-ls
|
||||
# Elm Plugin for Visual Studio Code (VSCode)
|
||||
|
||||
This vscode extension is in development and might be lacking features you know working from `vscode-elm`.
|
||||
Supports elm 0.19
|
||||
|
||||
You will need to install `elm`, `elm-test` and `elm-format`, to get all diagnostics. If your setup fails to find the global installations of those, you can use the settings panel is VSCode to set the paths to the executables manually.
|
||||
## Install
|
||||
|
||||
```shell
|
||||
npm install -g elm
|
||||
npm install -g elm-test
|
||||
npm install -g elm-format
|
||||
```
|
||||
1. Install VSCode from [here](https://code.visualstudio.com/)
|
||||
2. Follow [this link](https://marketplace.visualstudio.com/items?itemName=Elmtooling.elm-ls-vscode) to install the plugin
|
||||
3. Make sure you have nodejs and therefor npm installed from [here](https://nodejs.org/)
|
||||
4. Install elm-test and elm-format by running `npm install -g elm-test elm-format` from the terminal or commandline
|
||||
|
||||
## Features
|
||||
## Highlighted Features
|
||||
|
||||
| Feature | Description |
|
||||
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Diagnostics | Provided via `elm make` and `elm-analyse` |
|
||||
| Formatting | Provided via `elm-format` and post-processed to only return a diff of changes. This way it should not be as intrusive as running `elm-format` normal |
|
||||
| codeLenses | Currently only shows if a type alias, custom type or function is exposed from that module |
|
||||
| completions | Show completions for the current file and snippets |
|
||||
| definitions | Enables you to jump to the definition of a type alias, module, custom type or function |
|
||||
| documentSymbols | Identifies all symbols in a document. |
|
||||
| folding | Let's you fold the code on certain elm constructs |
|
||||
| hover | Shows type annotations and documentation for a type alias, module, custom type or function |
|
||||
| references | Lists all references to a type alias, module, custom type or function |
|
||||
| rename | Enables you to rename a type alias, module, custom type or function |
|
||||
| workspaceSymbols | Identifies all symbols in the current workspace |
|
||||
- Errors and helpful tips will be shown whenever you save a file (Control + S)
|
||||
- Format on save (Control + S)
|
||||
- Suggests completions and snippets (Control + Space)
|
||||
|
||||
## Additional Features
|
||||
|
||||
- Lists all references to a type alias, module, custom type or function (Alt + Shift + F12)
|
||||
- Jump to the definition of a type alias, module, custom type or function
|
||||
- Shows type annotations and documentation on hover for type alia, module, custom type or function
|
||||
- Rename a type alias, module, custom type or function (F2)
|
||||
- Browse file by symbols (Control + Shift + O)
|
||||
- Browse workspace by symbols (Control + Shift + R)
|
||||
- Codelenses show how many times you calling a function and if it's exposed or not
|
||||
- Code folding
|
||||
|
||||
## Extension Settings
|
||||
|
||||
@@ -34,3 +34,28 @@ This extension contributes the following settings:
|
||||
- `elmLS.elmPath`: The path to your elm executable.
|
||||
- `elmLS.elmFormatPath`: The path to your elm-format executable.
|
||||
- `elmLS.elmTestPath`: The path to your elm-test executable.
|
||||
- `elmLS.elmAnalyseTrigger`: When do you want the extension to run elm-analyse? Might need a restart to take effect.
|
||||
|
||||
## FAQ
|
||||
|
||||
- What's the relation to the language server?
|
||||
|
||||
- This [vscode extension](https://marketplace.visualstudio.com/items?itemName=Elmtooling.elm-ls-vscode) is including the [elm-language-server](https://github.com/elm-tooling/elm-language-server) which enables most of the used features.
|
||||
|
||||
- Why do I need to install `elm`, `elm-test` and `elm-format`?
|
||||
|
||||
- You will need to install `elm` and `elm-test` to get all diagnostics and `elm-format` for formatting. If your setup fails to find the global installations of those, you can use the settings panel in VSCode to set the paths to the executable manually. Alternatively you can also just install these to your local npm `package.json`.
|
||||
|
||||
- Can I use an `elm-analyse` config?
|
||||
|
||||
- Yes, you can, please check [here](https://github.com/elm-tooling/elm-language-server#elm-analyse-configuration) for more details.
|
||||
|
||||
## Contributing / Debugging
|
||||
|
||||
```shell
|
||||
git clone --recursive git@github.com:elm-tooling/elm-language-client-vscode.git
|
||||
cd elm-language-client-vscode
|
||||
npm install
|
||||
```
|
||||
|
||||
Open VSCode with this project (`code .`) and press `F5` to start debugging the plugin.
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
jobs:
|
||||
- job: Windows
|
||||
pool:
|
||||
name: Hosted VS2017
|
||||
demands: npm
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: 'Use Node 8.x'
|
||||
inputs:
|
||||
versionSpec: 8.x
|
||||
- task: Npm@1
|
||||
displayName: 'Install dependencies'
|
||||
inputs:
|
||||
verbose: false
|
||||
- task: Npm@1
|
||||
displayName: 'Compile sources'
|
||||
inputs:
|
||||
command: custom
|
||||
verbose: false
|
||||
customCommand: 'run compile'
|
||||
- script: 'node node_modules/vscode/bin/test'
|
||||
displayName: 'Run tests'
|
||||
- job: macOS
|
||||
pool:
|
||||
name: Hosted macOS
|
||||
demands: npm
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: 'Use Node 8.x'
|
||||
inputs:
|
||||
versionSpec: 8.x
|
||||
- task: Npm@1
|
||||
displayName: 'Install dependencies'
|
||||
inputs:
|
||||
verbose: false
|
||||
- task: Npm@1
|
||||
displayName: 'Compile sources'
|
||||
inputs:
|
||||
command: custom
|
||||
verbose: false
|
||||
customCommand: 'run compile'
|
||||
- script: 'node node_modules/vscode/bin/test'
|
||||
displayName: 'Run tests'
|
||||
- job: Linux
|
||||
pool:
|
||||
name: Hosted Ubuntu 1604
|
||||
demands: npm
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: 'Use Node 8.x'
|
||||
inputs:
|
||||
versionSpec: 8.x
|
||||
- task: Npm@1
|
||||
displayName: 'Install dependencies'
|
||||
inputs:
|
||||
verbose: false
|
||||
- task: Npm@1
|
||||
displayName: 'Compile sources'
|
||||
inputs:
|
||||
command: custom
|
||||
verbose: false
|
||||
customCommand: 'run compile'
|
||||
- script: |
|
||||
set -e
|
||||
/usr/bin/Xvfb :10 -ac >> /tmp/Xvfb.out 2>&1 &
|
||||
disown -ar
|
||||
displayName: 'Start xvfb'
|
||||
- script: 'node node_modules/vscode/bin/test'
|
||||
displayName: 'Run tests'
|
||||
env:
|
||||
DISPLAY: :10
|
||||
1
client/.prettierrc.yaml
Normal file
1
client/.prettierrc.yaml
Normal file
@@ -0,0 +1 @@
|
||||
trailingComma: "all"
|
||||
590
client/package-lock.json
generated
590
client/package-lock.json
generated
@@ -4,75 +4,63 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/caseless": {
|
||||
"version": "0.12.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
|
||||
"integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "12.7.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.8.tgz",
|
||||
"integrity": "sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/request": {
|
||||
"version": "2.48.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.3.tgz",
|
||||
"integrity": "sha512-3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/caseless": "*",
|
||||
"@types/node": "*",
|
||||
"@types/tough-cookie": "*",
|
||||
"form-data": "^2.5.0"
|
||||
}
|
||||
},
|
||||
"@types/tough-cookie": {
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz",
|
||||
"integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/vscode": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.40.0.tgz",
|
||||
"integrity": "sha512-5kEIxL3qVRkwhlMerxO7XuMffa+0LBl+iG2TcRa0NsdoeSFLkt/9hJ02jsi/Kvc6y8OVF2N2P2IHP5S4lWf/5w==",
|
||||
"dev": true
|
||||
},
|
||||
"agent-base": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
|
||||
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
|
||||
"integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es6-promisify": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
||||
"dev": true
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"dev": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@@ -83,60 +71,21 @@
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"browser-stdout": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
|
||||
"integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
|
||||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
|
||||
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
@@ -152,26 +101,10 @@
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
|
||||
"integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
|
||||
"dev": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "4.2.6",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
|
||||
"integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
|
||||
"dev": true
|
||||
},
|
||||
"es6-promisify": {
|
||||
@@ -183,46 +116,10 @@
|
||||
"es6-promise": "^4.0.3"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
||||
"dev": true
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
||||
"dev": true
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
|
||||
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
@@ -236,19 +133,10 @@
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
@@ -259,40 +147,6 @@
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.10.3",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
|
||||
"integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
|
||||
"dev": true
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
||||
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||
"dev": true
|
||||
},
|
||||
"he": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
|
||||
"dev": true
|
||||
},
|
||||
"http-proxy-agent": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
|
||||
@@ -303,24 +157,13 @@
|
||||
"debug": "3.1.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
|
||||
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
|
||||
"integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"agent-base": "^4.1.0",
|
||||
"agent-base": "^4.3.0",
|
||||
"debug": "^3.1.0"
|
||||
}
|
||||
},
|
||||
@@ -335,59 +178,11 @@
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||
"dev": true
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
||||
"dev": true
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
"dev": true
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||
"dev": true
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
@@ -412,67 +207,12 @@
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
||||
"dev": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
|
||||
"integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browser-stdout": "1.3.0",
|
||||
"commander": "2.11.0",
|
||||
"debug": "3.1.0",
|
||||
"diff": "3.3.1",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"glob": "7.1.2",
|
||||
"growl": "1.10.3",
|
||||
"he": "1.1.1",
|
||||
"mkdirp": "0.5.1",
|
||||
"supports-color": "4.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
||||
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"dev": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
@@ -488,213 +228,26 @@
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.1.31",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
|
||||
"integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
|
||||
"dev": true
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"querystringify": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
|
||||
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"rimraf": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
},
|
||||
"requires-port": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
|
||||
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
|
||||
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"typescript": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz",
|
||||
"integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.12",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
|
||||
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
|
||||
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"dev": true
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"url-parse": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
|
||||
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"querystringify": "^2.1.1",
|
||||
"requires-port": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
|
||||
"dev": true
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"vscode": {
|
||||
"version": "1.1.34",
|
||||
"resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.34.tgz",
|
||||
"integrity": "sha512-GuT3tCT2N5Qp26VG4C+iGmWMgg/MuqtY5G5TSOT3U/X6pgjM9LFulJEeqpyf6gdzpI4VyU3ZN/lWPo54UFPuQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^7.1.2",
|
||||
"mocha": "^4.0.1",
|
||||
"request": "^2.88.0",
|
||||
"semver": "^5.4.1",
|
||||
"source-map-support": "^0.5.0",
|
||||
"url-parse": "^1.4.4",
|
||||
"vscode-test": "^0.4.1"
|
||||
}
|
||||
},
|
||||
"vscode-jsonrpc": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz",
|
||||
@@ -724,13 +277,14 @@
|
||||
"integrity": "sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A=="
|
||||
},
|
||||
"vscode-test": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.1.tgz",
|
||||
"integrity": "sha512-uIi/07uG/gmCbD9Y9bFpNzmk4el82xiclijEdL426A3jOFfvwdqgfmtuWYfxEGo0w6JY9EqVDTGQCXwuInXVTQ==",
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.2.3.tgz",
|
||||
"integrity": "sha512-mKRTNso33NaUULiPBFg6zRjyntjcCpIgkrogyPQuKlvoQREQR8jLKN5UD4L5rkTSD+oBhcKtaLR2/g34FexURw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.1"
|
||||
"https-proxy-agent": "^2.2.4",
|
||||
"rimraf": "^2.6.3"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "elm-language-client-vscode",
|
||||
"description": "VSCode client for the elm language server",
|
||||
"description": "VSCode client for Elm",
|
||||
"author": "Kolja Lampe",
|
||||
"publisher": "elmTooling",
|
||||
"license": "MIT",
|
||||
@@ -10,16 +10,18 @@
|
||||
"url": "https://github.com/elmtooling/elm-language-client-vscode"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.30.0"
|
||||
"vscode": "^1.37.0"
|
||||
},
|
||||
"scripts": {
|
||||
"update-vscode": "vscode-install",
|
||||
"postinstall": "vscode-install"
|
||||
"compile": "tsc -p ./"
|
||||
},
|
||||
"dependencies": {
|
||||
"vscode-languageclient": "^5.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vscode": "^1.1.34"
|
||||
"@types/request": "^2.48.3",
|
||||
"@types/vscode": "^1.40.0",
|
||||
"vscode-test": "^1.2.3",
|
||||
"typescript": "3.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
152
client/src/elmPackage.ts
Normal file
152
client/src/elmPackage.ts
Normal file
@@ -0,0 +1,152 @@
|
||||
import * as vscode from "vscode";
|
||||
import * as utils from "./utils";
|
||||
|
||||
import request = require("request");
|
||||
|
||||
let packageTerminal: vscode.Terminal;
|
||||
|
||||
interface IElmPackageQuickPickItem extends vscode.QuickPickItem {
|
||||
info: any;
|
||||
}
|
||||
|
||||
function transformToPackageQuickPickItems(
|
||||
packages: any[],
|
||||
): IElmPackageQuickPickItem[] {
|
||||
return Object.keys(packages).map((item: any) => {
|
||||
return { label: item, description: item, info: packages[item] };
|
||||
});
|
||||
}
|
||||
|
||||
function transformToPackageVersionQuickPickItems(
|
||||
selectedPackage: IElmPackageQuickPickItem,
|
||||
): vscode.QuickPickItem[] {
|
||||
return selectedPackage.info.map((version: any) => {
|
||||
return { label: version, description: null };
|
||||
});
|
||||
}
|
||||
|
||||
function transformToQuickPickItems(packages: any[]): vscode.QuickPickItem[] {
|
||||
return Object.keys(packages).map((item: any) => {
|
||||
return { label: item, description: "", info: packages[item] };
|
||||
});
|
||||
}
|
||||
|
||||
function getJSON(): Thenable<any[]> {
|
||||
return new Promise((resolve, reject) => {
|
||||
request(
|
||||
"https://package.elm-lang.org/all-packages",
|
||||
(err: any, _: any, body: any) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
let json;
|
||||
try {
|
||||
json = JSON.parse(body);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
resolve(json);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function getInstallPackageCommand(packageToInstall: string): string {
|
||||
const config: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration(
|
||||
"elmLS",
|
||||
);
|
||||
let t: string = config.get("elmPath") as string;
|
||||
t = t || "elm";
|
||||
|
||||
return t + " install " + packageToInstall;
|
||||
}
|
||||
|
||||
function installPackageInTerminal(packageToInstall: string) {
|
||||
try {
|
||||
const installPackageCommand = getInstallPackageCommand(packageToInstall);
|
||||
if (packageTerminal !== undefined) {
|
||||
packageTerminal.dispose();
|
||||
}
|
||||
packageTerminal = vscode.window.createTerminal("Elm Package Install");
|
||||
const [
|
||||
installPackageLaunchCommand,
|
||||
clearCommand,
|
||||
] = utils.getTerminalLaunchCommands(installPackageCommand);
|
||||
packageTerminal.sendText(clearCommand, true);
|
||||
packageTerminal.sendText(installPackageLaunchCommand, true);
|
||||
packageTerminal.show(false);
|
||||
} catch (error) {
|
||||
vscode.window.showErrorMessage(
|
||||
"Cannot start Elm Package install. " + error,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function browsePackage(): Thenable<void> {
|
||||
const quickPickPackageOptions: vscode.QuickPickOptions = {
|
||||
matchOnDescription: true,
|
||||
placeHolder: "Choose a package",
|
||||
};
|
||||
const quickPickVersionOptions: vscode.QuickPickOptions = {
|
||||
matchOnDescription: false,
|
||||
placeHolder: "Choose a version, or press <esc> to browse the latest",
|
||||
};
|
||||
|
||||
return getJSON()
|
||||
.then(transformToPackageQuickPickItems)
|
||||
.then(packages =>
|
||||
vscode.window.showQuickPick(packages, quickPickPackageOptions),
|
||||
)
|
||||
.then(selectedPackage => {
|
||||
if (selectedPackage === undefined) {
|
||||
return; // no package
|
||||
}
|
||||
return vscode.window
|
||||
.showQuickPick(
|
||||
transformToPackageVersionQuickPickItems(selectedPackage),
|
||||
quickPickVersionOptions,
|
||||
)
|
||||
.then(selectedVersion => {
|
||||
const uri = selectedVersion
|
||||
? vscode.Uri.parse(
|
||||
"https://package.elm-lang.org/packages/" +
|
||||
selectedPackage.label +
|
||||
"/" +
|
||||
selectedVersion.label,
|
||||
)
|
||||
: vscode.Uri.parse(
|
||||
"https://package.elm-lang.org/packages/" +
|
||||
selectedPackage.label +
|
||||
"/latest",
|
||||
);
|
||||
vscode.commands.executeCommand("vscode.open", uri);
|
||||
})
|
||||
.then(() => undefined);
|
||||
});
|
||||
}
|
||||
|
||||
function runInstall(): Thenable<void> {
|
||||
const quickPickOptions: vscode.QuickPickOptions = {
|
||||
matchOnDescription: true,
|
||||
placeHolder: "Choose a package, or press <esc> to cancel",
|
||||
};
|
||||
|
||||
return getJSON()
|
||||
.then(transformToQuickPickItems)
|
||||
.then(items => vscode.window.showQuickPick(items, quickPickOptions))
|
||||
.then(value => {
|
||||
if (value === undefined) {
|
||||
return; // no package
|
||||
}
|
||||
const packageName = value ? value.label : "";
|
||||
return installPackageInTerminal(packageName);
|
||||
});
|
||||
}
|
||||
|
||||
export function activatePackage(): vscode.Disposable[] {
|
||||
return [
|
||||
vscode.commands.registerCommand("elm.install", runInstall),
|
||||
vscode.commands.registerCommand("elm.browsePackage", browsePackage),
|
||||
];
|
||||
}
|
||||
@@ -1,145 +1,205 @@
|
||||
"use strict";
|
||||
|
||||
import * as path from "path";
|
||||
import {
|
||||
CancellationToken,
|
||||
CodeLens,
|
||||
commands,
|
||||
ExtensionContext,
|
||||
Location,
|
||||
OutputChannel,
|
||||
RelativePattern,
|
||||
Position,
|
||||
ProviderResult,
|
||||
Range,
|
||||
TextDocument,
|
||||
Uri,
|
||||
window as Window,
|
||||
workspace,
|
||||
workspace as Workspace,
|
||||
WorkspaceFolder,
|
||||
} from "vscode";
|
||||
|
||||
import {
|
||||
LanguageClient,
|
||||
LanguageClientOptions,
|
||||
ServerOptions,
|
||||
Middleware,
|
||||
ResolveCodeLensSignature,
|
||||
RevealOutputChannelOn,
|
||||
TransportKind,
|
||||
} from "vscode-languageclient";
|
||||
|
||||
let languageClient: LanguageClient;
|
||||
const elmJsonGlob = "**/elm.json";
|
||||
import * as Package from "./elmPackage";
|
||||
|
||||
export async function activate(context: ExtensionContext) {
|
||||
// We get activated if there is one or more elm.json file in the workspace
|
||||
// Start one server for each workspace with at least one elm.json
|
||||
// and watch Elm files in those directories.
|
||||
export type ElmAnalyseTrigger = "change" | "save" | "never";
|
||||
|
||||
const elmJsons = await workspace.findFiles(elmJsonGlob, "**/node_modules/**");
|
||||
// Todo do this smarter
|
||||
if (elmJsons) {
|
||||
const workspaceFolder = workspace.getWorkspaceFolder(elmJsons[0]);
|
||||
const elmJsonFolder = getElmJsonFolder(elmJsons[0]);
|
||||
if (workspaceFolder) {
|
||||
startClient(context, elmJsonFolder);
|
||||
}
|
||||
}
|
||||
|
||||
const watcher = workspace.createFileSystemWatcher(
|
||||
elmJsonGlob,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
);
|
||||
watcher.onDidCreate(uri => {
|
||||
const workspaceFolder = workspace.getWorkspaceFolder(uri);
|
||||
const elmJsonFolder = getElmJsonFolder(uri);
|
||||
if (workspaceFolder) {
|
||||
startClient(context, elmJsonFolder);
|
||||
}
|
||||
});
|
||||
watcher.onDidDelete(uri => {
|
||||
const workspaceFolder = workspace.getWorkspaceFolder(uri);
|
||||
const elmJsonFolder = getElmJsonFolder(uri);
|
||||
if (workspaceFolder) {
|
||||
stopClient(elmJsonFolder);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getElmJsonFolder(uri: Uri): Uri {
|
||||
return Uri.parse(uri.toString().replace("elm.json", ""));
|
||||
}
|
||||
|
||||
async function stopClient(workspaceUri: Uri) {
|
||||
const client = clients.get(workspaceUri.fsPath);
|
||||
|
||||
if (client) {
|
||||
const pattern = new RelativePattern(workspaceUri.fsPath, elmJsonGlob);
|
||||
const files = await workspace.findFiles(pattern, "**/node_modules/**");
|
||||
if (files.length === 0) {
|
||||
languageClient.info("Found the client shutting it down.");
|
||||
client.stop();
|
||||
clients.delete(workspaceUri.fsPath);
|
||||
} else {
|
||||
languageClient.info(
|
||||
"There are still elm.json files in this workspace, not stopping the client.",
|
||||
);
|
||||
}
|
||||
} else {
|
||||
languageClient.info("Could not find the client that we want to shutdown.");
|
||||
}
|
||||
export interface IClientSettings {
|
||||
elmFormatPath: string;
|
||||
elmPath: string;
|
||||
elmTestPath: string;
|
||||
trace: { server: string };
|
||||
elmAnalyseTrigger: ElmAnalyseTrigger;
|
||||
}
|
||||
|
||||
const clients: Map<string, LanguageClient> = new Map();
|
||||
function startClient(context: ExtensionContext, elmWorkspace: Uri) {
|
||||
if (clients.has(elmWorkspace.fsPath)) {
|
||||
// Client was already started for this directory
|
||||
return;
|
||||
let elmCommandsRegistered: boolean = false;
|
||||
|
||||
let sortedWorkspaceFolders: string[] | undefined;
|
||||
|
||||
function getSortedWorkspaceFolders(): string[] {
|
||||
if (sortedWorkspaceFolders === void 0) {
|
||||
sortedWorkspaceFolders = Workspace.workspaceFolders
|
||||
? Workspace.workspaceFolders
|
||||
.map(folder => {
|
||||
let result = folder.uri.toString();
|
||||
if (result.charAt(result.length - 1) !== "/") {
|
||||
result = result + "/";
|
||||
}
|
||||
return result;
|
||||
})
|
||||
.sort((a, b) => {
|
||||
return a.length - b.length;
|
||||
})
|
||||
: [];
|
||||
}
|
||||
return sortedWorkspaceFolders;
|
||||
}
|
||||
Workspace.onDidChangeWorkspaceFolders(
|
||||
() => (sortedWorkspaceFolders = undefined),
|
||||
);
|
||||
|
||||
const serverModule = context.asAbsolutePath(
|
||||
path.join("server", "out", "index.js"),
|
||||
);
|
||||
// The debug options for the server
|
||||
// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
|
||||
const debugOptions = {
|
||||
execArgv: ["--nolazy", `--inspect=${6010 + clients.size}`],
|
||||
};
|
||||
function getOuterMostWorkspaceFolder(folder: WorkspaceFolder): WorkspaceFolder {
|
||||
const sorted = getSortedWorkspaceFolders();
|
||||
for (const element of sorted) {
|
||||
let uri = folder.uri.toString();
|
||||
if (uri.charAt(uri.length - 1) !== "/") {
|
||||
uri = uri + "/";
|
||||
}
|
||||
if (uri.startsWith(element)) {
|
||||
return Workspace.getWorkspaceFolder(Uri.parse(element))!;
|
||||
}
|
||||
}
|
||||
return folder;
|
||||
}
|
||||
|
||||
// If the extension is launched in debug mode then the debug server options are used
|
||||
// Otherwise the run options are used
|
||||
const serverOptions: ServerOptions = {
|
||||
debug: {
|
||||
module: serverModule,
|
||||
options: debugOptions,
|
||||
transport: TransportKind.ipc,
|
||||
export async function activate(context: ExtensionContext) {
|
||||
const module = context.asAbsolutePath(path.join("server", "out", "index.js"));
|
||||
|
||||
function didOpenTextDocument(document: TextDocument) {
|
||||
// We are only interested in everything elm, no handling for untitled files for now
|
||||
if (document.languageId !== "elm") {
|
||||
return;
|
||||
}
|
||||
|
||||
const config = Workspace.getConfiguration().get<IClientSettings>("elmLS");
|
||||
|
||||
const uri = document.uri;
|
||||
let folder = Workspace.getWorkspaceFolder(uri);
|
||||
// Files outside a folder can't be handled. This might depend on the language.
|
||||
// Single file languages like JSON might handle files outside the workspace folders.
|
||||
if (!folder) {
|
||||
return;
|
||||
}
|
||||
// If we have nested workspace folders we only start a server on the outer most workspace folder.
|
||||
folder = getOuterMostWorkspaceFolder(folder);
|
||||
|
||||
if (!clients.has(folder.uri.toString())) {
|
||||
const relativeWorkspace = folder.name;
|
||||
const outputChannel: OutputChannel = Window.createOutputChannel(
|
||||
relativeWorkspace.length > 1 ? `Elm (${relativeWorkspace})` : "Elm",
|
||||
);
|
||||
|
||||
const debugOptions = {
|
||||
execArgv: ["--nolazy", `--inspect=${6010 + clients.size}`],
|
||||
};
|
||||
const serverOptions = {
|
||||
debug: {
|
||||
module,
|
||||
options: debugOptions,
|
||||
transport: TransportKind.ipc,
|
||||
},
|
||||
run: { module, transport: TransportKind.ipc },
|
||||
};
|
||||
const clientOptions: LanguageClientOptions = {
|
||||
diagnosticCollectionName: "Elm",
|
||||
documentSelector: [
|
||||
{
|
||||
language: "elm",
|
||||
pattern: `${folder.uri.fsPath}/**/*`,
|
||||
scheme: "file",
|
||||
},
|
||||
],
|
||||
initializationOptions: config
|
||||
? {
|
||||
elmAnalyseTrigger: config.elmAnalyseTrigger,
|
||||
elmFormatPath: config.elmFormatPath,
|
||||
elmPath: config.elmPath,
|
||||
elmTestPath: config.elmTestPath,
|
||||
trace: {
|
||||
server: config.trace.server,
|
||||
},
|
||||
}
|
||||
: {},
|
||||
middleware: new CodeLensResolver(),
|
||||
outputChannel,
|
||||
revealOutputChannelOn: RevealOutputChannelOn.Never,
|
||||
workspaceFolder: folder,
|
||||
};
|
||||
const client = new LanguageClient(
|
||||
"elmLS",
|
||||
"Elm",
|
||||
serverOptions,
|
||||
clientOptions,
|
||||
);
|
||||
client.start();
|
||||
clients.set(folder.uri.toString(), client);
|
||||
}
|
||||
if (elmCommandsRegistered) {
|
||||
registerElmCommand("elmLS.runTests", context);
|
||||
registerElmCommand("elmLS.runTestsCurrentFile", context);
|
||||
elmCommandsRegistered = true;
|
||||
}
|
||||
}
|
||||
Workspace.onDidOpenTextDocument(didOpenTextDocument);
|
||||
Workspace.textDocuments.forEach(didOpenTextDocument);
|
||||
Workspace.onDidChangeWorkspaceFolders(event => {
|
||||
for (const folder of event.removed) {
|
||||
const client = clients.get(folder.uri.toString());
|
||||
if (client) {
|
||||
clients.delete(folder.uri.toString());
|
||||
client.stop();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const packageDisposables = Package.activatePackage();
|
||||
packageDisposables.forEach(d => context.subscriptions.push(d));
|
||||
}
|
||||
|
||||
async function registerElmCommand(command: string, context: ExtensionContext) {
|
||||
const editorCmd = commands.registerTextEditorCommand(
|
||||
command,
|
||||
(editor, edit) => {
|
||||
const cmd = {
|
||||
arguments: [
|
||||
{
|
||||
file: editor.document.uri.toString(),
|
||||
pos: editor.selections[0].active,
|
||||
},
|
||||
],
|
||||
command,
|
||||
};
|
||||
// Get the current file and workspace folder.
|
||||
const uri = editor.document.uri;
|
||||
const folder = Workspace.getWorkspaceFolder(uri);
|
||||
// If there is a client registered for this workspace, use that client.
|
||||
if (folder !== undefined && clients.has(folder.uri.toString())) {
|
||||
const client = clients.get(folder.uri.toString());
|
||||
if (client !== undefined) {
|
||||
client.sendRequest("workspace/executeCommand", cmd).then(_ => {
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
run: { module: serverModule, transport: TransportKind.ipc },
|
||||
};
|
||||
const outputChannel: OutputChannel = Window.createOutputChannel("elmLS");
|
||||
|
||||
// Options to control the language client
|
||||
const clientOptions: LanguageClientOptions = {
|
||||
diagnosticCollectionName: "elmLS",
|
||||
// Register the server for Elm documents in the directory
|
||||
documentSelector: [
|
||||
{
|
||||
pattern: "**/*.elm",
|
||||
scheme: "file",
|
||||
},
|
||||
],
|
||||
initializationOptions: { elmWorkspace: elmWorkspace.toString() },
|
||||
outputChannel,
|
||||
// Notify the server about file changes to 'elm.json'
|
||||
synchronize: {
|
||||
fileEvents: workspace.createFileSystemWatcher(
|
||||
path.join(elmWorkspace.fsPath, elmJsonGlob),
|
||||
),
|
||||
},
|
||||
};
|
||||
|
||||
// Create the language client and start the client.
|
||||
languageClient = new LanguageClient(
|
||||
"elmLS",
|
||||
"Elm Language Server",
|
||||
serverOptions,
|
||||
clientOptions,
|
||||
);
|
||||
|
||||
// Start the client. This will also launch the server
|
||||
languageClient.start();
|
||||
languageClient.info(`Starting language server for ${elmWorkspace.fsPath}`);
|
||||
clients.set(elmWorkspace.fsPath, languageClient);
|
||||
context.subscriptions.push(editorCmd);
|
||||
}
|
||||
|
||||
export function deactivate(): Thenable<void> | undefined {
|
||||
@@ -149,3 +209,66 @@ export function deactivate(): Thenable<void> | undefined {
|
||||
}
|
||||
return Promise.all(promises).then(() => undefined);
|
||||
}
|
||||
|
||||
export class CodeLensResolver implements Middleware {
|
||||
public resolveCodeLens(
|
||||
codeLens: CodeLens,
|
||||
token: CancellationToken,
|
||||
next: ResolveCodeLensSignature,
|
||||
): ProviderResult<CodeLens> {
|
||||
const resolvedCodeLens = next(codeLens, token);
|
||||
const resolveFunc = (codeLensToFix: CodeLens): CodeLens => {
|
||||
if (
|
||||
codeLensToFix &&
|
||||
codeLensToFix.command &&
|
||||
codeLensToFix.command.command === "editor.action.showReferences" &&
|
||||
codeLensToFix.command.arguments
|
||||
) {
|
||||
const oldArgs = codeLensToFix.command.arguments;
|
||||
|
||||
// Our JSON objects don't get handled correctly by
|
||||
// VS Code's built in editor.action.showReferences
|
||||
// command so we need to convert them into the
|
||||
// appropriate types to send them as command
|
||||
// arguments.
|
||||
|
||||
codeLensToFix.command.arguments = [
|
||||
Uri.parse(oldArgs[0].uri),
|
||||
new Position(
|
||||
oldArgs[0].range.start.line,
|
||||
oldArgs[0].range.start.character,
|
||||
),
|
||||
oldArgs[0].references.map(
|
||||
(position: {
|
||||
uri: string;
|
||||
range: {
|
||||
start: { line: number; character: number };
|
||||
end: { line: number; character: number };
|
||||
};
|
||||
}) => {
|
||||
return new Location(
|
||||
Uri.parse(position.uri),
|
||||
new Range(
|
||||
position.range.start.line,
|
||||
position.range.start.character,
|
||||
position.range.end.line,
|
||||
position.range.end.character,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
return codeLensToFix;
|
||||
};
|
||||
|
||||
if ((resolvedCodeLens as Thenable<CodeLens>).then) {
|
||||
return (resolvedCodeLens as Thenable<CodeLens>).then(resolveFunc);
|
||||
} else if (resolvedCodeLens as CodeLens) {
|
||||
return resolveFunc(resolvedCodeLens as CodeLens);
|
||||
}
|
||||
|
||||
return resolvedCodeLens;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
* ------------------------------------------------------------------------------------------ */
|
||||
"use strict";
|
||||
|
||||
import * as testRunner from "vscode/lib/testrunner";
|
||||
|
||||
testRunner.configure({
|
||||
timeout: 100000,
|
||||
ui: "bdd",
|
||||
useColors: true,
|
||||
});
|
||||
|
||||
module.exports = testRunner;
|
||||
19
client/src/utils.ts
Normal file
19
client/src/utils.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import * as vscode from "vscode";
|
||||
|
||||
export const isWindows = process.platform === "win32";
|
||||
|
||||
function isPowershell() {
|
||||
return vscode.env.shell.search(/(powershell|pwsh)/i) !== -1;
|
||||
}
|
||||
|
||||
export function getTerminalLaunchCommands(command: string): [string, string] {
|
||||
if (isWindows) {
|
||||
if (isPowershell()) {
|
||||
return [`cmd /c ${command}`, "clear"];
|
||||
} else {
|
||||
return [`${command}`, "cls"];
|
||||
}
|
||||
} else {
|
||||
return [command, "clear"];
|
||||
}
|
||||
}
|
||||
BIN
images/elm.png
BIN
images/elm.png
Binary file not shown.
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 2.1 KiB |
530
package-lock.json
generated
530
package-lock.json
generated
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"name": "elm-ls-vscode",
|
||||
"version": "0.2.2",
|
||||
"version": "0.7.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
|
||||
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
|
||||
"integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
|
||||
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
|
||||
"integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.0.0",
|
||||
@@ -24,16 +24,87 @@
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@types/mocha": {
|
||||
"version": "5.2.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
|
||||
"integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
|
||||
"@jest/types": {
|
||||
"version": "24.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
|
||||
"integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||
"@types/istanbul-reports": "^1.1.1",
|
||||
"@types/yargs": "^13.0.0"
|
||||
}
|
||||
},
|
||||
"@types/istanbul-lib-coverage": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
|
||||
"integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/istanbul-lib-report": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz",
|
||||
"integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-coverage": "*"
|
||||
}
|
||||
},
|
||||
"@types/istanbul-reports": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz",
|
||||
"integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-coverage": "*",
|
||||
"@types/istanbul-lib-report": "*"
|
||||
}
|
||||
},
|
||||
"@types/jest": {
|
||||
"version": "24.0.23",
|
||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.23.tgz",
|
||||
"integrity": "sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jest-diff": "^24.3.0"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "12.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz",
|
||||
"integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==",
|
||||
"version": "12.12.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.12.tgz",
|
||||
"integrity": "sha512-MGuvYJrPU0HUwqF7LqvIj50RZUX23Z+m583KBygKYUZLlZ88n6w28XRNJRJgsHukLEnLz6w6SvxZoLgbr5wLqQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/yargs": {
|
||||
"version": "13.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz",
|
||||
"integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/yargs-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/yargs-parser": {
|
||||
"version": "13.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz",
|
||||
"integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==",
|
||||
"dev": true
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
@@ -54,12 +125,48 @@
|
||||
"sprintf-js": "~1.0.2"
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"dev": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@@ -76,6 +183,11 @@
|
||||
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
|
||||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
@@ -102,10 +214,18 @@
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.20.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
|
||||
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
@@ -114,12 +234,45 @@
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
|
||||
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"diff-sequences": {
|
||||
"version": "24.9.0",
|
||||
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
|
||||
"integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
|
||||
"dev": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
@@ -143,27 +296,70 @@
|
||||
"dev": true
|
||||
},
|
||||
"esutils": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
|
||||
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
||||
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
||||
"dev": true
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"fast-diff": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
|
||||
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"version": "7.1.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
|
||||
"integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
@@ -174,12 +370,36 @@
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"immutable": {
|
||||
"version": "3.8.2",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
|
||||
@@ -197,17 +417,45 @@
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
||||
},
|
||||
"jest-diff": {
|
||||
"version": "24.9.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
|
||||
"integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.0.1",
|
||||
"diff-sequences": "^24.9.0",
|
||||
"jest-get-type": "^24.9.0",
|
||||
"pretty-format": "^24.9.0"
|
||||
}
|
||||
},
|
||||
"jest-docblock": {
|
||||
"version": "21.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz",
|
||||
"integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==",
|
||||
"dev": true
|
||||
},
|
||||
"jest-get-type": {
|
||||
"version": "24.9.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
|
||||
"integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==",
|
||||
"dev": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
@@ -224,12 +472,56 @@
|
||||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"lines-and-columns": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
|
||||
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.24",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
||||
"requires": {
|
||||
"mime-db": "1.40.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
@@ -254,6 +546,11 @@
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
@@ -275,25 +572,100 @@
|
||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
|
||||
"dev": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
|
||||
},
|
||||
"prettier": {
|
||||
"version": "1.18.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
|
||||
"integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
|
||||
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-format": {
|
||||
"version": "24.9.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
|
||||
"integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@jest/types": "^24.9.0",
|
||||
"ansi-regex": "^4.0.0",
|
||||
"ansi-styles": "^3.2.0",
|
||||
"react-is": "^16.8.4"
|
||||
}
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
|
||||
"integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag=="
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
|
||||
},
|
||||
"react-is": {
|
||||
"version": "16.12.0",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
|
||||
"integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==",
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
|
||||
"integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
|
||||
"integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"sprintf-js": {
|
||||
@@ -302,6 +674,22 @@
|
||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
||||
"dev": true
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
@@ -311,6 +699,22 @@
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
@@ -318,16 +722,16 @@
|
||||
"dev": true
|
||||
},
|
||||
"tslint": {
|
||||
"version": "5.17.0",
|
||||
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.17.0.tgz",
|
||||
"integrity": "sha512-pflx87WfVoYepTet3xLfDOLDm9Jqi61UXIKePOuca0qoAZyrGWonDG9VTbji58Fy+8gciUn8Bt7y69+KEVjc/w==",
|
||||
"version": "5.20.1",
|
||||
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
|
||||
"integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"builtin-modules": "^1.1.1",
|
||||
"chalk": "^2.3.0",
|
||||
"commander": "^2.12.1",
|
||||
"diff": "^3.2.0",
|
||||
"diff": "^4.0.1",
|
||||
"glob": "^7.1.1",
|
||||
"js-yaml": "^3.13.1",
|
||||
"minimatch": "^3.0.4",
|
||||
@@ -373,12 +777,48 @@
|
||||
"tslib": "^1.8.1"
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.5.1",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz",
|
||||
"integrity": "sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==",
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz",
|
||||
"integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==",
|
||||
"dev": true
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
|
||||
74
package.json
74
package.json
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "elm-ls-vscode",
|
||||
"displayName": "ElmLS",
|
||||
"description": "VSCode plugin using the elm-language-server",
|
||||
"displayName": "Elm",
|
||||
"description": "Improving your Elm experience since 2019",
|
||||
"publisher": "elmTooling",
|
||||
"icon": "images/elm.png",
|
||||
"author": "Kolja Lampe",
|
||||
"license": "MIT",
|
||||
"version": "0.2.2",
|
||||
"version": "0.7.3",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/elm-tooling/elm-language-client-vscode"
|
||||
@@ -23,6 +23,7 @@
|
||||
"vscode": "^1.30.0"
|
||||
},
|
||||
"activationEvents": [
|
||||
"onLanguage:elm",
|
||||
"workspaceContains:**/elm.json"
|
||||
],
|
||||
"main": "./client/out/extension",
|
||||
@@ -67,9 +68,31 @@
|
||||
"path": "./syntaxes/elm.json"
|
||||
}
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"command": "elm.install",
|
||||
"title": "Install Package",
|
||||
"category": "Elm"
|
||||
},
|
||||
{
|
||||
"command": "elm.browsePackage",
|
||||
"title": "Browse Package",
|
||||
"category": "Elm"
|
||||
},
|
||||
{
|
||||
"command": "elmLS.runTestsCurrentFile",
|
||||
"title": "Run tests for this file",
|
||||
"category": "Elm"
|
||||
},
|
||||
{
|
||||
"command": "elmLS.runTests",
|
||||
"title": "Run all tests",
|
||||
"category": "Elm"
|
||||
}
|
||||
],
|
||||
"configuration": {
|
||||
"type": "object",
|
||||
"title": "ElmLS",
|
||||
"title": "Elm",
|
||||
"properties": {
|
||||
"elmLS.trace.server": {
|
||||
"scope": "window",
|
||||
@@ -85,41 +108,56 @@
|
||||
"elmLS.elmPath": {
|
||||
"scope": "window",
|
||||
"type": "string",
|
||||
"default": "elm",
|
||||
"description": "The path to your elm executeable."
|
||||
"default": "",
|
||||
"description": "The path to your elm executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder."
|
||||
},
|
||||
"elmLS.elmFormatPath": {
|
||||
"scope": "window",
|
||||
"type": "string",
|
||||
"default": "elm-format",
|
||||
"description": "The path to your elm-format executeable."
|
||||
"default": "",
|
||||
"description": "The path to your elm-format executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder."
|
||||
},
|
||||
"elmLS.elmTestPath": {
|
||||
"scope": "window",
|
||||
"type": "string",
|
||||
"default": "elm-test",
|
||||
"description": "The path to your elm-test executeable."
|
||||
"default": "",
|
||||
"description": "The path to your elm-test executable. Should be empty by default, in that case it will assume the name and try to first get it from a local npm installation or a global one. If you set it manually it will not try to load from the npm folder."
|
||||
},
|
||||
"elmLS.elmAnalyseTrigger": {
|
||||
"scope": "window",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"change",
|
||||
"save",
|
||||
"never"
|
||||
],
|
||||
"default": "change",
|
||||
"description": "When do you want the extension to run elm-analyse? Might need a restart to take effect."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"vscode:prepublish": "cd client && npm run update-vscode && cd .. && npm run compile",
|
||||
"compile": "tsc -b",
|
||||
"watch": "tsc -b -w",
|
||||
"vscode:prepublish": "npm run compile",
|
||||
"compile": "cd client && npm run compile && cd ../server && npm run compile && cd .. && tsc -b",
|
||||
"watch": "npm run copy-wasm && tsc -b -w",
|
||||
"copy-wasm": "cd server && npm run copy-wasm",
|
||||
"postinstall": "cd client && npm install && cd ../server && npm install && cd ..",
|
||||
"test": "sh ./scripts/e2e.sh",
|
||||
"lint": "tslint -p tsconfig.json",
|
||||
"tslint-check": "tslint-config-prettier-check ./tslint.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"request": "2.88.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "^12.0.7",
|
||||
"prettier": "^1.18.2",
|
||||
"tslint": "^5.17.0",
|
||||
"@types/jest": "^24.0.23",
|
||||
"@types/node": "^12.12.12",
|
||||
"prettier": "^1.19.1",
|
||||
"tslint": "^5.20.1",
|
||||
"tslint-config-prettier": "^1.18.0",
|
||||
"tslint-plugin-prettier": "^2.0.1",
|
||||
"tslint-sonarts": "^1.9.0",
|
||||
"typescript": "3.5.1"
|
||||
"typescript": "3.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,24 +5,42 @@
|
||||
"exactDependency": {
|
||||
"description": "Dependencies are specified by [author name]/[package name]: [exact version].",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
"patternProperties": {
|
||||
"^.+/.+$": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"propertyNames": {
|
||||
"pattern": "^.+/.+$"
|
||||
}
|
||||
},
|
||||
"rangeDependency": {
|
||||
"description": "Dependencies are specified by [author name]/[package name]: [exact version or range]. Range versions look like: [1.0.0 <= v < 2.0.0].",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
"patternProperties": {
|
||||
"^.+/.+$": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+\\.\\d+\\.\\d+$|^\\d+\\.\\d+\\.\\d+\\s*(<=|=|<)\\s*v\\s*(<=|=|<)\\s*\\d+\\.\\d+\\.\\d+$"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"propertyNames": {
|
||||
"pattern": "^.+/.+$"
|
||||
}
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||||
},
|
||||
"packageSpecificProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "The name of your package.",
|
||||
"description": "The name of a GitHub repo like 'elm-lang/core' or 'rtfeldman/elm-css'.",
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
"minLength": 3
|
||||
},
|
||||
"license": {
|
||||
"description": "An OSI approved license for your package.",
|
||||
@@ -130,33 +148,33 @@
|
||||
]
|
||||
},
|
||||
"summary": {
|
||||
"description": "A helpful summary of your package, less than 80 characters",
|
||||
"description": "A short summary that will appear on package.elm-lang.org that describes what the package is for. Must be under 80 characters.",
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 79
|
||||
},
|
||||
"version": {
|
||||
"description": "Your package's version in semantic versioning format.",
|
||||
"type": "string",
|
||||
"pattern": "\\d+\\.\\d+\\.\\d+"
|
||||
"description": "All packages start at '1.0.0' and from there, Elm automatically enforces semantic versioning by comparing API changes.",
|
||||
"$ref": "#/definitions/version"
|
||||
},
|
||||
"elm-version": {
|
||||
"description": "The version of elm your package is targeting",
|
||||
"description": "The range of Elm compilers that work with your package. Right now '0.19.0 <= v < 0.20.0' is always what you want for this.",
|
||||
"type": "string"
|
||||
},
|
||||
"exposed-modules": {
|
||||
"description": "All modules that your project will make available to end users.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
"description": "A list of modules that will be exposed to people using your package. The order you list them will be the order they appear on package.elm-lang.org.",
|
||||
"type": ["array", "string", "object"],
|
||||
"additionalProperties": { "type": "array" },
|
||||
"propertyNames": {
|
||||
"pattern": "^[A-Z].*$"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"description": "A list of elm dependencies that your package needs for in production.",
|
||||
"description": "A list of packages that you depend upon. In each application, there can only be one version of each package, so wide ranges are great. Fewer dependencies is even better though!",
|
||||
"$ref": "#/definitions/rangeDependency"
|
||||
},
|
||||
"test-dependencies": {
|
||||
"description": "A list of elm dependencies that your package uses only for testing.",
|
||||
"description": "Dependencies that are only used in the 'tests/' directory by 'elm-test'. Values from these packages will not appear in any final build artifacts.",
|
||||
"$ref": "#/definitions/rangeDependency"
|
||||
}
|
||||
},
|
||||
@@ -175,20 +193,20 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"source-directories": {
|
||||
"description": "A list of directories that will be used to build your project.",
|
||||
"description": "A list of directories where Elm code lives. Most projects just use 'src' for everything.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"elm-version": {
|
||||
"description": "The version of elm your project is targeting",
|
||||
"description": "The exact version of Elm this builds with. Should be '0.19.1' for most people!",
|
||||
"type": "string",
|
||||
"pattern": "\\d+\\.\\d+\\.\\d+",
|
||||
"enum": ["0.19.0"]
|
||||
"$ref": "#/definitions/version",
|
||||
"enum": ["0.19.0", "0.19.1"]
|
||||
},
|
||||
"dependencies": {
|
||||
"description": "A list of elm dependencies that your project needs for in production.",
|
||||
"description": "All the packages you depend upon. We use exact versions, so your elm.json file doubles as a 'lock file' that ensures reliable builds. \n \n You can use modules from any 'direct' dependency in your code. Some 'direct' dependencies have their own dependencies that folks typically do not care about. These are the 'indirect' dependencies. They are listed explicitly so that (1) builds are reproducible and (2) you can easily review the quantity and quality of dependencies.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"direct": {
|
||||
@@ -201,7 +219,7 @@
|
||||
"required": ["direct", "indirect"]
|
||||
},
|
||||
"test-dependencies": {
|
||||
"description": "A list of elm dependencies that your project uses only for testing.",
|
||||
"description": "All the packages that you use in 'tests/' with 'elm-test' but not in the application you actually want to ship. This also uses exact versions to make tests more reliable.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"direct": {
|
||||
@@ -224,7 +242,7 @@
|
||||
},
|
||||
"properties": {
|
||||
"type": {
|
||||
"description": "Specifies if your project will be a package or an application",
|
||||
"description": "Either 'application' or 'package'. All the other fields are based on this choice.",
|
||||
"type": "string",
|
||||
"enum": ["application", "package"]
|
||||
}
|
||||
|
||||
2
server
2
server
Submodule server updated: 346ea455a4...6ce009b897
1442
syntaxes/elm.json
1442
syntaxes/elm.json
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user