diff --git a/lib/grunt/build.js b/lib/grunt/build.js
index 6763c4c6..702e7fc5 100644
--- a/lib/grunt/build.js
+++ b/lib/grunt/build.js
@@ -747,7 +747,6 @@ module.exports = function (grunt) {
variables[resourceName] = info.resources[resourceName] = JSON.stringify(result);
});
-
config.find("//PropertyGroup/Dependencies/Attachment").forEach(function (attachment, i) {
var attachmentName = attachment.getAttribute("Name") || ("$" + i);
var result = loadAttachment(config, attachment, info);
@@ -1084,7 +1083,7 @@ module.exports = function (grunt) {
var srcFiles = meta.data;
- for (i = 0; i < srcFiles.length; ++i) {
+ for (var i = 0; i < srcFiles.length; ++i) {
if (!isDev()) {
copy(srcFiles[i].src, srcFiles[i].dst); //записываем файл в destFolder
}
diff --git a/lib/grunt/utils.js b/lib/grunt/utils.js
index 08d5d97c..a268e59b 100644
--- a/lib/grunt/utils.js
+++ b/lib/grunt/utils.js
@@ -55,7 +55,7 @@ module.exports = {
function getTagOfCurrentCommit() {
var gitTagResult = shell.exec('git describe --exact-match', { silent: true });
- var gitTagOutput = gitTagResult.output.trim();
+ var gitTagOutput = gitTagResult.stdout.trim();
var branchVersionPattern = new RegExp(package.branchVersion.replace('.', '\\.').replace('*', '\\d+'));
if (gitTagResult.code === 0 && gitTagOutput.match(branchVersionPattern)) {
return gitTagOutput;
@@ -71,7 +71,7 @@ module.exports = {
grep = 'findstr';
}
- var tagMessage = shell.exec('git cat-file -p ' + tagName + ' | ' + grep + ' "codename"', { silent: true }).output;
+ var tagMessage = shell.exec('git cat-file -p ' + tagName + ' | ' + grep + ' "codename"', { silent: true }).stdout;
var codeName = tagMessage && tagMessage.match(/codename\((.*)\)/)[1];
if (!codeName) {
throw new Error("Could not extract release code name. The message of tag " + tagName +
@@ -81,7 +81,7 @@ module.exports = {
}
function getSnapshotVersion() {
- var oldTags = shell.exec('git tag -l v' + package.branchVersion, { silent: true }).output.trim().split('\n');
+ var oldTags = shell.exec('git tag -l v' + package.branchVersion, { silent: true }).stdout.trim().split('\n');
// ignore non semver versions.
oldTags = oldTags.filter(function (version) {
return version && semver.valid(version);
@@ -102,7 +102,7 @@ module.exports = {
function getSnapshotSuffix() {
var jenkinsBuild = process.env.TRAVIS_BUILD_NUMBER || process.env.BUILD_NUMBER || 'local';
- var hash = shell.exec('git rev-parse --short HEAD', { silent: true }).output.replace('\n', '');
+ var hash = shell.exec('git rev-parse --short HEAD', { silent: true }).stdout.replace('\n', '');
return 'build.' + jenkinsBuild + '+sha.' + hash;
}
},
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..02cc1add
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,3927 @@
+{
+ "name": "AkraEngine",
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "0.1.16",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+ "dev": true,
+ "requires": {
+ "underscore": "1.7.0",
+ "underscore.string": "2.4.0"
+ },
+ "dependencies": {
+ "underscore.string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+ "dev": true
+ }
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "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.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "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.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "bind-obj-methods": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz",
+ "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz",
+ "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.0.tgz",
+ "integrity": "sha1-qtM+wU49wsp06OfUUfm6BTrU96A=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "character-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz",
+ "integrity": "sha1-lBNNbl2HCjm+NZ99IkYJNRhN3vY=",
+ "dev": true
+ },
+ "clean-yaml-object": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz",
+ "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=",
+ "dev": true
+ },
+ "cli": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz",
+ "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=",
+ "dev": true,
+ "requires": {
+ "glob": "3.1.21"
+ }
+ },
+ "closure-linter-wrapper": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/closure-linter-wrapper/-/closure-linter-wrapper-0.2.11.tgz",
+ "integrity": "sha1-GaPTjeTJJZmUwSvY9tdskXnxEVI=",
+ "dev": true,
+ "requires": {
+ "colors": "0.6.2"
+ }
+ },
+ "coffee-script": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+ "dev": true
+ },
+ "color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "dev": true
+ },
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
+ "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "connect": {
+ "version": "2.7.11",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-2.7.11.tgz",
+ "integrity": "sha1-9WHV7vcLjXGcOX9yTTS6QGXHej4=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "0.2.1",
+ "bytes": "0.2.0",
+ "cookie": "0.0.5",
+ "cookie-signature": "1.0.1",
+ "debug": "3.1.0",
+ "formidable": "1.0.14",
+ "fresh": "0.1.0",
+ "pause": "0.0.1",
+ "qs": "0.6.5",
+ "send": "0.1.1"
+ }
+ },
+ "connect-livereload": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.2.0.tgz",
+ "integrity": "sha1-dXPPWHhG3/0Co+ZeMSK0cN1hXsk=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-0.1.6.tgz",
+ "integrity": "sha1-0SijwLuINQ61YmxufHGm8P1ImDw=",
+ "dev": true
+ },
+ "constantinople": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz",
+ "integrity": "sha1-WCn4VvMBqb2xB9k1932OuMzsTHk=",
+ "dev": true,
+ "requires": {
+ "uglify-js": "2.4.24"
+ }
+ },
+ "cookie": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.0.5.tgz",
+ "integrity": "sha1-+az521frdWjJ/MWWJWt7si4wfIE=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz",
+ "integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "coveralls": {
+ "version": "2.13.3",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz",
+ "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==",
+ "dev": true,
+ "requires": {
+ "js-yaml": "3.6.1",
+ "lcov-parse": "0.0.10",
+ "log-driver": "1.2.5",
+ "minimist": "1.2.0",
+ "request": "2.79.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
+ "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ }
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "css": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz",
+ "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=",
+ "dev": true,
+ "requires": {
+ "css-parse": "1.0.4",
+ "css-stringify": "1.0.5"
+ }
+ },
+ "css-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz",
+ "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=",
+ "dev": true
+ },
+ "css-stringify": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz",
+ "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=",
+ "dev": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "date-time": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz",
+ "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=",
+ "dev": true
+ },
+ "dateformat": {
+ "version": "1.0.2-1.2.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "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
+ },
+ "esprima": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+ "dev": true
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "events-to-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz",
+ "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=",
+ "dev": true
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "dev": true
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "findup-sync": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+ "dev": true,
+ "requires": {
+ "glob": "3.2.11",
+ "lodash": "2.4.2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimatch": "0.3.0"
+ }
+ },
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.7.3",
+ "sigmund": "1.0.1"
+ }
+ }
+ }
+ },
+ "foreground-child": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
+ "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "4.0.2",
+ "signal-exit": "3.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.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "formidable": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz",
+ "integrity": "sha1-Kz9MQRy7X91pXESEPiojUUpDIxo=",
+ "dev": true
+ },
+ "fresh": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz",
+ "integrity": "sha1-A+SwF4Qk5MLV0ZpU2IFM3JeTSFA=",
+ "dev": true
+ },
+ "fs-exists-cached": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
+ "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-loop": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz",
+ "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=",
+ "dev": true
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "glob": {
+ "version": "3.1.21",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "1.2.3",
+ "inherits": "1.0.2",
+ "minimatch": "0.2.14"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+ "dev": true
+ },
+ "grunt": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+ "dev": true,
+ "requires": {
+ "async": "0.1.22",
+ "coffee-script": "1.3.3",
+ "colors": "0.6.2",
+ "dateformat": "1.0.2-1.2.3",
+ "eventemitter2": "0.4.14",
+ "exit": "0.1.2",
+ "findup-sync": "0.1.3",
+ "getobject": "0.1.0",
+ "glob": "3.1.21",
+ "grunt-legacy-log": "0.1.3",
+ "grunt-legacy-util": "0.2.0",
+ "hooker": "0.2.3",
+ "iconv-lite": "0.2.11",
+ "js-yaml": "2.0.5",
+ "lodash": "0.9.2",
+ "minimatch": "0.2.14",
+ "nopt": "1.0.10",
+ "rimraf": "2.2.8",
+ "underscore.string": "2.2.1",
+ "which": "1.0.9"
+ }
+ },
+ "grunt-cli": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz",
+ "integrity": "sha1-6evEBHYx9QEtkidww5N4EzytEPQ=",
+ "dev": true,
+ "requires": {
+ "findup-sync": "0.1.3",
+ "nopt": "1.0.10",
+ "resolve": "0.3.1"
+ }
+ },
+ "grunt-contrib-clean": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz",
+ "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=",
+ "dev": true,
+ "requires": {
+ "rimraf": "2.2.8"
+ }
+ },
+ "grunt-contrib-concat": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.3.0.tgz",
+ "integrity": "sha1-SPoNQzbSm2U62CJaa9b4VrRIPjI=",
+ "dev": true
+ },
+ "grunt-contrib-connect": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-0.5.0.tgz",
+ "integrity": "sha1-AzC+NyTj7u9DhXiyYwjK0wL1+mM=",
+ "dev": true,
+ "requires": {
+ "connect": "2.7.11",
+ "connect-livereload": "0.2.0",
+ "open": "0.0.4"
+ }
+ },
+ "grunt-contrib-copy": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.4.1.tgz",
+ "integrity": "sha1-8HU7QK4hu3BtrvsLKZ4DzfX6nW4=",
+ "dev": true
+ },
+ "grunt-contrib-jshint": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.6.5.tgz",
+ "integrity": "sha1-OvtGdnRTZMxKGe7nk0wOBgCLVm4=",
+ "dev": true,
+ "requires": {
+ "jshint": "2.1.11"
+ }
+ },
+ "grunt-contrib-nodeunit": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-nodeunit/-/grunt-contrib-nodeunit-0.2.2.tgz",
+ "integrity": "sha1-06nHkIo4tqMbyiT2K6A+/DS7l2Y=",
+ "dev": true,
+ "requires": {
+ "nodeunit": "0.8.8"
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.7.tgz",
+ "integrity": "sha1-5r2lHgxAoUWfbOrUI8Ze/XJaG/c=",
+ "dev": true,
+ "requires": {
+ "grunt-lib-contrib": "0.6.1",
+ "uglify-js": "2.4.24"
+ }
+ },
+ "grunt-file-blocks": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/grunt-file-blocks/-/grunt-file-blocks-0.1.3.tgz",
+ "integrity": "sha1-Te2A+sAAgngBBu1JBFAvKEHJo90=",
+ "dev": true,
+ "requires": {
+ "lodash": "2.3.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.3.0.tgz",
+ "integrity": "sha1-372smc+HpZoCLEdHMFcNhxbCZ90=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-gjslint": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/grunt-gjslint/-/grunt-gjslint-0.1.6.tgz",
+ "integrity": "sha1-g6JNauo/E9xWS79ISmmg/jywiD0=",
+ "dev": true
+ },
+ "grunt-legacy-log": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
+ "dev": true,
+ "requires": {
+ "colors": "0.6.2",
+ "grunt-legacy-log-utils": "0.1.1",
+ "hooker": "0.2.3",
+ "lodash": "2.4.2",
+ "underscore.string": "2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
+ "dev": true,
+ "requires": {
+ "colors": "0.6.2",
+ "lodash": "2.4.2",
+ "underscore.string": "2.3.3"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+ "dev": true,
+ "requires": {
+ "async": "0.1.22",
+ "exit": "0.1.2",
+ "getobject": "0.1.0",
+ "hooker": "0.2.3",
+ "lodash": "0.9.2",
+ "underscore.string": "2.2.1",
+ "which": "1.0.9"
+ }
+ },
+ "grunt-lib-contrib": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz",
+ "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=",
+ "dev": true,
+ "requires": {
+ "zlib-browserify": "0.0.1"
+ }
+ },
+ "grunt-parallel": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/grunt-parallel/-/grunt-parallel-0.3.1.tgz",
+ "integrity": "sha1-nRGihytEp7ug7IFvAziKFfpWRmM=",
+ "dev": true,
+ "requires": {
+ "grunt": "0.4.5",
+ "lpad": "0.1.0",
+ "q": "0.8.12"
+ }
+ },
+ "grunt-tslint": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/grunt-tslint/-/grunt-tslint-0.3.2.tgz",
+ "integrity": "sha1-oyZPsAnsg1NQTs/WI4Hm+CeAbJo=",
+ "dev": true,
+ "requires": {
+ "tslint": "0.3.3"
+ }
+ },
+ "grunt-typescript": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/grunt-typescript/-/grunt-typescript-0.2.9.tgz",
+ "integrity": "sha1-AAcw5/Z2ADzbf/1owh+3NI5T98U=",
+ "dev": true,
+ "requires": {
+ "typescript": "0.9.7"
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "commander": "2.12.2",
+ "is-my-json-valid": "2.17.1",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-color": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
+ "dev": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "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
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
+ "is-my-json-valid": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz",
+ "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==",
+ "dev": true,
+ "requires": {
+ "generate-function": "2.0.0",
+ "generate-object-property": "1.2.0",
+ "jsonpointer": "4.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz",
+ "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=",
+ "dev": true
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "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
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true,
+ "optional": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jade": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-1.2.0.tgz",
+ "integrity": "sha1-hudrDQgHccJRUo11NAtJBykwf2Q=",
+ "dev": true,
+ "requires": {
+ "character-parser": "1.2.0",
+ "commander": "2.1.0",
+ "constantinople": "2.0.1",
+ "mkdirp": "0.3.5",
+ "monocle": "1.1.51",
+ "transformers": "2.1.0",
+ "with": "2.0.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
+ "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+ "dev": true
+ }
+ }
+ },
+ "js-yaml": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+ "dev": true,
+ "requires": {
+ "argparse": "0.1.16",
+ "esprima": "1.0.4"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jshint": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.1.11.tgz",
+ "integrity": "sha1-61EI/vm6Xd67gwmD9XLSQuSeP5Y=",
+ "dev": true,
+ "requires": {
+ "cli": "0.4.5",
+ "console-browserify": "0.1.6",
+ "minimatch": "0.2.14",
+ "shelljs": "0.1.4",
+ "underscore": "1.4.4"
+ },
+ "dependencies": {
+ "shelljs": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz",
+ "integrity": "sha1-37vnjVbDwBaNL7eeEOzR28sH7A4=",
+ "dev": true
+ },
+ "underscore": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
+ "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
+ "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-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
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "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"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "lcov-parse": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz",
+ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=",
+ "dev": true
+ },
+ "lodash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "dev": true
+ },
+ "log-driver": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz",
+ "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=",
+ "dev": true
+ },
+ "lpad": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz",
+ "integrity": "sha1-5MYMKROTIcWXDeSTtJauDXdM0qc=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "marked": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.18.tgz",
+ "integrity": "sha512-49i2QYhfULqaXzNZpxC808PisuCTGT2fgG0zrzdCI9N3rIfAWfW0nggvbXr6zvpynZdOG5+9xNxdzP0kwZnERw==",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+ "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "minimatch": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.7.3",
+ "sigmund": "1.0.1"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz",
+ "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==",
+ "dev": true,
+ "requires": {
+ "yallist": "3.0.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
+ "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
+ "dev": true
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "monocle": {
+ "version": "1.1.51",
+ "resolved": "https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz",
+ "integrity": "sha1-Iu0W4RLpsFZ2nFzKySDjdSSdicA=",
+ "dev": true,
+ "requires": {
+ "readdirp": "0.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "node-markdown": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/node-markdown/-/node-markdown-0.1.1.tgz",
+ "integrity": "sha1-42W6ujjUrFbYVj3WnKbXIVsI+5Q=",
+ "dev": true
+ },
+ "node-native-zip": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/node-native-zip/-/node-native-zip-1.1.0.tgz",
+ "integrity": "sha1-W3syKIpQKiTF1aek1h4+AqMfuV0=",
+ "dev": true
+ },
+ "node-zip": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/node-zip/-/node-zip-1.0.1.tgz",
+ "integrity": "sha1-FYuKQsTmrNE1Tz1OeeQfuQumwi4=",
+ "dev": true
+ },
+ "nodeunit": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.8.8.tgz",
+ "integrity": "sha1-UelyJro6H5lueuDuanooN2Q66wI=",
+ "dev": true,
+ "requires": {
+ "tap": "11.0.1"
+ }
+ },
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1.1.1"
+ }
+ },
+ "nyc": {
+ "version": "11.4.1",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz",
+ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==",
+ "dev": true,
+ "requires": {
+ "archy": "1.0.0",
+ "arrify": "1.0.1",
+ "caching-transform": "1.0.1",
+ "convert-source-map": "1.5.1",
+ "debug-log": "1.0.1",
+ "default-require-extensions": "1.0.0",
+ "find-cache-dir": "0.1.1",
+ "find-up": "2.1.0",
+ "foreground-child": "1.5.6",
+ "glob": "7.1.2",
+ "istanbul-lib-coverage": "1.1.1",
+ "istanbul-lib-hook": "1.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-report": "1.1.2",
+ "istanbul-lib-source-maps": "1.2.2",
+ "istanbul-reports": "1.1.3",
+ "md5-hex": "1.3.0",
+ "merge-source-map": "1.0.4",
+ "micromatch": "2.3.11",
+ "mkdirp": "0.5.1",
+ "resolve-from": "2.0.0",
+ "rimraf": "2.6.2",
+ "signal-exit": "3.0.2",
+ "spawn-wrap": "1.4.2",
+ "test-exclude": "4.1.1",
+ "yargs": "10.0.3",
+ "yargs-parser": "8.0.0"
+ },
+ "dependencies": {
+ "align-text": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "append-transform": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "1.0.0"
+ }
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.4",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.4",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "bundled": true,
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "caching-transform": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "md5-hex": "1.3.0",
+ "mkdirp": "0.5.1",
+ "write-file-atomic": "1.3.4"
+ }
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "bundled": true,
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.5.3",
+ "bundled": true,
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "debug-log": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "strip-bom": "2.0.0"
+ }
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fill-range": "2.2.3"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "commondir": "1.0.1",
+ "mkdirp": "0.5.1",
+ "pkg-dir": "1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreground-child": {
+ "version": "1.5.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cross-spawn": "4.0.2",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "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",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-glob": "2.0.1"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "bundled": true,
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "bundled": true,
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "bundled": true,
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "append-transform": "0.4.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.9.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-generator": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "semver": "5.4.1"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "path-parse": "1.0.5",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "handlebars": "4.0.11"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "bundled": true,
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "md5-hex": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "md5-o-matic": "0.1.1"
+ }
+ },
+ "md5-o-matic": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "merge-source-map": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "bundled": true,
+ "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"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.4.1",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "1.1.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8",
+ "wordwrap": "0.0.3"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ }
+ }
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ }
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "bundled": true,
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "0.1.3"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "semver": {
+ "version": "5.4.1",
+ "bundled": true,
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true,
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true,
+ "dev": true
+ },
+ "spawn-wrap": {
+ "version": "1.4.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "foreground-child": "1.5.6",
+ "mkdirp": "0.5.1",
+ "os-homedir": "1.0.2",
+ "rimraf": "2.6.2",
+ "signal-exit": "3.0.2",
+ "which": "1.3.0"
+ }
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "bundled": true,
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "test-exclude": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "micromatch": "2.3.11",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "require-main-filename": "1.0.1"
+ }
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
+ }
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "yargs": {
+ "version": "10.0.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "find-up": "2.1.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "8.0.0"
+ },
+ "dependencies": {
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "8.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "open": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/open/-/open-0.0.4.tgz",
+ "integrity": "sha1-XeRqCFi59J+fIRqo8mYoVQZX8mI=",
+ "dev": true
+ },
+ "opener": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz",
+ "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=",
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.10",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+ "dev": true
+ }
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "own-or": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz",
+ "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=",
+ "dev": true
+ },
+ "own-or-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz",
+ "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=",
+ "dev": true
+ },
+ "package": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz",
+ "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true,
+ "optional": true
+ },
+ "promise": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz",
+ "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=",
+ "dev": true,
+ "requires": {
+ "is-promise": "1.0.1"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "q": {
+ "version": "0.8.12",
+ "resolved": "https://registry.npmjs.org/q/-/q-0.8.12.tgz",
+ "integrity": "sha1-kWKpHhGBnEvNp9oVz1/vqtB3iCM=",
+ "dev": true
+ },
+ "qs": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz",
+ "integrity": "sha1-KUsmjksNQlD23eGbO4s0k13/FO8=",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz",
+ "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "readdirp": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz",
+ "integrity": "sha1-xMJ25Sl3riXbUZH+UdAIVQ8V2bs=",
+ "dev": true,
+ "requires": {
+ "minimatch": "0.2.14"
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "1.5.0"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ }
+ }
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.11.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "2.0.6",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "qs": "6.3.2",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.4.3",
+ "uuid": "3.1.0"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+ "dev": true
+ }
+ }
+ },
+ "resolve": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz",
+ "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.1.1.tgz",
+ "integrity": "sha1-C8/L0D3vbi2GEuGr+PSJW0UMYMg=",
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0",
+ "fresh": "0.1.0",
+ "mime": "1.2.11",
+ "range-parser": "0.0.4"
+ }
+ },
+ "shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "interpret": "1.1.0",
+ "rechoir": "0.6.2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "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.8"
+ }
+ }
+ }
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "dev": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "stack-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz",
+ "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "tap": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/tap/-/tap-11.0.1.tgz",
+ "integrity": "sha512-YfrPp7FFxASC4tK4DEAKnnTxyg+J7T8kh8NiOmICNhiGvSojPAV34Ir4DDElFvnIiDEMzDP7233lw3WacFvIFQ==",
+ "dev": true,
+ "requires": {
+ "bind-obj-methods": "1.0.0",
+ "bluebird": "3.5.1",
+ "clean-yaml-object": "0.1.0",
+ "color-support": "1.1.3",
+ "coveralls": "2.13.3",
+ "foreground-child": "1.5.6",
+ "fs-exists-cached": "1.0.0",
+ "function-loop": "1.0.1",
+ "glob": "7.1.2",
+ "isexe": "2.0.0",
+ "js-yaml": "3.10.0",
+ "minipass": "2.2.1",
+ "mkdirp": "0.5.1",
+ "nyc": "11.4.1",
+ "opener": "1.4.3",
+ "os-homedir": "1.0.2",
+ "own-or": "1.0.0",
+ "own-or-env": "1.0.0",
+ "rimraf": "2.6.2",
+ "signal-exit": "3.0.2",
+ "source-map-support": "0.4.18",
+ "stack-utils": "1.0.1",
+ "tap-mocha-reporter": "3.0.6",
+ "tap-parser": "7.0.0",
+ "tmatch": "3.1.0",
+ "trivial-deferred": "1.0.1",
+ "tsame": "1.1.2",
+ "write-file-atomic": "2.3.0",
+ "yapool": "1.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "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"
+ }
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.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.8"
+ }
+ },
+ "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.2"
+ }
+ }
+ }
+ },
+ "tap-mocha-reporter": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.6.tgz",
+ "integrity": "sha512-UImgw3etckDQCoqZIAIKcQDt0w1JLVs3v0yxLlmwvGLZl6MGFxF7JME5PElXjAoDklVDU42P3vVu5jgr37P4Yg==",
+ "dev": true,
+ "requires": {
+ "color-support": "1.1.3",
+ "debug": "2.6.9",
+ "diff": "1.4.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "js-yaml": "3.10.0",
+ "readable-stream": "2.3.3",
+ "tap-parser": "5.4.0",
+ "unicode-length": "1.0.3"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "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"
+ }
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.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.8"
+ }
+ },
+ "tap-parser": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz",
+ "integrity": "sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==",
+ "dev": true,
+ "requires": {
+ "events-to-array": "1.1.2",
+ "js-yaml": "3.10.0",
+ "readable-stream": "2.3.3"
+ }
+ }
+ }
+ },
+ "tap-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-7.0.0.tgz",
+ "integrity": "sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==",
+ "dev": true,
+ "requires": {
+ "events-to-array": "1.1.2",
+ "js-yaml": "3.10.0",
+ "minipass": "2.2.1"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ }
+ }
+ },
+ "temporary": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz",
+ "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=",
+ "dev": true,
+ "requires": {
+ "package": "1.0.1"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "time-grunt": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-0.2.10.tgz",
+ "integrity": "sha1-Wo5MsRItL/gaGouxX/i17KwGhZE=",
+ "dev": true,
+ "requires": {
+ "chalk": "0.4.0",
+ "date-time": "0.1.1",
+ "hooker": "0.2.3",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+ "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "1.0.0",
+ "has-color": "0.1.7",
+ "strip-ansi": "0.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
+ "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
+ "dev": true
+ }
+ }
+ },
+ "tmatch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.1.0.tgz",
+ "integrity": "sha512-W3MSATOCN4pVu2qFxmJLIArSifeSOFqnfx9hiUaVgOmeRoI2NbU7RNga+6G+L8ojlFeQge+ZPCclWyUpQ8UeNQ==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "transformers": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz",
+ "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=",
+ "dev": true,
+ "requires": {
+ "css": "1.0.8",
+ "promise": "2.0.0",
+ "uglify-js": "2.2.5"
+ },
+ "dependencies": {
+ "optimist": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
+ "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
+ "dev": true,
+ "requires": {
+ "wordwrap": "0.0.2"
+ }
+ },
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ },
+ "uglify-js": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz",
+ "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=",
+ "dev": true,
+ "requires": {
+ "optimist": "0.3.7",
+ "source-map": "0.1.43"
+ }
+ }
+ }
+ },
+ "trivial-deferred": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz",
+ "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=",
+ "dev": true
+ },
+ "tsame": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/tsame/-/tsame-1.1.2.tgz",
+ "integrity": "sha512-ovCs24PGjmByVPr9tSIOs/yjUX9sJl0grEmOsj9dZA/UknQkgPOKcUqM84aSCvt9awHuhc/boMzTg3BHFalxWw==",
+ "dev": true
+ },
+ "tslint": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-0.3.3.tgz",
+ "integrity": "sha1-HKEOUZjJ4ABDn+KQgF264qFfuWc=",
+ "dev": true,
+ "requires": {
+ "optimist": "0.6.1",
+ "underscore.string": "2.3.3"
+ },
+ "dependencies": {
+ "underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "dev": true
+ }
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "dev": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "typescript": {
+ "version": "0.9.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-0.9.7.tgz",
+ "integrity": "sha1-ajHh3dfM1ExjxBa6tfIdWNuzytQ=",
+ "dev": true
+ },
+ "typescript-closure-compiler": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/typescript-closure-compiler/-/typescript-closure-compiler-0.1.11.tgz",
+ "integrity": "sha1-F7146u4F7SurkAPv44tksfOmZoo=",
+ "dev": true,
+ "requires": {
+ "typescript": "0.9.1-1"
+ },
+ "dependencies": {
+ "typescript": {
+ "version": "0.9.1-1",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-0.9.1-1.tgz",
+ "integrity": "sha1-7lbmR3f20sJeNps384Qpkfj3R0Y=",
+ "dev": true
+ }
+ }
+ },
+ "uglify-js": {
+ "version": "2.4.24",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+ "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=",
+ "dev": true,
+ "requires": {
+ "async": "0.2.10",
+ "source-map": "0.1.34",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.5.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.1.34",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
+ "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true
+ },
+ "underscore": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+ "dev": true
+ },
+ "unicode-length": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz",
+ "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true,
+ "optional": true
+ },
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "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"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ }
+ }
+ },
+ "which": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "with": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/with/-/with-2.0.0.tgz",
+ "integrity": "sha1-7AH/Ah253wVjkEcUft4BL15tCv0=",
+ "dev": true,
+ "requires": {
+ "uglify-js": "2.4.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "optimist": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
+ "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
+ "dev": true,
+ "requires": {
+ "wordwrap": "0.0.2"
+ }
+ },
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ },
+ "uglify-js": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.0.tgz",
+ "integrity": "sha1-pfK2sbgX+zTBagQjQyjIm6HncTc=",
+ "dev": true,
+ "requires": {
+ "async": "0.2.10",
+ "optimist": "0.3.7",
+ "source-map": "0.1.43",
+ "uglify-to-browserify": "1.0.2"
+ }
+ }
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "wrench": {
+ "version": "1.5.9",
+ "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.5.9.tgz",
+ "integrity": "sha1-QRaRxjqbJTGxcAJnJ5veyiOyFCo=",
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
+ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "signal-exit": "3.0.2"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "xmldom": {
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
+ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yapool": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz",
+ "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
+ "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "zlib-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz",
+ "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index e39c666c..05945185 100644
--- a/package.json
+++ b/package.json
@@ -8,34 +8,34 @@
"url": "git@github.com:IvanPopov/akra-engine-core.git"
},
"devDependencies": {
- "grunt": "^0.4.2",
+ "closure-linter-wrapper": "~0.2.9",
+ "grunt": "^0.4.5",
+ "grunt-cli": "^0.1.13",
+ "grunt-contrib-clean": "~0.5.0",
+ "grunt-contrib-concat": "~0.3.0",
+ "grunt-contrib-connect": "~0.5.0",
+ "grunt-contrib-copy": "~0.4.1",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-nodeunit": "~0.2.0",
"grunt-contrib-uglify": "~0.2.7",
- "grunt-typescript": "~0.2.4",
- "grunt-contrib-concat": "~0.3.0",
- "grunt-contrib-copy": "~0.4.1",
- "grunt-contrib-clean": "~0.5.0",
- "grunt-contrib-connect": "~0.5.0",
- "typescript-closure-compiler": "~0.1.11",
"grunt-file-blocks": "~0.1.3",
- "grunt-tslint": "~0.3.2",
- "closure-linter-wrapper": "~0.2.9",
"grunt-gjslint": "~0.1.3",
- "time-grunt": "~0.2.8",
- "node-zip": "~1.0.1",
- "wrench": "latest",
- "semver": "latest",
- "shelljs": "latest",
- "uglify-js": "~2.4.12",
+ "grunt-parallel": "~0.3.1",
+ "grunt-tslint": "~0.3.2",
+ "grunt-typescript": "~0.2.4",
"jade": "~1.2.0",
+ "marked": "~0.3.18",
"node-markdown": "~0.1.1",
- "marked": "~0.3.1",
- "grunt-cli": "^0.1.13",
- "xmldom": "~0.1.19",
"node-native-zip": "latest",
+ "node-zip": "~1.0.1",
+ "semver": "latest",
+ "shelljs": "latest",
"temporary": "0.0.8",
- "grunt-parallel": "~0.3.1"
+ "time-grunt": "~0.2.8",
+ "typescript-closure-compiler": "~0.1.11",
+ "uglify-js": "~2.4.12",
+ "wrench": "latest",
+ "xmldom": "~0.1.19"
},
"dependencies": {}
}
diff --git a/src/akra/config/config.ts b/src/akra/config/config.ts
index f086085b..d72fe4b8 100644
--- a/src/akra/config/config.ts
+++ b/src/akra/config/config.ts
@@ -25,7 +25,7 @@ module akra.config {
/**
* Display debugging information while parsing effects.
*/
- export const AFX_DEBUG_PARSER: boolean = false;
+ export const AFX_DEBUG_PARSER: boolean = true;
/**
* If there is support for loading effects in text form, is TRUE.
diff --git a/src/akra/fx/instructions/FunctionDefInstruction.ts b/src/akra/fx/instructions/a.ts
similarity index 97%
rename from src/akra/fx/instructions/FunctionDefInstruction.ts
rename to src/akra/fx/instructions/a.ts
index f48543b0..d1899102 100644
--- a/src/akra/fx/instructions/FunctionDefInstruction.ts
+++ b/src/akra/fx/instructions/a.ts
@@ -1,544 +1,544 @@
-///
-
-///
-///
-
-module akra.fx.instructions {
-
- /**
- * Represent type func(...args)[:Semantic]
- * EMPTY_OPERTOR VariableTypeInstruction IdInstruction VarDeclInstruction ... VarDeclInstruction
- */
- export class FunctionDefInstruction extends DeclInstruction {
- private _pParameterList: IAFXVariableDeclInstruction[] = null;
- private _pParamListForShaderCompile: IAFXVariableDeclInstruction[] = null;
- private _pParamListForShaderInput: IAFXVariableDeclInstruction[] = null;
- private _bIsComplexShaderInput: boolean = false;
-
- private _pReturnType: IAFXVariableTypeInstruction = null;
- private _pFunctionName: IAFXIdInstruction = null;
- private _nParamsNeeded: uint = 0;
- private _sDefinition: string = "";
- private _isAnalyzedForVertexUsage: boolean = false;
- private _isAnalyzedForPixelUsage: boolean = false;
- private _bCanUsedAsFunction: boolean = true;
-
- private _bShaderDef: boolean = false;
-
- //private _sHash: string = "";
-
- constructor() {
- super();
- this._pInstructionList = null;
- this._pParameterList = [];
- this._eInstructionType = EAFXInstructionTypes.k_FunctionDefInstruction;
- }
-
- _toFinalCode(): string {
- var sCode: string = "";
-
- if (!this.isShaderDef()) {
-
- sCode += this._pReturnType._toFinalCode();
- sCode += " " + this._pFunctionName._toFinalCode();
- sCode += "(";
-
- for (var i: uint = 0; i < this._pParameterList.length; i++) {
- sCode += this._pParameterList[i]._toFinalCode();
-
- if (i !== this._pParameterList.length - 1) {
- sCode += ",";
- }
- }
-
- sCode += ")";
- }
- else {
- sCode = "void " + this._pFunctionName._toFinalCode() + "()";
- }
-
- return sCode;
- }
-
- _setType(pType: IAFXTypeInstruction): void {
- this.setReturnType(pType);
- }
-
- _getType(): IAFXTypeInstruction {
- return this.getReturnType();
- }
-
- setReturnType(pReturnType: IAFXVariableTypeInstruction): boolean {
- this._pReturnType = pReturnType;
- pReturnType._setParent(this);
- return true;
- }
- getReturnType(): IAFXVariableTypeInstruction {
- return this._pReturnType;
- }
-
- setFunctionName(pNameId: IAFXIdInstruction): boolean {
- this._pFunctionName = pNameId;
- pNameId._setParent(this);
- return true;
- }
-
- _getName(): string {
- return this._pFunctionName._getName();
- }
-
- _getRealName(): string {
- return this._pFunctionName._getRealName();
- }
-
- _getNameId(): IAFXIdInstruction {
- return this._pFunctionName;
- }
-
- getArguments(): IAFXVariableDeclInstruction[] {
- return this._pParameterList;
- }
-
- getNumNeededArguments(): uint {
- return this._nParamsNeeded;
- }
-
- markAsShaderDef(isShaderDef: boolean): void {
- this._bShaderDef = isShaderDef;
- }
-
- isShaderDef(): boolean {
- return this._bShaderDef;
- }
-
- addParameter(pParameter: IAFXVariableDeclInstruction, isStrictModeOn?: boolean): boolean {
- if (this._pParameterList.length > this._nParamsNeeded &&
- !pParameter._hasInitializer()) {
-
- this._setError(EEffectErrors.BAD_FUNCTION_PARAMETER_DEFENITION_NEED_DEFAULT,
- {
- funcName: this._pFunctionName._getName(),
- varName: pParameter._getName()
- });
- return false;
- }
-
- var pParameterType: IAFXVariableTypeInstruction = pParameter._getType();
-
- if (pParameterType._isPointer() || pParameterType._containPointer()) {
- if (pParameterType._hasUsage("uniform") ||
- pParameterType._hasUsage("out") ||
- pParameterType._hasUsage("inout")) {
-
- this._setError(EEffectErrors.BAD_FUNCTION_PARAMETER_USAGE,
- {
- funcName: this._pFunctionName._getName(),
- varName: pParameter._getName()
- });
- return false;
- }
-
- this._isAnalyzedForVertexUsage = false;
- this._isAnalyzedForPixelUsage = true;
-
- this._setForPixel(false);
- this._bCanUsedAsFunction = false;
- pParameterType._setVideoBufferInDepth();
- }
- else if (!isStrictModeOn) {
-
- if (pParameterType._isComplex() &&
- !pParameterType._hasFieldWithoutSemantic() &&
- pParameterType._hasAllUniqueSemantics()) {
-
- if (pParameter._getSemantic() === "" &&
- pParameterType._hasAllUniqueSemantics() &&
- !pParameterType._hasFieldWithoutSemantic()) {
-
- pParameterType._addPointIndexInDepth();
- }
- else {
- pParameterType._addPointIndex(false);
- pParameterType._setVideoBufferInDepth();
- }
- }
- else if (pParameter._getSemantic() !== "") {
- pParameterType._addPointIndex(false);
- pParameterType._setVideoBufferInDepth();
- }
- }
-
- this._pParameterList.push(pParameter);
- pParameter._setParent(this);
-
- if (!pParameter._hasInitializer()) {
- this._nParamsNeeded++;
- }
-
- return true;
- }
-
- getParameListForShaderInput(): IAFXVariableDeclInstruction[] {
- return this._pParamListForShaderInput;
- }
-
- isComplexShaderInput(): boolean {
- return this._bIsComplexShaderInput;
- }
-
- _clone(pRelationMap: IAFXInstructionMap = {}): FunctionDefInstruction {
- var pClone: FunctionDefInstruction = super._clone(pRelationMap);
-
- pClone.setFunctionName(this._pFunctionName._clone(pRelationMap));
- pClone.setReturnType(this.getReturnType()._clone(pRelationMap));
-
- for (var i: uint = 0; i < this._pParameterList.length; i++) {
- pClone.addParameter(this._pParameterList[i]._clone(pRelationMap));
- }
-
- var pShaderParams: IAFXVariableDeclInstruction[] = [];
- for (var i: uint = 0; i < this._pParamListForShaderInput.length; i++) {
- pShaderParams.push(this._pParamListForShaderInput[i]._clone(pRelationMap));
- }
-
- pClone._setShaderParams(pShaderParams, this._bIsComplexShaderInput);
- pClone._setAnalyzedInfo(this._isAnalyzedForVertexUsage,
- this._isAnalyzedForPixelUsage,
- this._bCanUsedAsFunction);
-
- return pClone;
- }
-
- _setShaderParams(pParamList: IAFXVariableDeclInstruction[], isComplexInput: boolean): void {
- this._pParamListForShaderInput = pParamList;
- this._bIsComplexShaderInput = isComplexInput;
- }
-
- _setAnalyzedInfo(isAnalyzedForVertexUsage: boolean,
- isAnalyzedForPixelUsage: boolean,
- bCanUsedAsFunction: boolean): void {
- this._isAnalyzedForVertexUsage = isAnalyzedForVertexUsage;
- this._isAnalyzedForPixelUsage = isAnalyzedForPixelUsage;
- this._bCanUsedAsFunction = bCanUsedAsFunction;
- }
-
- _getStringDef(): string {
- if (this._sDefinition === "") {
- this._sDefinition = this._pReturnType._getHash() + " " + this._getName() + "(";
-
- for (var i: uint = 0; i < this._pParameterList.length; i++) {
- this._sDefinition += this._pParameterList[i]._getType()._getHash() + ",";
- }
-
- this._sDefinition += ")";
- }
-
- return this._sDefinition;
- }
-
- _canUsedAsFunction(): boolean {
- return this._bCanUsedAsFunction;
- }
-
- _checkForVertexUsage(): boolean {
- if (this._isAnalyzedForVertexUsage) {
- return this._isForVertex();
- }
-
- this._isAnalyzedForVertexUsage = true;
-
- var isGood: boolean = true;
-
- isGood = this.checkReturnTypeForVertexUsage();
- if (!isGood) {
- this._setForVertex(false);
- return false;
- }
-
- isGood = this.checkArgumentsForVertexUsage();
- if (!isGood) {
- this._setForVertex(false);
- return false;
- }
-
- this._setForVertex(true);
-
- return true;
- }
-
- _checkForPixelUsage(): boolean {
- if (this._isAnalyzedForPixelUsage) {
- return this._isForPixel();
- }
-
- this._isAnalyzedForPixelUsage = true;
-
- var isGood: boolean = true;
-
- isGood = this.checkReturnTypeForPixelUsage();
- if (!isGood) {
- this._setForPixel(false);
- return false;
- }
-
- isGood = this.checkArgumentsForPixelUsage();
- if (!isGood) {
- this._setForPixel(false);
- return false;
- }
-
- this._setForPixel(true);
-
- return true;
- }
-
- private checkReturnTypeForVertexUsage(): boolean {
- var pReturnType: IAFXVariableTypeInstruction = this._pReturnType;
- var isGood: boolean = true;
-
- if (pReturnType._isEqual(Effect.getSystemType("void"))) {
- return true;
- }
-
- if (pReturnType._isComplex()) {
- isGood = !pReturnType._hasFieldWithoutSemantic();
- if (!isGood) {
- return false;
- }
-
- isGood = pReturnType._hasAllUniqueSemantics();
- if (!isGood) {
- return false;
- }
-
- // isGood = pReturnType._hasFieldWithSematic("POSITION");
- // if(!isGood){
- // return false;
- // }
-
- isGood = !pReturnType._containSampler();
- if (!isGood) {
- return false;
- }
-
- isGood = !pReturnType._containPointer() && !pReturnType._isPointer();
- if (!isGood) {
- return false;
- }
-
- isGood = !pReturnType._containComplexType();
- if (!isGood) {
- return false;
- }
-
- return true;
- }
- else {
- isGood = pReturnType._isEqual(Effect.getSystemType("float4"));
- if (!isGood) {
- return false;
- }
-
- isGood = (this._getSemantic() === "POSITION");
- if (!isGood) {
- return false;
- }
-
- return true;
- }
- }
-
- private checkReturnTypeForPixelUsage(): boolean {
- var pReturnType: IAFXVariableTypeInstruction = this._pReturnType;
- var isGood: boolean = true;
-
- if (pReturnType._isEqual(Effect.getSystemType("void"))) {
- return true;
- }
-
- isGood = pReturnType._isBase();
- if (!isGood) {
- return false;
- }
-
- isGood = pReturnType._isEqual(Effect.getSystemType("float4"));
- if (!isGood) {
- return false;
- }
-
- isGood = this._getSemantic() === "COLOR";
- if (!isGood) {
- return false;
- }
-
- return true;
- }
-
- private checkArgumentsForVertexUsage(): boolean {
- var pArguments: IAFXVariableDeclInstruction[] = this._pParameterList;
- var isAttributeByStruct: boolean = false;
- var isAttributeByParams: boolean = false;
- var isStartAnalyze: boolean = false;
-
- this._pParamListForShaderInput = [];
- this._pParamListForShaderCompile = [];
-
- for (var i: uint = 0; i < pArguments.length; i++) {
- var pParam: IAFXVariableDeclInstruction = pArguments[i];
-
- if (pParam._isUniform()) {
- this._pParamListForShaderCompile.push(pParam);
- continue;
- }
-
- if (!isStartAnalyze) {
- if (pParam._getSemantic() === "") {
- if (pParam._getType()._isBase() ||
- pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics()) {
- return false;
- }
-
- isAttributeByStruct = true;
- }
- else if (pParam._getSemantic() !== "") {
- if (pParam._getType()._isComplex() &&
- (pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics())) {
- return false;
- }
-
- isAttributeByParams = true;
- }
-
- isStartAnalyze = true;
- }
- else if (isAttributeByStruct) {
- return false;
- }
- else if (isAttributeByParams) {
- if (pParam._getSemantic() === "") {
- return false;
- }
-
- if (pParam._getType()._isComplex() &&
- (pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics())) {
- return false;
- }
- }
-
- this._pParamListForShaderInput.push(pParam);
- }
-
- if (isAttributeByStruct) {
- this._bIsComplexShaderInput = true;
- }
-
- return true;
- }
-
- private checkArgumentsForPixelUsage(): boolean {
- var pArguments: IAFXVariableDeclInstruction[] = this._pParameterList;
- var isVaryingsByStruct: boolean = false;
- var isVaryingsByParams: boolean = false;
- var isStartAnalyze: boolean = false;
-
- this._pParamListForShaderInput = [];
- this._pParamListForShaderCompile = [];
-
- for (var i: uint = 0; i < pArguments.length; i++) {
- var pParam: IAFXVariableDeclInstruction = pArguments[i];
-
- if (pParam._isUniform()) {
- this._pParamListForShaderCompile.push(pParam);
- continue;
- }
-
- if (!isStartAnalyze) {
- if (pParam._getSemantic() === "") {
- if (pParam._getType()._isBase() ||
- pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics() ||
- pParam._getType()._containSampler() ||
- pParam._getType()._containPointer() ||
- pParam._getType()._isPointer()) {
- return false;
- }
-
- isVaryingsByStruct = true;
- }
- else if (pParam._getSemantic() !== "") {
- if (pParam._getType()._isStrictPointer() ||
- pParam._getType()._containPointer() ||
- pParam._getType()._containSampler() ||
- Effect.isSamplerType(pParam._getType())) {
- //LOG(2, pParam._getType()._isPointer(),
- // pParam._getType()._containPointer(),
- // pParam._getType()._containSampler(),
- // Effect.isSamplerType(pParam._getType()));
- return false;
- }
-
- if (pParam._getType()._isComplex() &&
- (pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics())) {
- return false;
- }
-
- isVaryingsByParams = true;
- }
-
- isStartAnalyze = true;
- }
- else if (isVaryingsByStruct) {
- return false;
- }
- else if (isVaryingsByParams) {
- if (pParam._getSemantic() === "") {
- return false;
- }
-
- if (pParam._getType()._isStrictPointer() ||
- pParam._getType()._containPointer() ||
- pParam._getType()._containSampler() ||
- Effect.isSamplerType(pParam._getType())) {
- return false;
- }
-
- if (pParam._getType()._isComplex() &&
- (pParam._getType()._hasFieldWithoutSemantic() ||
- !pParam._getType()._hasAllUniqueSemantics())) {
- return false;
- }
- }
-
- this._pParamListForShaderInput.push(pParam);
- }
-
- if (isVaryingsByStruct) {
- this._bIsComplexShaderInput = true;
- }
-
- return true;
- }
- // _getHash(): string {
- // if(this._sHash === "") {
- // this.calcHash();
- // }
-
- // return this._sHash;
- // }
-
- // private calcHash(): void {
- // var sHash: string = "";
- // sHash = this._pFunctionName._getName();
- // sHash += "(";
-
- // for(var i: uint = 0; i < this._pParameterList.length; i++){
- // sHash += this._pParameterList[i]
- // }
-
- // }
- }
+///
+
+///
+///
+
+module akra.fx.instructions {
+
+ /**
+ * Represent type func(...args)[:Semantic]
+ * EMPTY_OPERTOR VariableTypeInstruction IdInstruction VarDeclInstruction ... VarDeclInstruction
+ */
+ export class FunctionDefInstruction extends DeclInstruction {
+ private _pParameterList: IAFXVariableDeclInstruction[] = null;
+ private _pParamListForShaderCompile: IAFXVariableDeclInstruction[] = null;
+ private _pParamListForShaderInput: IAFXVariableDeclInstruction[] = null;
+ private _bIsComplexShaderInput: boolean = false;
+
+ private _pReturnType: IAFXVariableTypeInstruction = null;
+ private _pFunctionName: IAFXIdInstruction = null;
+ private _nParamsNeeded: uint = 0;
+ private _sDefinition: string = "";
+ private _isAnalyzedForVertexUsage: boolean = false;
+ private _isAnalyzedForPixelUsage: boolean = false;
+ private _bCanUsedAsFunction: boolean = true;
+
+ private _bShaderDef: boolean = false;
+
+ //private _sHash: string = "";
+
+ constructor() {
+ super();
+ this._pInstructionList = null;
+ this._pParameterList = [];
+ this._eInstructionType = EAFXInstructionTypes.k_FunctionDefInstruction;
+ }
+
+ _toFinalCode(): string {
+ var sCode: string = "";
+
+ if (!this.isShaderDef()) {
+
+ sCode += this._pReturnType._toFinalCode();
+ sCode += " " + this._pFunctionName._toFinalCode();
+ sCode += "(";
+
+ for (var i: uint = 0; i < this._pParameterList.length; i++) {
+ sCode += this._pParameterList[i]._toFinalCode();
+
+ if (i !== this._pParameterList.length - 1) {
+ sCode += ",";
+ }
+ }
+
+ sCode += ")";
+ }
+ else {
+ sCode = "void " + this._pFunctionName._toFinalCode() + "()";
+ }
+
+ return sCode;
+ }
+
+ _setType(pType: IAFXTypeInstruction): void {
+ this.setReturnType(pType);
+ }
+
+ _getType(): IAFXTypeInstruction {
+ return this.getReturnType();
+ }
+
+ setReturnType(pReturnType: IAFXVariableTypeInstruction): boolean {
+ this._pReturnType = pReturnType;
+ pReturnType._setParent(this);
+ return true;
+ }
+ getReturnType(): IAFXVariableTypeInstruction {
+ return this._pReturnType;
+ }
+
+ setFunctionName(pNameId: IAFXIdInstruction): boolean {
+ this._pFunctionName = pNameId;
+ pNameId._setParent(this);
+ return true;
+ }
+
+ _getName(): string {
+ return this._pFunctionName._getName();
+ }
+
+ _getRealName(): string {
+ return this._pFunctionName._getRealName();
+ }
+
+ _getNameId(): IAFXIdInstruction {
+ return this._pFunctionName;
+ }
+
+ getArguments(): IAFXVariableDeclInstruction[] {
+ return this._pParameterList;
+ }
+
+ getNumNeededArguments(): uint {
+ return this._nParamsNeeded;
+ }
+
+ markAsShaderDef(isShaderDef: boolean): void {
+ this._bShaderDef = isShaderDef;
+ }
+
+ isShaderDef(): boolean {
+ return this._bShaderDef;
+ }
+
+ addParameter(pParameter: IAFXVariableDeclInstruction, isStrictModeOn?: boolean): boolean {
+ if (this._pParameterList.length > this._nParamsNeeded &&
+ !pParameter._hasInitializer()) {
+
+ this._setError(EEffectErrors.BAD_FUNCTION_PARAMETER_DEFENITION_NEED_DEFAULT,
+ {
+ funcName: this._pFunctionName._getName(),
+ varName: pParameter._getName()
+ });
+ return false;
+ }
+
+ var pParameterType: IAFXVariableTypeInstruction = pParameter._getType();
+
+ if (pParameterType._isPointer() || pParameterType._containPointer()) {
+ if (pParameterType._hasUsage("uniform") ||
+ pParameterType._hasUsage("out") ||
+ pParameterType._hasUsage("inout")) {
+
+ this._setError(EEffectErrors.BAD_FUNCTION_PARAMETER_USAGE,
+ {
+ funcName: this._pFunctionName._getName(),
+ varName: pParameter._getName()
+ });
+ return false;
+ }
+
+ this._isAnalyzedForVertexUsage = false;
+ this._isAnalyzedForPixelUsage = true;
+
+ this._setForPixel(false);
+ this._bCanUsedAsFunction = false;
+ pParameterType._setVideoBufferInDepth();
+ }
+ else if (!isStrictModeOn) {
+
+ if (pParameterType._isComplex() &&
+ !pParameterType._hasFieldWithoutSemantic() &&
+ pParameterType._hasAllUniqueSemantics()) {
+
+ if (pParameter._getSemantic() === "" &&
+ pParameterType._hasAllUniqueSemantics() &&
+ !pParameterType._hasFieldWithoutSemantic()) {
+
+ pParameterType._addPointIndexInDepth();
+ }
+ else {
+ pParameterType._addPointIndex(false);
+ pParameterType._setVideoBufferInDepth();
+ }
+ }
+ else if (pParameter._getSemantic() !== "") {
+ pParameterType._addPointIndex(false);
+ pParameterType._setVideoBufferInDepth();
+ }
+ }
+
+ this._pParameterList.push(pParameter);
+ pParameter._setParent(this);
+
+ if (!pParameter._hasInitializer()) {
+ this._nParamsNeeded++;
+ }
+
+ return true;
+ }
+
+ getParameListForShaderInput(): IAFXVariableDeclInstruction[] {
+ return this._pParamListForShaderInput;
+ }
+
+ isComplexShaderInput(): boolean {
+ return this._bIsComplexShaderInput;
+ }
+
+ _clone(pRelationMap: IAFXInstructionMap = {}): FunctionDefInstruction {
+ var pClone: FunctionDefInstruction = super._clone(pRelationMap);
+
+ pClone.setFunctionName(this._pFunctionName._clone(pRelationMap));
+ pClone.setReturnType(this.getReturnType()._clone(pRelationMap));
+
+ for (var i: uint = 0; i < this._pParameterList.length; i++) {
+ pClone.addParameter(this._pParameterList[i]._clone(pRelationMap));
+ }
+
+ var pShaderParams: IAFXVariableDeclInstruction[] = [];
+ for (var i: uint = 0; i < this._pParamListForShaderInput.length; i++) {
+ pShaderParams.push(this._pParamListForShaderInput[i]._clone(pRelationMap));
+ }
+
+ pClone._setShaderParams(pShaderParams, this._bIsComplexShaderInput);
+ pClone._setAnalyzedInfo(this._isAnalyzedForVertexUsage,
+ this._isAnalyzedForPixelUsage,
+ this._bCanUsedAsFunction);
+
+ return pClone;
+ }
+
+ _setShaderParams(pParamList: IAFXVariableDeclInstruction[], isComplexInput: boolean): void {
+ this._pParamListForShaderInput = pParamList;
+ this._bIsComplexShaderInput = isComplexInput;
+ }
+
+ _setAnalyzedInfo(isAnalyzedForVertexUsage: boolean,
+ isAnalyzedForPixelUsage: boolean,
+ bCanUsedAsFunction: boolean): void {
+ this._isAnalyzedForVertexUsage = isAnalyzedForVertexUsage;
+ this._isAnalyzedForPixelUsage = isAnalyzedForPixelUsage;
+ this._bCanUsedAsFunction = bCanUsedAsFunction;
+ }
+
+ _getStringDef(): string {
+ if (this._sDefinition === "") {
+ this._sDefinition = this._pReturnType._getHash() + " " + this._getName() + "(";
+
+ for (var i: uint = 0; i < this._pParameterList.length; i++) {
+ this._sDefinition += this._pParameterList[i]._getType()._getHash() + ",";
+ }
+
+ this._sDefinition += ")";
+ }
+
+ return this._sDefinition;
+ }
+
+ _canUsedAsFunction(): boolean {
+ return this._bCanUsedAsFunction;
+ }
+
+ _checkForVertexUsage(): boolean {
+ if (this._isAnalyzedForVertexUsage) {
+ return this._isForVertex();
+ }
+
+ this._isAnalyzedForVertexUsage = true;
+
+ var isGood: boolean = true;
+
+ isGood = this.checkReturnTypeForVertexUsage();
+ if (!isGood) {
+ this._setForVertex(false);
+ return false;
+ }
+
+ isGood = this.checkArgumentsForVertexUsage();
+ if (!isGood) {
+ this._setForVertex(false);
+ return false;
+ }
+
+ this._setForVertex(true);
+
+ return true;
+ }
+
+ _checkForPixelUsage(): boolean {
+ if (this._isAnalyzedForPixelUsage) {
+ return this._isForPixel();
+ }
+
+ this._isAnalyzedForPixelUsage = true;
+
+ var isGood: boolean = true;
+
+ isGood = this.checkReturnTypeForPixelUsage();
+ if (!isGood) {
+ this._setForPixel(false);
+ return false;
+ }
+
+ isGood = this.checkArgumentsForPixelUsage();
+ if (!isGood) {
+ this._setForPixel(false);
+ return false;
+ }
+
+ this._setForPixel(true);
+
+ return true;
+ }
+
+ private checkReturnTypeForVertexUsage(): boolean {
+ var pReturnType: IAFXVariableTypeInstruction = this._pReturnType;
+ var isGood: boolean = true;
+
+ if (pReturnType._isEqual(Effect.getSystemType("void"))) {
+ return true;
+ }
+
+ if (pReturnType._isComplex()) {
+ isGood = !pReturnType._hasFieldWithoutSemantic();
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = pReturnType._hasAllUniqueSemantics();
+ if (!isGood) {
+ return false;
+ }
+
+ // isGood = pReturnType._hasFieldWithSematic("POSITION");
+ // if(!isGood){
+ // return false;
+ // }
+
+ isGood = !pReturnType._containSampler();
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = !pReturnType._containPointer() && !pReturnType._isPointer();
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = !pReturnType._containComplexType();
+ if (!isGood) {
+ return false;
+ }
+
+ return true;
+ }
+ else {
+ isGood = pReturnType._isEqual(Effect.getSystemType("float4"));
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = (this._getSemantic() === "POSITION");
+ if (!isGood) {
+ return false;
+ }
+
+ return true;
+ }
+ }
+
+ private checkReturnTypeForPixelUsage(): boolean {
+ var pReturnType: IAFXVariableTypeInstruction = this._pReturnType;
+ var isGood: boolean = true;
+
+ if (pReturnType._isEqual(Effect.getSystemType("void"))) {
+ return true;
+ }
+
+ isGood = pReturnType._isBase();
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = pReturnType._isEqual(Effect.getSystemType("float4"));
+ if (!isGood) {
+ return false;
+ }
+
+ isGood = this._getSemantic() === "COLOR";
+ if (!isGood) {
+ return false;
+ }
+
+ return true;
+ }
+
+ private checkArgumentsForVertexUsage(): boolean {
+ var pArguments: IAFXVariableDeclInstruction[] = this._pParameterList;
+ var isAttributeByStruct: boolean = false;
+ var isAttributeByParams: boolean = false;
+ var isStartAnalyze: boolean = false;
+
+ this._pParamListForShaderInput = [];
+ this._pParamListForShaderCompile = [];
+
+ for (var i: uint = 0; i < pArguments.length; i++) {
+ var pParam: IAFXVariableDeclInstruction = pArguments[i];
+
+ if (pParam._isUniform()) {
+ this._pParamListForShaderCompile.push(pParam);
+ continue;
+ }
+
+ if (!isStartAnalyze) {
+ if (pParam._getSemantic() === "") {
+ if (pParam._getType()._isBase() ||
+ pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics()) {
+ return false;
+ }
+
+ isAttributeByStruct = true;
+ }
+ else if (pParam._getSemantic() !== "") {
+ if (pParam._getType()._isComplex() &&
+ (pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics())) {
+ return false;
+ }
+
+ isAttributeByParams = true;
+ }
+
+ isStartAnalyze = true;
+ }
+ else if (isAttributeByStruct) {
+ return false;
+ }
+ else if (isAttributeByParams) {
+ if (pParam._getSemantic() === "") {
+ return false;
+ }
+
+ if (pParam._getType()._isComplex() &&
+ (pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics())) {
+ return false;
+ }
+ }
+
+ this._pParamListForShaderInput.push(pParam);
+ }
+
+ if (isAttributeByStruct) {
+ this._bIsComplexShaderInput = true;
+ }
+
+ return true;
+ }
+
+ private checkArgumentsForPixelUsage(): boolean {
+ var pArguments: IAFXVariableDeclInstruction[] = this._pParameterList;
+ var isVaryingsByStruct: boolean = false;
+ var isVaryingsByParams: boolean = false;
+ var isStartAnalyze: boolean = false;
+
+ this._pParamListForShaderInput = [];
+ this._pParamListForShaderCompile = [];
+
+ for (var i: uint = 0; i < pArguments.length; i++) {
+ var pParam: IAFXVariableDeclInstruction = pArguments[i];
+
+ if (pParam._isUniform()) {
+ this._pParamListForShaderCompile.push(pParam);
+ continue;
+ }
+
+ if (!isStartAnalyze) {
+ if (pParam._getSemantic() === "") {
+ if (pParam._getType()._isBase() ||
+ pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics() ||
+ pParam._getType()._containSampler() ||
+ pParam._getType()._containPointer() ||
+ pParam._getType()._isPointer()) {
+ return false;
+ }
+
+ isVaryingsByStruct = true;
+ }
+ else if (pParam._getSemantic() !== "") {
+ if (pParam._getType()._isStrictPointer() ||
+ pParam._getType()._containPointer() ||
+ pParam._getType()._containSampler() ||
+ Effect.isSamplerType(pParam._getType())) {
+ //LOG(2, pParam._getType()._isPointer(),
+ // pParam._getType()._containPointer(),
+ // pParam._getType()._containSampler(),
+ // Effect.isSamplerType(pParam._getType()));
+ return false;
+ }
+
+ if (pParam._getType()._isComplex() &&
+ (pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics())) {
+ return false;
+ }
+
+ isVaryingsByParams = true;
+ }
+
+ isStartAnalyze = true;
+ }
+ else if (isVaryingsByStruct) {
+ return false;
+ }
+ else if (isVaryingsByParams) {
+ if (pParam._getSemantic() === "") {
+ return false;
+ }
+
+ if (pParam._getType()._isStrictPointer() ||
+ pParam._getType()._containPointer() ||
+ pParam._getType()._containSampler() ||
+ Effect.isSamplerType(pParam._getType())) {
+ return false;
+ }
+
+ if (pParam._getType()._isComplex() &&
+ (pParam._getType()._hasFieldWithoutSemantic() ||
+ !pParam._getType()._hasAllUniqueSemantics())) {
+ return false;
+ }
+ }
+
+ this._pParamListForShaderInput.push(pParam);
+ }
+
+ if (isVaryingsByStruct) {
+ this._bIsComplexShaderInput = true;
+ }
+
+ return true;
+ }
+ // _getHash(): string {
+ // if(this._sHash === "") {
+ // this.calcHash();
+ // }
+
+ // return this._sHash;
+ // }
+
+ // private calcHash(): void {
+ // var sHash: string = "";
+ // sHash = this._pFunctionName._getName();
+ // sHash += "(";
+
+ // for(var i: uint = 0; i < this._pParameterList.length; i++){
+ // sHash += this._pParameterList[i]
+ // }
+
+ // }
+ }
}
\ No newline at end of file
diff --git a/src/akra/resources/HLSL.gr b/src/akra/resources/HLSL.gr
index c9f96082..83473ed1 100644
--- a/src/akra/resources/HLSL.gr
+++ b/src/akra/resources/HLSL.gr
@@ -15,6 +15,7 @@ Decl : ImportDecl
Decl : ProvideDecl
Decl : IncludeDecl
+# todo: fix problemds with missing ';'
IncludeDecl : T_KW_INCLUDE String --AN --F includeCode
ImportDecl : T_KW_IMPORT ComplexNameOpt ShiftOpt ExtOpt
@@ -108,6 +109,14 @@ ObjectType : T_KW_STATEBLOCK
ObjectType : T_KW_VIDEOBUFFER
ObjectType : T_KW_PTR
+# struct Name
+# {
+# [InterpolationModifier] Type[RxC] MemberName;
+# ...
+# };
+#
+# https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb509668(v=vs.85).aspx
+
Struct : T_KW_STRUCT StructBegin StructEnd --AN
Struct : T_KW_STRUCT StructBegin StructDecls StructEnd
StructDecl : T_KW_STRUCT Id StructBegin StructEnd --AN
@@ -150,6 +159,15 @@ InitializerOpt : Initializer
AddressOpt :
AddressOpt : FromExpr
+# [Storage_Class] [Type_Modifier] Type Name[Index]
+# [: Semantic]
+# [: Packoffset]
+# [: Register];
+# [Annotations]
+# [= Initial_Value]
+#
+# https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb509706(v=vs.85).aspx
+
VariableDecl : UsageType Variables ';' --AN
VarStructDecl : UsageStructDecl Variables ';' --AN
Variables : Variable --NN
@@ -159,6 +177,14 @@ VariableDim : Id --AN
VariableDim : VariableDim '[' ConstantExpr ']'
VariableDim : VariableDim '[' ']' AddressOpt
+
+# [StorageClass] [clipplanes()] [precise] Return_Value Name ( [ArgumentList] ) [: Semantic]
+# {
+# [StatementBlock]
+# };
+#
+# https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb509607(v=vs.85).aspx
+
FunctionDecl : FunctionDef ';' --AN
FunctionDecl : FunctionDef AnnotationOpt StmtBlock
FunctionDef : UsageType Id ParamList SemanticsOpt
@@ -169,6 +195,11 @@ ParamList : ParamListBegin ParameterDecls ParamListEnd
ParamListBegin : '('
ParamListEnd : ')'
+
+# [InputModifier] Type Name [: Semantic] [InterpolationModifier] [= Initializers]
+#
+# https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb509606(v=vs.85).aspx
+
ParameterDecls : ParameterDecl --NN
ParameterDecls : ParameterDecls ',' ParameterDecl
ParameterDecl : ParamUsageType Variable