From 8724ad480696fce9114ca025e453a2716d0ffaee Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 15 Nov 2018 18:42:11 +0100 Subject: [PATCH] add better sample for virtual documents --- virtual-document-sample/.gitignore | 2 + virtual-document-sample/.vscode/launch.json | 21 + virtual-document-sample/.vscode/settings.json | 11 + virtual-document-sample/.vscode/tasks.json | 20 + virtual-document-sample/.vscodeignore | 9 + virtual-document-sample/README.md | 14 + virtual-document-sample/package-lock.json | 2447 +++++++++++++++++ virtual-document-sample/package.json | 42 + virtual-document-sample/preview.png | Bin 0 -> 35544 bytes virtual-document-sample/src/cowsay.d.ts | 14 + virtual-document-sample/src/extension.ts | 31 + virtual-document-sample/tsconfig.json | 17 + 12 files changed, 2628 insertions(+) create mode 100644 virtual-document-sample/.gitignore create mode 100644 virtual-document-sample/.vscode/launch.json create mode 100644 virtual-document-sample/.vscode/settings.json create mode 100644 virtual-document-sample/.vscode/tasks.json create mode 100644 virtual-document-sample/.vscodeignore create mode 100644 virtual-document-sample/README.md create mode 100644 virtual-document-sample/package-lock.json create mode 100644 virtual-document-sample/package.json create mode 100644 virtual-document-sample/preview.png create mode 100644 virtual-document-sample/src/cowsay.d.ts create mode 100644 virtual-document-sample/src/extension.ts create mode 100644 virtual-document-sample/tsconfig.json diff --git a/virtual-document-sample/.gitignore b/virtual-document-sample/.gitignore new file mode 100644 index 00000000..8e5962ee --- /dev/null +++ b/virtual-document-sample/.gitignore @@ -0,0 +1,2 @@ +out +node_modules \ No newline at end of file diff --git a/virtual-document-sample/.vscode/launch.json b/virtual-document-sample/.vscode/launch.json new file mode 100644 index 00000000..54cc3422 --- /dev/null +++ b/virtual-document-sample/.vscode/launch.json @@ -0,0 +1,21 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +{ + "version": "0.1.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}" + ], + "stopOnEntry": false, + "sourceMaps": true, + "outFiles": [ + "${workspaceRoot}/out/src/**/*.js" + ], + "preLaunchTask": "npm: watch" + } + ] +} diff --git a/virtual-document-sample/.vscode/settings.json b/virtual-document-sample/.vscode/settings.json new file mode 100644 index 00000000..dfcf0a56 --- /dev/null +++ b/virtual-document-sample/.vscode/settings.json @@ -0,0 +1,11 @@ +// 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 + }, + "typescript.tsdk": "./node_modules/typescript/lib", // we want to use the TS server from our node_modules folder to control its version + "typescript.tsc.autoDetect": "off" // Turn off tsc task auto detection since we have the necessary task as npm scripts +} \ No newline at end of file diff --git a/virtual-document-sample/.vscode/tasks.json b/virtual-document-sample/.vscode/tasks.json new file mode 100644 index 00000000..3f2783c3 --- /dev/null +++ b/virtual-document-sample/.vscode/tasks.json @@ -0,0 +1,20 @@ +// 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/virtual-document-sample/.vscodeignore b/virtual-document-sample/.vscodeignore new file mode 100644 index 00000000..795e7143 --- /dev/null +++ b/virtual-document-sample/.vscodeignore @@ -0,0 +1,9 @@ +.vscode/** +typings/** +out/test/** +test/** +src/** +**/*.map +.gitignore +tsconfig.json +vsc-extension-quickstart.md diff --git a/virtual-document-sample/README.md b/virtual-document-sample/README.md new file mode 100644 index 00000000..4547e575 --- /dev/null +++ b/virtual-document-sample/README.md @@ -0,0 +1,14 @@ +# Virtual Document Sample + +This is a sample extension that shows how to add virtual documents to the editor. + +![cowsay](https://raw.githubusercontent.com/Microsoft/vscode-extension-samples/master/virtual-document-sample/README.md) + + +## VS Code API + +### `vscode` module + +- [`workspace.registerTextDocumentContentProvider`](https://code.visualstudio.com/docs/extensionAPI/vscode-api#workspace.registerTextDocumentContentProvider) +- [`commands.registerCommand`](https://code.visualstudio.com/docs/extensionAPI/vscode-api#commands.registerCommand) +- [`window.showInputBox`](https://code.visualstudio.com/docs/extensionAPI/vscode-api#window.showInputBox) diff --git a/virtual-document-sample/package-lock.json b/virtual-document-sample/package-lock.json new file mode 100644 index 00000000..ca57f1e9 --- /dev/null +++ b/virtual-document-sample/package-lock.json @@ -0,0 +1,2447 @@ +{ + "name": "virtual-document-sample", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "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-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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 + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "1.0.0" + } + }, + "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.1.0", + "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.3" + } + }, + "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.2" + } + }, + "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.5" + } + }, + "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.3" + } + }, + "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.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" + } + }, + "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-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "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.3", + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.6" + } + }, + "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" + } + }, + "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.2" + } + }, + "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 + }, + "cowsay": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz", + "integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==", + "requires": { + "get-stdin": "5.0.1", + "optimist": "0.6.1", + "string-width": "2.1.1", + "strip-eof": "1.0.0" + } + }, + "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.1" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "1.0.12" + } + }, + "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 + }, + "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.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "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.1", + "safer-buffer": "2.1.2" + } + }, + "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.1", + "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.1" + } + }, + "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.2.4" + } + }, + "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.1.0", + "randomatic": "3.1.1", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" + } + }, + "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 + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "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.2" + } + }, + "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.7", + "mime-types": "2.1.21" + } + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "4.1.15", + "through2": "2.0.5" + } + }, + "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.15", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.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 + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" + }, + "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.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "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.1" + }, + "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.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" + } + } + } + }, + "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.2" + } + }, + "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.2", + "glob": "5.0.15", + "glob-parent": "3.1.0", + "micromatch": "2.3.11", + "ordered-read-streams": "0.3.0", + "through2": "0.6.5", + "to-absolute-glob": "0.1.1", + "unique-stream": "2.2.1" + }, + "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.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "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.34", + "xtend": "4.0.1" + } + } + } + }, + "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.2", + "through2": "2.0.5" + } + }, + "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.1.0", + "plugin-error": "0.1.2", + "streamfilter": "1.0.7" + } + }, + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "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.34", + "xtend": "4.0.1" + } + } + } + }, + "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.6", + "node.extend": "1.1.7", + "request": "2.88.0", + "through2": "2.0.5", + "vinyl": "2.2.0" + }, + "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.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.2", + "remove-trailing-separator": "1.1.0", + "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.6.0", + "graceful-fs": "4.1.15", + "strip-bom": "2.0.0", + "through2": "2.0.5", + "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.4", + "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.6", + "mkdirp": "0.5.1", + "queue": "3.1.0", + "vinyl-fs": "2.4.4" + } + }, + "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.6", + "streamifier": "0.1.1", + "tar": "2.2.1", + "through2": "2.0.5", + "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.4", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulp-vinyl-zip": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.1.tgz", + "integrity": "sha512-OPnsZkMwiU8UbH5BMlYRb/SccOAZUnwUW7mQvqYadap8MMdgN7ae0ua1rMEE2s9EyqqijN1Sdvoz29/MbPaq9Q==", + "dev": true, + "requires": { + "event-stream": "3.3.6", + "queue": "4.5.0", + "through2": "2.0.5", + "vinyl": "2.2.0", + "vinyl-fs": "3.0.3", + "yauzl": "2.10.0", + "yazl": "2.4.3" + }, + "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 + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "3.0.2", + "glob": "7.1.3", + "glob-parent": "3.1.0", + "is-negated-glob": "1.0.0", + "ordered-read-streams": "1.0.1", + "pumpify": "1.5.1", + "readable-stream": "2.3.6", + "remove-trailing-separator": "1.1.0", + "to-absolute-glob": "2.0.2", + "unique-stream": "2.2.1" + } + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6" + } + }, + "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.3" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "1.0.0", + "is-negated-glob": "1.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.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.2", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "1.0.0", + "glob-stream": "6.1.0", + "graceful-fs": "4.1.15", + "is-valid-glob": "1.0.0", + "lazystream": "1.0.0", + "lead": "1.0.0", + "object.assign": "4.1.0", + "pumpify": "1.5.1", + "readable-stream": "2.3.6", + "remove-bom-buffer": "3.0.0", + "remove-bom-stream": "1.2.0", + "resolve-options": "1.1.0", + "through2": "2.0.5", + "to-through": "2.0.0", + "value-or-function": "3.0.0", + "vinyl": "2.2.0", + "vinyl-sourcemap": "1.1.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-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "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.4.1", + "sshpk": "1.15.2" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "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-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "1.0.0", + "is-windows": "1.0.2" + } + }, + "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-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "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.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "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.2.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.6" + } + } + } + }, + "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-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "1.0.0" + } + }, + "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-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "0.1.2" + } + }, + "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 + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "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.3.6" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "1.0.3" + } + }, + "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.3.6" + } + }, + "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.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + }, + "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.1.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" + } + }, + "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.6" + } + } + } + }, + "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.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "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": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "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 + }, + "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.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.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 + }, + "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" + } + } + } + }, + "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.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" + } + }, + "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.1.0" + } + }, + "now-and-later": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", + "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "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-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.0.12" + } + }, + "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.5", + "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.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "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.1.0", + "readable-stream": "2.3.6" + } + }, + "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.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + }, + "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.8" + } + }, + "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.1.0", + "arr-union": "2.1.0", + "extend-shallow": "1.1.4" + } + }, + "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 + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "3.6.1", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, + "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.3" + } + }, + "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.2", + "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.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "1.1.6", + "is-utf8": "0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "3.0.0", + "safe-buffer": "5.1.2", + "through2": "2.0.5" + } + }, + "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.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.21", + "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 + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "3.0.0" + } + }, + "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.1.3" + } + }, + "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.1.1", + "source-map": "0.6.1" + } + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "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.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" + } + }, + "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.8" + } + }, + "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.3.6" + } + }, + "streamifier": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz", + "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "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.2" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.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.1" + } + }, + "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" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "tar": { + "version": "2.2.1", + "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "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.5", + "xtend": "4.0.1" + } + }, + "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.1" + } + } + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "2.0.5" + } + }, + "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.29", + "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.1.2" + } + }, + "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": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "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.1", + "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.1" + } + }, + "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.1.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 + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "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.3.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.6.1", + "glob-stream": "5.3.5", + "graceful-fs": "4.1.15", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "0.3.0", + "lazystream": "1.0.0", + "lodash.isequal": "4.5.0", + "merge-stream": "1.0.1", + "mkdirp": "0.5.1", + "object-assign": "4.1.1", + "readable-stream": "2.3.6", + "strip-bom": "2.0.0", + "strip-bom-stream": "1.0.0", + "through2": "2.0.5", + "through2-filter": "2.0.0", + "vali-date": "1.0.0", + "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.4", + "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.5", + "vinyl": "0.4.6" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "1.0.2", + "convert-source-map": "1.6.0", + "graceful-fs": "4.1.15", + "normalize-path": "2.1.1", + "now-and-later": "2.0.0", + "remove-bom-buffer": "3.0.0", + "vinyl": "2.2.0" + }, + "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.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.2", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } + } + }, + "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.3", + "gulp-chmod": "2.0.0", + "gulp-filter": "5.1.0", + "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.1", + "mocha": "4.1.0", + "request": "2.88.0", + "semver": "5.6.0", + "source-map-support": "0.5.9", + "url-parse": "1.4.4", + "vinyl-source-stream": "1.1.2" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "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.13", + "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.13" + } + } + } +} diff --git a/virtual-document-sample/package.json b/virtual-document-sample/package.json new file mode 100644 index 00000000..8f20652a --- /dev/null +++ b/virtual-document-sample/package.json @@ -0,0 +1,42 @@ +{ + "name": "virtual-document-sample", + "displayName": "Cowsay in virtual documents", + "description": "A sample for virtual document", + "version": "0.0.1", + "publisher": "vscode-samples", + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/vscode-extension-samples" + }, + "bugs": { + "url": "https://github.com/Microsoft/vscode-extension-samples/issues" + }, + "engines": { + "vscode": "^1.29.0" + }, + "categories": [ + "Other" + ], + "activationEvents": [ + "onCommand:cowsay.say" + ], + "main": "./out/extension", + "contributes": { + "commands": { + "command": "cowsay.say", + "title": "cowsay" + } + }, + "scripts": { + "vscode:prepublish": "tsc -p ./", + "watch": "tsc -watch -p ./", + "postinstall": "node ./node_modules/vscode/bin/install" + }, + "dependencies": { + "cowsay": "1.3.1" + }, + "devDependencies": { + "typescript": "^3.1.6", + "vscode": "^1.1.21" + } +} diff --git a/virtual-document-sample/preview.png b/virtual-document-sample/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..6908bcce97db98c1e6bcf7074812e89c552a3bdf GIT binary patch literal 35544 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 BaO400 literal 0 HcmV?d00001 diff --git a/virtual-document-sample/src/cowsay.d.ts b/virtual-document-sample/src/cowsay.d.ts new file mode 100644 index 00000000..294105d8 --- /dev/null +++ b/virtual-document-sample/src/cowsay.d.ts @@ -0,0 +1,14 @@ +declare module 'cowsay' { + + export interface CowsayOptions { + text: string; + cow?: string; + eyes?: string; + tongue?: string; + wrap?: boolean; + wrapLength?: number; + mode?: 'b' | 'd' | 'g' | 'p' | 's' | 't' | 'w' | 'y' + } + + export function say(options: CowsayOptions): string; +} diff --git a/virtual-document-sample/src/extension.ts b/virtual-document-sample/src/extension.ts new file mode 100644 index 00000000..d9e0b85a --- /dev/null +++ b/virtual-document-sample/src/extension.ts @@ -0,0 +1,31 @@ +/*--------------------------------------------------------- + * Copyright (C) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------*/ + +'use strict'; + +import * as vscode from 'vscode'; +import * as cowsay from 'cowsay'; + +export function activate({ subscriptions }: vscode.ExtensionContext) { + + // register a content provider for the cowsay-scheme + const myScheme = 'cowsay'; + const myProvider = new class implements vscode.TextDocumentContentProvider { + provideTextDocumentContent(uri: vscode.Uri): string { + // simply invoke cowsay, use uri-path as text + return cowsay.say({ text: uri.path }); + } + } + subscriptions.push(vscode.workspace.registerTextDocumentContentProvider(myScheme, myProvider)); + + // register a command that opens a cowsay-document + subscriptions.push(vscode.commands.registerCommand('cowsay.say', async () => { + let what = await vscode.window.showInputBox({ placeHolder: 'cowsay...' }); + if (what) { + let uri = vscode.Uri.parse('cowsay:' + what); + let doc = await vscode.workspace.openTextDocument(uri); + await vscode.window.showTextDocument(doc, { preview: false }); + } + })); +} diff --git a/virtual-document-sample/tsconfig.json b/virtual-document-sample/tsconfig.json new file mode 100644 index 00000000..022b83f3 --- /dev/null +++ b/virtual-document-sample/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "outDir": "out", + "lib": [ + "es6" + ], + "strict": true, + "sourceMap": true, + "rootDir": "src" + }, + "exclude": [ + "node_modules", + ".vscode-test" + ] +}