From c2aed5b64b3fb5e21ff01b5f914fbe65865457b8 Mon Sep 17 00:00:00 2001 From: Jason Rogers Date: Tue, 17 Sep 2019 17:59:30 -0400 Subject: [PATCH] Add Stardog GraphQL language server --- vscode-langserver-sms/CHANGELOG.md | 3 + vscode-langserver-sms/README.md | 1 + vscode-langserver-sms/src/extension.ts | 4 + vscode-langserver-sparql/CHANGELOG.md | 6 + vscode-langserver-sparql/package.json | 2 +- .../CHANGELOG.md | 5 + vscode-langserver-stardog-graphql/LICENSE | 192 ++++ vscode-langserver-stardog-graphql/README.md | 21 + .../fixtures/bad/basic-bad-graphql.graphql | 5 + .../fixtures/good/basic-good-graphql.graphql | 5 + .../out/extension.js | 43 + .../out/extension.js.map | 1 + .../out/test/extension.test.js | 234 +++++ .../out/test/extension.test.js.map | 1 + .../out/test/index.js | 23 + .../out/test/index.js.map | 1 + .../package.json | 58 ++ .../scripts/e2e-tests.sh | 7 + .../src/extension.ts | 64 ++ .../src/test/extension.test.ts | 242 +++++ .../src/test/index.ts | 23 + .../tsconfig.json | 14 + vscode-langserver-stardog-graphql/tslint.json | 12 + vscode-langserver-stardog-graphql/yarn.lock | 912 ++++++++++++++++++ vscode-langserver-turtle/CHANGELOG.md | 3 + 25 files changed, 1881 insertions(+), 1 deletion(-) create mode 100644 vscode-langserver-stardog-graphql/CHANGELOG.md create mode 100644 vscode-langserver-stardog-graphql/LICENSE create mode 100644 vscode-langserver-stardog-graphql/README.md create mode 100644 vscode-langserver-stardog-graphql/fixtures/bad/basic-bad-graphql.graphql create mode 100644 vscode-langserver-stardog-graphql/fixtures/good/basic-good-graphql.graphql create mode 100644 vscode-langserver-stardog-graphql/out/extension.js create mode 100644 vscode-langserver-stardog-graphql/out/extension.js.map create mode 100644 vscode-langserver-stardog-graphql/out/test/extension.test.js create mode 100644 vscode-langserver-stardog-graphql/out/test/extension.test.js.map create mode 100644 vscode-langserver-stardog-graphql/out/test/index.js create mode 100644 vscode-langserver-stardog-graphql/out/test/index.js.map create mode 100644 vscode-langserver-stardog-graphql/package.json create mode 100644 vscode-langserver-stardog-graphql/scripts/e2e-tests.sh create mode 100644 vscode-langserver-stardog-graphql/src/extension.ts create mode 100644 vscode-langserver-stardog-graphql/src/test/extension.test.ts create mode 100644 vscode-langserver-stardog-graphql/src/test/index.ts create mode 100644 vscode-langserver-stardog-graphql/tsconfig.json create mode 100644 vscode-langserver-stardog-graphql/tslint.json create mode 100644 vscode-langserver-stardog-graphql/yarn.lock diff --git a/vscode-langserver-sms/CHANGELOG.md b/vscode-langserver-sms/CHANGELOG.md index 932064a..fb5f571 100644 --- a/vscode-langserver-sms/CHANGELOG.md +++ b/vscode-langserver-sms/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log All notable changes to the "vscode-langserver-sms" extension will be documented in this file. +## [0.1.0] +- Add snippet support for basic SMS2 mapping + ## [0.0.1] - Initial release diff --git a/vscode-langserver-sms/README.md b/vscode-langserver-sms/README.md index 1e075ea..b7cb279 100644 --- a/vscode-langserver-sms/README.md +++ b/vscode-langserver-sms/README.md @@ -10,6 +10,7 @@ Server Protocol. - Hover tooltips (identifies entities in SMS grammar and shows "expected" symbols in the case of an error) - Syntax highlighting (via the `stardog-rdf-grammars` extension) +- Snippet suggestions - Open source - No arbitrary code execution - Powers some of the core language intelligence capabilities of [Stardog Studio](https://www.stardog.com/studio/) diff --git a/vscode-langserver-sms/src/extension.ts b/vscode-langserver-sms/src/extension.ts index 55ff37b..2348f4a 100644 --- a/vscode-langserver-sms/src/extension.ts +++ b/vscode-langserver-sms/src/extension.ts @@ -43,6 +43,10 @@ export function activate(context: vscode.ExtensionContext) { { scheme: "file", language: "stardog-mapping-syntax" + }, + { + scheme: "file", + language: "sms2" } ] }; diff --git a/vscode-langserver-sparql/CHANGELOG.md b/vscode-langserver-sparql/CHANGELOG.md index aea29ea..2e545a3 100644 --- a/vscode-langserver-sparql/CHANGELOG.md +++ b/vscode-langserver-sparql/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log All notable changes to the "vscode-langserver-sparql" extension will be documented in this file. +## [0.1.0] +- Follow convention and suggest SPARQL keywords in uppercase +- Add support for Stardog's UNNEST keyword +- Prefix relationships and types when prefixes are available +- Better autocompletion in cases where longer alternatives exist + ## [0.0.1] - Initial release \ No newline at end of file diff --git a/vscode-langserver-sparql/package.json b/vscode-langserver-sparql/package.json index 0c6d50c..2b4f3b5 100644 --- a/vscode-langserver-sparql/package.json +++ b/vscode-langserver-sparql/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "displayName": "SPARQL Language Server (with Stardog extensions)", "description": "Language intelligence (autocomplete, diagnostics, etc.) for SPARQL (W3C + Stardog extensions)", - "version": "0.0.3", + "version": "0.1.0", "contributors": [ { "name": "Jason Rogers", diff --git a/vscode-langserver-stardog-graphql/CHANGELOG.md b/vscode-langserver-stardog-graphql/CHANGELOG.md new file mode 100644 index 0000000..aea29ea --- /dev/null +++ b/vscode-langserver-stardog-graphql/CHANGELOG.md @@ -0,0 +1,5 @@ +# Change Log +All notable changes to the "vscode-langserver-sparql" extension will be documented in this file. + +## [0.0.1] +- Initial release \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/LICENSE b/vscode-langserver-stardog-graphql/LICENSE new file mode 100644 index 0000000..f5f3150 --- /dev/null +++ b/vscode-langserver-stardog-graphql/LICENSE @@ -0,0 +1,192 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2017 Stardog Union. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/README.md b/vscode-langserver-stardog-graphql/README.md new file mode 100644 index 0000000..ecc2181 --- /dev/null +++ b/vscode-langserver-stardog-graphql/README.md @@ -0,0 +1,21 @@ +# vscode-langserver-stardog-graphql + +A Visual Studio Code extension providing language intelligence (autocomplete, +diagnostics, hover tooltips, etc.) for [GraphQL](https://graphql.github.io/) with +Stardog extensions (especially for use with [Stardog](https://www.stardog.com/)) via the +Language Server Protocol. + +## Features + +- Autocompletion for GraphQL directives, especially those specific to Stardog +- Diagnostics (error hints) +- Hover tooltips (identifies entities in GraphQL grammar and shows "expected" +symbols in the case of an error) +- Syntax highlighting +- Open source +- No arbitrary code execution +- Powers some of the core language intelligence capabilities of [Stardog Studio](https://www.stardog.com/studio/) + +## License + +Apache-2.0 diff --git a/vscode-langserver-stardog-graphql/fixtures/bad/basic-bad-graphql.graphql b/vscode-langserver-stardog-graphql/fixtures/bad/basic-bad-graphql.graphql new file mode 100644 index 0000000..32e9091 --- /dev/null +++ b/vscode-langserver-stardog-graphql/fixtures/bad/basic-bad-graphql.graphql @@ -0,0 +1,5 @@ +{ + Human @bind() { + - + } +} \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/fixtures/good/basic-good-graphql.graphql b/vscode-langserver-stardog-graphql/fixtures/good/basic-good-graphql.graphql new file mode 100644 index 0000000..b296442 --- /dev/null +++ b/vscode-langserver-stardog-graphql/fixtures/good/basic-good-graphql.graphql @@ -0,0 +1,5 @@ +query MyQuery @prefix(test: "test") { + test_Something { + name @optional + } +} diff --git a/vscode-langserver-stardog-graphql/out/extension.js b/vscode-langserver-stardog-graphql/out/extension.js new file mode 100644 index 0000000..f5d3e32 --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/extension.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const vscode_languageclient_1 = require("vscode-languageclient"); +let client; +function activate(context) { + const server = context.asAbsolutePath(path.join("node_modules", "stardog-graphql-language-server", "dist", "cli.js")); + const baseServerOptions = { + module: server, + transport: vscode_languageclient_1.TransportKind.stdio, + args: ["--stdio"] + }; + const serverOptions = { + run: baseServerOptions, + debug: Object.assign({}, baseServerOptions, { + // allow attaching VSCode in debug mode: + options: { + execArgv: ["--nolazy", "--inspect=6009"] + } }) + }; + const clientOptions = { + documentSelector: [ + { + scheme: "file", + language: "graphql" + }, + { + scheme: "file", + language: "stardog-graphql" + } + ] + }; + client = new vscode_languageclient_1.LanguageClient("stardogGraphQlLanguageServer", "Stardog GraphQL Language Server", serverOptions, clientOptions); + client.start(); +} +exports.activate = activate; +function deactivate() { + if (client) { + return client.stop(); + } +} +exports.deactivate = deactivate; +//# sourceMappingURL=extension.js.map \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/out/extension.js.map b/vscode-langserver-stardog-graphql/out/extension.js.map new file mode 100644 index 0000000..f418cc7 --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/extension.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAE7B,iEAM+B;AAE/B,IAAI,MAAsB,CAAC;AAE3B,kBAAyB,OAAgC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CACnC,IAAI,CAAC,IAAI,CACP,cAAc,EACd,iCAAiC,EACjC,MAAM,EACN,QAAQ,CACT,CACF,CAAC;IACF,MAAM,iBAAiB,GAAe;QACpC,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,qCAAa,CAAC,KAAK;QAC9B,IAAI,EAAE,CAAC,SAAS,CAAC;KAClB,CAAC;IACF,MAAM,aAAa,GAAkB;QACnC,GAAG,EAAE,iBAAiB;QACtB,KAAK,oBACA,iBAAiB;YACpB,wCAAwC;YACxC,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;aACzC,GACF;KACF,CAAC;IACF,MAAM,aAAa,GAA0B;QAC3C,gBAAgB,EAAE;YAChB;gBACE,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,SAAS;aACpB;YACD;gBACE,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;SACF;KACF,CAAC;IAEF,MAAM,GAAG,IAAI,sCAAc,CACzB,8BAA8B,EAC9B,iCAAiC,EACjC,aAAa,EACb,aAAa,CACd,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC;AA7CD,4BA6CC;AAED;IACE,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;AACH,CAAC;AAJD,gCAIC"} \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/out/test/extension.test.js b/vscode-langserver-stardog-graphql/out/test/extension.test.js new file mode 100644 index 0000000..a112980 --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/test/extension.test.js @@ -0,0 +1,234 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const chai_1 = require("chai"); +const path = require("path"); +const vscode = require("vscode"); +const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); +describe("Stardog GraphQL Language Server Extension", () => { + let docUri; + let document; + beforeEach(() => __awaiter(this, void 0, void 0, function* () { + const ext = vscode.extensions.getExtension("stardog-union.vscode-langserver-stardog-graphql"); + yield ext.activate(); + docUri = vscode.Uri.file(path.join(__dirname, "..", "..", "fixtures", "bad", "basic-bad-graphql.graphql")); + document = yield vscode.workspace.openTextDocument(docUri); + yield vscode.window.showTextDocument(document); + yield sleep(2000); // let server start + })); + afterEach(() => { + document = null; + }); + it("receives error diagnostics from the server", () => { + const receivedDiagnostics = vscode.languages.getDiagnostics(docUri); + const normalizedReceivedDiagnostics = JSON.parse(JSON.stringify(receivedDiagnostics)); + chai_1.expect(normalizedReceivedDiagnostics).to.eql([ + { + severity: "Error", + message: "'to' expected.", + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 15 + } + ], + source: "BindDirective" + }, + { + severity: "Error", + message: "\tExpected one of the following:\n Name\n '...'", + range: [ + { + line: 3, + character: 2 + }, + { + line: 3, + character: 3 + } + ], + source: "SelectionSet" + }, + { + severity: "Error", + message: "Expected EOF.", + range: [ + { + line: 4, + character: 0 + }, + { + line: 4, + character: 1 + } + ] + } + ]); + }); + it("receives hover help from the server", () => __awaiter(this, void 0, void 0, function* () { + docUri = vscode.Uri.file(path.join(__dirname, "..", "..", "fixtures", "good", "basic-good-graphql.graphql")); + document = yield vscode.workspace.openTextDocument(docUri); + yield vscode.window.showTextDocument(document); + yield sleep(2000); // let server start + const hoverHelp = (yield vscode.commands.executeCommand("vscode.executeHoverProvider", docUri, new vscode.Position(0, 19))); + const normalizedHoverHelp = JSON.parse(JSON.stringify(hoverHelp)); + chai_1.expect(normalizedHoverHelp[0].contents[0].value).to.eql("```\nPrefixDirective\n```"); + chai_1.expect(normalizedHoverHelp[0].range).to.eql([ + { + line: 0, + character: 15 + }, + { + line: 0, + character: 35 + } + ]); + })); + // Note that this test and the one above also test error-tolerance, since + // the language assistance comes after a parse error. + it("receives completion suggestions from the server", () => __awaiter(this, void 0, void 0, function* () { + console.log(document.getText().slice(15)); + const completions = (yield vscode.commands.executeCommand("vscode.executeCompletionItemProvider", docUri, new vscode.Position(1, 14))); + const normalizedSuggestedCompletion = JSON.parse(JSON.stringify(completions.items)); + chai_1.expect(normalizedSuggestedCompletion).to.eql([ + { + label: "first", + kind: "EnumMember", + insertText: "first", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "first" + } + }, + { + label: "iri", + kind: "EnumMember", + insertText: "iri", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "iri" + } + }, + { + label: "limit", + kind: "EnumMember", + insertText: "limit", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "limit" + } + }, + { + label: "offset", + kind: "EnumMember", + insertText: "offset", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "offset" + } + }, + { + label: "orderBy", + kind: "EnumMember", + insertText: "orderBy", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "orderBy" + } + }, + { + label: "skip", + kind: "EnumMember", + insertText: "skip", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "skip" + } + }, + { + label: "to", + kind: "EnumMember", + insertText: "to", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "to" + } + } + ]); + })); +}); +//# sourceMappingURL=extension.test.js.map \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/out/test/extension.test.js.map b/vscode-langserver-stardog-graphql/out/test/extension.test.js.map new file mode 100644 index 0000000..acad9ec --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/test/extension.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.test.js","sourceRoot":"","sources":["../../src/test/extension.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/out/test/index.js b/vscode-langserver-stardog-graphql/out/test/index.js new file mode 100644 index 0000000..ed6ec92 --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/test/index.js @@ -0,0 +1,23 @@ +"use strict"; +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. +Object.defineProperty(exports, "__esModule", { value: true }); +const testRunner = require("vscode/lib/testrunner"); +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: "bdd", + useColors: true, + timeout: 10000 // allow VSCode and server time to start +}); +module.exports = testRunner; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/out/test/index.js.map b/vscode-langserver-stardog-graphql/out/test/index.js.map new file mode 100644 index 0000000..5a8d715 --- /dev/null +++ b/vscode-langserver-stardog-graphql/out/test/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,8EAA8E;AAC9E,oDAAoD;AACpD,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,iFAAiF;AACjF,gFAAgF;AAChF,oDAAoD;;AAEpD,oDAAoD;AAEpD,6EAA6E;AAC7E,mGAAmG;AACnG,UAAU,CAAC,SAAS,CAAC;IACnB,EAAE,EAAE,KAAK;IACT,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,KAAK,CAAC,wCAAwC;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC"} \ No newline at end of file diff --git a/vscode-langserver-stardog-graphql/package.json b/vscode-langserver-stardog-graphql/package.json new file mode 100644 index 0000000..eca68e9 --- /dev/null +++ b/vscode-langserver-stardog-graphql/package.json @@ -0,0 +1,58 @@ +{ + "name": "vscode-langserver-stardog-graphql", + "publisher": "stardog-union", + "license": "Apache-2.0", + "displayName": "GraphQL Language Server (with Stardog extensions)", + "description": "Language intelligence (autocomplete, diagnostics, etc.) for GraphQL (with Stardog extensions)", + "version": "0.0.1", + "contributors": [ + { + "name": "Jason Rogers", + "email": "jason@stardog.com" + } + ], + "repository": { + "type": "git", + "url": "git+https://github.com/stardog-union/stardog-vsc.git" + }, + "bugs": { + "url": "https://github.com/stardog-union/stardog-vsc/issues" + }, + "homepage": "https://github.com/stardog-union/stardog-vsc/vscode-langserver-stardog-graphql/#readme", + "engines": { + "vscode": "^1.30.0" + }, + "categories": [ + "Programming Languages", + "Linters", + "Other" + ], + "activationEvents": [ + "onLanguage:graphql", + "onLanguage:stardog-graphql" + ], + "main": "./out/extension", + "scripts": { + "vscode:prepublish": "yarn run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "postinstall": "node ./node_modules/vscode/bin/install", + "test": "yarn run compile && sh ./scripts/e2e-tests.sh" + }, + "devDependencies": { + "@types/chai": "^4.1.7", + "@types/mocha": "^2.2.42", + "@types/node": "^8.10.25", + "chai": "^4.2.0", + "tslint": "^5.8.0", + "typescript": "^2.6.1" + }, + "dependencies": { + "stardog-graphql-language-server": "^1.1.3", + "vscode": "^1.1.26", + "vscode-languageclient": "^5.2.1" + }, + "extensionDependencies": [ + "stardog-union.stardog-rdf-grammars" + ] +} diff --git a/vscode-langserver-stardog-graphql/scripts/e2e-tests.sh b/vscode-langserver-stardog-graphql/scripts/e2e-tests.sh new file mode 100644 index 0000000..c2b3976 --- /dev/null +++ b/vscode-langserver-stardog-graphql/scripts/e2e-tests.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +export CODE_TESTS_PATH="$(pwd)/out/test" +export CODE_TESTS_WORKSPACE="--disable-extensions $(pwd)/fixtures" +export CODE_EXTENSIONS_PATH="$(pwd)/.." + +node "$(pwd)/node_modules/vscode/bin/test" diff --git a/vscode-langserver-stardog-graphql/src/extension.ts b/vscode-langserver-stardog-graphql/src/extension.ts new file mode 100644 index 0000000..d11e47c --- /dev/null +++ b/vscode-langserver-stardog-graphql/src/extension.ts @@ -0,0 +1,64 @@ +import * as path from "path"; +import * as vscode from "vscode"; +import { + LanguageClient, + LanguageClientOptions, + ServerOptions, + TransportKind, + NodeModule +} from "vscode-languageclient"; + +let client: LanguageClient; + +export function activate(context: vscode.ExtensionContext) { + const server = context.asAbsolutePath( + path.join( + "node_modules", + "stardog-graphql-language-server", + "dist", + "cli.js" + ) + ); + const baseServerOptions: NodeModule = { + module: server, + transport: TransportKind.stdio, + args: ["--stdio"] + }; + const serverOptions: ServerOptions = { + run: baseServerOptions, + debug: { + ...baseServerOptions, + // allow attaching VSCode in debug mode: + options: { + execArgv: ["--nolazy", "--inspect=6009"] + } + } + }; + const clientOptions: LanguageClientOptions = { + documentSelector: [ + { + scheme: "file", + language: "graphql" + }, + { + scheme: "file", + language: "stardog-graphql" + } + ] + }; + + client = new LanguageClient( + "stardogGraphQlLanguageServer", + "Stardog GraphQL Language Server", + serverOptions, + clientOptions + ); + + client.start(); +} + +export function deactivate() { + if (client) { + return client.stop(); + } +} diff --git a/vscode-langserver-stardog-graphql/src/test/extension.test.ts b/vscode-langserver-stardog-graphql/src/test/extension.test.ts new file mode 100644 index 0000000..1eb63fb --- /dev/null +++ b/vscode-langserver-stardog-graphql/src/test/extension.test.ts @@ -0,0 +1,242 @@ +import { expect } from "chai"; +import * as path from "path"; +import * as vscode from "vscode"; + +const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); + +describe("Stardog GraphQL Language Server Extension", () => { + let docUri: vscode.Uri; + let document: vscode.TextDocument | null; + + beforeEach(async () => { + const ext = vscode.extensions.getExtension("stardog-union.vscode-langserver-stardog-graphql")!; + await ext.activate(); + docUri = vscode.Uri.file( + path.join(__dirname, "..", "..", "fixtures", "bad", "basic-bad-graphql.graphql") + ); + document = await vscode.workspace.openTextDocument(docUri); + await vscode.window.showTextDocument(document); + await sleep(2000); // let server start + }); + + afterEach(() => { + document = null; + }); + + it("receives error diagnostics from the server", () => { + const receivedDiagnostics = vscode.languages.getDiagnostics(docUri); + const normalizedReceivedDiagnostics = JSON.parse(JSON.stringify(receivedDiagnostics)); + expect(normalizedReceivedDiagnostics).to.eql([ + { + severity: "Error", + message: "'to' expected.", + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 15 + } + ], + source: "BindDirective" + }, + { + severity: "Error", + message: "\tExpected one of the following:\n Name\n '...'", + range: [ + { + line: 3, + character: 2 + }, + { + line: 3, + character: 3 + } + ], + source: "SelectionSet" + }, + { + severity: "Error", + message: "Expected EOF.", + range: [ + { + line: 4, + character: 0 + }, + { + line: 4, + character: 1 + } + ] + } + ]); + }); + + it("receives hover help from the server", async () => { + docUri = vscode.Uri.file( + path.join(__dirname, "..", "..", "fixtures", "good", "basic-good-graphql.graphql") + ); + document = await vscode.workspace.openTextDocument(docUri); + await vscode.window.showTextDocument(document); + await sleep(2000); // let server start + const hoverHelp = (await vscode.commands.executeCommand( + "vscode.executeHoverProvider", + docUri, + new vscode.Position(0, 19) + )) as vscode.Hover; + const normalizedHoverHelp = JSON.parse(JSON.stringify(hoverHelp)); + expect(normalizedHoverHelp[0].contents[0].value).to.eql("```\nPrefixDirective\n```"); + expect(normalizedHoverHelp[0].range).to.eql([ + { + line: 0, + character: 15 + }, + { + line: 0, + character: 35 + } + ]); + }); + + // Note that this test and the one above also test error-tolerance, since + // the language assistance comes after a parse error. + it("receives completion suggestions from the server", async () => { + console.log((document as vscode.TextDocument).getText().slice(15)); + const completions = (await vscode.commands.executeCommand( + "vscode.executeCompletionItemProvider", + docUri, + new vscode.Position(1, 14) + )) as vscode.CompletionList; + const normalizedSuggestedCompletion = JSON.parse(JSON.stringify(completions.items)); + expect(normalizedSuggestedCompletion).to.eql([ + { + label: "first", + kind: "EnumMember", + insertText: "first", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "first" + } + }, + { + label: "iri", + kind: "EnumMember", + insertText: "iri", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "iri" + } + }, + { + label: "limit", + kind: "EnumMember", + insertText: "limit", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "limit" + } + }, + { + label: "offset", + kind: "EnumMember", + insertText: "offset", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "offset" + } + }, + { + label: "orderBy", + kind: "EnumMember", + insertText: "orderBy", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "orderBy" + } + }, + { + label: "skip", + kind: "EnumMember", + insertText: "skip", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "skip" + } + }, + { + label: "to", + kind: "EnumMember", + insertText: "to", + textEdit: { + range: [ + { + line: 1, + character: 14 + }, + { + line: 1, + character: 14 + } + ], + newText: "to" + } + } + ]); + }); +}); diff --git a/vscode-langserver-stardog-graphql/src/test/index.ts b/vscode-langserver-stardog-graphql/src/test/index.ts new file mode 100644 index 0000000..b018338 --- /dev/null +++ b/vscode-langserver-stardog-graphql/src/test/index.ts @@ -0,0 +1,23 @@ +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +import * as testRunner from "vscode/lib/testrunner"; + +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: "bdd", + useColors: true, // colored output from test results + timeout: 10000 // allow VSCode and server time to start +}); + +module.exports = testRunner; diff --git a/vscode-langserver-stardog-graphql/tsconfig.json b/vscode-langserver-stardog-graphql/tsconfig.json new file mode 100644 index 0000000..4eec790 --- /dev/null +++ b/vscode-langserver-stardog-graphql/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "outDir": "out", + "lib": ["es6"], + "sourceMap": true, + "rootDir": "src", + "strict": true, + "skipLibCheck": true, + "noUnusedLocals": true + }, + "exclude": ["node_modules", ".vscode-test"] +} diff --git a/vscode-langserver-stardog-graphql/tslint.json b/vscode-langserver-stardog-graphql/tslint.json new file mode 100644 index 0000000..2407102 --- /dev/null +++ b/vscode-langserver-stardog-graphql/tslint.json @@ -0,0 +1,12 @@ +{ + "rules": { + "no-string-throw": true, + "no-unused-expression": true, + "no-duplicate-variable": true, + "curly": true, + "class-name": true, + "semicolon": [true, "always"], + "triple-equals": true + }, + "defaultSeverity": "warning" +} diff --git a/vscode-langserver-stardog-graphql/yarn.lock b/vscode-langserver-stardog-graphql/yarn.lock new file mode 100644 index 0000000..cf71710 --- /dev/null +++ b/vscode-langserver-stardog-graphql/yarn.lock @@ -0,0 +1,912 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@types/chai@^4.1.7": + version "4.2.2" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.2.2.tgz#6b825013863d04868c15624ec8b7fdced88a47c6" + integrity sha512-8V2aCcPM3WLuJvJpF6N60uUvdZb7NHjpjQlLk1QmZbTP4XZET/FX0c3TJ3K7qt4L98FS1Pifa8BVofTVuJFWVA== + +"@types/mocha@^2.2.42": + version "2.2.48" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" + integrity sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw== + +"@types/node@^8.10.25": + version "8.10.54" + resolved "https://registry.npmjs.org/@types/node/-/node-8.10.54.tgz#1c88eb253ac1210f1a5876953fb70f7cc4928402" + integrity sha512-kaYyLYf6ICn6/isAyD4K1MyWWd5Q3JgH6bnMN089LUx88+s4W8GvK9Q6JMBVu5vsFFp7pMdSxdKmlBXwH/VFRg== + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + 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-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/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.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/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.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^2.0.0, chalk@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chevrotain@4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/chevrotain/-/chevrotain-4.4.0.tgz#552366430143c8b28cad654f92aa83711edbd1c9" + integrity sha512-CS0auzIhlLxo9RCVarVZJIsKj339jJrLIdCbX3rwk/kTu7+VkYdiXiAD8aJOXJEcRc1GGcbOQ587e/85+xLxaA== + dependencies: + regexp-to-ast "0.4.0" + +class-autobind-decorator@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/class-autobind-decorator/-/class-autobind-decorator-3.0.1.tgz#e55912cd79eed3b9244b6df4835b3d6fedde9c69" + integrity sha512-/5QCUe6KYGIMDDFEI/UrVc3egWVTVhuK00ppY/8sS/9f0KapY5Y2TirBbM1qICRq0p0WafuTaMfEGL2GKHcN0Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + +commander@^2.12.1: + version "2.20.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/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.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/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" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/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@^7.1.1, glob@^7.1.2: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + 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" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.npmjs.org/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@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +he@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/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" + +https-proxy-agent@^2.2.1: + version "2.2.2" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/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.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/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" + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= + +millan@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/millan/-/millan-3.0.0.tgz#09de2febcbbfe2bcc406010e0186dc62df4876ec" + integrity sha512-MdAZyGqs+eRgT99yNrpKXZuGVLBLAjnV1XkBpnojP90d53RR3yXt394RzEAplvdOZS3a4VeAOt5a9ekcHBmIdQ== + dependencies: + chevrotain "4.4.0" + escape-string-regexp "^2.0.0" + lodash.isequal "^4.5.0" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/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.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +mkdirp@0.5.1, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +psl@^1.1.24: + version "1.4.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/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.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +regexp-to-ast@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz#f3dbcb42726cd71902ba50193f63eab5325cd7cb" + integrity sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw== + +request@^2.88.0: + version "2.88.0" + resolved "https://registry.npmjs.org/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.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve@^1.3.2: + version "1.12.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.0" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +source-map-support@^0.5.0: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + 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" + +stardog-graphql-language-server@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/stardog-graphql-language-server/-/stardog-graphql-language-server-1.1.3.tgz#90be84d0847d71ec293d5a52fa2d940773861a3f" + integrity sha512-DjoGGyxxqXfu0D12GY80rVhY7YkxsmrRCtMyT3v0JFc6/+MvgCcc9IdUDvsaav0NNajozOFMnOHrfsSqvoy+hg== + dependencies: + class-autobind-decorator "^3.0.1" + lodash.uniqby "^4.7.0" + millan "^3.0.0" + stardog-language-utils "^1.5.2" + vscode-languageserver "^5.2.1" + +stardog-language-utils@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/stardog-language-utils/-/stardog-language-utils-1.5.2.tgz#3e17cd24a52a7d33bf24a7551cebd0f82b9a3d98" + integrity sha512-Z3VIgHvYVT4tiGUsLESSbuhnkqsnKODBaMXdQ5D9pYBWnuT485WkAc1Sl5IXAWEcxtpmbqz3XDBP69KozTz83g== + dependencies: + chevrotain "4.4.0" + escape-string-regexp "^1.0.5" + lodash.uniqby "^4.7.0" + millan "^3.0.0" + vscode-languageserver "^5.2.1" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/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" + +tslib@^1.8.0, tslib@^1.8.1: + version "1.10.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslint@^5.8.0: + version "5.20.0" + resolved "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz#fac93bfa79568a5a24e7be9cdde5e02b02d00ec1" + integrity sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/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.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +typescript@^2.6.1: + version "2.9.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" + integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +url-parse@^1.4.4: + version "1.4.7" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/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" + +vscode-jsonrpc@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" + integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== + +vscode-languageclient@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" + integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== + dependencies: + semver "^5.5.0" + vscode-languageserver-protocol "3.14.1" + +vscode-languageserver-protocol@3.14.1: + version "3.14.1" + resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f" + integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g== + dependencies: + vscode-jsonrpc "^4.0.0" + vscode-languageserver-types "3.14.0" + +vscode-languageserver-types@3.14.0: + version "3.14.0" + resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" + integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== + +vscode-languageserver@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz#0d2feddd33f92aadf5da32450df498d52f6f14eb" + integrity sha512-GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A== + dependencies: + vscode-languageserver-protocol "3.14.1" + vscode-uri "^1.0.6" + +vscode-test@^0.4.1: + version "0.4.3" + resolved "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz#461ebf25fc4bc93d77d982aed556658a2e2b90b8" + integrity sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w== + dependencies: + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + +vscode-uri@^1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.8.tgz#9769aaececae4026fb6e22359cb38946580ded59" + integrity sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ== + +vscode@^1.1.26: + version "1.1.36" + resolved "https://registry.npmjs.org/vscode/-/vscode-1.1.36.tgz#5e1a0d1bf4977d0c7bc5159a9a13d5b104d4b1b6" + integrity sha512-cGFh9jmGLcTapCpPCKvn8aG/j9zVQ+0x5hzYJq5h5YyUXVGa1iamOaB2M2PZXoumQPES4qeAP1FwkI0b6tL4bQ== + dependencies: + glob "^7.1.2" + mocha "^5.2.0" + request "^2.88.0" + semver "^5.4.1" + source-map-support "^0.5.0" + url-parse "^1.4.4" + vscode-test "^0.4.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/vscode-langserver-turtle/CHANGELOG.md b/vscode-langserver-turtle/CHANGELOG.md index 3c637f4..67bfab4 100644 --- a/vscode-langserver-turtle/CHANGELOG.md +++ b/vscode-langserver-turtle/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log All notable changes to the "vscode-langserver-turtle" extension will be documented in this file. +## [0.1.0] +- New millan/chevrotain dependencies + ## [0.0.1] - Initial release \ No newline at end of file