From 92d300003319a6ad26eaaa04a8af8b7a40d601ba Mon Sep 17 00:00:00 2001 From: thomashii Date: Sat, 26 Jun 2021 19:27:15 +0800 Subject: [PATCH] Moved vscode to own repo --- packages/vscode/angel_vscode/.gitignore | 4 - .../vscode/angel_vscode/.vscode/launch.json | 36 - .../vscode/angel_vscode/.vscode/settings.json | 9 - .../vscode/angel_vscode/.vscode/tasks.json | 20 - packages/vscode/angel_vscode/.vscodeignore | 9 - packages/vscode/angel_vscode/CHANGELOG.md | 7 - packages/vscode/angel_vscode/LICENSE | 21 - packages/vscode/angel_vscode/README.md | 13 - packages/vscode/angel_vscode/media/logo.png | Bin 2853 -> 0 bytes .../vscode/angel_vscode/package-lock.json | 2089 ------------ packages/vscode/angel_vscode/package.json | 85 - .../vscode/angel_vscode/snippets/angel.json | 115 - .../vscode/angel_vscode/snippets/jael.json | 53 - packages/vscode/angel_vscode/src/extension.ts | 40 - .../syntaxes/jael-language-configuration.json | 28 - .../vscode/angel_vscode/syntaxes/jael.json | 172 - packages/vscode/angel_vscode/tsconfig.json | 23 - .../angel_vscode/vsc-extension-quickstart.md | 33 - packages/vscode/angel_vscode/yarn.lock | 1826 ---------- .../vscode/jael_language_server/.gitignore | 21 - .../vscode/jael_language_server/AUTHORS.md | 12 - .../vscode/jael_language_server/CHANGELOG.md | 5 - packages/vscode/jael_language_server/LICENSE | 21 - .../vscode/jael_language_server/README.md | 1 - .../analysis_options.yaml | 4 - .../bin/jael_language_server.dart | 69 - .../lib/jael_language_server.dart | 1 - .../lib/src/analyzer.dart | 154 - .../lib/src/formatter.dart | 117 - .../jael_language_server/lib/src/object.dart | 34 - .../protocol/language_server/interface.dart | 64 - .../protocol/language_server/messages.dart | 2944 ----------------- .../protocol/language_server/messages.yaml | 321 -- .../src/protocol/language_server/server.dart | 201 -- .../protocol/language_server/wireformat.dart | 98 - .../jael_language_server/lib/src/server.dart | 541 --- .../vscode/jael_language_server/pubspec.yaml | 35 - 37 files changed, 9226 deletions(-) delete mode 100644 packages/vscode/angel_vscode/.gitignore delete mode 100644 packages/vscode/angel_vscode/.vscode/launch.json delete mode 100644 packages/vscode/angel_vscode/.vscode/settings.json delete mode 100644 packages/vscode/angel_vscode/.vscode/tasks.json delete mode 100644 packages/vscode/angel_vscode/.vscodeignore delete mode 100644 packages/vscode/angel_vscode/CHANGELOG.md delete mode 100644 packages/vscode/angel_vscode/LICENSE delete mode 100644 packages/vscode/angel_vscode/README.md delete mode 100644 packages/vscode/angel_vscode/media/logo.png delete mode 100644 packages/vscode/angel_vscode/package-lock.json delete mode 100644 packages/vscode/angel_vscode/package.json delete mode 100644 packages/vscode/angel_vscode/snippets/angel.json delete mode 100644 packages/vscode/angel_vscode/snippets/jael.json delete mode 100644 packages/vscode/angel_vscode/src/extension.ts delete mode 100644 packages/vscode/angel_vscode/syntaxes/jael-language-configuration.json delete mode 100644 packages/vscode/angel_vscode/syntaxes/jael.json delete mode 100644 packages/vscode/angel_vscode/tsconfig.json delete mode 100644 packages/vscode/angel_vscode/vsc-extension-quickstart.md delete mode 100644 packages/vscode/angel_vscode/yarn.lock delete mode 100644 packages/vscode/jael_language_server/.gitignore delete mode 100644 packages/vscode/jael_language_server/AUTHORS.md delete mode 100644 packages/vscode/jael_language_server/CHANGELOG.md delete mode 100644 packages/vscode/jael_language_server/LICENSE delete mode 100644 packages/vscode/jael_language_server/README.md delete mode 100644 packages/vscode/jael_language_server/analysis_options.yaml delete mode 100644 packages/vscode/jael_language_server/bin/jael_language_server.dart delete mode 100644 packages/vscode/jael_language_server/lib/jael_language_server.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/analyzer.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/formatter.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/object.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/protocol/language_server/interface.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.yaml delete mode 100644 packages/vscode/jael_language_server/lib/src/protocol/language_server/server.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/protocol/language_server/wireformat.dart delete mode 100644 packages/vscode/jael_language_server/lib/src/server.dart delete mode 100644 packages/vscode/jael_language_server/pubspec.yaml diff --git a/packages/vscode/angel_vscode/.gitignore b/packages/vscode/angel_vscode/.gitignore deleted file mode 100644 index 5fe00fea..00000000 --- a/packages/vscode/angel_vscode/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -out -node_modules -.vscode-test/ -*.vsix diff --git a/packages/vscode/angel_vscode/.vscode/launch.json b/packages/vscode/angel_vscode/.vscode/launch.json deleted file mode 100644 index c174db30..00000000 --- a/packages/vscode/angel_vscode/.vscode/launch.json +++ /dev/null @@ -1,36 +0,0 @@ -// A launch configuration that compiles the extension and then opens it inside a new window -// Use IntelliSense to learn about possible attributes. -// Hover to view descriptions of existing attributes. -// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Extension", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/out/**/*.js" - ], - "preLaunchTask": "npm: watch" - }, - { - "name": "Extension Tests", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test" - ], - "outFiles": [ - "${workspaceFolder}/out/test/**/*.js" - ], - "preLaunchTask": "npm: watch" - } - ] -} diff --git a/packages/vscode/angel_vscode/.vscode/settings.json b/packages/vscode/angel_vscode/.vscode/settings.json deleted file mode 100644 index d1371333..00000000 --- a/packages/vscode/angel_vscode/.vscode/settings.json +++ /dev/null @@ -1,9 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "files.exclude": { - "out": false // set this to true to hide the "out" folder with the compiled JS files - }, - "search.exclude": { - "out": true // set this to false to include "out" folder in search results - } -} \ No newline at end of file diff --git a/packages/vscode/angel_vscode/.vscode/tasks.json b/packages/vscode/angel_vscode/.vscode/tasks.json deleted file mode 100644 index 604e38f5..00000000 --- a/packages/vscode/angel_vscode/.vscode/tasks.json +++ /dev/null @@ -1,20 +0,0 @@ -// See https://go.microsoft.com/fwlink/?LinkId=733558 -// for the documentation about the tasks.json format -{ - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "watch", - "problemMatcher": "$tsc-watch", - "isBackground": true, - "presentation": { - "reveal": "never" - }, - "group": { - "kind": "build", - "isDefault": true - } - } - ] -} \ No newline at end of file diff --git a/packages/vscode/angel_vscode/.vscodeignore b/packages/vscode/angel_vscode/.vscodeignore deleted file mode 100644 index 85571789..00000000 --- a/packages/vscode/angel_vscode/.vscodeignore +++ /dev/null @@ -1,9 +0,0 @@ -.vscode/** -.vscode-test/** -out/test/** -out/**/*.map -src/** -.gitignore -tsconfig.json -vsc-extension-quickstart.md -tslint.json \ No newline at end of file diff --git a/packages/vscode/angel_vscode/CHANGELOG.md b/packages/vscode/angel_vscode/CHANGELOG.md deleted file mode 100644 index 70ec4a40..00000000 --- a/packages/vscode/angel_vscode/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# Change Log -All notable changes to the "angel-dart-vscode" extension will be documented in this file. - -Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. - -## [Unreleased] -- Initial release \ No newline at end of file diff --git a/packages/vscode/angel_vscode/LICENSE b/packages/vscode/angel_vscode/LICENSE deleted file mode 100644 index 8f65b579..00000000 --- a/packages/vscode/angel_vscode/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License (MIT) - -Copyright (c) 2021 dukefirehawk.com - -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. \ No newline at end of file diff --git a/packages/vscode/angel_vscode/README.md b/packages/vscode/angel_vscode/README.md deleted file mode 100644 index 96ccd6c0..00000000 --- a/packages/vscode/angel_vscode/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Angel Framework support for VSCode -![The Angel Framework](https://angel-dart.github.io/assets/images/logo.png) - -This extension provides IDE support within VSCode for the -[Angel](https://angel-dart.github.io) -Web server framework. The goal of this package is to improve -the overall development experience when working with Angel. - -## Features - -- Dart snippets for Angel framework code -- Syntax highlighting for the Jael templating engine -- **COMING SOON:** Language server support for Jael diff --git a/packages/vscode/angel_vscode/media/logo.png b/packages/vscode/angel_vscode/media/logo.png deleted file mode 100644 index 8be3ad791e165bad029dcf6f9c23c6aeb1c66fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2853 zcmaJ@XIN9&77aZCK}sm{R6^)24G0jWB>{;P1JV=}E+LR8DI@_xk)T8cMMQAKL2<-U zP>>>6p9mNklrl2lC`Ay1g7i8geSE=D=lyuT``vrbKKom1?Q-^ylS%g3p{%H@2m*nW zNghN$$?CHHf#oItQhMwg$+C&(7R=ktisB^z94g2)k`+OPkr+TU)sG59CdM{Xw}U`3 zhIId6Ua+?pj>2LffOQOl&tOZ~AkcPaJ{zDMr1D@9)Mz@>5kCE}9uA{NI>Li&y;0t5 z0+mMhNa9d;C;9kOk`7WFBH_+Xu`jIdSR5+M7GZ5gL7~wwEEa*bvBhH1mM{zojX|O$FV+fegR{lrFm|vn4_p$B z6B&i`Bf5WyCD}Q`X*?bqheReMBp?#35iCwL67AsNu&#l@SV<68+(af1;9D`d245A3 zR4#=>XY=SRCTv|1h+xI>9O05o|1N>S{wB-herc1WVMso}Mxqg@^^(2^muBdJBP)9eJ&bD|9&p^ z-_`rVjr@Kt4&UV>CCMPykM_Tg`m0MaKkMeV!If;jjXsqrnRkw4uy>9=^8kSq@<~Kj ze|~RY2tCF>0Geuj``Wc@CtoSw0$(9t^>x*k)>RW^gs=g~74q2ww-Et9yW3ok9X;#T zc*+!h-IwhuTVxJ{Nx!W22u(XiB`TU~n&CU{w()%yjT5t34?b8ej*;p%6h4rcm*xwH z_Tw+~-s_S!HBl>8pM%^}J+PWYUewuTDcem_EK(Muik`J=<6bFd$i(M*(!7Ir&^`(L z(n_JgpLXhqbj;q1(ikvZrE+pdH}SersE7TF%6zZc#neK`8l-<_&|A1q_=9jGT7R2E zHX9*ESdz`fJkf&d-83H|7|;Y1#kgAgm1OkgN8`e=9^CMisKrKz;M0B-LZ8%%*{TRUZ1znhmn^`A^1^)tvNWjL)i`)2Ujm z3|>PGMbtTTj`ZksTeXG(iGVVEg&Zu_)utIM@QrI z0BBcRQ$m+Uw(3V0wK}uQGGZr%uKhAb&?nK8S4})P$(;*~TXVIY?`HdFg~<>-jpz8N zkqgqP#-W30wC9fxOa|&)D7T(G(7#X)xNY9D^~E8*!y&e5UI{C|$N=wqMo|u#HtJ)V zP3XM(Oz;d?e0i#;J>69A_fz#}*t$@T8ldlCJ(VwQFAkR4?G(bEJRl0k2c6_UZ@dql z;%qa{%ef_#7CFwuDQE6>YWt~t@X+d`mUh!BrH!w5o>#4CAHn zWvOQy7Z=crUe8_%0e)cm)Qa(Ywb*^LjaoMC_r^91&DeY4&OH7h93P*Xu4(Ds(Frc= zJw6_NxaUs*t7L)8Lv;+kiH4Q%&!M_la#=3@zltXyGmpJ)#y~Y{ay1|(8W>32%slQU zts44n(;@Mvqb|mw`tq-$$8n&t+ofje@3u8W*iUyuS}R1+d4vq%0E*EX$=RCR`U?&QXn=iyMgYJ)p3^z{9lPt5DaC2q&yy_Pirq84Np}XYLzZG>U8#O5{jk9Y_7qlZ(#gfBJdL?B}eRsVL>_| z&u$9mo%#Dej68s!O%Ex^RrTMM(VVCch3O+zD?pyyH%^-j)tgEJ>grV~D&noKXS=G% z#mZ;Eov)Li$X`)(>mw(}Z-y;aYMZyZH`JjlDu*E=Tn#m`FH{ALY(tkwlPeVCq5f|-6 z`@Dj>kZzsO$i#w~>$lBXhSxM^pmY4^n*}dUZ5oT1^A#5B&iHg24(!_DF?B4<-&}C{ ze&q$G>0i&s}x#CC8CymXahHP8sYX`vIw^+fS3AZb6%ID#KTG{&Jj=Te4q^h z1BIeKpiUug+9Gsq<88qdKCw8>SM;)ShW6)=1dQfWju=bY-R+%g4kO%OZq4f4r69Us zny=JkJuWE6kPE>5rOmn*dS(cA<&!o*bmk$!m9e)uZ!a4LrKf0J<~CS3eO!B7nr?(Z zRm*u@s(I9$tK_fQkhvpMD@81$X|YCbP&Or`TgIa5hwn&tFHEzf%Gw_^>Gs!l*7`ND zC+i0~tMlAZf-8fqL|IOGS}0V{HNPDkW(@yVpX<=ubBwJG$F&~Hr_3qKYYw;~?bB-N zs`PANENO2`+1fsv@uRdn z(7hnN^1R#Ke3QKclMqPT zPfur~nA~o|DbGMbfkIx_TTbqwUuH=b=8mLZ8u7@4fFfJG`DOOhy@#4kMM-(#tD#%w zk8l3Nb}-5}jhousk%(POIvwa7K%RBu<^$(>(H zR%BvjWJdxQRg1?E8+R0NwDa1l;I7O#y}(Gnid!Ygs6;1Ln@Lj{)T^LfZ`R?xvV7gm jx#x-C!eb$k0wom4?$QJ5X&YAe`o)#x=0mK&hadS5nCG_x diff --git a/packages/vscode/angel_vscode/package-lock.json b/packages/vscode/angel_vscode/package-lock.json deleted file mode 100644 index e3efa51d..00000000 --- a/packages/vscode/angel_vscode/package-lock.json +++ /dev/null @@ -1,2089 +0,0 @@ -{ - "name": "angel-dart-vscode", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/mocha": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", - "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", - "dev": true - }, - "@types/node": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.1.tgz", - "integrity": "sha512-fZvabBkcFJzc+eJN2XTuhKhop1RKdlGQgjmQuxYuQJ6K5rMNoHr6tomb6q0E8Axe+WPyfe/lr7CnnkGvzNh5mA==", - "dev": true - }, - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "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" - } - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "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" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "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-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "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 - }, - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "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==", - "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 - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "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", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-assign": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz", - "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", - "dev": true, - "requires": { - "is-obj": "^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=", - "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 - }, - "duplexer": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "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" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "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 - }, - "event-stream": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz", - "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "flatmap-stream": "^0.1.0", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "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 - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flatmap-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.1.tgz", - "integrity": "sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "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.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "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" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "glob-stream": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", - "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^5.0.3", - "glob-parent": "^3.0.0", - "micromatch": "^2.3.7", - "ordered-read-streams": "^0.3.0", - "through2": "^0.6.0", - "to-absolute-glob": "^0.1.1", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true - }, - "gulp-chmod": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-chmod/-/gulp-chmod-2.0.0.tgz", - "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=", - "dev": true, - "requires": { - "deep-assign": "^1.0.0", - "stat-mode": "^0.2.0", - "through2": "^2.0.0" - } - }, - "gulp-filter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz", - "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=", - "dev": true, - "requires": { - "multimatch": "^2.0.0", - "plugin-error": "^0.1.2", - "streamfilter": "^1.0.5" - } - }, - "gulp-gunzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz", - "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=", - "dev": true, - "requires": { - "through2": "~0.6.5", - "vinyl": "~0.4.6" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "gulp-remote-src-vscode": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.0.tgz", - "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==", - "dev": true, - "requires": { - "event-stream": "^3.3.4", - "node.extend": "^1.1.2", - "request": "^2.79.0", - "through2": "^2.0.3", - "vinyl": "^2.0.1" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "gulp-sourcemaps": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", - "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", - "dev": true, - "requires": { - "convert-source-map": "^1.1.1", - "graceful-fs": "^4.1.2", - "strip-bom": "^2.0.0", - "through2": "^2.0.0", - "vinyl": "^1.0.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "gulp-symdest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gulp-symdest/-/gulp-symdest-1.1.0.tgz", - "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=", - "dev": true, - "requires": { - "event-stream": "^3.3.1", - "mkdirp": "^0.5.1", - "queue": "^3.1.0", - "vinyl-fs": "^2.4.3" - } - }, - "gulp-untar": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.7.tgz", - "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==", - "dev": true, - "requires": { - "event-stream": "~3.3.4", - "streamifier": "~0.1.1", - "tar": "^2.2.1", - "through2": "~2.0.3", - "vinyl": "^1.2.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "gulp-vinyl-zip": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz", - "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=", - "dev": true, - "requires": { - "event-stream": "^3.3.1", - "queue": "^4.2.1", - "through2": "^2.0.3", - "vinyl": "^2.0.2", - "vinyl-fs": "^2.0.0", - "yauzl": "^2.2.1", - "yazl": "^2.2.1" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "queue": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.0.tgz", - "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^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=", - "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": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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-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" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "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 - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", - "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "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-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "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 - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "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" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "dev": true - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "dev": true, - "requires": { - "mime-db": "~1.37.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://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 - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, - "node.extend": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.7.tgz", - "integrity": "sha512-7Firgqanbd7UtypwBezNTEuo9eHKtEXd+pD96Aj4wai6Q2vM1S38X+MZvR7sQv5E5pj2TZ9j0Am4dLfc6EvKsA==", - "dev": true, - "requires": { - "has": "^1.0.3", - "is": "^3.2.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "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 - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "ordered-read-streams": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", - "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "readable-stream": "^2.0.1" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "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 - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "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.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", - "dev": true - }, - "queue": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/queue/-/queue-3.1.0.tgz", - "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "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" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "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==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", - "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" - } - }, - "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", - "dev": true - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "streamfilter": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz", - "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "streamifier": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz", - "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-bom-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", - "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "strip-bom": "^2.0.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" - } - }, - "tar": { - "version": "2.2.1", - "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "to-absolute-glob": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", - "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.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 - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true, - "requires": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", - "dev": true, - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", - "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" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - }, - "vinyl-fs": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", - "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", - "dev": true, - "requires": { - "duplexify": "^3.2.0", - "glob-stream": "^5.3.2", - "graceful-fs": "^4.0.0", - "gulp-sourcemaps": "1.6.0", - "is-valid-glob": "^0.3.0", - "lazystream": "^1.0.0", - "lodash.isequal": "^4.0.0", - "merge-stream": "^1.0.0", - "mkdirp": "^0.5.0", - "object-assign": "^4.0.0", - "readable-stream": "^2.0.4", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^1.0.0", - "through2": "^2.0.0", - "through2-filter": "^2.0.0", - "vali-date": "^1.0.0", - "vinyl": "^1.0.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "vinyl-source-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz", - "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=", - "dev": true, - "requires": { - "through2": "^2.0.3", - "vinyl": "^0.4.3" - } - }, - "vscode": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.21.tgz", - "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "gulp-chmod": "^2.0.0", - "gulp-filter": "^5.0.1", - "gulp-gunzip": "1.0.0", - "gulp-remote-src-vscode": "^0.5.0", - "gulp-symdest": "^1.1.0", - "gulp-untar": "^0.0.7", - "gulp-vinyl-zip": "^2.1.0", - "mocha": "^4.0.1", - "request": "^2.83.0", - "semver": "^5.4.1", - "source-map-support": "^0.5.0", - "url-parse": "^1.4.3", - "vinyl-source-stream": "^1.1.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yazl": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.4.3.tgz", - "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } - } - } -} diff --git a/packages/vscode/angel_vscode/package.json b/packages/vscode/angel_vscode/package.json deleted file mode 100644 index efe929d6..00000000 --- a/packages/vscode/angel_vscode/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "angel-dart-vscode", - "displayName": "Angel", - "description": "Snippets and IDE support for the Angel server framework within VSCode.", - "version": "0.2.0", - "repository": { - "type": "git", - "url": "https://github.com/angel-dart/vscode" - }, - "icon": "media/logo.png", - "publisher": "thosakwe0541", - "engines": { - "vscode": "^1.28.0" - }, - "categories": [ - "Snippets" - ], - "keywords": [ - "angel", - "angel-dart", - "dart", - "jael", - "template", - "templating", - "flutter", - "fuchsia" - ], - "activationEvents": [ - "onLanguage:jael" - ], - "main": "./out/extension", - "contributes": { - "_commands": [ - { - "command": "extension.sayHello", - "title": "Hello World" - } - ], - "languages": [ - { - "id": "jael", - "aliases": [ - "Jael" - ], - "extensions": [ - ".jael" - ], - "configuration": "./syntaxes/jael-language-configuration.json" - } - ], - "grammars": [ - { - "language": "jael", - "scopeName": "source.jael", - "path": "./syntaxes/jael.json" - } - ], - "snippets": [ - { - "language": "dart", - "path": "./snippets/angel.json" - }, - { - "language": "jael", - "path": "./snippets/jael.json" - } - ] - }, - "scripts": { - "vscode:prepublish": "npm run compile", - "compile": "tsc -p ./", - "watch": "tsc -watch -p ./", - "postinstall": "node ./node_modules/vscode/bin/install", - "test": "npm run compile && node ./node_modules/vscode/bin/test" - }, - "devDependencies": { - "@types/mocha": "^2.2.42", - "@types/node": "^7.0.43", - "typescript": "^2.6.1", - "vscode": "^1.1.6" - }, - "dependencies": { - "vscode-languageclient": "^5.1.1" - } -} \ No newline at end of file diff --git a/packages/vscode/angel_vscode/snippets/angel.json b/packages/vscode/angel_vscode/snippets/angel.json deleted file mode 100644 index 3e3b740c..00000000 --- a/packages/vscode/angel_vscode/snippets/angel.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - ".source.dart": { - "controller": { - "prefix": "angel:controller", - "description": "Generate an Angel Controller.", - "body": [ - "import 'package:angel_framework/angel_framework.dart';", - "", - "@Expose('/$1')", - "class $1Controller extends Controller {", - " @Expose('/')", - " String hello() {", - " return 'Hello, world';", - " }", - " $2", - "}" - ] - }, - "websocket_controller": { - "prefix": "angel:websocket_controller", - "description": "Generate an Angel WebSocketController.", - "body": [ - "import 'package:angel_websocket/server.dart';", - "", - "class $1Controller extends WebSocketController {", - " $1Controller(AngelWebSocket ws) : super(ws);", - "", - " @ExposeWs('ping')", - " void hello(WebSocketContext socket) {", - " socket.send('pong', {'message': 'Hello, world!'});", - " }", - " $2", - "}" - ] - }, - "model": { - "prefix": "angel:model", - "description": "Generate an Angel Model.", - "body": [ - "import 'package:angel_model/angel_model.dart';", - "import 'package:angel_serialize/angel_serialize.dart';", - "part '$2.g.dart';", - "part '$2.serializer.g.dart';", - "", - "@serializable", - "abstract class _$1 extends Model {", - " $3", - "}" - ] - }, - "migration": { - "prefix": "angel:migration", - "description": "Generate an Angel ORM Migration.", - "body": [ - "import 'package:angel_migration.dart/angel_migration.dart';", - "", - "class $1Migration extends Migration {", - " @override", - " void up(Schema schema) {", - " schema.create('$2', (table) {", - " table.serial('id').primaryKey();", - " table.date('created_at');", - " table.date('updated_at');", - " $3", - " });", - " }", - "", - " @override", - " void down(Schema schema) {", - " schema.drop('$2');", - " }", - "}" - ] - }, - "plugin": { - "prefix": "angel:plugin", - "description": "Generate an Angel plugin.", - "body": [ - "import 'package:angel_framework/angel_framework.dart';", - "", - "AngelConfigurer $1() {", - " return (Angel app) async {", - " // Work some magic...", - " $2", - " };", - "}" - ] - }, - "test_driver": { - "prefix": "angel:test", - "description": "Generate an Angel test driver.", - "body": [ - "import 'dart:io';", - "import 'package:$1/$1.dart' as $1;", - "import 'package:angel_framework/angel_framework.dart';", - "import 'package:angel_test/angel_test.dart';", - "import 'package:test/test.dart';", - "", - "main() async {", - " TestClient client;", - "", - " setUp(() async {", - " var app = new Angel();", - " await app.configure($1.configureServer);", - " client = await connectTo(app);", - " });", - "", - " tearDown(() => client.close());", - "", - " // Add your tests here...", - "}" - ] - } - } -} diff --git a/packages/vscode/angel_vscode/snippets/jael.json b/packages/vscode/angel_vscode/snippets/jael.json deleted file mode 100644 index e8225f9d..00000000 --- a/packages/vscode/angel_vscode/snippets/jael.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - ".source.jael": { - "block": { - "prefix": "block", - "description": "Insert a named tag.", - "body": ["", " $2", ""] - }, - "comment": { - "prefix": "comment", - "description": "Insert a comment.", - "body": [""] - }, - "declare": { - "prefix": "declare", - "description": "Insert a tag.", - "body": ["", " $3", ""] - }, - "element": { - "prefix": "element", - "description": "Insert a custom tag.", - "body": ["", " $2", ""] - }, - "extend": { - "prefix": "extend", - "description": "Insert an tag.", - "body": ["", " $2", ""] - }, - "for-each": { - "prefix": "for-each", - "description": "Insert a tag.", - "body": ["<${1:div} for-each=$2 as=\"$3\">", " $4", ""] - }, - "include": { - "prefix": "include", - "description": "Insert an tag.", - "body": [""] - }, - "switch": { - "prefix": "switch", - "description": "Insert a tag.", - "body": [ - "", - " ", - " $3", - " ", - " ", - " $4", - " ", - "" - ] - } - } -} diff --git a/packages/vscode/angel_vscode/src/extension.ts b/packages/vscode/angel_vscode/src/extension.ts deleted file mode 100644 index 6a35efb8..00000000 --- a/packages/vscode/angel_vscode/src/extension.ts +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; - -import * as vscode from "vscode"; -import { workspace } from "vscode"; -import { - LanguageClient, - LanguageClientOptions, - ServerOptions, - TransportKind, - Executable -} from "vscode-languageclient"; - -export function activate(context: vscode.ExtensionContext) { - const runOpts: Executable = { - command: "pub", - args: ["global", "run", "jael_language_server"] - }; - const serverOptions: ServerOptions = { - run: runOpts, - debug: runOpts, - transport: TransportKind.stdio - }; - const clientOptions: LanguageClientOptions = { - documentSelector: [ - { - scheme: "file", - language: "jael" - } - ], - synchronize: { - configurationSection: "jael", - fileEvents: workspace.createFileSystemWatcher("**/.jael") - } - }; - - const lsp = new LanguageClient("jael", "Jael", serverOptions, clientOptions); - context.subscriptions.push(lsp.start()); -} - -export function deactivate() {} diff --git a/packages/vscode/angel_vscode/syntaxes/jael-language-configuration.json b/packages/vscode/angel_vscode/syntaxes/jael-language-configuration.json deleted file mode 100644 index 0f428e09..00000000 --- a/packages/vscode/angel_vscode/syntaxes/jael-language-configuration.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "attribution-notice": { - "author-of-most-of-this-file": "Danny Tuppeny", - "source": "https://github.com/Dart-Code/Dart-Code/blob/master/syntaxes/dart.json" - }, - "comments": { - "blockComment": [""] - }, - "brackets": [["{", "}"], ["[", "]"], ["(", ")"], ["<", ">"]], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string", "comment"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["<", ">"], - ["'", "'"], - ["\"", "\""], - ["`", "`"] - ] -} diff --git a/packages/vscode/angel_vscode/syntaxes/jael.json b/packages/vscode/angel_vscode/syntaxes/jael.json deleted file mode 100644 index f682c915..00000000 --- a/packages/vscode/angel_vscode/syntaxes/jael.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "fileTypes": ["jael"], - "name": "Jael", - "scopeName": "source.jael", - "patterns": [ - { - "include": "#expressions" - }, - { - "match": "\\b(DOCTYPE|doctype)\\b", - "name": "keyword.doctype.jael" - }, - { - "match": "[:,\\.]", - "name": "punctuation.jael" - }, - { - "begin": "{{-?", - "end": "}}", - "beginCaptures": { - "0": { - "name": "keyword.operator.jael" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.jael" - } - }, - "patterns": [{ "include": "#expressions" }, { "include": "#operators" }] - }, - { - "begin": "<\\s*(script)[^>]*>", - "end": "(.*)<\\s*/\\s*(script)[^>]*>", - "beginCaptures": { - "1": { - "name": "keyword.tag.embedded.js.jael" - } - }, - "endCaptures": { - "1": { - "name": "source.js", - "contentName": "source.js" - }, - "2": { - "name": "keyword.tag.embedded.js.jael" - } - }, - "contentName": "source.js", - "patterns": [{ "include": "source.js" }] - }, - { - "begin": "<\\s*(style)[^>]*>", - "end": "<\\s*/\\s*(style)[^>]*>", - "beginCaptures": { - "1": { - "name": "keyword.tag.embedded.css.jael" - } - }, - "endCaptures": { - "1": { - "name": "keyword.tag.embedded.css.jael" - } - }, - "contentName": "source.css", - "patterns": [{ "include": "source.css" }] - }, - { - "match": "\\b(block|declare|for-each|extend|if|include|switch)\\b", - "name": "keyword.control.jael" - }, - { - "match": "<\\s*/?\\s*([A-Za-z_][A-Za-z0-9_-]*)(\\s*[A-Za-z_][A-Za-z0-9_]*(?!=)\\s*)*\\b", - "captures": { - "1": { - "name": "keyword.tag.jael" - }, - "2": { - "name": "storage.name.jael" - } - } - }, - { - "match": "@[A-Za-z_][A-Za-z0-9_]*", - "name": "storage.argument.jael" - }, - { - "match": "\\b(@?[A-Za-z_][A-Za-z0-9_]*)=", - "captures": { - "1": { - "name": "storage.name.jael" - } - } - }, - { - "captures": { - "0": { - "name": "punctuation.definition.comment.jael" - } - }, - "begin": "", - "name": "comment.jael" - }, - { - "include": "#operators" - }, - { - "include": "source.html" - } - ], - "repository": { - "operators": { - "patterns": [ - { - "match": "((!?=)|\\+|\\*|-|/|\\?|(\\?\\.)|%|\\[|\\])", - "name": "keyword.operator.jael" - } - ] - }, - "expressions": { - "patterns": [ - { - "match": "\\b[<>]\\b", - "name": "keyword.operator.jael" - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.jael", - "patterns": [ - { - "name": "constant.character.escape.jael", - "match": "\\\\[bfnrt']" - } - ] - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.jael", - "patterns": [ - { - "name": "constant.character.escape.jael", - "match": "\\\\[bfnrt\"]" - } - ] - }, - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.jael" - }, - { - "match": "\\b-?[0-9]+(\\.[0-9]+)?([Ee][0-9]+)?\\b", - "name": "constant.numeric.jael" - }, - { - "match": "\\b0x[A-Fa-f0-9]+\\b", - "name": "constant.numeric.jael" - }, - { - "match": "([A-Za-z_][A-Za-z0-9_]*)\\s*\\(", - "captures": { - "1": { - "name": "entity.name.function.jael" - } - } - } - ] - } - } -} diff --git a/packages/vscode/angel_vscode/tsconfig.json b/packages/vscode/angel_vscode/tsconfig.json deleted file mode 100644 index 8aa5312e..00000000 --- a/packages/vscode/angel_vscode/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es6", - "outDir": "out", - "lib": [ - "es6" - ], - "sourceMap": true, - "rootDir": "src", - /* Strict Type-Checking Option */ - "strict": true, /* enable all strict type-checking options */ - /* Additional Checks */ - "noUnusedLocals": true /* Report errors on unused locals. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - }, - "exclude": [ - "node_modules", - ".vscode-test" - ] -} \ No newline at end of file diff --git a/packages/vscode/angel_vscode/vsc-extension-quickstart.md b/packages/vscode/angel_vscode/vsc-extension-quickstart.md deleted file mode 100644 index 8a91f638..00000000 --- a/packages/vscode/angel_vscode/vsc-extension-quickstart.md +++ /dev/null @@ -1,33 +0,0 @@ -# Welcome to your VS Code Extension - -## What's in the folder -* This folder contains all of the files necessary for your extension. -* `package.json` - this is the manifest file in which you declare your extension and command. -The sample plugin registers a command and defines its title and command name. With this information -VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -* `src/extension.ts` - this is the main file where you will provide the implementation of your command. -The file exports one function, `activate`, which is called the very first time your extension is -activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. -We pass the function containing the implementation of the command as the second parameter to -`registerCommand`. - -## Get up and running straight away -* Press `F5` to open a new window with your extension loaded. -* Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. -* Set breakpoints in your code inside `src/extension.ts` to debug your extension. -* Find output from your extension in the debug console. - -## Make changes -* You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. -* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. - -## Explore the API -* You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`. - -## Run tests -* Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests`. -* Press `F5` to run the tests in a new window with your extension loaded. -* See the output of the test result in the debug console. -* Make changes to `test/extension.test.ts` or create new test files inside the `test` folder. - * By convention, the test runner will only consider files matching the name pattern `**.test.ts`. - * You can create folders inside the `test` folder to structure your tests any way you want. diff --git a/packages/vscode/angel_vscode/yarn.lock b/packages/vscode/angel_vscode/yarn.lock deleted file mode 100644 index 687ad126..00000000 --- a/packages/vscode/angel_vscode/yarn.lock +++ /dev/null @@ -1,1826 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/mocha@^2.2.42": - version "2.2.48" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" - integrity sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw== - -"@types/node@^7.0.43": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.10.1.tgz#a7f4ffa91fc632981d6ff0ed0ea4d259a109e8ab" - integrity sha512-fZvabBkcFJzc+eJN2XTuhKhop1RKdlGQgjmQuxYuQJ6K5rMNoHr6tomb6q0E8Axe+WPyfe/lr7CnnkGvzNh5mA== - -ajv@^6.5.5: - version "6.5.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" - integrity sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg== - dependencies: - 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-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= - dependencies: - buffer-equal "^1.0.0" - -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" - integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= - -clone@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" - integrity sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== - dependencies: - delayed-stream "~1.0.0" - -commander@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" - integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -convert-source-map@^1.1.1, convert-source-map@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -deep-assign@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" - integrity sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s= - dependencies: - is-obj "^1.0.0" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -diff@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" - integrity sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww== - -duplexer@^0.1.1, duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.2.0, duplexify@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" - integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -escape-string-regexp@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -event-stream@^3.3.1, event-stream@^3.3.4, event-stream@~3.3.4: - version "3.3.6" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.6.tgz#cac1230890e07e73ec9cacd038f60a5b66173eef" - integrity sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g== - dependencies: - duplexer "^0.1.1" - flatmap-stream "^0.1.0" - from "^0.1.7" - map-stream "0.0.7" - pause-stream "^0.0.11" - split "^1.0.1" - stream-combiner "^0.2.2" - through "^2.3.8" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= - -flatmap-stream@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/flatmap-stream/-/flatmap-stream-0.1.1.tgz#d34f39ef3b9aa5a2fc225016bd3adf28ac5ae6ea" - integrity sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw== - -flush-write-stream@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -from@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.0.0, glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - integrity sha1-pVZlqajM3EGRWofHAeMtTgFvrSI= - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== - dependencies: - 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" - -glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - 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" - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -growl@1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" - integrity sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q== - -gulp-chmod@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" - integrity sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw= - dependencies: - deep-assign "^1.0.0" - stat-mode "^0.2.0" - through2 "^2.0.0" - -gulp-filter@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" - integrity sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM= - dependencies: - multimatch "^2.0.0" - plugin-error "^0.1.2" - streamfilter "^1.0.5" - -gulp-gunzip@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" - integrity sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak= - dependencies: - through2 "~0.6.5" - vinyl "~0.4.6" - -gulp-remote-src-vscode@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.0.tgz#71785553bc491880088ad971f90910c4b2d80a99" - integrity sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ== - dependencies: - event-stream "^3.3.4" - node.extend "^1.1.2" - request "^2.79.0" - through2 "^2.0.3" - vinyl "^2.0.1" - -gulp-sourcemaps@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" - integrity sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw= - dependencies: - convert-source-map "^1.1.1" - graceful-fs "^4.1.2" - strip-bom "^2.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - -gulp-symdest@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" - integrity sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA= - dependencies: - event-stream "^3.3.1" - mkdirp "^0.5.1" - queue "^3.1.0" - vinyl-fs "^2.4.3" - -gulp-untar@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.7.tgz#92067d79e0fa1e92d60562a100233a44a5aa08b4" - integrity sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw== - dependencies: - event-stream "~3.3.4" - streamifier "~0.1.1" - tar "^2.2.1" - through2 "~2.0.3" - vinyl "^1.2.0" - -gulp-vinyl-zip@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.1.tgz#211aebdc5e4f702ddaf17b4e8b1ef6e3612a8b04" - integrity sha512-OPnsZkMwiU8UbH5BMlYRb/SccOAZUnwUW7mQvqYadap8MMdgN7ae0ua1rMEE2s9EyqqijN1Sdvoz29/MbPaq9Q== - dependencies: - event-stream "^3.3.1" - queue "^4.2.1" - through2 "^2.0.3" - vinyl "^2.0.2" - vinyl-fs "^3.0.3" - yauzl "^2.2.1" - yazl "^2.2.1" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-extglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4= - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= - -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" - integrity sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= - dependencies: - readable-stream "^2.0.5" - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= - dependencies: - flush-write-stream "^1.0.2" - -lodash.isequal@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -map-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" - integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= - -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= - -merge-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - -micromatch@^2.3.7: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.21" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== - dependencies: - mime-db "~1.37.0" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mocha@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" - integrity sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA== - dependencies: - 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" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -node.extend@^1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.7.tgz#e140a5a54d587465085a99d78ce92c856331a131" - integrity sha512-7Firgqanbd7UtypwBezNTEuo9eHKtEXd+pD96Aj4wai6Q2vM1S38X+MZvR7sQv5E5pj2TZ9j0Am4dLfc6EvKsA== - dependencies: - has "^1.0.3" - is "^3.2.1" - -normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -now-and-later@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" - integrity sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4= - dependencies: - once "^1.3.2" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== - -object.assign@^4.0.4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - integrity sha1-cTfmmzKYuzQiR6G77jiByA4v14s= - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= - dependencies: - readable-stream "^2.0.1" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -pause-stream@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== - -psl@^1.1.24: - version "1.1.29" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" - integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" - integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg== - -queue@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" - integrity sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU= - dependencies: - inherits "~2.0.0" - -queue@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/queue/-/queue-4.5.0.tgz#0f125191a983e3c38fcc0c0c75087d358d0857f4" - integrity sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA== - dependencies: - inherits "~2.0.0" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= - -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -request@^2.79.0, request@^2.83.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - 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" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= - dependencies: - value-or-function "^3.0.0" - -rimraf@2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== - dependencies: - glob "^7.0.5" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^5.4.1, semver@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -source-map-support@^0.5.0: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sshpk@^1.7.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz#c946d6bd9b1a39d0e8635763f5242d6ed6dcb629" - integrity sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA== - dependencies: - 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" - -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - integrity sha1-5sgLYjEj19gM8TLOU480YokHJQI= - -stream-combiner@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" - integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg= - dependencies: - duplexer "~0.1.1" - through "~2.3.4" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -streamfilter@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" - integrity sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ== - dependencies: - readable-stream "^2.0.2" - -streamifier@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" - integrity sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8= - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - integrity sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4= - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -supports-color@4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" - integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ== - dependencies: - has-flag "^2.0.0" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw= - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^0.6.0, through2@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@2, through@^2.3.8, through@~2.3, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - integrity sha1-HN+kcqnvUMI57maZm2YsoOs5k38= - dependencies: - extend-shallow "^2.0.1" - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= - dependencies: - through2 "^2.0.3" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -typescript@^2.6.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" - integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - integrity sha1-WqADz76Uxf+GbE59ZouxxNuts2k= - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-parse@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" - integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg== - dependencies: - querystringify "^2.0.0" - requires-port "^1.0.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vinyl-fs@^2.4.3: - version "2.4.4" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" - integrity sha1-vm/zJwy1Xf19MGNkDegfJddTIjk= - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "1.6.0" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl-fs@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-source-stream@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780" - integrity sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A= - dependencies: - through2 "^2.0.3" - vinyl "^0.4.3" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^0.4.3, vinyl@~0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^1.0.0, vinyl@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^2.0.0, vinyl@^2.0.1, vinyl@^2.0.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vscode-jsonrpc@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" - integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== - -vscode-languageclient@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.1.1.tgz#5b1f12066d89660d0d74b80dbbca371c6aea52f7" - integrity sha512-jMxshi+BPRQFNG8GB00dJv7ldqMda0be26laYYll/udtJuHbog6RqK10GSxHWDN0PgY0b0m5fePyTk3bq8a0TA== - dependencies: - semver "^5.5.0" - vscode-languageserver-protocol "3.13.0" - -vscode-languageserver-protocol@3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.13.0.tgz#710d8e42119bb3affb1416e1e104bd6b4d503595" - integrity sha512-2ZGKwI+P2ovQll2PGAp+2UfJH+FK9eait86VBUdkPd9HRlm8e58aYT9pV/NYanHOcp3pL6x2yTLVCFMcTer0mg== - dependencies: - vscode-jsonrpc "^4.0.0" - vscode-languageserver-types "3.13.0" - -vscode-languageserver-types@3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.13.0.tgz#b704b024cef059f7b326611c99b9c8753c0a18b4" - integrity sha512-BnJIxS+5+8UWiNKCP7W3g9FlE7fErFw0ofP5BXJe7c2tl0VeWh+nNHFbwAS2vmVC4a5kYxHBjRy0UeOtziemVA== - -vscode@^1.1.6: - version "1.1.21" - resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.21.tgz#1c8253d6238aefb4112d6e58cf975ad25313dafc" - integrity sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A== - dependencies: - glob "^7.1.2" - gulp-chmod "^2.0.0" - gulp-filter "^5.0.1" - gulp-gunzip "1.0.0" - gulp-remote-src-vscode "^0.5.0" - gulp-symdest "^1.1.0" - gulp-untar "^0.0.7" - gulp-vinyl-zip "^2.1.0" - mocha "^4.0.1" - request "^2.83.0" - semver "^5.4.1" - source-map-support "^0.5.0" - url-parse "^1.4.3" - vinyl-source-stream "^1.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -"xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= - -yauzl@^2.2.1: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yazl@^2.2.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" - integrity sha1-7CblzIfVYBud+EMtvdPNLlFzoHE= - dependencies: - buffer-crc32 "~0.2.3" diff --git a/packages/vscode/jael_language_server/.gitignore b/packages/vscode/jael_language_server/.gitignore deleted file mode 100644 index dbef116d..00000000 --- a/packages/vscode/jael_language_server/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://www.dartlang.org/guides/libraries/private-files - -# Files and directories created by pub -.dart_tool/ -.packages -build/ -# If you're building an application, you may want to check-in your pubspec.lock -pubspec.lock - -# Directory created by dartdoc -# If you don't generate documentation locally you can remove this line. -doc/api/ - -# Avoid committing generated Javascript files: -*.dart.js -*.info.json # Produced by the --dump-info flag. -*.js # When generated by dart2js. Don't specify *.js if your - # project includes source files written in JavaScript. -*.js_ -*.js.deps -*.js.map diff --git a/packages/vscode/jael_language_server/AUTHORS.md b/packages/vscode/jael_language_server/AUTHORS.md deleted file mode 100644 index ac95ab58..00000000 --- a/packages/vscode/jael_language_server/AUTHORS.md +++ /dev/null @@ -1,12 +0,0 @@ -Primary Authors -=============== - -* __[Thomas Hii](dukefirehawk.apps@gmail.com)__ - - Thomas is the current maintainer of the code base. He has refactored and migrated the - code base to support NNBD. - -* __[Tobe O](thosakwe@gmail.com)__ - - Tobe has written much of the original code prior to NNBD migration. He has moved on and - is no longer involved with the project. diff --git a/packages/vscode/jael_language_server/CHANGELOG.md b/packages/vscode/jael_language_server/CHANGELOG.md deleted file mode 100644 index 71c036ee..00000000 --- a/packages/vscode/jael_language_server/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -# 2.0.0 -* Migrated to support Dart SDK 2.12.x NNBD - -# 1.0.0 -* First release. \ No newline at end of file diff --git a/packages/vscode/jael_language_server/LICENSE b/packages/vscode/jael_language_server/LICENSE deleted file mode 100644 index b593ac86..00000000 --- a/packages/vscode/jael_language_server/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 dukefirehawk.com - -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. diff --git a/packages/vscode/jael_language_server/README.md b/packages/vscode/jael_language_server/README.md deleted file mode 100644 index 2ffa89d4..00000000 --- a/packages/vscode/jael_language_server/README.md +++ /dev/null @@ -1 +0,0 @@ -# Jael Language Server for Vs Code \ No newline at end of file diff --git a/packages/vscode/jael_language_server/analysis_options.yaml b/packages/vscode/jael_language_server/analysis_options.yaml deleted file mode 100644 index c230cee7..00000000 --- a/packages/vscode/jael_language_server/analysis_options.yaml +++ /dev/null @@ -1,4 +0,0 @@ -include: package:pedantic/analysis_options.yaml -analyzer: - strong-mode: - implicit-casts: false \ No newline at end of file diff --git a/packages/vscode/jael_language_server/bin/jael_language_server.dart b/packages/vscode/jael_language_server/bin/jael_language_server.dart deleted file mode 100644 index 84f5ab3c..00000000 --- a/packages/vscode/jael_language_server/bin/jael_language_server.dart +++ /dev/null @@ -1,69 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'package:args/args.dart'; -import 'package:io/ansi.dart'; -import 'package:io/io.dart'; -//import 'package:dart_language_server/dart_language_server.dart'; -import 'package:vs_jael_language_server/jael_language_server.dart'; -import 'package:vs_jael_language_server/src/protocol/language_server/server.dart'; - -void main(List args) async { - var argParser = ArgParser() - ..addFlag('help', - abbr: 'h', negatable: false, help: 'Print this help information.') - ..addOption('log-file', help: 'A path to which to write a log file.'); - - void printUsage() { - print('usage: jael_language_server [options...]\n\nOptions:'); - print(argParser.usage); - } - - try { - var argResults = argParser.parse(args); - - if (argResults['help'] as bool) { - printUsage(); - return; - } else { - var jaelServer = JaelLanguageServer(); - - if (argResults.wasParsed('log-file')) { - var f = File(argResults['log-file'] as String); - await f.create(recursive: true); - - jaelServer.logger.onRecord.listen((rec) async { - var sink = f.openWrite(mode: FileMode.append); - sink.writeln(rec); - if (rec.error != null) sink.writeln(rec.error); - if (rec.stackTrace != null) sink.writeln(rec.stackTrace); - await sink.close(); - }); - } else { - jaelServer.logger.onRecord.listen((rec) async { - var sink = stderr; - sink.writeln(rec); - if (rec.error != null) sink.writeln(rec.error); - if (rec.stackTrace != null) sink.writeln(rec.stackTrace); - }); - } - - var spec = ZoneSpecification( - handleUncaughtError: (self, parent, zone, error, stackTrace) { - jaelServer.logger.severe('Uncaught', error, stackTrace); - }, - print: (self, parent, zone, line) { - jaelServer.logger.info(line); - }, - ); - var zone = Zone.current.fork(specification: spec); - await zone.run(() async { - var stdio = StdIOLanguageServer.start(jaelServer); - await stdio.onDone; - }); - } - } on ArgParserException catch (e) { - print('${red.wrap('error')}: ${e.message}\n'); - printUsage(); - exitCode = ExitCode.usage.code; - } -} diff --git a/packages/vscode/jael_language_server/lib/jael_language_server.dart b/packages/vscode/jael_language_server/lib/jael_language_server.dart deleted file mode 100644 index 23bc99ba..00000000 --- a/packages/vscode/jael_language_server/lib/jael_language_server.dart +++ /dev/null @@ -1 +0,0 @@ -export 'src/server.dart'; \ No newline at end of file diff --git a/packages/vscode/jael_language_server/lib/src/analyzer.dart b/packages/vscode/jael_language_server/lib/src/analyzer.dart deleted file mode 100644 index f9944e7d..00000000 --- a/packages/vscode/jael_language_server/lib/src/analyzer.dart +++ /dev/null @@ -1,154 +0,0 @@ -import 'package:jael/jael.dart'; -import 'package:logging/logging.dart'; -import 'package:symbol_table/symbol_table.dart'; -import 'object.dart'; - -class Analyzer extends Parser { - final Logger logger; - Analyzer(Scanner scanner, this.logger) : super(scanner); - - @override - final errors = []; - SymbolTable? _scope = SymbolTable(); - var allDefinitions = >[]; - - SymbolTable? get parentScope => - _scope!.isRoot ? _scope : _scope!.parent; - - SymbolTable? get scope => _scope; - - bool ensureAttributeIsPresent(Element element, String name) { - if (element.getAttribute(name)?.value == null) { - addError(JaelError(JaelErrorSeverity.error, - 'Missing required attribute `$name`.', element.span)); - return false; - } - return true; - } - - void addError(JaelError e) { - errors.add(e); - logger.severe(e.message, e.span.highlight()); - } - - bool ensureAttributeIsConstantString(Element element, String name) { - var a = element.getAttribute(name); - if (a?.value is! StringLiteral || a?.value == null) { - var e = JaelError( - JaelErrorSeverity.warning, - '`$name` attribute should be a constant string literal.', - a?.span ?? element.tagName.span); - addError(e); - return false; - } - - return true; - } - - @override - Element? parseElement() { - try { - _scope = _scope!.createChild(); - var element = super.parseElement(); - if (element == null) return null; - - // Check if any custom element exists. - _scope! - .resolve(element.tagName.name) - ?.value - ?.usages - .add(SymbolUsage(SymbolUsageType.read, element.span)); - - // Validate attrs - var forEach = element.getAttribute('for-each'); - if (forEach != null) { - var asAttr = element.getAttribute('as'); - if (asAttr != null) { - if (ensureAttributeIsConstantString(element, 'as')) { - var asName = asAttr.string!.value; - _scope!.create(asName, - value: JaelVariable(asName, asAttr.span), constant: true); - } - } - - if (forEach.value != null) { - addError(JaelError(JaelErrorSeverity.error, - 'Missing value for `for-each` directive.', forEach.span)); - } - } - - var iff = element.getAttribute('if'); - if (iff != null) { - if (iff.value != null) { - addError(JaelError(JaelErrorSeverity.error, - 'Missing value for `iff` directive.', iff.span)); - } - } - - // Validate the tag itself - if (element is RegularElement) { - if (element.tagName.name == 'block') { - ensureAttributeIsConstantString(element, 'name'); - //logger.info('Found at ${element.span.start.toolString}'); - } else if (element.tagName.name == 'case') { - ensureAttributeIsPresent(element, 'value'); - //logger.info('Found at ${element.span.start.toolString}'); - } else if (element.tagName.name == 'declare') { - if (element.attributes.isEmpty) { - addError(JaelError( - JaelErrorSeverity.warning, - '`declare` directive does not define any new symbols.', - element.tagName.span)); - } else { - for (var attr in element.attributes) { - _scope! - .create(attr.name, value: JaelVariable(attr.name, attr.span)); - } - } - } else if (element.tagName.name == 'element') { - if (ensureAttributeIsConstantString(element, 'name')) { - var nameCtx = element.getAttribute('name')!.value as StringLiteral; - var name = nameCtx.value; - //logger.info( - // 'Found custom element $name at ${element.span.start.toolString}'); - try { - var symbol = parentScope!.create(name, - value: JaelCustomElement(name, element.tagName.span), - constant: true); - allDefinitions.add(symbol); - } on StateError catch (e) { - addError(JaelError( - JaelErrorSeverity.error, e.message, element.tagName.span)); - } - } - } else if (element.tagName.name == 'extend') { - ensureAttributeIsConstantString(element, 'src'); - //logger.info('Found at ${element.span.start.toolString}'); - } - } else if (element is SelfClosingElement) { - if (element.tagName.name == 'include') { - //logger.info('Found at ${element.span.start.toolString}'); - ensureAttributeIsConstantString(element, 'src'); - } - } - - return element; - } finally { - _scope = _scope!.parent; - return null; - } - } - - @override - Expression? parseExpression(int precedence) { - var expr = super.parseExpression(precedence); - if (expr == null) return null; - - if (expr is Identifier) { - var ref = _scope!.resolve(expr.name); - ref?.value?.usages.add(SymbolUsage(SymbolUsageType.read, expr.span)); - } - - return expr; - } -} diff --git a/packages/vscode/jael_language_server/lib/src/formatter.dart b/packages/vscode/jael_language_server/lib/src/formatter.dart deleted file mode 100644 index c5d55e6c..00000000 --- a/packages/vscode/jael_language_server/lib/src/formatter.dart +++ /dev/null @@ -1,117 +0,0 @@ -import 'package:jael/jael.dart'; - -class JaelFormatter { - final num? tabSize; - final bool? insertSpaces; - final _buffer = StringBuffer(); - int _level = 0; - String? _spaces; - - static String _spaceString(int tabSize) { - var b = StringBuffer(); - for (var i = 0; i < tabSize; i++) { - b.write(' '); - } - return b.toString(); - } - - JaelFormatter(this.tabSize, this.insertSpaces) { - _spaces = insertSpaces! ? _spaceString(tabSize!.toInt()) : '\t'; - } - - void _indent() { - _level++; - } - - void _outdent() { - if (_level > 0) _level--; - } - - void _applySpacing() { - for (var i = 0; i < _level; i++) { - _buffer.write(_spaces); - } - } - - String apply(Document? document) { - if (document?.doctype != null) { - _buffer.write(''); - } else if (element is RegularElement) { - if (element.children.length == 1 && - (element.children.first is Text || - element.children.first is TextNode)) { - _buffer.write('>'); - _buffer.write(element.children.first.span.text); - } else { - _buffer.writeln('>'); - _indent(); - element.children.forEach(_formatChild); - _outdent(); - } - - if (element.children.isNotEmpty && - (element.children.last is Text || - element.children.last is TextNode)) { - _buffer.writeln(); - } - - _applySpacing(); - _buffer.writeln(''); - } else { - throw ArgumentError(); - } - } -} diff --git a/packages/vscode/jael_language_server/lib/src/object.dart b/packages/vscode/jael_language_server/lib/src/object.dart deleted file mode 100644 index 79b2e867..00000000 --- a/packages/vscode/jael_language_server/lib/src/object.dart +++ /dev/null @@ -1,34 +0,0 @@ -import 'dart:collection'; - -import 'package:source_span/source_span.dart'; - -abstract class JaelObject { - final FileSpan span; - final usages = []; - String get name; - - JaelObject(this.span); -} - -class JaelCustomElement extends JaelObject { - @override - final String name; - final attributes = SplayTreeSet(); - - JaelCustomElement(this.name, FileSpan span) : super(span); -} - -class JaelVariable extends JaelObject { - @override - final String name; - JaelVariable(this.name, FileSpan span) : super(span); -} - -class SymbolUsage { - final SymbolUsageType type; - final FileSpan span; - - SymbolUsage(this.type, this.span); -} - -enum SymbolUsageType { definition, read } diff --git a/packages/vscode/jael_language_server/lib/src/protocol/language_server/interface.dart b/packages/vscode/jael_language_server/lib/src/protocol/language_server/interface.dart deleted file mode 100644 index a0eea69e..00000000 --- a/packages/vscode/jael_language_server/lib/src/protocol/language_server/interface.dart +++ /dev/null @@ -1,64 +0,0 @@ -import 'dart:async'; - -import 'package:json_rpc_2/json_rpc_2.dart'; - -import 'messages.dart'; - -abstract class LanguageServer { - final _onDone = Completer(); - Future get onDone => _onDone.future; - - Future shutdown() async {} - void exit() { - _onDone.complete(); - } - - Future initialize(int? clientPid, String? rootUri, - ClientCapabilities clientCapabilities, String? trace) async => - ServerCapabilities((b) => b); - void initialized() {} - void textDocumentDidOpen(TextDocumentItem document) {} - void textDocumentDidChange(VersionedTextDocumentIdentifier documentId, - List changes) {} - void textDocumentDidClose(TextDocumentIdentifier documentId) {} - Future textDocumentCompletion( - TextDocumentIdentifier documentId, Position position) async => - CompletionList((b) => b); - Future textDocumentDefinition( - TextDocumentIdentifier documentId, Position position) async => - null; - Future> textDocumentReferences( - TextDocumentIdentifier documentId, - Position position, - ReferenceContext context) async => - []; - Future> textDocumentImplementation( - TextDocumentIdentifier documentId, Position position) async => - []; - Future> textDocumentHighlight( - TextDocumentIdentifier documentId, Position position) async => - []; - Future> textDocumentSymbols( - TextDocumentIdentifier documentId) async => - []; - Future> workspaceSymbol(String? query) async => []; - Future textDocumentHover( - TextDocumentIdentifier documentId, Position position) async => - null; - Future> textDocumentCodeAction( - TextDocumentIdentifier documentId, - Range range, - CodeActionContext context) async => - []; - Future workspaceExecuteCommand( - String? command, List? arguments) async {} - Future textDocumentRename(TextDocumentIdentifier documentId, - Position position, String? newName) async => - null; - Stream get diagnostics => Stream.empty(); - Stream get workspaceEdits => Stream.empty(); - Stream get showMessages => Stream.empty(); - Stream get logMessages => Stream.empty(); - - void setupExtraMethods(Peer peer) {} -} diff --git a/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.dart b/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.dart deleted file mode 100644 index 526d459e..00000000 --- a/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.dart +++ /dev/null @@ -1,2944 +0,0 @@ -class ApplyWorkspaceEditParams { - ApplyWorkspaceEditParams._(this.edit, this.label); - - factory ApplyWorkspaceEditParams( - void Function(ApplyWorkspaceEditParams$Builder) init) { - final b = ApplyWorkspaceEditParams$Builder._(); - init(b); - return ApplyWorkspaceEditParams._(b.edit, b.label); - } - - factory ApplyWorkspaceEditParams.fromJson(Map params) => - ApplyWorkspaceEditParams._( - params.containsKey('edit') && params['edit'] != null - ? WorkspaceEdit.fromJson((params['edit'] as Map)) - : null, - params.containsKey('label') && params['label'] != null - ? (params['label'] as String?) - : null); - - final WorkspaceEdit? edit; - - final String? label; - - Map toJson() => {'edit': edit?.toJson(), 'label': label}; - @override - int get hashCode { - var hash = 711903695; - hash = _hashCombine(hash, _deepHashCode(edit)); - hash = _hashCombine(hash, _deepHashCode(label)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ApplyWorkspaceEditParams && - edit == other.edit && - label == other.label; -} - -class ApplyWorkspaceEditParams$Builder { - ApplyWorkspaceEditParams$Builder._(); - - WorkspaceEdit? edit; - - String? label; -} - -class ClientCapabilities { - ClientCapabilities._(this.textDocument, this.workspace); - - factory ClientCapabilities(void Function(ClientCapabilities$Builder) init) { - final b = ClientCapabilities$Builder._(); - init(b); - return ClientCapabilities._(b.textDocument, b.workspace); - } - - factory ClientCapabilities.fromJson(Map params) => ClientCapabilities._( - params.containsKey('textDocument') && params['textDocument'] != null - ? TextDocumentClientCapabilities.fromJson( - (params['textDocument'] as Map)) - : null, - params.containsKey('workspace') && params['workspace'] != null - ? WorkspaceClientCapabilities.fromJson((params['workspace'] as Map)) - : null); - - final TextDocumentClientCapabilities? textDocument; - - final WorkspaceClientCapabilities? workspace; - - Map toJson() => { - 'textDocument': textDocument?.toJson(), - 'workspace': workspace?.toJson() - }; - @override - int get hashCode { - var hash = 410602613; - hash = _hashCombine(hash, _deepHashCode(textDocument)); - hash = _hashCombine(hash, _deepHashCode(workspace)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ClientCapabilities && - textDocument == other.textDocument && - workspace == other.workspace; -} - -class ClientCapabilities$Builder { - ClientCapabilities$Builder._(); - - TextDocumentClientCapabilities? textDocument; - - WorkspaceClientCapabilities? workspace; -} - -class CodeAction { - CodeAction._( - this.command, this.diagnostics, this.edit, this.kind, this.title); - - factory CodeAction(void Function(CodeAction$Builder) init) { - final b = CodeAction$Builder._(); - init(b); - return CodeAction._(b.command, b.diagnostics, b.edit, b.kind, b.title); - } - - factory CodeAction.fromJson(Map params) => CodeAction._( - params.containsKey('command') && params['command'] != null - ? Command.fromJson((params['command'] as Map)) - : null, - params.containsKey('diagnostics') && params['diagnostics'] != null - ? (params['diagnostics'] as List) - .map((v) => Diagnostic.fromJson((v as Map))) - .toList() - : null, - params.containsKey('edit') && params['edit'] != null - ? WorkspaceEdit.fromJson((params['edit'] as Map)) - : null, - params.containsKey('kind') && params['kind'] != null - ? (params['kind'] as String?) - : null, - params.containsKey('title') && params['title'] != null - ? (params['title'] as String?) - : null); - - final Command? command; - - final List? diagnostics; - - final WorkspaceEdit? edit; - - final String? kind; - - final String? title; - - Map toJson() => { - 'command': command?.toJson(), - 'diagnostics': diagnostics?.map((v) => v.toJson()).toList(), - 'edit': edit?.toJson(), - 'kind': kind, - 'title': title - }; - @override - int get hashCode { - var hash = 817881006; - hash = _hashCombine(hash, _deepHashCode(command)); - hash = _hashCombine(hash, _deepHashCode(diagnostics)); - hash = _hashCombine(hash, _deepHashCode(edit)); - hash = _hashCombine(hash, _deepHashCode(kind)); - hash = _hashCombine(hash, _deepHashCode(title)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeAction && - command == other.command && - _deepEquals(diagnostics, other.diagnostics) && - edit == other.edit && - kind == other.kind && - title == other.title; -} - -class CodeAction$Builder { - CodeAction$Builder._(); - - Command? command; - - List? diagnostics; - - WorkspaceEdit? edit; - - String? kind; - - String? title; -} - -class CodeActionCapabilities { - CodeActionCapabilities._( - this.codeActionLiteralSupport, this.dynamicRegistration); - - factory CodeActionCapabilities( - void Function(CodeActionCapabilities$Builder) init) { - final b = CodeActionCapabilities$Builder._(); - init(b); - return CodeActionCapabilities._( - b.codeActionLiteralSupport, b.dynamicRegistration); - } - - factory CodeActionCapabilities.fromJson(Map params) => - CodeActionCapabilities._( - params.containsKey('codeActionLiteralSupport') && - params['codeActionLiteralSupport'] != null - ? CodeActionLiteralSupport.fromJson( - (params['codeActionLiteralSupport'] as Map)) - : null, - params.containsKey('dynamicRegistration') && - params['dynamicRegistration'] != null - ? (params['dynamicRegistration'] as bool?) - : null); - - final CodeActionLiteralSupport? codeActionLiteralSupport; - - final bool? dynamicRegistration; - - Map toJson() => { - 'codeActionLiteralSupport': codeActionLiteralSupport?.toJson(), - 'dynamicRegistration': dynamicRegistration - }; - @override - int get hashCode { - var hash = 857718763; - hash = _hashCombine(hash, _deepHashCode(codeActionLiteralSupport)); - hash = _hashCombine(hash, _deepHashCode(dynamicRegistration)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeActionCapabilities && - codeActionLiteralSupport == other.codeActionLiteralSupport && - dynamicRegistration == other.dynamicRegistration; -} - -class CodeActionCapabilities$Builder { - CodeActionCapabilities$Builder._(); - - CodeActionLiteralSupport? codeActionLiteralSupport; - - bool? dynamicRegistration; -} - -class CodeActionContext { - CodeActionContext._(this.diagnostics); - - factory CodeActionContext(void Function(CodeActionContext$Builder) init) { - final b = CodeActionContext$Builder._(); - init(b); - return CodeActionContext._(b.diagnostics); - } - - factory CodeActionContext.fromJson(Map params) => CodeActionContext._( - params.containsKey('diagnostics') && params['diagnostics'] != null - ? (params['diagnostics'] as List) - .map((v) => Diagnostic.fromJson((v as Map))) - .toList() - : null); - - final List? diagnostics; - - Map toJson() => {'diagnostics': diagnostics?.map((v) => v.toJson()).toList()}; - @override - int get hashCode { - var hash = 698635161; - hash = _hashCombine(hash, _deepHashCode(diagnostics)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeActionContext && _deepEquals(diagnostics, other.diagnostics); -} - -class CodeActionContext$Builder { - CodeActionContext$Builder._(); - - List? diagnostics; -} - -class CodeActionKinds { - CodeActionKinds._(this.valueSet); - - factory CodeActionKinds(void Function(CodeActionKinds$Builder) init) { - final b = CodeActionKinds$Builder._(); - init(b); - return CodeActionKinds._(b.valueSet); - } - - factory CodeActionKinds.fromJson(Map params) => CodeActionKinds._( - params.containsKey('valueSet') && params['valueSet'] != null - ? (params['valueSet'] as List).cast() - : null); - - final List? valueSet; - - Map toJson() => {'valueSet': valueSet}; - @override - int get hashCode { - var hash = 274472753; - hash = _hashCombine(hash, _deepHashCode(valueSet)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeActionKinds && _deepEquals(valueSet, other.valueSet); -} - -class CodeActionKinds$Builder { - CodeActionKinds$Builder._(); - - List? valueSet; -} - -class CodeActionLiteralSupport { - CodeActionLiteralSupport._(this.codeActionKind); - - factory CodeActionLiteralSupport( - void Function(CodeActionLiteralSupport$Builder) init) { - final b = CodeActionLiteralSupport$Builder._(); - init(b); - return CodeActionLiteralSupport._(b.codeActionKind); - } - - factory CodeActionLiteralSupport.fromJson(Map params) => - CodeActionLiteralSupport._(params.containsKey('codeActionKind') && - params['codeActionKind'] != null - ? CodeActionKinds.fromJson((params['codeActionKind'] as Map)) - : null); - - final CodeActionKinds? codeActionKind; - - Map toJson() => {'codeActionKind': codeActionKind?.toJson()}; - @override - int get hashCode { - var hash = 9179648; - hash = _hashCombine(hash, _deepHashCode(codeActionKind)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeActionLiteralSupport && - codeActionKind == other.codeActionKind; -} - -class CodeActionLiteralSupport$Builder { - CodeActionLiteralSupport$Builder._(); - - CodeActionKinds? codeActionKind; -} - -class CodeLensOptions { - CodeLensOptions._(this.resolveProvider); - - factory CodeLensOptions(void Function(CodeLensOptions$Builder) init) { - final b = CodeLensOptions$Builder._(); - init(b); - return CodeLensOptions._(b.resolveProvider); - } - - factory CodeLensOptions.fromJson(Map params) => CodeLensOptions._( - params.containsKey('resolveProvider') && params['resolveProvider'] != null - ? (params['resolveProvider'] as bool?) - : null); - - final bool? resolveProvider; - - Map toJson() => {'resolveProvider': resolveProvider}; - @override - int get hashCode { - var hash = 875601242; - hash = _hashCombine(hash, _deepHashCode(resolveProvider)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CodeLensOptions && resolveProvider == other.resolveProvider; -} - -class CodeLensOptions$Builder { - CodeLensOptions$Builder._(); - - bool? resolveProvider; -} - -class Command { - Command._(this.arguments, this.command, this.title); - - factory Command(void Function(Command$Builder) init) { - final b = Command$Builder._(); - init(b); - return Command._(b.arguments, b.command, b.title); - } - - factory Command.fromJson(Map params) => Command._( - params.containsKey('arguments') && params['arguments'] != null - ? (params['arguments'] as List).cast() - : null, - params.containsKey('command') && params['command'] != null - ? (params['command'] as String?) - : null, - params.containsKey('title') && params['title'] != null - ? (params['title'] as String?) - : null); - - final List? arguments; - - final String? command; - - final String? title; - - Map toJson() => {'arguments': arguments, 'command': command, 'title': title}; - @override - int get hashCode { - var hash = 306969625; - hash = _hashCombine(hash, _deepHashCode(arguments)); - hash = _hashCombine(hash, _deepHashCode(command)); - hash = _hashCombine(hash, _deepHashCode(title)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Command && - _deepEquals(arguments, other.arguments) && - command == other.command && - title == other.title; -} - -class Command$Builder { - Command$Builder._(); - - List? arguments; - - String? command; - - String? title; -} - -class CompletionCapabilities { - CompletionCapabilities._(this.completionItem, this.dynamicRegistration); - - factory CompletionCapabilities( - void Function(CompletionCapabilities$Builder) init) { - final b = CompletionCapabilities$Builder._(); - init(b); - return CompletionCapabilities._(b.completionItem, b.dynamicRegistration); - } - - factory CompletionCapabilities.fromJson(Map params) => - CompletionCapabilities._( - params.containsKey('completionItem') && - params['completionItem'] != null - ? CompletionItemCapabilities.fromJson( - (params['completionItem'] as Map)) - : null, - params.containsKey('dynamicRegistration') && - params['dynamicRegistration'] != null - ? (params['dynamicRegistration'] as bool?) - : null); - - final CompletionItemCapabilities? completionItem; - - final bool? dynamicRegistration; - - Map toJson() => { - 'completionItem': completionItem?.toJson(), - 'dynamicRegistration': dynamicRegistration - }; - @override - int get hashCode { - var hash = 490073846; - hash = _hashCombine(hash, _deepHashCode(completionItem)); - hash = _hashCombine(hash, _deepHashCode(dynamicRegistration)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CompletionCapabilities && - completionItem == other.completionItem && - dynamicRegistration == other.dynamicRegistration; -} - -class CompletionCapabilities$Builder { - CompletionCapabilities$Builder._(); - - CompletionItemCapabilities? completionItem; - - bool? dynamicRegistration; -} - -class CompletionItem { - CompletionItem._( - this.additionalTextEdits, - this.command, - this.data, - this.detail, - this.documentation, - this.filterText, - this.insertText, - this.insertTextFormat, - this.kind, - this.label, - this.sortText, - this.textEdit); - - factory CompletionItem(void Function(CompletionItem$Builder) init) { - final b = CompletionItem$Builder._(); - init(b); - return CompletionItem._( - b.additionalTextEdits, - b.command, - b.data, - b.detail, - b.documentation, - b.filterText, - b.insertText, - b.insertTextFormat, - b.kind, - b.label, - b.sortText, - b.textEdit); - } - - factory CompletionItem.fromJson(Map params) => CompletionItem._( - params.containsKey('additionalTextEdits') && - params['additionalTextEdits'] != null - ? (params['additionalTextEdits'] as List) - .map((v) => TextEdit.fromJson((v as Map))) - .toList() - : null, - params.containsKey('command') && params['command'] != null - ? Command.fromJson((params['command'] as Map)) - : null, - params.containsKey('data') && params['data'] != null - ? (params['data'] as dynamic) - : null, - params.containsKey('detail') && params['detail'] != null - ? (params['detail'] as String?) - : null, - params.containsKey('documentation') && params['documentation'] != null - ? (params['documentation'] as String?) - : null, - params.containsKey('filterText') && params['filterText'] != null - ? (params['filterText'] as String?) - : null, - params.containsKey('insertText') && params['insertText'] != null - ? (params['insertText'] as String?) - : null, - params.containsKey('insertTextFormat') && - params['insertTextFormat'] != null - ? InsertTextFormat.fromJson((params['insertTextFormat'] as int?)) - : null, - params.containsKey('kind') && params['kind'] != null - ? CompletionItemKind.fromJson((params['kind'] as int?)) - : null, - params.containsKey('label') && params['label'] != null - ? (params['label'] as String?) - : null, - params.containsKey('sortText') && params['sortText'] != null - ? (params['sortText'] as String?) - : null, - params.containsKey('textEdit') && params['textEdit'] != null - ? TextEdit.fromJson((params['textEdit'] as Map)) - : null); - - final List? additionalTextEdits; - - final Command? command; - - final dynamic data; - - final String? detail; - - final String? documentation; - - final String? filterText; - - final String? insertText; - - final InsertTextFormat? insertTextFormat; - - final CompletionItemKind? kind; - - final String? label; - - final String? sortText; - - final TextEdit? textEdit; - - Map toJson() => { - 'additionalTextEdits': - additionalTextEdits?.map((v) => v.toJson()).toList(), - 'command': command?.toJson(), - 'data': data, - 'detail': detail, - 'documentation': documentation, - 'filterText': filterText, - 'insertText': insertText, - 'insertTextFormat': insertTextFormat?.toJson(), - 'kind': kind?.toJson(), - 'label': label, - 'sortText': sortText, - 'textEdit': textEdit?.toJson() - }; - @override - int get hashCode { - var hash = 546046223; - hash = _hashCombine(hash, _deepHashCode(additionalTextEdits)); - hash = _hashCombine(hash, _deepHashCode(command)); - hash = _hashCombine(hash, _deepHashCode(data)); - hash = _hashCombine(hash, _deepHashCode(detail)); - hash = _hashCombine(hash, _deepHashCode(documentation)); - hash = _hashCombine(hash, _deepHashCode(filterText)); - hash = _hashCombine(hash, _deepHashCode(insertText)); - hash = _hashCombine(hash, _deepHashCode(insertTextFormat)); - hash = _hashCombine(hash, _deepHashCode(kind)); - hash = _hashCombine(hash, _deepHashCode(label)); - hash = _hashCombine(hash, _deepHashCode(sortText)); - hash = _hashCombine(hash, _deepHashCode(textEdit)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CompletionItem && - _deepEquals(additionalTextEdits, other.additionalTextEdits) && - command == other.command && - data == other.data && - detail == other.detail && - documentation == other.documentation && - filterText == other.filterText && - insertText == other.insertText && - insertTextFormat == other.insertTextFormat && - kind == other.kind && - label == other.label && - sortText == other.sortText && - textEdit == other.textEdit; -} - -class CompletionItem$Builder { - CompletionItem$Builder._(); - - List? additionalTextEdits; - - Command? command; - - dynamic data; - - String? detail; - - String? documentation; - - String? filterText; - - String? insertText; - - InsertTextFormat? insertTextFormat; - - CompletionItemKind? kind; - - String? label; - - String? sortText; - - TextEdit? textEdit; -} - -class CompletionItemCapabilities { - CompletionItemCapabilities._(this.snippetSupport); - - factory CompletionItemCapabilities( - void Function(CompletionItemCapabilities$Builder) init) { - final b = CompletionItemCapabilities$Builder._(); - init(b); - return CompletionItemCapabilities._(b.snippetSupport); - } - - factory CompletionItemCapabilities.fromJson(Map params) => - CompletionItemCapabilities._(params.containsKey('snippetSupport') && - params['snippetSupport'] != null - ? (params['snippetSupport'] as bool?) - : null); - - final bool? snippetSupport; - - Map toJson() => {'snippetSupport': snippetSupport}; - @override - int get hashCode { - var hash = 402194464; - hash = _hashCombine(hash, _deepHashCode(snippetSupport)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CompletionItemCapabilities && - snippetSupport == other.snippetSupport; -} - -class CompletionItemCapabilities$Builder { - CompletionItemCapabilities$Builder._(); - - bool? snippetSupport; -} - -class CompletionItemKind { - factory CompletionItemKind.fromJson(int? value) { - const values = { - 7: CompletionItemKind.classKind, - 16: CompletionItemKind.color, - 4: CompletionItemKind.constructor, - 13: CompletionItemKind.enumKind, - 5: CompletionItemKind.field, - 17: CompletionItemKind.file, - 3: CompletionItemKind.function, - 8: CompletionItemKind.interface, - 14: CompletionItemKind.keyword, - 2: CompletionItemKind.method, - 9: CompletionItemKind.module, - 10: CompletionItemKind.property, - 18: CompletionItemKind.reference, - 15: CompletionItemKind.snippet, - 1: CompletionItemKind.text, - 11: CompletionItemKind.unit, - 12: CompletionItemKind.value, - 6: CompletionItemKind.variable - }; - return values[value!]!; - } - - const CompletionItemKind._(this._value); - - static const classKind = CompletionItemKind._(7); - - static const color = CompletionItemKind._(16); - - static const constructor = CompletionItemKind._(4); - - static const enumKind = CompletionItemKind._(13); - - static const field = CompletionItemKind._(5); - - static const file = CompletionItemKind._(17); - - static const function = CompletionItemKind._(3); - - static const interface = CompletionItemKind._(8); - - static const keyword = CompletionItemKind._(14); - - static const method = CompletionItemKind._(2); - - static const module = CompletionItemKind._(9); - - static const property = CompletionItemKind._(10); - - static const reference = CompletionItemKind._(18); - - static const snippet = CompletionItemKind._(15); - - static const text = CompletionItemKind._(1); - - static const unit = CompletionItemKind._(11); - - static const value = CompletionItemKind._(12); - - static const variable = CompletionItemKind._(6); - - final int _value; - - int toJson() => _value; -} - -class CompletionList { - CompletionList._(this.isIncomplete, this.items); - - factory CompletionList(void Function(CompletionList$Builder) init) { - final b = CompletionList$Builder._(); - init(b); - return CompletionList._(b.isIncomplete, b.items); - } - - factory CompletionList.fromJson(Map params) => CompletionList._( - params.containsKey('isIncomplete') && params['isIncomplete'] != null - ? (params['isIncomplete'] as bool?) - : null, - params.containsKey('items') && params['items'] != null - ? (params['items'] as List) - .map((v) => CompletionItem.fromJson((v as Map))) - .toList() - : null); - - final bool? isIncomplete; - - final List? items; - - Map toJson() => { - 'isIncomplete': isIncomplete, - 'items': items?.map((v) => v?.toJson()).toList() - }; - @override - int get hashCode { - var hash = 475661732; - hash = _hashCombine(hash, _deepHashCode(isIncomplete)); - hash = _hashCombine(hash, _deepHashCode(items)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CompletionList && - isIncomplete == other.isIncomplete && - _deepEquals(items, other.items); -} - -class CompletionList$Builder { - CompletionList$Builder._(); - - bool? isIncomplete; - - List? items; -} - -class CompletionOptions { - CompletionOptions._(this.resolveProvider, this.triggerCharacters); - - factory CompletionOptions(void Function(CompletionOptions$Builder) init) { - final b = CompletionOptions$Builder._(); - init(b); - return CompletionOptions._(b.resolveProvider, b.triggerCharacters); - } - - factory CompletionOptions.fromJson(Map params) => CompletionOptions._( - params.containsKey('resolveProvider') && params['resolveProvider'] != null - ? (params['resolveProvider'] as bool?) - : null, - params.containsKey('triggerCharacters') && - params['triggerCharacters'] != null - ? (params['triggerCharacters'] as List).cast() - : null); - - final bool? resolveProvider; - - final List? triggerCharacters; - - Map toJson() => { - 'resolveProvider': resolveProvider, - 'triggerCharacters': triggerCharacters - }; - @override - int get hashCode { - var hash = 251829316; - hash = _hashCombine(hash, _deepHashCode(resolveProvider)); - hash = _hashCombine(hash, _deepHashCode(triggerCharacters)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is CompletionOptions && - resolveProvider == other.resolveProvider && - _deepEquals(triggerCharacters, other.triggerCharacters); -} - -class CompletionOptions$Builder { - CompletionOptions$Builder._(); - - bool? resolveProvider; - - List? triggerCharacters; -} - -class Diagnostic { - Diagnostic._(this.code, this.message, this.range, this.severity, this.source); - - factory Diagnostic(void Function(Diagnostic$Builder) init) { - final b = Diagnostic$Builder._(); - init(b); - return Diagnostic._(b.code, b.message, b.range, b.severity, b.source); - } - - factory Diagnostic.fromJson(Map params) => Diagnostic._( - params.containsKey('code') && params['code'] != null - ? (params['code'] as dynamic) - : null, - params.containsKey('message') && params['message'] != null - ? (params['message'] as String?) - : null, - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null, - params.containsKey('severity') && params['severity'] != null - ? (params['severity'] as int?) - : null, - params.containsKey('source') && params['source'] != null - ? (params['source'] as String?) - : null); - - final dynamic code; - - final String? message; - - final Range? range; - - final int? severity; - - final String? source; - - Map toJson() => { - 'code': code, - 'message': message, - 'range': range?.toJson(), - 'severity': severity, - 'source': source - }; - @override - int get hashCode { - var hash = 304962763; - hash = _hashCombine(hash, _deepHashCode(code)); - hash = _hashCombine(hash, _deepHashCode(message)); - hash = _hashCombine(hash, _deepHashCode(range)); - hash = _hashCombine(hash, _deepHashCode(severity)); - hash = _hashCombine(hash, _deepHashCode(source)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Diagnostic && - code == other.code && - message == other.message && - range == other.range && - severity == other.severity && - source == other.source; -} - -class Diagnostic$Builder { - Diagnostic$Builder._(); - - dynamic code; - - String? message; - - Range? range; - - int? severity; - - String? source; -} - -class Diagnostics { - Diagnostics._(this.diagnostics, this.uri); - - factory Diagnostics(void Function(Diagnostics$Builder) init) { - final b = Diagnostics$Builder._(); - init(b); - return Diagnostics._(b.diagnostics, b.uri); - } - - factory Diagnostics.fromJson(Map params) => Diagnostics._( - params.containsKey('diagnostics') && params['diagnostics'] != null - ? (params['diagnostics'] as List) - .map((v) => Diagnostic.fromJson((v as Map))) - .toList() - : null, - params.containsKey('uri') && params['uri'] != null - ? (params['uri'] as String?) - : null); - - final List? diagnostics; - - final String? uri; - - Map toJson() => { - 'diagnostics': diagnostics?.map((v) => v.toJson()).toList(), - 'uri': uri - }; - @override - int get hashCode { - var hash = 133599092; - hash = _hashCombine(hash, _deepHashCode(diagnostics)); - hash = _hashCombine(hash, _deepHashCode(uri)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Diagnostics && - _deepEquals(diagnostics, other.diagnostics) && - uri == other.uri; -} - -class Diagnostics$Builder { - Diagnostics$Builder._(); - - List? diagnostics; - - String? uri; -} - -class DocumentHighlight { - DocumentHighlight._(this.kind, this.range); - - factory DocumentHighlight(void Function(DocumentHighlight$Builder) init) { - final b = DocumentHighlight$Builder._(); - init(b); - return DocumentHighlight._(b.kind, b.range); - } - - factory DocumentHighlight.fromJson(Map params) => DocumentHighlight._( - params.containsKey('kind') && params['kind'] != null - ? DocumentHighlightKind.fromJson((params['kind'] as int?)) - : null, - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null); - - final DocumentHighlightKind? kind; - - final Range? range; - - Map toJson() => {'kind': kind?.toJson(), 'range': range?.toJson()}; - @override - int get hashCode { - var hash = 33231655; - hash = _hashCombine(hash, _deepHashCode(kind)); - hash = _hashCombine(hash, _deepHashCode(range)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is DocumentHighlight && kind == other.kind && range == other.range; -} - -class DocumentHighlight$Builder { - DocumentHighlight$Builder._(); - - DocumentHighlightKind? kind; - - Range? range; -} - -class DocumentHighlightKind { - factory DocumentHighlightKind.fromJson(int? value) { - const values = { - 2: DocumentHighlightKind.read, - 1: DocumentHighlightKind.text, - 3: DocumentHighlightKind.write - }; - return values[value!]!; - } - - const DocumentHighlightKind._(this._value); - - static const read = DocumentHighlightKind._(2); - - static const text = DocumentHighlightKind._(1); - - static const write = DocumentHighlightKind._(3); - - final int _value; - - int toJson() => _value; -} - -class DocumentLinkOptions { - DocumentLinkOptions._(this.resolveProvider); - - factory DocumentLinkOptions(void Function(DocumentLinkOptions$Builder) init) { - final b = DocumentLinkOptions$Builder._(); - init(b); - return DocumentLinkOptions._(b.resolveProvider); - } - - factory DocumentLinkOptions.fromJson(Map params) => DocumentLinkOptions._( - params.containsKey('resolveProvider') && params['resolveProvider'] != null - ? (params['resolveProvider'] as bool?) - : null); - - final bool? resolveProvider; - - Map toJson() => {'resolveProvider': resolveProvider}; - @override - int get hashCode { - var hash = 370049515; - hash = _hashCombine(hash, _deepHashCode(resolveProvider)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is DocumentLinkOptions && resolveProvider == other.resolveProvider; -} - -class DocumentLinkOptions$Builder { - DocumentLinkOptions$Builder._(); - - bool? resolveProvider; -} - -class DocumentOnTypeFormattingOptions { - DocumentOnTypeFormattingOptions._( - this.firstTriggerCharacter, this.moreTriggerCharacter); - - factory DocumentOnTypeFormattingOptions( - void Function(DocumentOnTypeFormattingOptions$Builder) init) { - final b = DocumentOnTypeFormattingOptions$Builder._(); - init(b); - return DocumentOnTypeFormattingOptions._( - b.firstTriggerCharacter, b.moreTriggerCharacter); - } - - factory DocumentOnTypeFormattingOptions.fromJson(Map params) => - DocumentOnTypeFormattingOptions._( - params.containsKey('firstTriggerCharacter') && - params['firstTriggerCharacter'] != null - ? (params['firstTriggerCharacter'] as String?) - : null, - params.containsKey('moreTriggerCharacter') && - params['moreTriggerCharacter'] != null - ? (params['moreTriggerCharacter'] as List).cast() - : null); - - final String? firstTriggerCharacter; - - final List? moreTriggerCharacter; - - Map toJson() => { - 'firstTriggerCharacter': firstTriggerCharacter, - 'moreTriggerCharacter': moreTriggerCharacter - }; - @override - int get hashCode { - var hash = 519038003; - hash = _hashCombine(hash, _deepHashCode(firstTriggerCharacter)); - hash = _hashCombine(hash, _deepHashCode(moreTriggerCharacter)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is DocumentOnTypeFormattingOptions && - firstTriggerCharacter == other.firstTriggerCharacter && - _deepEquals(moreTriggerCharacter, other.moreTriggerCharacter); -} - -class DocumentOnTypeFormattingOptions$Builder { - DocumentOnTypeFormattingOptions$Builder._(); - - String? firstTriggerCharacter; - - List? moreTriggerCharacter; -} - -class DynamicRegistrationCapability { - DynamicRegistrationCapability._(this.dynamicRegistration); - - factory DynamicRegistrationCapability( - void Function(DynamicRegistrationCapability$Builder) init) { - final b = DynamicRegistrationCapability$Builder._(); - init(b); - return DynamicRegistrationCapability._(b.dynamicRegistration); - } - - factory DynamicRegistrationCapability.fromJson(Map params) => - DynamicRegistrationCapability._( - params.containsKey('dynamicRegistration') && - params['dynamicRegistration'] != null - ? (params['dynamicRegistration'] as bool?) - : null); - - final bool? dynamicRegistration; - - Map toJson() => {'dynamicRegistration': dynamicRegistration}; - @override - int get hashCode { - var hash = 400193199; - hash = _hashCombine(hash, _deepHashCode(dynamicRegistration)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is DynamicRegistrationCapability && - dynamicRegistration == other.dynamicRegistration; -} - -class DynamicRegistrationCapability$Builder { - DynamicRegistrationCapability$Builder._(); - - bool? dynamicRegistration; -} - -class ExecuteCommandOptions { - ExecuteCommandOptions._(this.commands); - - factory ExecuteCommandOptions( - void Function(ExecuteCommandOptions$Builder) init) { - final b = ExecuteCommandOptions$Builder._(); - init(b); - return ExecuteCommandOptions._(b.commands); - } - - factory ExecuteCommandOptions.fromJson(Map params) => ExecuteCommandOptions._( - params.containsKey('commands') && params['commands'] != null - ? (params['commands'] as List).cast() - : null); - - final List? commands; - - Map toJson() => {'commands': commands}; - @override - int get hashCode { - var hash = 136451660; - hash = _hashCombine(hash, _deepHashCode(commands)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ExecuteCommandOptions && _deepEquals(commands, other.commands); -} - -class ExecuteCommandOptions$Builder { - ExecuteCommandOptions$Builder._(); - - List? commands; -} - -class Hover { - Hover._(this.contents, this.range); - - factory Hover(void Function(Hover$Builder) init) { - final b = Hover$Builder._(); - init(b); - return Hover._(b.contents, b.range); - } - - factory Hover.fromJson(Map params) => Hover._( - params.containsKey('contents') && params['contents'] != null - ? (params['contents'] as String?) - : null, - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null); - - final String? contents; - - final Range? range; - - Map toJson() => {'contents': contents, 'range': range?.toJson()}; - @override - int get hashCode { - var hash = 624710494; - hash = _hashCombine(hash, _deepHashCode(contents)); - hash = _hashCombine(hash, _deepHashCode(range)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Hover && contents == other.contents && range == other.range; -} - -class Hover$Builder { - Hover$Builder._(); - - String? contents; - - Range? range; -} - -class HoverCapabilities { - HoverCapabilities._(this.contentFormat, this.dynamicRegistration); - - factory HoverCapabilities(void Function(HoverCapabilities$Builder) init) { - final b = HoverCapabilities$Builder._(); - init(b); - return HoverCapabilities._(b.contentFormat, b.dynamicRegistration); - } - - factory HoverCapabilities.fromJson(Map params) => HoverCapabilities._( - params.containsKey('contentFormat') && params['contentFormat'] != null - ? (params['contentFormat'] as List).cast() - : null, - params.containsKey('dynamicRegistration') && - params['dynamicRegistration'] != null - ? (params['dynamicRegistration'] as bool?) - : null); - - final List? contentFormat; - - final bool? dynamicRegistration; - - Map toJson() => { - 'contentFormat': contentFormat, - 'dynamicRegistration': dynamicRegistration - }; - @override - int get hashCode { - var hash = 400081440; - hash = _hashCombine(hash, _deepHashCode(contentFormat)); - hash = _hashCombine(hash, _deepHashCode(dynamicRegistration)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is HoverCapabilities && - _deepEquals(contentFormat, other.contentFormat) && - dynamicRegistration == other.dynamicRegistration; -} - -class HoverCapabilities$Builder { - HoverCapabilities$Builder._(); - - List? contentFormat; - - bool? dynamicRegistration; -} - -class HoverMarkup { - HoverMarkup._(this.contents, this.range); - - factory HoverMarkup(void Function(HoverMarkup$Builder) init) { - final b = HoverMarkup$Builder._(); - init(b); - return HoverMarkup._(b.contents, b.range); - } - - factory HoverMarkup.fromJson(Map params) => HoverMarkup._( - params.containsKey('contents') && params['contents'] != null - ? MarkupContent.fromJson((params['contents'] as Map)) - : null, - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null); - - final MarkupContent? contents; - - final Range? range; - - Map toJson() => {'contents': contents?.toJson(), 'range': range?.toJson()}; - @override - int get hashCode { - var hash = 207034670; - hash = _hashCombine(hash, _deepHashCode(contents)); - hash = _hashCombine(hash, _deepHashCode(range)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is HoverMarkup && - contents == other.contents && - range == other.range; -} - -class HoverMarkup$Builder { - HoverMarkup$Builder._(); - - MarkupContent? contents; - - Range? range; -} - -class InsertTextFormat { - factory InsertTextFormat.fromJson(int? value) { - const values = {1: InsertTextFormat.plainText, 2: InsertTextFormat.snippet}; - return values[value!]!; - } - - const InsertTextFormat._(this._value); - - static const plainText = InsertTextFormat._(1); - - static const snippet = InsertTextFormat._(2); - - final int _value; - - int toJson() => _value; -} - -class Location { - Location._(this.range, this.uri); - - factory Location(void Function(Location$Builder) init) { - final b = Location$Builder._(); - init(b); - return Location._(b.range, b.uri); - } - - factory Location.fromJson(Map params) => Location._( - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null, - params.containsKey('uri') && params['uri'] != null - ? (params['uri'] as String?) - : null); - - final Range? range; - - final String? uri; - - Map toJson() => {'range': range?.toJson(), 'uri': uri}; - @override - int get hashCode { - var hash = 1015387949; - hash = _hashCombine(hash, _deepHashCode(range)); - hash = _hashCombine(hash, _deepHashCode(uri)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Location && range == other.range && uri == other.uri; -} - -class Location$Builder { - Location$Builder._(); - - Range? range; - - String? uri; -} - -class MarkupContent { - MarkupContent._(this.kind, this.value); - - factory MarkupContent(void Function(MarkupContent$Builder) init) { - final b = MarkupContent$Builder._(); - init(b); - return MarkupContent._(b.kind, b.value); - } - - factory MarkupContent.fromJson(Map params) => MarkupContent._( - params.containsKey('kind') && params['kind'] != null - ? MarkupContentKind.fromJson((params['kind'] as String?)) - : null, - params.containsKey('value') && params['value'] != null - ? (params['value'] as String?) - : null); - - final MarkupContentKind? kind; - - final String? value; - - Map toJson() => {'kind': kind?.toJson(), 'value': value}; - @override - int get hashCode { - var hash = 161892004; - hash = _hashCombine(hash, _deepHashCode(kind)); - hash = _hashCombine(hash, _deepHashCode(value)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is MarkupContent && kind == other.kind && value == other.value; -} - -class MarkupContent$Builder { - MarkupContent$Builder._(); - - MarkupContentKind? kind; - - String? value; -} - -class MarkupContentKind { - factory MarkupContentKind.fromJson(String? value) { - const values = { - 'markdown': MarkupContentKind.markdown, - 'plaintext': MarkupContentKind.plaintext - }; - return values[value!]!; - } - - const MarkupContentKind._(this._value); - - static const markdown = MarkupContentKind._('markdown'); - - static const plaintext = MarkupContentKind._('plaintext'); - - final String _value; - - String toJson() => _value; -} - -class MessageType { - factory MessageType.fromJson(int? value) { - const values = { - 1: MessageType.error, - 3: MessageType.info, - 4: MessageType.log, - 2: MessageType.warning - }; - return values[value!]!; - } - - const MessageType._(this._value); - - static const error = MessageType._(1); - - static const info = MessageType._(3); - - static const log = MessageType._(4); - - static const warning = MessageType._(2); - - final int _value; - - int toJson() => _value; -} - -class Position { - Position._(this.character, this.line); - - factory Position(void Function(Position$Builder) init) { - final b = Position$Builder._(); - init(b); - return Position._(b.character, b.line); - } - - factory Position.fromJson(Map params) => Position._( - params.containsKey('character') && params['character'] != null - ? (params['character'] as int?) - : null, - params.containsKey('line') && params['line'] != null - ? (params['line'] as int?) - : null); - - final int? character; - - final int? line; - - Map toJson() => {'character': character, 'line': line}; - @override - int get hashCode { - var hash = 210930065; - hash = _hashCombine(hash, _deepHashCode(character)); - hash = _hashCombine(hash, _deepHashCode(line)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Position && character == other.character && line == other.line; -} - -class Position$Builder { - Position$Builder._(); - - int? character; - - int? line; -} - -class Range { - Range._(this.end, this.start); - - factory Range(void Function(Range$Builder) init) { - final b = Range$Builder._(); - init(b); - return Range._(b.end, b.start); - } - - factory Range.fromJson(Map params) => Range._( - params.containsKey('end') && params['end'] != null - ? Position.fromJson((params['end'] as Map)) - : null, - params.containsKey('start') && params['start'] != null - ? Position.fromJson((params['start'] as Map)) - : null); - - final Position? end; - - final Position? start; - - Map toJson() => {'end': end?.toJson(), 'start': start?.toJson()}; - @override - int get hashCode { - var hash = 682876634; - hash = _hashCombine(hash, _deepHashCode(end)); - hash = _hashCombine(hash, _deepHashCode(start)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is Range && end == other.end && start == other.start; -} - -class Range$Builder { - Range$Builder._(); - - Position? end; - - Position? start; -} - -class ReferenceContext { - ReferenceContext._(this.includeDeclaration); - - factory ReferenceContext(void Function(ReferenceContext$Builder) init) { - final b = ReferenceContext$Builder._(); - init(b); - return ReferenceContext._(b.includeDeclaration); - } - - factory ReferenceContext.fromJson(Map params) => - ReferenceContext._(params.containsKey('includeDeclaration') && - params['includeDeclaration'] != null - ? (params['includeDeclaration'] as bool?) - : null); - - final bool? includeDeclaration; - - Map toJson() => {'includeDeclaration': includeDeclaration}; - @override - int get hashCode { - var hash = 82198676; - hash = _hashCombine(hash, _deepHashCode(includeDeclaration)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ReferenceContext && - includeDeclaration == other.includeDeclaration; -} - -class ReferenceContext$Builder { - ReferenceContext$Builder._(); - - bool? includeDeclaration; -} - -class SaveOptions { - SaveOptions._(this.includeText); - - factory SaveOptions(void Function(SaveOptions$Builder) init) { - final b = SaveOptions$Builder._(); - init(b); - return SaveOptions._(b.includeText); - } - - factory SaveOptions.fromJson(Map params) => SaveOptions._( - params.containsKey('includeText') && params['includeText'] != null - ? (params['includeText'] as bool?) - : null); - - final bool? includeText; - - Map toJson() => {'includeText': includeText}; - @override - int get hashCode { - var hash = 11958891; - hash = _hashCombine(hash, _deepHashCode(includeText)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is SaveOptions && includeText == other.includeText; -} - -class SaveOptions$Builder { - SaveOptions$Builder._(); - - bool? includeText; -} - -class ServerCapabilities { - ServerCapabilities._( - this.codeActionProvider, - this.codeLensProvider, - this.completionProvider, - this.definitionProvider, - this.documentFormattingProvider, - this.documentHighlightProvider, - this.documentLinkProvider, - this.documentOnTypeFormattingProvider, - this.documentRangeFormattingProvider, - this.documentSymbolProvider, - this.executeCommandProvider, - this.hoverProvider, - this.implementationProvider, - this.referencesProvider, - this.renameProvider, - this.signatureHelpProvider, - this.textDocumentSync, - this.workspaceSymbolProvider); - - factory ServerCapabilities(void Function(ServerCapabilities$Builder) init) { - final b = ServerCapabilities$Builder._(); - init(b); - return ServerCapabilities._( - b.codeActionProvider, - b.codeLensProvider, - b.completionProvider, - b.definitionProvider, - b.documentFormattingProvider, - b.documentHighlightProvider, - b.documentLinkProvider, - b.documentOnTypeFormattingProvider, - b.documentRangeFormattingProvider, - b.documentSymbolProvider, - b.executeCommandProvider, - b.hoverProvider, - b.implementationProvider, - b.referencesProvider, - b.renameProvider, - b.signatureHelpProvider, - b.textDocumentSync, - b.workspaceSymbolProvider); - } - - factory ServerCapabilities.fromJson(Map params) => ServerCapabilities._( - params.containsKey('codeActionProvider') && params['codeActionProvider'] != null - ? (params['codeActionProvider'] as bool?) - : null, - params.containsKey('codeLensProvider') && params['codeLensProvider'] != null - ? CodeLensOptions.fromJson((params['codeLensProvider'] as Map)) - : null, - params.containsKey('completionProvider') && params['completionProvider'] != null - ? CompletionOptions.fromJson((params['completionProvider'] as Map)) - : null, - params.containsKey('definitionProvider') && params['definitionProvider'] != null - ? (params['definitionProvider'] as bool?) - : null, - params.containsKey('documentFormattingProvider') && params['documentFormattingProvider'] != null - ? (params['documentFormattingProvider'] as bool?) - : null, - params.containsKey('documentHighlightProvider') && params['documentHighlightProvider'] != null - ? (params['documentHighlightProvider'] as bool?) - : null, - params.containsKey('documentLinkProvider') && params['documentLinkProvider'] != null - ? DocumentLinkOptions.fromJson( - (params['documentLinkProvider'] as Map)) - : null, - params.containsKey('documentOnTypeFormattingProvider') && params['documentOnTypeFormattingProvider'] != null - ? DocumentOnTypeFormattingOptions.fromJson( - (params['documentOnTypeFormattingProvider'] as Map)) - : null, - params.containsKey('documentRangeFormattingProvider') && params['documentRangeFormattingProvider'] != null - ? (params['documentRangeFormattingProvider'] as bool?) - : null, - params.containsKey('documentSymbolProvider') && params['documentSymbolProvider'] != null - ? (params['documentSymbolProvider'] as bool?) - : null, - params.containsKey('executeCommandProvider') && params['executeCommandProvider'] != null - ? ExecuteCommandOptions.fromJson((params['executeCommandProvider'] as Map)) - : null, - params.containsKey('hoverProvider') && params['hoverProvider'] != null ? (params['hoverProvider'] as bool?) : null, - params.containsKey('implementationProvider') && params['implementationProvider'] != null ? (params['implementationProvider'] as bool?) : null, - params.containsKey('referencesProvider') && params['referencesProvider'] != null ? (params['referencesProvider'] as bool?) : null, - params.containsKey('renameProvider') && params['renameProvider'] != null ? (params['renameProvider'] as bool?) : null, - params.containsKey('signatureHelpProvider') && params['signatureHelpProvider'] != null ? SignatureHelpOptions.fromJson((params['signatureHelpProvider'] as Map)) : null, - params.containsKey('textDocumentSync') && params['textDocumentSync'] != null ? TextDocumentSyncOptions.fromJson((params['textDocumentSync'] as Map)) : null, - params.containsKey('workspaceSymbolProvider') && params['workspaceSymbolProvider'] != null ? (params['workspaceSymbolProvider'] as bool?) : null); - - final bool? codeActionProvider; - - final CodeLensOptions? codeLensProvider; - - final CompletionOptions? completionProvider; - - final bool? definitionProvider; - - final bool? documentFormattingProvider; - - final bool? documentHighlightProvider; - - final DocumentLinkOptions? documentLinkProvider; - - final DocumentOnTypeFormattingOptions? documentOnTypeFormattingProvider; - - final bool? documentRangeFormattingProvider; - - final bool? documentSymbolProvider; - - final ExecuteCommandOptions? executeCommandProvider; - - final bool? hoverProvider; - - final bool? implementationProvider; - - final bool? referencesProvider; - - final bool? renameProvider; - - final SignatureHelpOptions? signatureHelpProvider; - - final TextDocumentSyncOptions? textDocumentSync; - - final bool? workspaceSymbolProvider; - - Map toJson() => { - 'codeActionProvider': codeActionProvider, - 'codeLensProvider': codeLensProvider?.toJson(), - 'completionProvider': completionProvider?.toJson(), - 'definitionProvider': definitionProvider, - 'documentFormattingProvider': documentFormattingProvider, - 'documentHighlightProvider': documentHighlightProvider, - 'documentLinkProvider': documentLinkProvider?.toJson(), - 'documentOnTypeFormattingProvider': - documentOnTypeFormattingProvider?.toJson(), - 'documentRangeFormattingProvider': documentRangeFormattingProvider, - 'documentSymbolProvider': documentSymbolProvider, - 'executeCommandProvider': executeCommandProvider?.toJson(), - 'hoverProvider': hoverProvider, - 'implementationProvider': implementationProvider, - 'referencesProvider': referencesProvider, - 'renameProvider': renameProvider, - 'signatureHelpProvider': signatureHelpProvider?.toJson(), - 'textDocumentSync': textDocumentSync?.toJson(), - 'workspaceSymbolProvider': workspaceSymbolProvider - }; - @override - int get hashCode { - var hash = 659932873; - hash = _hashCombine(hash, _deepHashCode(codeActionProvider)); - hash = _hashCombine(hash, _deepHashCode(codeLensProvider)); - hash = _hashCombine(hash, _deepHashCode(completionProvider)); - hash = _hashCombine(hash, _deepHashCode(definitionProvider)); - hash = _hashCombine(hash, _deepHashCode(documentFormattingProvider)); - hash = _hashCombine(hash, _deepHashCode(documentHighlightProvider)); - hash = _hashCombine(hash, _deepHashCode(documentLinkProvider)); - hash = _hashCombine(hash, _deepHashCode(documentOnTypeFormattingProvider)); - hash = _hashCombine(hash, _deepHashCode(documentRangeFormattingProvider)); - hash = _hashCombine(hash, _deepHashCode(documentSymbolProvider)); - hash = _hashCombine(hash, _deepHashCode(executeCommandProvider)); - hash = _hashCombine(hash, _deepHashCode(hoverProvider)); - hash = _hashCombine(hash, _deepHashCode(implementationProvider)); - hash = _hashCombine(hash, _deepHashCode(referencesProvider)); - hash = _hashCombine(hash, _deepHashCode(renameProvider)); - hash = _hashCombine(hash, _deepHashCode(signatureHelpProvider)); - hash = _hashCombine(hash, _deepHashCode(textDocumentSync)); - hash = _hashCombine(hash, _deepHashCode(workspaceSymbolProvider)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ServerCapabilities && - codeActionProvider == other.codeActionProvider && - codeLensProvider == other.codeLensProvider && - completionProvider == other.completionProvider && - definitionProvider == other.definitionProvider && - documentFormattingProvider == other.documentFormattingProvider && - documentHighlightProvider == other.documentHighlightProvider && - documentLinkProvider == other.documentLinkProvider && - documentOnTypeFormattingProvider == - other.documentOnTypeFormattingProvider && - documentRangeFormattingProvider == - other.documentRangeFormattingProvider && - documentSymbolProvider == other.documentSymbolProvider && - executeCommandProvider == other.executeCommandProvider && - hoverProvider == other.hoverProvider && - implementationProvider == other.implementationProvider && - referencesProvider == other.referencesProvider && - renameProvider == other.renameProvider && - signatureHelpProvider == other.signatureHelpProvider && - textDocumentSync == other.textDocumentSync && - workspaceSymbolProvider == other.workspaceSymbolProvider; -} - -class ServerCapabilities$Builder { - ServerCapabilities$Builder._(); - - bool? codeActionProvider; - - CodeLensOptions? codeLensProvider; - - CompletionOptions? completionProvider; - - bool? definitionProvider; - - bool? documentFormattingProvider; - - bool? documentHighlightProvider; - - DocumentLinkOptions? documentLinkProvider; - - DocumentOnTypeFormattingOptions? documentOnTypeFormattingProvider; - - bool? documentRangeFormattingProvider; - - bool? documentSymbolProvider; - - ExecuteCommandOptions? executeCommandProvider; - - bool? hoverProvider; - - bool? implementationProvider; - - bool? referencesProvider; - - bool? renameProvider; - - SignatureHelpOptions? signatureHelpProvider; - - TextDocumentSyncOptions? textDocumentSync; - - bool? workspaceSymbolProvider; -} - -class ShowMessageParams { - ShowMessageParams._(this.message, this.type); - - factory ShowMessageParams(void Function(ShowMessageParams$Builder) init) { - final b = ShowMessageParams$Builder._(); - init(b); - return ShowMessageParams._(b.message, b.type); - } - - factory ShowMessageParams.fromJson(Map params) => ShowMessageParams._( - params.containsKey('message') && params['message'] != null - ? (params['message'] as String?) - : null, - params.containsKey('type') && params['type'] != null - ? MessageType.fromJson((params['type'] as int?)) - : null); - - final String? message; - - final MessageType? type; - - Map toJson() => {'message': message, 'type': type?.toJson()}; - @override - int get hashCode { - var hash = 684261254; - hash = _hashCombine(hash, _deepHashCode(message)); - hash = _hashCombine(hash, _deepHashCode(type)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is ShowMessageParams && - message == other.message && - type == other.type; -} - -class ShowMessageParams$Builder { - ShowMessageParams$Builder._(); - - String? message; - - MessageType? type; -} - -class SignatureHelpOptions { - SignatureHelpOptions._(this.triggerCharacters); - - factory SignatureHelpOptions( - void Function(SignatureHelpOptions$Builder) init) { - final b = SignatureHelpOptions$Builder._(); - init(b); - return SignatureHelpOptions._(b.triggerCharacters); - } - - factory SignatureHelpOptions.fromJson(Map params) => - SignatureHelpOptions._(params.containsKey('triggerCharacters') && - params['triggerCharacters'] != null - ? (params['triggerCharacters'] as List).cast() - : null); - - final List? triggerCharacters; - - Map toJson() => {'triggerCharacters': triggerCharacters}; - @override - int get hashCode { - var hash = 979113728; - hash = _hashCombine(hash, _deepHashCode(triggerCharacters)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is SignatureHelpOptions && - _deepEquals(triggerCharacters, other.triggerCharacters); -} - -class SignatureHelpOptions$Builder { - SignatureHelpOptions$Builder._(); - - List? triggerCharacters; -} - -class SymbolInformation { - SymbolInformation._(this.containerName, this.kind, this.location, this.name); - - factory SymbolInformation(void Function(SymbolInformation$Builder) init) { - final b = SymbolInformation$Builder._(); - init(b); - return SymbolInformation._(b.containerName, b.kind, b.location, b.name); - } - - factory SymbolInformation.fromJson(Map params) => SymbolInformation._( - params.containsKey('containerName') && params['containerName'] != null - ? (params['containerName'] as String?) - : null, - params.containsKey('kind') && params['kind'] != null - ? SymbolKind.fromJson((params['kind'] as int?)) - : null, - params.containsKey('location') && params['location'] != null - ? Location.fromJson((params['location'] as Map)) - : null, - params.containsKey('name') && params['name'] != null - ? (params['name'] as String?) - : null); - - final String? containerName; - - final SymbolKind? kind; - - final Location? location; - - final String? name; - - Map toJson() => { - 'containerName': containerName, - 'kind': kind?.toJson(), - 'location': location?.toJson(), - 'name': name - }; - @override - int get hashCode { - var hash = 260018179; - hash = _hashCombine(hash, _deepHashCode(containerName)); - hash = _hashCombine(hash, _deepHashCode(kind)); - hash = _hashCombine(hash, _deepHashCode(location)); - hash = _hashCombine(hash, _deepHashCode(name)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is SymbolInformation && - containerName == other.containerName && - kind == other.kind && - location == other.location && - name == other.name; -} - -class SymbolInformation$Builder { - SymbolInformation$Builder._(); - - String? containerName; - - SymbolKind? kind; - - Location? location; - - String? name; -} - -class SymbolKind { - factory SymbolKind.fromJson(int? value) { - const values = { - 18: SymbolKind.array, - 17: SymbolKind.boolean, - 5: SymbolKind.classSymbol, - 14: SymbolKind.constant, - 9: SymbolKind.constructor, - 22: SymbolKind.enumMember, - 10: SymbolKind.enumSymbol, - 24: SymbolKind.event, - 8: SymbolKind.field, - 1: SymbolKind.file, - 12: SymbolKind.function, - 11: SymbolKind.interface, - 20: SymbolKind.key, - 6: SymbolKind.method, - 2: SymbolKind.module, - 3: SymbolKind.namespace, - 21: SymbolKind.nullSymbol, - 16: SymbolKind.number, - 19: SymbolKind.object, - 25: SymbolKind.operator, - 4: SymbolKind.package, - 7: SymbolKind.property, - 15: SymbolKind.string, - 23: SymbolKind.struct, - 26: SymbolKind.typeParameter, - 13: SymbolKind.variable - }; - return values[value!]!; - } - - const SymbolKind._(this._value); - - static const array = SymbolKind._(18); - - static const boolean = SymbolKind._(17); - - static const classSymbol = SymbolKind._(5); - - static const constant = SymbolKind._(14); - - static const constructor = SymbolKind._(9); - - static const enumMember = SymbolKind._(22); - - static const enumSymbol = SymbolKind._(10); - - static const event = SymbolKind._(24); - - static const field = SymbolKind._(8); - - static const file = SymbolKind._(1); - - static const function = SymbolKind._(12); - - static const interface = SymbolKind._(11); - - static const key = SymbolKind._(20); - - static const method = SymbolKind._(6); - - static const module = SymbolKind._(2); - - static const namespace = SymbolKind._(3); - - static const nullSymbol = SymbolKind._(21); - - static const number = SymbolKind._(16); - - static const object = SymbolKind._(19); - - static const operator = SymbolKind._(25); - - static const package = SymbolKind._(4); - - static const property = SymbolKind._(7); - - static const string = SymbolKind._(15); - - static const struct = SymbolKind._(23); - - static const typeParameter = SymbolKind._(26); - - static const variable = SymbolKind._(13); - - final int _value; - - int toJson() => _value; -} - -class SynchronizationCapabilities { - SynchronizationCapabilities._(this.didSave, this.dynamicRegistration, - this.willSave, this.willSaveWaitUntil); - - factory SynchronizationCapabilities( - void Function(SynchronizationCapabilities$Builder) init) { - final b = SynchronizationCapabilities$Builder._(); - init(b); - return SynchronizationCapabilities._( - b.didSave, b.dynamicRegistration, b.willSave, b.willSaveWaitUntil); - } - - factory SynchronizationCapabilities.fromJson( - Map params) => - SynchronizationCapabilities._( - params.containsKey('didSave') && params['didSave'] != null - ? (params['didSave'] as bool?) - : null, - params.containsKey('dynamicRegistration') && - params['dynamicRegistration'] != null - ? (params['dynamicRegistration'] as bool?) - : null, - params.containsKey('willSave') && params['willSave'] != null - ? (params['willSave'] as bool?) - : null, - params.containsKey('willSaveWaitUntil') && - params['willSaveWaitUntil'] != null - ? (params['willSaveWaitUntil'] as bool?) - : null); - - final bool? didSave; - - final bool? dynamicRegistration; - - final bool? willSave; - - final bool? willSaveWaitUntil; - - Map toJson() => { - 'didSave': didSave, - 'dynamicRegistration': dynamicRegistration, - 'willSave': willSave, - 'willSaveWaitUntil': willSaveWaitUntil - }; - @override - int get hashCode { - var hash = 1050620504; - hash = _hashCombine(hash, _deepHashCode(didSave)); - hash = _hashCombine(hash, _deepHashCode(dynamicRegistration)); - hash = _hashCombine(hash, _deepHashCode(willSave)); - hash = _hashCombine(hash, _deepHashCode(willSaveWaitUntil)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is SynchronizationCapabilities && - didSave == other.didSave && - dynamicRegistration == other.dynamicRegistration && - willSave == other.willSave && - willSaveWaitUntil == other.willSaveWaitUntil; -} - -class SynchronizationCapabilities$Builder { - SynchronizationCapabilities$Builder._(); - - bool? didSave; - - bool? dynamicRegistration; - - bool? willSave; - - bool? willSaveWaitUntil; -} - -class TextDocumentClientCapabilities { - TextDocumentClientCapabilities._( - this.codeAction, - this.codeLens, - this.completion, - this.definition, - this.documentHighlight, - this.documentLink, - this.documentSymbol, - this.formatting, - this.hover, - this.onTypeFormatting, - this.references, - this.rename, - this.synchronization); - - factory TextDocumentClientCapabilities( - void Function(TextDocumentClientCapabilities$Builder) init) { - final b = TextDocumentClientCapabilities$Builder._(); - init(b); - return TextDocumentClientCapabilities._( - b.codeAction, - b.codeLens, - b.completion, - b.definition, - b.documentHighlight, - b.documentLink, - b.documentSymbol, - b.formatting, - b.hover, - b.onTypeFormatting, - b.references, - b.rename, - b.synchronization); - } - - factory TextDocumentClientCapabilities.fromJson(Map params) => TextDocumentClientCapabilities._( - params.containsKey('codeAction') && params['codeAction'] != null - ? CodeActionCapabilities.fromJson((params['codeAction'] as Map)) - : null, - params.containsKey('codeLens') && params['codeLens'] != null - ? DynamicRegistrationCapability.fromJson((params['codeLens'] as Map)) - : null, - params.containsKey('completion') && params['completion'] != null - ? CompletionCapabilities.fromJson((params['completion'] as Map)) - : null, - params.containsKey('definition') && params['definition'] != null - ? DynamicRegistrationCapability.fromJson( - (params['definition'] as Map)) - : null, - params.containsKey('documentHighlight') && - params['documentHighlight'] != null - ? DynamicRegistrationCapability.fromJson( - (params['documentHighlight'] as Map)) - : null, - params.containsKey('documentLink') && params['documentLink'] != null - ? DynamicRegistrationCapability.fromJson( - (params['documentLink'] as Map)) - : null, - params.containsKey('documentSymbol') && params['documentSymbol'] != null - ? DynamicRegistrationCapability.fromJson( - (params['documentSymbol'] as Map)) - : null, - params.containsKey('formatting') && params['formatting'] != null - ? DynamicRegistrationCapability.fromJson( - (params['formatting'] as Map)) - : null, - params.containsKey('hover') && params['hover'] != null - ? HoverCapabilities.fromJson((params['hover'] as Map)) - : null, - params.containsKey('onTypeFormatting') && params['onTypeFormatting'] != null - ? DynamicRegistrationCapability.fromJson( - (params['onTypeFormatting'] as Map)) - : null, - params.containsKey('references') && params['references'] != null - ? DynamicRegistrationCapability.fromJson((params['references'] as Map)) - : null, - params.containsKey('rename') && params['rename'] != null ? DynamicRegistrationCapability.fromJson((params['rename'] as Map)) : null, - params.containsKey('synchronization') && params['synchronization'] != null ? SynchronizationCapabilities.fromJson((params['synchronization'] as Map)) : null); - - final CodeActionCapabilities? codeAction; - - final DynamicRegistrationCapability? codeLens; - - final CompletionCapabilities? completion; - - final DynamicRegistrationCapability? definition; - - final DynamicRegistrationCapability? documentHighlight; - - final DynamicRegistrationCapability? documentLink; - - final DynamicRegistrationCapability? documentSymbol; - - final DynamicRegistrationCapability? formatting; - - final HoverCapabilities? hover; - - final DynamicRegistrationCapability? onTypeFormatting; - - final DynamicRegistrationCapability? references; - - final DynamicRegistrationCapability? rename; - - final SynchronizationCapabilities? synchronization; - - Map toJson() => { - 'codeAction': codeAction?.toJson(), - 'codeLens': codeLens?.toJson(), - 'completion': completion?.toJson(), - 'definition': definition?.toJson(), - 'documentHighlight': documentHighlight?.toJson(), - 'documentLink': documentLink?.toJson(), - 'documentSymbol': documentSymbol?.toJson(), - 'formatting': formatting?.toJson(), - 'hover': hover?.toJson(), - 'onTypeFormatting': onTypeFormatting?.toJson(), - 'references': references?.toJson(), - 'rename': rename?.toJson(), - 'synchronization': synchronization?.toJson() - }; - @override - int get hashCode { - var hash = 242077660; - hash = _hashCombine(hash, _deepHashCode(codeAction)); - hash = _hashCombine(hash, _deepHashCode(codeLens)); - hash = _hashCombine(hash, _deepHashCode(completion)); - hash = _hashCombine(hash, _deepHashCode(definition)); - hash = _hashCombine(hash, _deepHashCode(documentHighlight)); - hash = _hashCombine(hash, _deepHashCode(documentLink)); - hash = _hashCombine(hash, _deepHashCode(documentSymbol)); - hash = _hashCombine(hash, _deepHashCode(formatting)); - hash = _hashCombine(hash, _deepHashCode(hover)); - hash = _hashCombine(hash, _deepHashCode(onTypeFormatting)); - hash = _hashCombine(hash, _deepHashCode(references)); - hash = _hashCombine(hash, _deepHashCode(rename)); - hash = _hashCombine(hash, _deepHashCode(synchronization)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextDocumentClientCapabilities && - codeAction == other.codeAction && - codeLens == other.codeLens && - completion == other.completion && - definition == other.definition && - documentHighlight == other.documentHighlight && - documentLink == other.documentLink && - documentSymbol == other.documentSymbol && - formatting == other.formatting && - hover == other.hover && - onTypeFormatting == other.onTypeFormatting && - references == other.references && - rename == other.rename && - synchronization == other.synchronization; -} - -class TextDocumentClientCapabilities$Builder { - TextDocumentClientCapabilities$Builder._(); - - CodeActionCapabilities? codeAction; - - DynamicRegistrationCapability? codeLens; - - CompletionCapabilities? completion; - - DynamicRegistrationCapability? definition; - - DynamicRegistrationCapability? documentHighlight; - - DynamicRegistrationCapability? documentLink; - - DynamicRegistrationCapability? documentSymbol; - - DynamicRegistrationCapability? formatting; - - HoverCapabilities? hover; - - DynamicRegistrationCapability? onTypeFormatting; - - DynamicRegistrationCapability? references; - - DynamicRegistrationCapability? rename; - - SynchronizationCapabilities? synchronization; -} - -class TextDocumentContentChangeEvent { - TextDocumentContentChangeEvent._(this.range, this.rangeLength, this.text); - - factory TextDocumentContentChangeEvent( - void Function(TextDocumentContentChangeEvent$Builder) init) { - final b = TextDocumentContentChangeEvent$Builder._(); - init(b); - return TextDocumentContentChangeEvent._(b.range, b.rangeLength, b.text); - } - - factory TextDocumentContentChangeEvent.fromJson(Map params) => - TextDocumentContentChangeEvent._( - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null, - params.containsKey('rangeLength') && params['rangeLength'] != null - ? (params['rangeLength'] as int?) - : null, - params.containsKey('text') && params['text'] != null - ? (params['text'] as String?) - : null); - - final Range? range; - - final int? rangeLength; - - final String? text; - - Map toJson() => - {'range': range?.toJson(), 'rangeLength': rangeLength, 'text': text}; - @override - int get hashCode { - var hash = 180616113; - hash = _hashCombine(hash, _deepHashCode(range)); - hash = _hashCombine(hash, _deepHashCode(rangeLength)); - hash = _hashCombine(hash, _deepHashCode(text)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextDocumentContentChangeEvent && - range == other.range && - rangeLength == other.rangeLength && - text == other.text; -} - -class TextDocumentContentChangeEvent$Builder { - TextDocumentContentChangeEvent$Builder._(); - - Range? range; - - int? rangeLength; - - String? text; -} - -class TextDocumentIdentifier { - TextDocumentIdentifier._(this.uri); - - factory TextDocumentIdentifier( - void Function(TextDocumentIdentifier$Builder) init) { - final b = TextDocumentIdentifier$Builder._(); - init(b); - return TextDocumentIdentifier._(b.uri); - } - - factory TextDocumentIdentifier.fromJson(Map params) => - TextDocumentIdentifier._( - params.containsKey('uri') && params['uri'] != null - ? (params['uri'] as String?) - : null); - - final String? uri; - - Map toJson() => {'uri': uri}; - @override - int get hashCode { - var hash = 553241737; - hash = _hashCombine(hash, _deepHashCode(uri)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextDocumentIdentifier && uri == other.uri; -} - -class TextDocumentIdentifier$Builder { - TextDocumentIdentifier$Builder._(); - - String? uri; -} - -class TextDocumentItem { - TextDocumentItem._(this.languageId, this.text, this.uri, this.version); - - factory TextDocumentItem(void Function(TextDocumentItem$Builder) init) { - final b = TextDocumentItem$Builder._(); - init(b); - return TextDocumentItem._(b.languageId, b.text, b.uri, b.version); - } - - factory TextDocumentItem.fromJson(Map params) => TextDocumentItem._( - params.containsKey('languageId') && params['languageId'] != null - ? (params['languageId'] as String?) - : null, - params.containsKey('text') && params['text'] != null - ? (params['text'] as String?) - : null, - params.containsKey('uri') && params['uri'] != null - ? (params['uri'] as String?) - : null, - params.containsKey('version') && params['version'] != null - ? (params['version'] as int?) - : null); - - final String? languageId; - - final String? text; - - final String? uri; - - final int? version; - - Map toJson() => - {'languageId': languageId, 'text': text, 'uri': uri, 'version': version}; - @override - int get hashCode { - var hash = 448755309; - hash = _hashCombine(hash, _deepHashCode(languageId)); - hash = _hashCombine(hash, _deepHashCode(text)); - hash = _hashCombine(hash, _deepHashCode(uri)); - hash = _hashCombine(hash, _deepHashCode(version)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextDocumentItem && - languageId == other.languageId && - text == other.text && - uri == other.uri && - version == other.version; -} - -class TextDocumentItem$Builder { - TextDocumentItem$Builder._(); - - String? languageId; - - String? text; - - String? uri; - - int? version; -} - -class TextDocumentSyncKind { - factory TextDocumentSyncKind.fromJson(int? value) { - const values = { - 1: TextDocumentSyncKind.full, - 2: TextDocumentSyncKind.incremental, - 0: TextDocumentSyncKind.none - }; - return values[value!]!; - } - - const TextDocumentSyncKind._(this._value); - - static const full = TextDocumentSyncKind._(1); - - static const incremental = TextDocumentSyncKind._(2); - - static const none = TextDocumentSyncKind._(0); - - final int _value; - - int toJson() => _value; -} - -class TextDocumentSyncOptions { - TextDocumentSyncOptions._(this.change, this.openClose, this.save, - this.willSave, this.willSaveWaitUntil); - - factory TextDocumentSyncOptions( - void Function(TextDocumentSyncOptions$Builder) init) { - final b = TextDocumentSyncOptions$Builder._(); - init(b); - return TextDocumentSyncOptions._( - b.change, b.openClose, b.save, b.willSave, b.willSaveWaitUntil); - } - - factory TextDocumentSyncOptions.fromJson( - Map params) => - TextDocumentSyncOptions._( - params.containsKey('change') && params['change'] != null - ? TextDocumentSyncKind.fromJson((params['change'] as int?)) - : null, - params.containsKey('openClose') && params['openClose'] != null - ? (params['openClose'] as bool?) - : null, - params.containsKey('save') && params['save'] != null - ? SaveOptions.fromJson((params['save'] as Map)) - : null, - params.containsKey('willSave') && params['willSave'] != null - ? (params['willSave'] as bool?) - : null, - params.containsKey('willSaveWaitUntil') && - params['willSaveWaitUntil'] != null - ? (params['willSaveWaitUntil'] as bool?) - : null); - - final TextDocumentSyncKind? change; - - final bool? openClose; - - final SaveOptions? save; - - final bool? willSave; - - final bool? willSaveWaitUntil; - - Map toJson() => { - 'change': change?.toJson(), - 'openClose': openClose, - 'save': save?.toJson(), - 'willSave': willSave, - 'willSaveWaitUntil': willSaveWaitUntil - }; - @override - int get hashCode { - var hash = 541969480; - hash = _hashCombine(hash, _deepHashCode(change)); - hash = _hashCombine(hash, _deepHashCode(openClose)); - hash = _hashCombine(hash, _deepHashCode(save)); - hash = _hashCombine(hash, _deepHashCode(willSave)); - hash = _hashCombine(hash, _deepHashCode(willSaveWaitUntil)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextDocumentSyncOptions && - change == other.change && - openClose == other.openClose && - save == other.save && - willSave == other.willSave && - willSaveWaitUntil == other.willSaveWaitUntil; -} - -class TextDocumentSyncOptions$Builder { - TextDocumentSyncOptions$Builder._(); - - TextDocumentSyncKind? change; - - bool? openClose; - - SaveOptions? save; - - bool? willSave; - - bool? willSaveWaitUntil; -} - -class TextEdit { - TextEdit._(this.newText, this.range); - - factory TextEdit(void Function(TextEdit$Builder) init) { - final b = TextEdit$Builder._(); - init(b); - return TextEdit._(b.newText, b.range); - } - - factory TextEdit.fromJson(Map params) => TextEdit._( - params.containsKey('newText') && params['newText'] != null - ? (params['newText'] as String?) - : null, - params.containsKey('range') && params['range'] != null - ? Range.fromJson((params['range'] as Map)) - : null); - - final String? newText; - - final Range? range; - - Map toJson() => {'newText': newText, 'range': range?.toJson()}; - @override - int get hashCode { - var hash = 1034224162; - hash = _hashCombine(hash, _deepHashCode(newText)); - hash = _hashCombine(hash, _deepHashCode(range)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is TextEdit && newText == other.newText && range == other.range; -} - -class TextEdit$Builder { - TextEdit$Builder._(); - - String? newText; - - Range? range; -} - -class VersionedTextDocumentIdentifier { - VersionedTextDocumentIdentifier._(this.uri, this.version); - - factory VersionedTextDocumentIdentifier( - void Function(VersionedTextDocumentIdentifier$Builder) init) { - final b = VersionedTextDocumentIdentifier$Builder._(); - init(b); - return VersionedTextDocumentIdentifier._(b.uri, b.version); - } - - factory VersionedTextDocumentIdentifier.fromJson(Map params) => - VersionedTextDocumentIdentifier._( - params.containsKey('uri') && params['uri'] != null - ? (params['uri'] as String?) - : null, - params.containsKey('version') && params['version'] != null - ? (params['version'] as int?) - : null); - - final String? uri; - - final int? version; - - Map toJson() => {'uri': uri, 'version': version}; - @override - int get hashCode { - var hash = 6046273; - hash = _hashCombine(hash, _deepHashCode(uri)); - hash = _hashCombine(hash, _deepHashCode(version)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is VersionedTextDocumentIdentifier && - uri == other.uri && - version == other.version; -} - -class VersionedTextDocumentIdentifier$Builder { - VersionedTextDocumentIdentifier$Builder._(); - - String? uri; - - int? version; -} - -class WorkspaceClientCapabilities { - WorkspaceClientCapabilities._(this.applyEdit, this.didChangeConfiguration, - this.didChangeWatchedFiles, this.executeCommand, this.symbol); - - factory WorkspaceClientCapabilities( - void Function(WorkspaceClientCapabilities$Builder) init) { - final b = WorkspaceClientCapabilities$Builder._(); - init(b); - return WorkspaceClientCapabilities._(b.applyEdit, b.didChangeConfiguration, - b.didChangeWatchedFiles, b.executeCommand, b.symbol); - } - - factory WorkspaceClientCapabilities.fromJson( - Map params) => - WorkspaceClientCapabilities._( - params.containsKey('applyEdit') && params['applyEdit'] != null - ? (params['applyEdit'] as bool?) - : null, - params.containsKey('didChangeConfiguration') && - params['didChangeConfiguration'] != null - ? DynamicRegistrationCapability.fromJson( - (params['didChangeConfiguration'] as Map)) - : null, - params.containsKey('didChangeWatchedFiles') && - params['didChangeWatchedFiles'] != null - ? DynamicRegistrationCapability.fromJson( - (params['didChangeWatchedFiles'] as Map)) - : null, - params.containsKey('executeCommand') && - params['executeCommand'] != null - ? DynamicRegistrationCapability.fromJson( - (params['executeCommand'] as Map)) - : null, - params.containsKey('symbol') && params['symbol'] != null - ? DynamicRegistrationCapability.fromJson( - (params['symbol'] as Map)) - : null); - - final bool? applyEdit; - - final DynamicRegistrationCapability? didChangeConfiguration; - - final DynamicRegistrationCapability? didChangeWatchedFiles; - - final DynamicRegistrationCapability? executeCommand; - - final DynamicRegistrationCapability? symbol; - - Map toJson() => { - 'applyEdit': applyEdit, - 'didChangeConfiguration': didChangeConfiguration?.toJson(), - 'didChangeWatchedFiles': didChangeWatchedFiles?.toJson(), - 'executeCommand': executeCommand?.toJson(), - 'symbol': symbol?.toJson() - }; - @override - int get hashCode { - var hash = 1031534926; - hash = _hashCombine(hash, _deepHashCode(applyEdit)); - hash = _hashCombine(hash, _deepHashCode(didChangeConfiguration)); - hash = _hashCombine(hash, _deepHashCode(didChangeWatchedFiles)); - hash = _hashCombine(hash, _deepHashCode(executeCommand)); - hash = _hashCombine(hash, _deepHashCode(symbol)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is WorkspaceClientCapabilities && - applyEdit == other.applyEdit && - didChangeConfiguration == other.didChangeConfiguration && - didChangeWatchedFiles == other.didChangeWatchedFiles && - executeCommand == other.executeCommand && - symbol == other.symbol; -} - -class WorkspaceClientCapabilities$Builder { - WorkspaceClientCapabilities$Builder._(); - - bool? applyEdit; - - DynamicRegistrationCapability? didChangeConfiguration; - - DynamicRegistrationCapability? didChangeWatchedFiles; - - DynamicRegistrationCapability? executeCommand; - - DynamicRegistrationCapability? symbol; -} - -class WorkspaceEdit { - WorkspaceEdit._(this.changes); - - factory WorkspaceEdit(void Function(WorkspaceEdit$Builder) init) { - final b = WorkspaceEdit$Builder._(); - init(b); - return WorkspaceEdit._(b.changes); - } - - factory WorkspaceEdit.fromJson(Map params) => - WorkspaceEdit._(params.containsKey('changes') && params['changes'] != null - ? (params['changes'] as Map).map((k, v) => - MapEntry>( - (k as String), - (v as List) - .map((v) => TextEdit.fromJson((v as Map))) - .toList())) - : null); - - final Map>? changes; - - Map toJson() => { - 'changes': changes?.map((k, v) => - MapEntry(k, v.map((v) => v.toJson()).toList())) - }; - @override - int get hashCode { - var hash = 920194645; - hash = _hashCombine(hash, _deepHashCode(changes)); - return _hashComplete(hash); - } - - @override - bool operator ==(Object other) => - other is WorkspaceEdit && _deepEquals(changes, other.changes); -} - -class WorkspaceEdit$Builder { - WorkspaceEdit$Builder._(); - - Map>? changes; -} - -int _hashCombine(int hash, int value) { - hash = 0x1fffffff & (hash + value); - hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); - return hash ^ (hash >> 6); -} - -int _hashComplete(int hash) { - hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); - hash = hash ^ (hash >> 11); - return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); -} - -int _deepHashCode(dynamic value) { - if (value is List) { - return value.map(_deepHashCode).reduce(_hashCombine); - } - if (value is Map) { - return (value.keys - .map((key) => _hashCombine(key.hashCode, _deepHashCode(value[key]))) - .toList(growable: false) - ..sort()) - .reduce(_hashCombine); - } - return value.hashCode; -} - -bool _deepEquals(dynamic left, dynamic right) { - if (left is List && right is List) { - final leftLength = left.length; - final rightLength = right.length; - if (leftLength != rightLength) return false; - for (var i = 0; i < leftLength; i++) { - if (!_deepEquals(left[i], right[i])) return false; - } - return true; - } - if (left is Map && right is Map) { - final leftLength = left.length; - final rightLength = right.length; - if (leftLength != rightLength) return false; - for (final key in left.keys) { - if (!_deepEquals(left[key], right[key])) return false; - } - return true; - } - return left == right; -} diff --git a/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.yaml b/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.yaml deleted file mode 100644 index 2eb3a31a..00000000 --- a/packages/vscode/jael_language_server/lib/src/protocol/language_server/messages.yaml +++ /dev/null @@ -1,321 +0,0 @@ -TextDocumentItem: - uri: String - text: String - languageId: String - version: int - -TextDocumentIdentifier: - uri: String - -VersionedTextDocumentIdentifier: - uri: String - version: int - -TextDocumentContentChangeEvent: - range: Range - rangeLength: int - text: String - -Range: - start: Position - end: Position - -Position: - line: int - character: int - -Diagnostics: - uri: String - diagnostics: - listType: Diagnostic - -Diagnostic: - range: Range - severity: int - code: dynamic - source: String - message: String - -CompletionList: - isIncomplete: bool - items: - listType: CompletionItem - -CompletionItem: - label: String - kind: CompletionItemKind - detail: String - documentation: String - sortText: String - filterText: String - insertText: String - insertTextFormat: InsertTextFormat - textEdit: TextEdit - additionalTextEdits: - listType: TextEdit - command: Command - data: dynamic - -CompletionItemKind: - enumValues: - text: 1 - method: 2 - function: 3 - constructor: 4 - field: 5 - variable: 6 - classKind: 7 - interface: 8 - module: 9 - property: 10 - unit: 11 - value: 12 - enumKind: 13 - keyword: 14 - snippet: 15 - color: 16 - file: 17 - reference: 18 - wireType: int - -InsertTextFormat: - enumValues: - plainText: 1 - snippet: 2 - wireType: int - -TextEdit: - range: Range - newText: String - -Command: - title: String - command: String - arguments: - listType: dynamic - -Location: - uri: String - range: Range - -DynamicRegistrationCapability: - dynamicRegistration: bool - -WorkspaceClientCapabilities: - applyEdit: bool - didChangeConfiguration: DynamicRegistrationCapability - didChangeWatchedFiles: DynamicRegistrationCapability - symbol: DynamicRegistrationCapability - executeCommand: DynamicRegistrationCapability - -SynchronizationCapabilities: - dynamicRegistration: bool - willSave: bool - willSaveWaitUntil: bool - didSave: bool - -CompletionItemCapabilities: - snippetSupport: bool - -CompletionCapabilities: - dynamicRegistration: bool - completionItem: CompletionItemCapabilities - -HoverCapabilities: - dynamicRegistration: bool - contentFormat: - listType: String - -CodeActionCapabilities: - dynamicRegistration: bool - codeActionLiteralSupport: CodeActionLiteralSupport - -CodeActionLiteralSupport: - codeActionKind: CodeActionKinds - -CodeActionKinds: - valueSet: - listType: String # open ended enum - -TextDocumentClientCapabilities: - codeAction: CodeActionCapabilities - completion: CompletionCapabilities - hover: HoverCapabilities - synchronization: SynchronizationCapabilities - codeLens: DynamicRegistrationCapability - definition: DynamicRegistrationCapability - documentHighlight: DynamicRegistrationCapability - documentLink: DynamicRegistrationCapability - documentSymbol: DynamicRegistrationCapability - formatting: DynamicRegistrationCapability - onTypeFormatting: DynamicRegistrationCapability - references: DynamicRegistrationCapability - rename: DynamicRegistrationCapability - -ClientCapabilities: - workspace: WorkspaceClientCapabilities - textDocument: TextDocumentClientCapabilities - -TextDocumentSyncKind: - enumValues: - none: 0 - full: 1 - incremental: 2 - wireType: int - -CompletionOptions: - resolveProvider: bool - triggerCharacters: - listType: String - -SignatureHelpOptions: - triggerCharacters: - listType: String - -CodeLensOptions: - resolveProvider: bool - -DocumentOnTypeFormattingOptions: - firstTriggerCharacter: String - moreTriggerCharacter: - listType: String - -DocumentLinkOptions: - resolveProvider: bool - -ExecuteCommandOptions: - commands: - listType: String - -SaveOptions: - includeText: bool - -TextDocumentSyncOptions: - openClose: bool - change: TextDocumentSyncKind - willSave: bool - willSaveWaitUntil: bool - save: SaveOptions - -ServerCapabilities: - codeActionProvider: bool - codeLensProvider: CodeLensOptions - completionProvider: CompletionOptions - definitionProvider: bool - documentFormattingProvider: bool - documentHighlightProvider: bool - documentLinkProvider: DocumentLinkOptions - documentOnTypeFormattingProvider: DocumentOnTypeFormattingOptions - documentRangeFormattingProvider: bool - documentSymbolProvider: bool - executeCommandProvider: ExecuteCommandOptions - hoverProvider: bool - implementationProvider: bool - referencesProvider: bool - renameProvider: bool - signatureHelpProvider: SignatureHelpOptions - textDocumentSync: TextDocumentSyncOptions - workspaceSymbolProvider: bool - -ReferenceContext: - includeDeclaration: bool - -Hover: - contents: String - range: Range - -HoverMarkup: - contents: MarkupContent - range: Range - -CodeActionContext: - diagnostics: - listType: Diagnostic - -CodeAction: - title: String - kind: String - diagnostics: - listType: Diagnostic - edit: WorkspaceEdit - command: Command - -ApplyWorkspaceEditParams: - label: String - edit: WorkspaceEdit - -WorkspaceEdit: - # Not using `documentChanges` since there is no reasonable way to support text - # document version - changes: - mapType: - listType: TextEdit - -DocumentHighlight: - range: Range - kind: DocumentHighlightKind - -DocumentHighlightKind: - enumValues: - text: 1 - read: 2 - write: 3 - wireType: int - -SymbolInformation: - name: String - kind: SymbolKind - location: Location - containerName: String - -SymbolKind: - enumValues: - file: 1 - module: 2 - namespace: 3 - package: 4 - classSymbol: 5 - method: 6 - property: 7 - field: 8 - constructor: 9 - enumSymbol: 10 - interface: 11 - function: 12 - variable: 13 - constant: 14 - string: 15 - number: 16 - boolean: 17 - array: 18 - object: 19 - key: 20 - nullSymbol: 21 - enumMember: 22 - struct: 23 - event: 24 - operator: 25 - typeParameter: 26 - wireType: int - -MarkupContentKind: - enumValues: - plaintext: 'plaintext' - markdown: 'markdown' - wireType: String - -MarkupContent: - kind: MarkupContentKind - value: String - -MessageType: - enumValues: - error: 1 - warning: 2 - info: 3 - log: 4 - wireType: int - -ShowMessageParams: - type: MessageType - message: String diff --git a/packages/vscode/jael_language_server/lib/src/protocol/language_server/server.dart b/packages/vscode/jael_language_server/lib/src/protocol/language_server/server.dart deleted file mode 100644 index 65c323ee..00000000 --- a/packages/vscode/jael_language_server/lib/src/protocol/language_server/server.dart +++ /dev/null @@ -1,201 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:json_rpc_2/json_rpc_2.dart'; - -import 'interface.dart'; -import 'messages.dart'; -import 'wireformat.dart'; - -/// A Language Server communicating over stdin and stdout. -class StdIOLanguageServer { - final LanguageServer _server; - Future? onDone; - - /// Wrap [_server] and register RPC methods using the LSP wire protocol. - /// - /// Methods are guarded against being called before the server is initialized. - StdIOLanguageServer.start(this._server) { - final peer = Peer(lspChannel(stdin, stdout)); - - _lifecycleMethods(peer); - _fileHandlingMethods(peer); - _notifications(peer); - _completionMethods(peer); - _referenceMethods(peer); - _codeActionMethods(peer); - - _server.setupExtraMethods(peer); - - peer.listen(); - - onDone = _server.onDone.then((_) => peer.close()).then((_) => null); - } - - bool _isInitialized = false; - - void _lifecycleMethods(Peer peer) { - peer - ..registerMethod('initialize', (params) async { - final serverCapabilities = await _server.initialize( - params['processId'].valueOr(0) as int?, - params['rootUri'].valueOr('') as String?, - ClientCapabilities.fromJson(params['capabilities'].value as Map), - params['trace'].valueOr('off') as String?); - _isInitialized = true; - return {'capabilities': serverCapabilities.toJson()}; - }) - ..registerMethod('initialized', (params) => _server.initialized()) - ..registerMethod('shutdown', _server.shutdown) - ..registerMethod('exit', _server.exit); - } - - /// Register a request that will throw if throw if used before initialization. - void _registerRequest(Peer peer, String methodName, Function callback) { - peer.registerMethod(methodName, (params) { - if (!_isInitialized) { - throw RpcException(-32003, 'The server has not been initialized'); - } - return callback(params); - }); - } - - /// Notifications are ignored until after initialization. - void _registerNotification(Peer peer, String methodName, Function callback) { - peer.registerMethod(methodName, (params) { - if (_isInitialized) return callback(params); - }); - } - - void _fileHandlingMethods(Peer peer) { - _registerNotification(peer, 'textDocument/didOpen', (params) { - _server.textDocumentDidOpen(_documentItem(params)); - }); - _registerNotification(peer, 'textDocument/didChange', (params) { - _server.textDocumentDidChange( - _versionedDocument(params), _contentChanges(params)); - }); - _registerNotification(peer, 'textDocument/didClose', (params) { - _server.textDocumentDidClose(_document(params)); - }); - } - - void _notifications(Peer peer) { - _server - ..diagnostics.map((d) => d.toJson()).forEach((diagnostics) => - peer.sendNotification('textDocument/publishDiagnostics', diagnostics)) - ..workspaceEdits.map((e) => e.toJson()).forEach((edit) { - // Ignore response? - peer.sendRequest('workspace/applyEdit', edit); - }) - ..logMessages.map((e) => e.toJson()).forEach( - (message) => peer.sendNotification('window/logMessage', message)) - ..showMessages.map((e) => e.toJson()).forEach( - (message) => peer.sendNotification('window/showMessage', message)); - } - - void _completionMethods(Peer peer) { - _registerRequest( - peer, - 'textDocument/completion', - (params) => _server - .textDocumentCompletion(_document(params), _position(params)) - .then((r) => r.toJson())); - } - - void _referenceMethods(Peer peer) { - _registerRequest( - peer, - 'textDocument/definition', - (params) => _server - .textDocumentDefinition(_document(params), _position(params)) - .then((r) => r?.toJson())); - _registerRequest( - peer, - 'textDocument/hover', - (params) => _server - .textDocumentHover(_document(params), _position(params)) - .then((r) => r?.toJson())); - _registerRequest( - peer, - 'textDocument/references', - (params) => _server - .textDocumentReferences( - _document(params), _position(params), _referenceContext(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - _registerRequest( - peer, - 'textDocument/implementation', - (params) => _server - .textDocumentImplementation(_document(params), _position(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - _registerRequest( - peer, - 'textDocument/documentHighlight', - (params) => _server - .textDocumentHighlight(_document(params), _position(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - _registerRequest( - peer, - 'textDocument/documentSymbol', - (params) => _server - .textDocumentSymbols(_document(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - _registerRequest( - peer, - 'workspace/symbol', - (params) => _server - .workspaceSymbol(_query(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - } - - void _codeActionMethods(Peer peer) { - _registerRequest( - peer, - 'textDocument/codeAction', - (params) => _server - .textDocumentCodeAction( - _document(params), _range(params), _codeActionContext(params)) - .then((r) => r.map((e) => e.toJson()).toList())); - _registerRequest( - peer, - 'workspace/executeCommand', - (params) => _server.workspaceExecuteCommand( - params['command'].value as String?, - params['arguments']?.value as List?)); - _registerRequest( - peer, - 'textDocument/rename', - (params) async => (await _server.textDocumentRename(_document(params), - _position(params), params['newName'].value as String?))! - .toJson()); - } -} - -TextDocumentItem _documentItem(params) => - TextDocumentItem.fromJson(params['textDocument'].value as Map); - -VersionedTextDocumentIdentifier _versionedDocument(params) => - VersionedTextDocumentIdentifier.fromJson( - params['textDocument'].value as Map); - -TextDocumentIdentifier _document(params) => - TextDocumentIdentifier.fromJson(params['textDocument'].value as Map); - -Range _range(params) => Range.fromJson(params['range'].value as Map); - -Position _position(params) => - Position.fromJson(params['position'].value as Map); - -CodeActionContext _codeActionContext(params) => - CodeActionContext.fromJson(params['context'].value as Map); - -ReferenceContext _referenceContext(params) => - ReferenceContext.fromJson(params['context'].value as Map); - -List _contentChanges(params) => - (params['contentChanges'].value as Iterable) - .map((change) => TextDocumentContentChangeEvent.fromJson(change as Map)) - .toList(); - -String? _query(params) => params['query'].value as String?; diff --git a/packages/vscode/jael_language_server/lib/src/protocol/language_server/wireformat.dart b/packages/vscode/jael_language_server/lib/src/protocol/language_server/wireformat.dart deleted file mode 100644 index 02ef965d..00000000 --- a/packages/vscode/jael_language_server/lib/src/protocol/language_server/wireformat.dart +++ /dev/null @@ -1,98 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:stream_channel/stream_channel.dart'; -import 'package:async/async.dart'; - -StreamChannel lspChannel( - Stream> stream, StreamSink> sink) { - final parser = _Parser(stream); - final outSink = StreamSinkTransformer.fromHandlers( - handleData: _serialize, - handleDone: (sink) { - sink.close(); - parser.close(); - }).bind(sink); - return StreamChannel.withGuarantees(parser.stream, outSink); -} - -void _serialize(String data, EventSink> sink) { - final message = utf8.encode(data); - final header = 'Content-Length: ${message.length}\r\n\r\n'; - sink.add(ascii.encode(header)); - for (var chunk in _chunks(message, 1024)) { - sink.add(chunk); - } -} - -class _Parser { - final _streamCtl = StreamController(); - Stream get stream => _streamCtl.stream; - - final _buffer = []; - bool _headerMode = true; - int _contentLength = -1; - - late StreamSubscription _subscription; - - _Parser(Stream> stream) { - _subscription = - stream.expand((bytes) => bytes).listen(_handleByte, onDone: () { - _streamCtl.close(); - }); - } - - Future close() => _subscription.cancel(); - - void _handleByte(int byte) { - _buffer.add(byte); - if (_headerMode && _headerComplete) { - _contentLength = _parseContentLength(); - _buffer.clear(); - _headerMode = false; - } else if (!_headerMode && _messageComplete) { - _streamCtl.add(utf8.decode(_buffer)); - _buffer.clear(); - _headerMode = true; - } - } - - /// Whether the entire message is in [_buffer]. - bool get _messageComplete => _buffer.length >= _contentLength; - - /// Decodes [_buffer] into a String and looks for the 'Content-Length' header. - int _parseContentLength() { - final asString = ascii.decode(_buffer); - final headers = asString.split('\r\n'); - final lengthHeader = - headers.firstWhere((h) => h.startsWith('Content-Length')); - final length = lengthHeader.split(':').last.trim(); - return int.parse(length); - } - - /// Whether [_buffer] ends in '\r\n\r\n'. - bool get _headerComplete { - final l = _buffer.length; - return l > 4 && - _buffer[l - 1] == 10 && - _buffer[l - 2] == 13 && - _buffer[l - 3] == 10 && - _buffer[l - 4] == 13; - } -} - -Iterable> _chunks(List data, int chunkSize) sync* { - if (data.length <= chunkSize) { - yield data; - return; - } - var low = 0; - while (low < data.length) { - if (data.length > low + chunkSize) { - yield data.sublist(low, low + chunkSize); - } else { - yield data.sublist(low); - } - low += chunkSize; - } -} diff --git a/packages/vscode/jael_language_server/lib/src/server.dart b/packages/vscode/jael_language_server/lib/src/server.dart deleted file mode 100644 index c0d1fd43..00000000 --- a/packages/vscode/jael_language_server/lib/src/server.dart +++ /dev/null @@ -1,541 +0,0 @@ -import 'dart:async'; -//import 'package:dart_language_server/src/protocol/language_server/interface.dart'; -//import 'package:dart_language_server/src/protocol/language_server/messages.dart'; -import 'package:file/file.dart'; -import 'package:file/local.dart'; -import 'package:file/memory.dart'; -import 'package:jael/jael.dart'; -import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc_2; -import 'package:logging/logging.dart'; -import 'package:path/path.dart' as p; -import 'package:source_span/source_span.dart'; -import 'package:string_scanner/string_scanner.dart'; -import 'package:symbol_table/symbol_table.dart'; - -import 'protocol/language_server/interface.dart'; -import 'protocol/language_server/messages.dart'; - -import './analyzer.dart'; -import './formatter.dart' as fmt; -import './object.dart'; - -class JaelLanguageServer extends LanguageServer { - final _diagnostics = StreamController(); - final _done = Completer(); - final _memFs = MemoryFileSystem(); - final _localFs = const LocalFileSystem(); - Directory? _localRootDir, _memRootDir; - var logger = Logger('jael'); - late Uri _rootUri; - final _workspaceEdits = StreamController(); - - @override - Stream get diagnostics => _diagnostics.stream; - - @override - Future get onDone => _done.future; - - @override - Stream get workspaceEdits => _workspaceEdits.stream; - - @override - Future shutdown() { - if (!_done.isCompleted) _done.complete(); - _diagnostics.close(); - _workspaceEdits.close(); - return super.shutdown(); - } - - @override - void setupExtraMethods(json_rpc_2.Peer peer) { - peer.registerMethod('textDocument/formatting', - (json_rpc_2.Parameters params) async { - var documentId = - TextDocumentIdentifier.fromJson(params['textDocument'].asMap); - var formattingOptions = - FormattingOptions.fromJson(params['options'].asMap); - return await textDocumentFormatting(documentId, formattingOptions); - }); - } - - @override - Future initialize(int? clientPid, String? rootUri, - ClientCapabilities clientCapabilities, String? trace) async { - // Find our real root dir. - _localRootDir = _localFs.directory(_rootUri = Uri.parse(rootUri!)); - _memRootDir = _memFs.directory('/'); - await _memRootDir!.create(recursive: true); - _memFs.currentDirectory = _memRootDir; - - // Copy all real files that end in *.jael (and *.jl for legacy) into the in-memory filesystem. - await for (var entity in _localRootDir!.list(recursive: true)) { - if (entity is File && p.extension(entity.path) == '.jael') { - logger.info('HEY ${entity.path}'); - var file = _memFs.file(entity.absolute.path); - await file.create(recursive: true); - await entity.openRead().pipe(file.openWrite(mode: FileMode.write)); - logger.info( - 'Found Jael file ${file.path}; copied to ${file.absolute.path}'); - - // Analyze it - var documentId = TextDocumentIdentifier((b) { - b.uri = _rootUri.replace(path: file.path).toString(); - }); - - await analyzerForId(documentId); - } - } - - return ServerCapabilities((b) { - b - ..codeActionProvider = false - ..completionProvider = CompletionOptions((b) { - b - ..resolveProvider = true - ..triggerCharacters = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdeghijklmnopqrstuvxwyz' - .codeUnits - .map((c) => String.fromCharCode(c)) - .toList(); - }) - ..definitionProvider = true - ..documentHighlightProvider = true - ..documentRangeFormattingProvider = false - ..documentOnTypeFormattingProvider = null - ..documentSymbolProvider = true - ..documentFormattingProvider = true - ..hoverProvider = true - ..implementationProvider = true - ..referencesProvider = true - ..renameProvider = true - ..signatureHelpProvider = SignatureHelpOptions((b) {}) - ..textDocumentSync = TextDocumentSyncOptions((b) { - b - ..openClose = true - ..change = TextDocumentSyncKind.full - ..save = SaveOptions((b) { - b.includeText = false; - }) - ..willSave = false - ..willSaveWaitUntil = false; - }) - ..workspaceSymbolProvider = true; - }); - } - - Future fileForId(TextDocumentIdentifier documentId) async { - var uri = Uri.parse(documentId.uri!); - var relativePath = uri.path; - var file = _memFs.directory('/').childFile(relativePath); - - /* - logger.info('Searching for $relativePath. All:\n'); - - await for (var entity in _memFs.directory('/').list(recursive: true)) { - if (entity is File) print(' * ${entity.absolute.path}'); - } - */ - - if (!await file.exists()) { - await file.create(recursive: true); - await _localFs.file(uri).openRead().pipe(file.openWrite()); - logger.info('Opened Jael file ${file.path}'); - } - - return file; - } - - Future scannerForId(TextDocumentIdentifier documentId) async { - var file = await fileForId(documentId); - return scan(await file.readAsString(), sourceUrl: file.uri); - } - - Future analyzerForId(TextDocumentIdentifier documentId) async { - var scanner = await scannerForId(documentId); - var analyzer = Analyzer(scanner, logger)..errors.addAll(scanner.errors); - analyzer.parseDocument(); - emitDiagnostics(documentId.uri, analyzer.errors.map(toDiagnostic).toList()); - return analyzer; - } - - Diagnostic toDiagnostic(JaelError e) { - return Diagnostic((b) { - b - ..message = e.message - ..range = toRange(e.span) - ..severity = toSeverity(e.severity) - ..source = e.span.start.sourceUrl.toString(); - }); - } - - int toSeverity(JaelErrorSeverity s) { - switch (s) { - case JaelErrorSeverity.warning: - return DiagnosticSeverity.warning; - default: - return DiagnosticSeverity.error; - } - } - - Range toRange(FileSpan span) { - return Range((b) { - b - ..start = toPosition(span.start) - ..end = toPosition(span.end); - }); - } - - Range emptyRange() { - return Range((b) => b - ..start = b.end = Position((b) { - b - ..character = 1 - ..line = 0; - })); - } - - Position toPosition(SourceLocation location) { - return Position((b) { - b - ..line = location.line - ..character = location.column; - }); - } - - Location toLocation(String? uri, FileSpan span) { - return Location((b) { - b - ..range = toRange(span) - ..uri = uri; - }); - } - - bool isReachable(JaelObject obj, Position position) { - return obj.span.start.line <= position.line! && - obj.span.start.column <= position.character!; - } - - CompletionItem? toCompletion(Variable symbol) { - var value = symbol.value; - - if (value is JaelCustomElement) { - var name = value.name; - return CompletionItem((b) { - b - ..kind = CompletionItemKind.classKind - ..label = symbol.name - ..textEdit = TextEdit((b) { - b - ..range = emptyRange() - ..newText = '<$name\$1>\n \$2\n'; - }); - }); - } else if (value is JaelVariable) { - return CompletionItem((b) { - b - ..kind = CompletionItemKind.variable - ..label = symbol.name; - }); - } - - return null; - } - - void emitDiagnostics(String? uri, Iterable diagnostics) { - _diagnostics.add(Diagnostics((b) { - logger.info('$uri => ${diagnostics.map((d) => d.message).toList()}'); - b - ..diagnostics = diagnostics.toList() - ..uri = uri.toString(); - })); - } - - @override - Future textDocumentDidOpen(TextDocumentItem document) async { - await analyzerForId(TextDocumentIdentifier((b) => b..uri = document.uri)); - } - - @override - Future textDocumentDidChange(VersionedTextDocumentIdentifier documentId, - List changes) async { - var id = TextDocumentIdentifier((b) => b..uri = documentId.uri); - var file = await fileForId(id); - - for (var change in changes) { - if (change.text != null) { - await file.writeAsString(change.text!); - } else if (change.range != null) { - String? contents = await file.readAsString(); - - int findIndex(Position position) { - var lines = contents!.split('\n'); - - // Sum the length of the previous lines. - var lineLength = lines - .take(position.line! - 1) - .map((s) => s.length) - .reduce((a, b) => a + b); - return lineLength + position.character! - 1; - } - - if (change.range == null) { - contents = change.text; - } else { - var start = findIndex(change.range!.start!), - end = findIndex(change.range!.end!); - contents = contents.replaceRange(start, end, change.text!); - } - - logger.info('${file.path} => $contents'); - await file.writeAsString(contents!); - } - } - - await analyzerForId(id); - } - - @override - Future textDocumentCodeAction(TextDocumentIdentifier documentId, - Range range, CodeActionContext context) async { - // TODO: implement textDocumentCodeAction - return []; - } - - @override - Future textDocumentCompletion( - TextDocumentIdentifier documentId, Position position) async { - var analyzer = await analyzerForId(documentId); - var symbols = analyzer.scope!.allVariables; - var reachable = symbols.where((s) => isReachable(s.value!, position)); - return CompletionList((b) { - b - ..isIncomplete = false - ..items = reachable.map(toCompletion).toList(); - }); - } - - final RegExp _id = - RegExp(r'(([A-Za-z][A-Za-z0-9_]*-)*([A-Za-z][A-Za-z0-9_]*))'); - - Future currentName( - TextDocumentIdentifier documentId, Position position) async { - // First, read the file. - var file = await fileForId(documentId); - var contents = await file.readAsString(); - - // Next, find the current index. - var scanner = SpanScanner(contents); - - while (!scanner.isDone && - (scanner.state.line != position.line || - scanner.state.column != position.character)) { - scanner.readChar(); - } - - // Next, just read the name. - if (scanner.matches(_id)) { - var longest = scanner.lastSpan!.text; - - while (scanner.matches(_id) && scanner.position > 0 && !scanner.isDone) { - longest = scanner.lastSpan!.text; - scanner.position--; - } - - return longest; - } else { - return null; - } - } - - Future currentSymbol( - TextDocumentIdentifier documentId, Position position) async { - var name = await currentName(documentId, position); - if (name == null) return null; - var analyzer = await analyzerForId(documentId); - var symbols = analyzer.allDefinitions; // ?? analyzer.scope!.allVariables; - logger - .info('Current symbols, seeking $name: ${symbols.map((v) => v.name)}'); - return analyzer.scope!.resolve(name)?.value; - } - - @override - Future textDocumentDefinition( - TextDocumentIdentifier documentId, Position position) async { - var symbol = await currentSymbol(documentId, position); - if (symbol != null) { - return toLocation(documentId.uri, symbol.span); - } - return null; - } - - @override - Future> textDocumentHighlight( - TextDocumentIdentifier documentId, Position position) async { - var symbol = await currentSymbol(documentId, position); - if (symbol != null) { - return symbol.usages.map((u) { - return DocumentHighlight((b) { - b - ..range = toRange(u.span) - ..kind = u.type == SymbolUsageType.definition - ? DocumentHighlightKind.write - : DocumentHighlightKind.read; - }); - }).toList(); - } - return []; - } - - @override - Future textDocumentHover( - TextDocumentIdentifier documentId, Position position) async { - var symbol = await currentSymbol(documentId, position); - if (symbol != null) { - return Hover((b) { - b - ..contents = symbol.span.text - ..range = toRange(symbol.span); - }); - } - - return null; - } - - @override - Future> textDocumentImplementation( - TextDocumentIdentifier documentId, Position position) async { - var defn = await textDocumentDefinition(documentId, position); - return defn == null ? [] : [defn]; - } - - @override - Future> textDocumentReferences( - TextDocumentIdentifier documentId, - Position position, - ReferenceContext context) async { - var symbol = await currentSymbol(documentId, position); - if (symbol != null) { - return symbol.usages.map((u) { - return toLocation(documentId.uri, u.span); - }).toList(); - } - - return []; - } - - @override - Future textDocumentRename(TextDocumentIdentifier documentId, - Position position, String? newName) async { - var symbol = await currentSymbol(documentId, position); - if (symbol != null) { - return WorkspaceEdit((b) { - b.changes = { - symbol.name: symbol.usages.map((u) { - return TextEdit((b) { - b - ..range = toRange(u.span) - ..newText = (symbol is JaelCustomElement && - u.type == SymbolUsageType.definition) - ? '"$newName"' - : newName; - }); - }).toList() - }; - }); - } - return WorkspaceEdit((b) { - b.changes = {}; - }); - } - - @override - Future> textDocumentSymbols( - TextDocumentIdentifier documentId) async { - var analyzer = await analyzerForId(documentId); - return analyzer.allDefinitions.map((symbol) { - return SymbolInformation((b) { - b - ..kind = SymbolKind.classSymbol - ..name = symbol.name - ..location = toLocation(documentId.uri, symbol.value!.span); - }); - }).toList(); - } - - @override - Future workspaceExecuteCommand(String? command, List? arguments) async { - // TODO: implement workspaceExecuteCommand - } - - @override - Future> workspaceSymbol(String? query) async { - var values = []; - - await for (var file in _memRootDir!.list(recursive: true)) { - if (file is File) { - var id = TextDocumentIdentifier((b) { - b.uri = file.uri.toString(); - }); - var analyzer = await analyzerForId(id); - values.addAll(analyzer.allDefinitions.map((v) => v.value)); - } - } - - return values.map((o) { - return SymbolInformation((b) { - b - ..name = o!.name - ..location = toLocation(o.span.sourceUrl.toString(), o.span) - ..containerName = p.basename(o.span.sourceUrl!.path) - ..kind = o is JaelCustomElement - ? SymbolKind.classSymbol - : SymbolKind.variable; - }); - }).toList(); - } - - Future?> textDocumentFormatting( - TextDocumentIdentifier documentId, - FormattingOptions formattingOptions) async { - try { - var errors = []; - var file = await fileForId(documentId); - var contents = await file.readAsString(); - var document = - parseDocument(contents, sourceUrl: file.uri, onError: errors.add); - if (errors.isNotEmpty) return null; - var formatter = fmt.JaelFormatter( - formattingOptions.tabSize, formattingOptions.insertSpaces); - var formatted = formatter.apply(document); - logger.info('Original:$contents\nFormatted:\n$formatted'); - if (formatted.isNotEmpty) await file.writeAsString(formatted); - return [ - TextEdit((b) { - b - ..newText = formatted - ..range = document == null ? emptyRange() : toRange(document.span); - }) - ]; - } catch (e, st) { - logger.severe('Formatter error', e, st); - return null; - } - } -} - -abstract class DiagnosticSeverity { - static const int error = 0, warning = 1, information = 2, hint = 3; -} - -class FormattingOptions { - final num? tabSize; - - final bool? insertSpaces; - - FormattingOptions(this.tabSize, this.insertSpaces); - - factory FormattingOptions.fromJson(Map json) { - return FormattingOptions( - json['tabSize'] as num?, json['insertSpaces'] as bool?); - } -} diff --git a/packages/vscode/jael_language_server/pubspec.yaml b/packages/vscode/jael_language_server/pubspec.yaml deleted file mode 100644 index f17cd0de..00000000 --- a/packages/vscode/jael_language_server/pubspec.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: vs_jael_language_server -version: 2.0.0 -description: Language Server Protocol implementation for the Jael templating engine. -homepage: https://github.com/angel-dart/vscode -publish_to: none -environment: - sdk: '>=2.12.0 <3.0.0' -dependencies: - args: ^2.1.1 -# dart_language_server: ^0.1.16 - file: ^6.1.2 - io: ^1.0.0 - jael: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/jael/jael - jael_preprocessor: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/jael/jael_preprocessor - json_rpc_2: ^3.0.1 - logging: ^1.0.1 - path: ^1.8.0 - source_span: ^1.8.1 - string_scanner: ^1.1.0 - symbol_table: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/symbol_table - pedantic: ^1.11.0 -executables: - jael_language_server: jael_language_server \ No newline at end of file