From 6df52775a4d6c7c70f9c7b0a609f2d006f611b2b Mon Sep 17 00:00:00 2001 From: James Hush Date: Sun, 7 Jan 2018 03:45:06 -0500 Subject: [PATCH 001/236] Update package-lock.json (#1071) --- package-lock.json | 404 +++++++++++++++------------------------------- 1 file changed, 130 insertions(+), 274 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2421cefaa4..d1cbee267b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2363,9 +2363,9 @@ } }, "eslint": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.14.0.tgz", - "integrity": "sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz", + "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==", "dev": true, "requires": { "ajv": "5.5.2", @@ -2995,14 +2995,12 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "optional": true, "requires": { "co": "4.6.0", @@ -3011,19 +3009,16 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -3032,43 +3027,36 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -3076,24 +3064,21 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -3101,61 +3086,51 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3163,16 +3138,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -3180,31 +3153,26 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -3212,25 +3180,21 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -3240,13 +3204,11 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -3256,8 +3218,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -3267,8 +3228,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -3283,8 +3243,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3292,16 +3251,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3313,19 +3270,16 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -3334,14 +3288,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -3351,13 +3303,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": 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=", + "bundled": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -3367,8 +3317,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3376,44 +3325,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -3421,20 +3363,17 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -3442,20 +3381,17 @@ }, "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=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -3466,56 +3402,48 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -3533,8 +3461,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -3543,8 +3470,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -3555,45 +3481,38 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -3602,36 +3521,30 @@ }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -3642,16 +3555,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -3664,8 +3575,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -3694,47 +3604,40 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -3750,16 +3653,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3768,36 +3669,31 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -3806,8 +3702,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "optional": true, "requires": { "debug": "2.6.8", @@ -3822,8 +3717,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -3831,8 +3725,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -3840,31 +3733,26 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -3872,8 +3760,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -3881,8 +3768,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, @@ -4020,6 +3906,11 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, "ws": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ws/-/ws-3.0.0.tgz", @@ -5876,7 +5767,7 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "numbro": { - "version": "github:highvelocityspace/numbro#65a801c05c40496e5701458c0d4e780060e9a742" + "version": "github:highvelocityspace/numbro#797eae5605bf217a016a112343e8dd9746b72e15" }, "oauth-sign": { "version": "0.8.2", @@ -6162,16 +6053,16 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.5.tgz", - "integrity": "sha512-9fAxS/+I3fBLBLJpZkuUTa1nY78BDWiP4Z8NFebaBCt3NuInv31J4YrljAaktsJ5QodyQ1qyr5EdBzTITF1cxw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.5" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -7393,16 +7284,6 @@ "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.5" - } - } } }, "path-exists": { @@ -7411,16 +7292,6 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.5" - } - } } } } @@ -7461,7 +7332,7 @@ }, "reconnect-core": { "version": "https://github.com/dodo/reconnect-core/tarball/merged", - "integrity": "sha512-wZK/v5ZaNaSUs2Wnwh2YSX/Jqv6bQHKNEwojdzV11tByKziR9ikOssf5tvUhx+8/oCBz6AakOFAjZuqPoiRHJQ==", + "integrity": "sha1-udryrcRbGabMX9LwSPjZQGzs5Jg=", "requires": { "backoff": "2.3.0" } @@ -7634,16 +7505,6 @@ "commander": "2.12.2", "is-my-json-valid": "2.17.1", "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.5" - } - } } } } @@ -8791,11 +8652,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", @@ -9065,8 +8921,8 @@ }, "wexnz": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.3.tgz", - "integrity": "sha512-/aOABXmapFoTvv7hLKtQlW2ueWXE43JvrrMK5G3tD62fRA/S7ZX4Tu+Lv5O/VhcRz9FisFrO9PD49bOA0mFang==" + "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.2.tgz", + "integrity": "sha512-7hUID+5H56RidHNHGmOPzCAfxZCcaz/joI48F2KoeIByQtWAEVwhesujbqOcGANCs57rWTgcKTtKah7qH0Mi0w==" }, "whet.extend": { "version": "0.9.9", From 6df9dbf69e114a11644f47b0979de860a8ef4c45 Mon Sep 17 00:00:00 2001 From: Chase Date: Sun, 7 Jan 2018 10:32:40 +0100 Subject: [PATCH 002/236] Travis: use package-lock (#1073) --- .travis.yml | 2 - package-lock.json | 4450 ++++++++------------------------------------- 2 files changed, 737 insertions(+), 3715 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c2b1d5ba4..e6c1e88b9e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,4 @@ node_js: - "8" - "9" before_install: - - rm -rf package-lock.json - - npm install https://github.com/floatdrop/pinkie-promise.git - npm install -g node-gyp diff --git a/package-lock.json b/package-lock.json index d1cbee267b..1f7048c4c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,26 +2,11 @@ "name": "zenbot4", "version": "4.1.0", "lockfileVersion": 1, - "requires": true, "dependencies": { "@slack/client": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.15.0.tgz", "integrity": "sha512-MIgf5s9PrcxFaPlkJ2cFOhrfh9/KOmUKK5GG/Eka1IJK7+oBCscJFnQ6FfYnZICwIQxWkkuiXmeWYWNevZhCLg==", - "requires": { - "async": "1.5.2", - "bluebird": "3.5.1", - "eventemitter3": "1.2.0", - "https-proxy-agent": "1.0.0", - "inherits": "2.0.3", - "lodash": "4.17.4", - "pkginfo": "0.4.1", - "request": "2.76.0", - "retry": "0.9.0", - "url-join": "0.0.1", - "winston": "2.4.0", - "ws": "1.1.5" - }, "dependencies": { "async": { "version": "1.5.2", @@ -31,11 +16,7 @@ "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "requires": { - "options": "0.0.6", - "ultron": "1.0.2" - } + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==" } } }, @@ -47,30 +28,12 @@ "@xmpp/streamparser": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@xmpp/streamparser/-/streamparser-0.0.6.tgz", - "integrity": "sha1-EYAz6p23yGoctGED8mnr/3n28eo=", - "requires": { - "@xmpp/xml": "0.1.3", - "inherits": "2.0.3", - "ltx": "2.7.1" - } + "integrity": "sha1-EYAz6p23yGoctGED8mnr/3n28eo=" }, "@xmpp/xml": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@xmpp/xml/-/xml-0.1.3.tgz", - "integrity": "sha1-HxQ5nlPkGWiFWGmPbGLnHjmoam4=", - "requires": { - "inherits": "2.0.3", - "ltx": "2.7.1" - } - }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } + "integrity": "sha1-HxQ5nlPkGWiFWGmPbGLnHjmoam4=" }, "abbrev": { "version": "1.1.1", @@ -80,11 +43,7 @@ "accepts": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", - "requires": { - "mime-types": "2.1.17", - "negotiator": "0.6.1" - } + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=" }, "acorn": { "version": "5.3.0", @@ -95,9 +54,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "requires": { - "acorn": "4.0.13" - }, "dependencies": { "acorn": { "version": "4.0.13", @@ -111,9 +67,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, - "requires": { - "acorn": "3.3.0" - }, "dependencies": { "acorn": { "version": "3.3.0", @@ -127,15 +80,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=", - "requires": { - "assert": "1.4.1", - "camelcase": "1.2.1", - "loader-utils": "1.1.0", - "lodash.assign": "4.2.0", - "lodash.defaults": "3.1.2", - "object-path": "0.9.2", - "regex-parser": "2.2.8" - }, "dependencies": { "camelcase": { "version": "1.2.1", @@ -146,20 +90,11 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", - "requires": { - "lodash.assign": "3.2.0", - "lodash.restparam": "3.6.1" - }, "dependencies": { "lodash.assign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" - } + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=" } } } @@ -169,10 +104,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", - "requires": { - "extend": "3.0.1", - "semver": "5.0.3" - }, "dependencies": { "semver": { "version": "5.0.3", @@ -184,13 +115,7 @@ "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=" }, "ajv-keywords": { "version": "2.1.1", @@ -200,12 +125,7 @@ "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=" }, "alphanum-sort": { "version": "1.0.2", @@ -236,11 +156,7 @@ "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==" }, "aproba": { "version": "1.2.0", @@ -250,27 +166,17 @@ "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" - } + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=" }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "1.0.3" - } + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=" }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "1.1.0" - } + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=" }, "arr-flatten": { "version": "1.1.0", @@ -291,10 +197,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } + "dev": true }, "array-uniq": { "version": "1.0.3", @@ -310,11 +213,7 @@ "array.prototype.findindex": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/array.prototype.findindex/-/array.prototype.findindex-2.0.2.tgz", - "integrity": "sha1-WAaNJYh+9QXknckssAxE3O5VsGc=", - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0" - } + "integrity": "sha1-WAaNJYh+9QXknckssAxE3O5VsGc=" }, "arrify": { "version": "1.0.1", @@ -330,20 +229,12 @@ "asn1.js": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==" }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=" }, "assert-plus": { "version": "0.2.0", @@ -353,10 +244,7 @@ "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==" }, "async-each": { "version": "1.0.1", @@ -386,15 +274,7 @@ "autoprefixer": { "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000787", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=" }, "aws-sign2": { "version": "0.6.0", @@ -409,503 +289,232 @@ "axios": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", - "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", - "requires": { - "follow-redirects": "1.3.0", - "is-buffer": "1.1.6" - } + "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=" }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=" }, "babel-core": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - } + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=" }, "babel-generator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "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" - } + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=" }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=" }, "babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=" }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=" }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=" }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=" }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=" }, "babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=" }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=" }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=" }, "babel-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" - } + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==" }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=" }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=" }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=" }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=" }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=" }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=" }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=" }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=" }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=" }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=" }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=" }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=" }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=" }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=" }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=" }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=" }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=" }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=" }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=" }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=" }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=" }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=" }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "6.26.0" - } + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=" }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=" }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "0.10.1" - } + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=" }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=" }, "babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" - } + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=" }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - } + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=" }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" - } + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=" }, "babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=" }, "babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "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" - } + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=" }, "babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=" }, "babylon": { "version": "6.18.0", @@ -931,10 +540,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } + "optional": true }, "big.js": { "version": "3.2.0", @@ -954,38 +560,22 @@ "bitfinex-api-node": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bitfinex-api-node/-/bitfinex-api-node-1.2.1.tgz", - "integrity": "sha512-pG4BMCD7T/R1vkLhLdHPim4Lbfbkdyt/yTaJ+A48vrzGsQO7MwxIRRs6rEx1Acm/vpsUyksbOaQyladh2T8Whw==", - "requires": { - "debug": "2.6.9", - "lodash": "4.17.4", - "request": "2.76.0", - "request-promise": "4.2.2", - "ws": "3.3.3" - } + "integrity": "sha512-pG4BMCD7T/R1vkLhLdHPim4Lbfbkdyt/yTaJ+A48vrzGsQO7MwxIRRs6rEx1Acm/vpsUyksbOaQyladh2T8Whw==" }, "bitstamp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bitstamp/-/bitstamp-1.0.5.tgz", - "integrity": "sha512-hgo+gJ6AioE4dZAGAikbscq/F2TInnNi45WyMAV6e00zWQkjpeTKqtCXCu0hP6LRgooIPvZgWUrJbpjNwgmsOQ==", - "requires": { - "underscore": "1.4.4" - } + "integrity": "sha512-hgo+gJ6AioE4dZAGAikbscq/F2TInnNi45WyMAV6e00zWQkjpeTKqtCXCu0hP6LRgooIPvZgWUrJbpjNwgmsOQ==" }, "bl": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "requires": { - "readable-stream": "2.3.3" - } + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=" }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=" }, "bluebird": { "version": "3.5.1", @@ -1001,18 +591,6 @@ "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.15" - }, "dependencies": { "qs": { "version": "6.5.1", @@ -1024,10 +602,7 @@ "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" }, "bootstrap": { "version": "4.0.0-beta.3", @@ -1037,21 +612,12 @@ "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=" }, "brorand": { "version": "1.1.0", @@ -1066,75 +632,37 @@ "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==" }, "browserify-cipher": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" - } + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=" }, "browserify-des": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=" }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" - } + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=" }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" - } + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=" }, "browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "1.0.6" - } + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==" }, "browserslist": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "1.0.30000787", - "electron-to-chromium": "1.3.30" - } + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=" }, "bson": { "version": "1.0.4", @@ -1144,12 +672,7 @@ "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" - } + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=" }, "buffer-shims": { "version": "1.0.0", @@ -1180,10 +703,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } + "dev": true }, "callsites": { "version": "0.2.0", @@ -1199,27 +719,17 @@ "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=" }, "caniuse-api": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000787", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=" }, "caniuse-db": { - "version": "1.0.30000787", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000787.tgz", - "integrity": "sha1-ygeigb5Taoi9f6yWuolfPPU/gRs=" + "version": "1.0.30000789", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000789.tgz", + "integrity": "sha1-XPP+x1SABBqxYsoGQTFTFB4jQyU=" }, "caseless": { "version": "0.11.0", @@ -1230,11 +740,6 @@ "version": "1.10.579", "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.579.tgz", "integrity": "sha512-Tp6tRmj/zV/Wpap8v5Vq5RN1e8jeJFPRO9c8MK9HyKuXueWKXG+L3oVMsD4ZBCTjddsQqHyT/RPO/L3cgHL7bw==", - "requires": { - "crypto-js": "3.1.9-1", - "fetch-ponyfill": "4.1.0", - "qs": "6.5.1" - }, "dependencies": { "qs": { "version": "6.5.1", @@ -1247,10 +752,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - }, "dependencies": { "lazy-cache": { "version": "1.0.4", @@ -1263,13 +764,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/cexio-api-node/-/cexio-api-node-1.1.0.tgz", "integrity": "sha512-qdqB/l/hBHUY7TgAo4nckteYdyyUkCJ7tSbEtC42lb5uztw6on6SSScE4Ve/mBM0V+fpURL8Jan+QzqYtybNmw==", - "requires": { - "debug": "3.1.0", - "moment": "2.20.1", - "request": "2.83.0", - "underscore": "1.8.3", - "ws": "3.3.3" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1284,10 +778,7 @@ "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=" }, "caseless": { "version": "0.12.0", @@ -1298,57 +789,33 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, "dependencies": { "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==" } } }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" }, "form-data": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=" }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=" }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" - } + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==" }, "hoek": { "version": "4.2.0", @@ -1358,12 +825,7 @@ "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" }, "qs": { "version": "6.5.1", @@ -1373,47 +835,17 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "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", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==" }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" }, "underscore": { "version": "1.8.3", @@ -1430,14 +862,7 @@ "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" }, "chardet": { "version": "0.4.2", @@ -1448,27 +873,12 @@ "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=" }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" }, "circular-json": { "version": "0.3.3", @@ -1479,28 +889,19 @@ "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "requires": { - "chalk": "1.1.3" - } + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==" }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } + "dev": true }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "dev": true, - "requires": { - "colors": "1.0.3" - }, "dependencies": { "colors": { "version": "1.0.3", @@ -1520,11 +921,6 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", - "requires": { - "colors": "1.0.3", - "eyes": "0.1.8", - "winston": "0.8.3" - }, "dependencies": { "async": { "version": "0.2.10", @@ -1545,15 +941,6 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "pkginfo": "0.3.1", - "stack-trace": "0.0.10" - }, "dependencies": { "colors": { "version": "0.6.2", @@ -1567,12 +954,7 @@ "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=" }, "clone": { "version": "1.0.3", @@ -1582,13 +964,7 @@ "clone-deep": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", - "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", - "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "shallow-clone": "0.1.2" - } + "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=" }, "co": { "version": "4.6.0", @@ -1598,10 +974,7 @@ "coa": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "requires": { - "q": "1.5.1" - } + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=" }, "code-point-at": { "version": "1.1.0", @@ -1611,28 +984,17 @@ "codemap": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/codemap/-/codemap-1.3.1.tgz", - "integrity": "sha1-00p9ul87UQS2WkUQ4jGPqWbP3rk=", - "requires": { - "debug": "2.6.9" - } + "integrity": "sha1-00p9ul87UQS2WkUQ4jGPqWbP3rk=" }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", - "color-string": "0.3.0" - } + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=" }, "color-convert": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "1.1.3" - } + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==" }, "color-name": { "version": "1.1.3", @@ -1642,20 +1004,12 @@ "color-string": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "requires": { - "color-name": "1.1.3" - } + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=" }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=" }, "colors": { "version": "1.1.2", @@ -1665,10 +1019,7 @@ "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "1.0.0" - } + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" }, "commander": { "version": "2.12.2", @@ -1694,20 +1045,12 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" - } + "dev": true }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "0.1.4" - } + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=" }, "console-control-strings": { "version": "1.1.0", @@ -1762,93 +1105,42 @@ "cosmiconfig": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - } + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==" }, "counterup": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", - "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", - "requires": { - "jquery": "3.2.1", - "waypoints": "4.0.1" - } + "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=" }, "create-ecdh": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=" }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" - } + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=" }, "create-hmac": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" - } + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=" }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" - } + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=" }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5", - "randomfill": "1.0.3" - } + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" }, "crypto-js": { "version": "3.1.9-1", @@ -1859,20 +1151,11 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", - "requires": { - "inherits": "2.0.3", - "source-map": "0.1.43", - "source-map-resolve": "0.3.1", - "urix": "0.1.0" - }, "dependencies": { "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "requires": { - "amdefine": "1.0.1" - } + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=" } } }, @@ -1884,43 +1167,17 @@ "css-loader": { "version": "0.28.8", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.8.tgz", - "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==", - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - } + "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==" }, "css-selector-tokenizer": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" - }, "dependencies": { "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=" } } }, @@ -1932,50 +1189,12 @@ "cssnano": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - } + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=" }, "csso": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=" }, "ctype": { "version": "0.5.3", @@ -1986,10 +1205,7 @@ "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "1.0.2" - } + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=" }, "cycle": { "version": "1.0.3", @@ -1999,18 +1215,12 @@ "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "0.10.37" - } + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=" }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2027,10 +1237,7 @@ "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" }, "decamelize": { "version": "1.2.0", @@ -2051,11 +1258,7 @@ "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" - } + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=" }, "defined": { "version": "1.0.0", @@ -2067,15 +1270,6 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, "dependencies": { "pify": { "version": "2.3.0", @@ -2103,11 +1297,7 @@ "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=" }, "destroy": { "version": "1.0.4", @@ -2117,29 +1307,18 @@ "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "2.0.1" - } + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=" }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" - } + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=" }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } + "dev": true }, "domain-browser": { "version": "1.1.7", @@ -2155,10 +1334,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "optional": true }, "ee-first": { "version": "1.1.1", @@ -2178,24 +1354,12 @@ "electron-to-chromium": { "version": "1.3.30", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz", - "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==", - "requires": { - "electron-releases": "2.1.0" - } + "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==" }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=" }, "emojis-list": { "version": "2.1.0", @@ -2210,99 +1374,52 @@ "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" }, "end-of-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", - "requires": { - "once": "1.4.0" - } + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=" }, "errno": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", - "requires": { - "prr": "1.0.1" - } + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==" }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "0.2.1" - } + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" }, "es-abstract": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" - } + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==" }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" }, "es5-ext": { "version": "0.10.37", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", - "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } + "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=" }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-symbol": "3.1.1" - } + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=" }, "es6-map": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=" }, "es6-promise": { "version": "3.2.1", @@ -2312,34 +1429,17 @@ "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=" }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37" - } + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=" }, "es6-weak-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=" }, "escape-html": { "version": "1.0.3", @@ -2354,58 +1454,13 @@ "escope": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=" }, "eslint": { "version": "4.15.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz", "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==", "dev": true, - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.3.0", - "concat-stream": "1.6.0", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.2", - "esquery": "1.0.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.1.0", - "ignore": "3.3.7", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.0.1", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.4.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" - }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -2417,41 +1472,25 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } + "dev": true }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } + "dev": true }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } + "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" - } + "dev": true }, "esprima": { "version": "4.0.0", @@ -2475,29 +1514,19 @@ "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" - } + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } + "dev": true }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } + "dev": true } } }, @@ -2505,11 +1534,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } + "dev": true }, "eslint-visitor-keys": { "version": "1.0.0", @@ -2521,11 +1546,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", - "dev": true, - "requires": { - "acorn": "5.3.0", - "acorn-jsx": "3.0.1" - } + "dev": true }, "esprima": { "version": "2.7.3", @@ -2536,19 +1557,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } + "dev": true }, "esrecurse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" - } + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=" }, "estraverse": { "version": "4.2.0", @@ -2568,25 +1582,12 @@ "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37" - } + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=" }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", - "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" - } + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=" }, "eventemitter3": { "version": "1.2.0", @@ -2601,35 +1602,17 @@ "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" - } + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=" } } }, @@ -2641,27 +1624,17 @@ "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "requires": { - "is-posix-bracket": "0.1.1" - } + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=" }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "requires": { - "fill-range": "2.2.3" - } + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=" }, "exports-loader": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", - "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", - "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7" - } + "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=" }, "expose-loader": { "version": "0.7.4", @@ -2672,38 +1645,6 @@ "version": "4.16.2", "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", - "requires": { - "accepts": "1.3.4", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.0", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", - "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, "dependencies": { "qs": { "version": "6.5.1", @@ -2721,20 +1662,12 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" - } + "dev": true }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "requires": { - "is-extglob": "1.0.0" - } + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=" }, "extsprintf": { "version": "1.3.0", @@ -2770,46 +1703,29 @@ "faye-websocket": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.4.tgz", - "integrity": "sha1-iFk0x57/sECVSeDAo4Ae0XpAza0=", - "requires": { - "websocket-driver": "0.7.0" - } + "integrity": "sha1-iFk0x57/sECVSeDAo4Ae0XpAza0=" }, "fetch-ponyfill": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "requires": { - "node-fetch": "1.7.3" - } + "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=" }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } + "dev": true }, "file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } + "dev": true }, "file-loader": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz", - "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==", - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - } + "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==" }, "file-type": { "version": "3.9.0", @@ -2825,76 +1741,40 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=" } } }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=" }, "find-cache-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" - } + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=" }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" }, "flat": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz", "integrity": "sha512-ji/WMv2jdsE+LaznpkIF9Haax0sdpTBozrz/Dtg4qSRMfbs8oVg4ypJunIRYPiMLvH/ed6OflXbnbTIKJhtgeg==", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "dev": true }, "flat-cache": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } + "dev": true }, "flatten": { "version": "1.0.2", @@ -2905,17 +1785,11 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", "integrity": "sha1-9oSHH8EW0uMp/aVe9naH9Pq8kFw=", - "requires": { - "debug": "3.1.0" - }, "dependencies": { "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" } } }, @@ -2927,10 +1801,7 @@ "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "1.0.2" - } + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=" }, "foreach": { "version": "2.0.5", @@ -2943,20 +1814,12 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "forex.analytics": { - "version": "github:mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14", - "requires": { - "nan": "2.8.0" - } + "version": "github:mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14" }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" }, "forwarded": { "version": "0.1.2", @@ -2988,800 +1851,664 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "optional": true }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true }, "block-stream": { "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=" }, "boom": { "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" }, "brace-expansion": { "version": "1.1.7", - "bundled": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=" }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "debug": { "version": "2.6.8", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "optional": true }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "optional": true }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=" }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "optional": true }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "glob": { "version": "7.1.2", - "bundled": 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" - } + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "optional": true }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-signature": { "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "optional": true }, "inflight": { "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "optional": true }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "optional": true }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" }, "mime-types": { "version": "2.1.15", - "bundled": true, - "requires": { - "mime-db": "1.27.0" - } + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" }, "minimatch": { "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.7" - } + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "optional": true }, "nopt": { "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "optional": true }, "npmlog": { "version": "4.1.0", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "optional": true }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "optional": true }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.2.9", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=" }, "request": { "version": "2.81.0", - "bundled": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "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.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "optional": true }, "rimraf": { "version": "2.6.1", - "bundled": true, - "requires": { - "glob": "7.1.2" - } + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "optional": 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", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, "string_decoder": { "version": "1.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=" }, "tar-pack": { "version": "3.4.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "optional": true }, "tough-cookie": { "version": "2.3.2", - "bundled": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "optional": true }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "optional": true }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "optional": true }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=" }, "function-bind": { "version": "1.1.1", @@ -3797,43 +2524,20 @@ "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" }, "gaze": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "requires": { - "globule": "1.2.0" - } + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=" }, "gdax": { "version": "github:coinbase/gdax-node#4d74a7fe39a33ac12d1b9046d199df1c1f753927", - "requires": { - "bintrees": "1.0.1", - "num": "0.3.0", - "request": "2.81.0", - "ws": "3.0.0" - }, "dependencies": { "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" }, "caseless": { "version": "0.12.0", @@ -3848,11 +2552,7 @@ "har-validator": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" }, "performance-now": { "version": "0.2.0", @@ -3867,39 +2567,12 @@ "request": { "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "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", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" }, "ultron": { "version": "1.1.1", @@ -3915,10 +2588,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ws/-/ws-3.0.0.tgz", "integrity": "sha1-mN2wAFbIOQy3Ued4h4hJf5kQO2w=", - "requires": { - "safe-buffer": "5.0.1", - "ultron": "1.1.1" - }, "dependencies": { "safe-buffer": { "version": "5.0.1", @@ -3933,13 +2602,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/gemini-api/-/gemini-api-2.0.4.tgz", "integrity": "sha512-pWWT+jjaVLrFUp2i8qIrBZoD/eBmY5XBu2MELQIc+pbgKdBJXefR5gVi/R9zaccoNbHZvpFztWCWrWhtXOxiKw==", - "requires": { - "axios": "0.16.2", - "lodash": "4.17.4", - "qs": "6.5.1", - "shortid": "2.2.8", - "ws": "2.3.1" - }, "dependencies": { "qs": { "version": "6.5.1", @@ -3959,11 +2621,7 @@ "ws": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", - "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", - "requires": { - "safe-buffer": "5.0.1", - "ultron": "1.1.1" - } + "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=" } } }, @@ -3975,10 +2633,7 @@ "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=", - "requires": { - "is-property": "1.0.2" - } + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=" }, "geneticalgorithm": { "version": "0.3.4", @@ -4005,9 +2660,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4019,32 +2671,17 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" - } + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=" }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "requires": { - "is-glob": "2.0.1" - } + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=" }, "globals": { "version": "9.18.0", @@ -4056,14 +2693,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, "dependencies": { "pify": { "version": "2.3.0", @@ -4076,12 +2705,7 @@ "globule": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "minimatch": "3.0.4" - } + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=" }, "graceful-fs": { "version": "4.1.11", @@ -4096,27 +2720,17 @@ "har-validator": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==" }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "requires": { - "function-bind": "1.1.1" - } + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" }, "has-flag": { "version": "1.0.0", @@ -4131,41 +2745,22 @@ "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=" }, "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==" }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" }, "hoek": { "version": "2.16.3", @@ -4175,11 +2770,7 @@ "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=" }, "hosted-git-info": { "version": "2.5.0", @@ -4195,12 +2786,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - }, "dependencies": { "setprototypeof": { "version": "1.0.3", @@ -4217,12 +2802,7 @@ "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" }, "https-browserify": { "version": "1.0.0", @@ -4232,12 +2812,7 @@ "https-proxy-agent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", - "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" - } + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=" }, "iconv-lite": { "version": "0.4.19", @@ -4253,35 +2828,21 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "6.0.16" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -4293,12 +2854,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -4308,20 +2864,14 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, "idgen": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/idgen/-/idgen-2.0.2.tgz", - "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=", - "requires": { - "commander": "2.12.2" - } + "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=" }, "ieee754": { "version": "1.1.8", @@ -4337,11 +2887,7 @@ "imports-loader": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.7.1.tgz", - "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=", - "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7" - } + "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=" }, "imurmurhash": { "version": "0.1.4", @@ -4357,10 +2903,7 @@ "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "2.0.1" - } + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=" }, "indexes-of": { "version": "1.0.1", @@ -4375,11 +2918,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" }, "inherits": { "version": "2.0.3", @@ -4391,22 +2930,6 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, - "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.4", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -4418,21 +2941,13 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } + "dev": true }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } + "dev": true }, "has-flag": { "version": "2.0.0", @@ -4450,29 +2965,19 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } + "dev": true }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } + "dev": true } } }, @@ -4489,10 +2994,7 @@ "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "requires": { - "loose-envify": "1.3.1" - } + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" }, "invert-kv": { "version": "1.0.0", @@ -4522,10 +3024,7 @@ "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "1.11.0" - } + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=" }, "is-buffer": { "version": "1.1.6", @@ -4535,10 +3034,7 @@ "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "1.1.1" - } + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" }, "is-callable": { "version": "1.1.3", @@ -4563,10 +3059,7 @@ "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "requires": { - "is-primitive": "2.0.0" - } + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=" }, "is-extendable": { "version": "0.1.1", @@ -4581,54 +3074,33 @@ "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" - } + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "1.0.0" - } + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=" }, "is-integer": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", "integrity": "sha1-a96Bqs3feLZZtmKdYpytxRqIbVw=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } + "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==", - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } + "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==" }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "requires": { - "kind-of": "3.2.2" - } + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=" }, "is-path-cwd": { "version": "1.0.0", @@ -4640,19 +3112,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } + "dev": true }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } + "dev": true }, "is-plain-obj": { "version": "1.1.0", @@ -4662,10 +3128,7 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "3.0.1" - } + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" }, "is-posix-bracket": { "version": "0.1.1", @@ -4691,10 +3154,7 @@ "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "1.0.1" - } + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" }, "is-resolvable": { "version": "1.0.1", @@ -4710,10 +3170,7 @@ "is-svg": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "1.1.1" - } + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=" }, "is-symbol": { "version": "1.0.1", @@ -4758,12 +3215,7 @@ "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "requires": { - "exit": "0.1.2", - "glob": "7.1.2", - "jasmine-core": "2.8.0" - } + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=" }, "jasmine-core": { "version": "2.8.0", @@ -4793,11 +3245,7 @@ "js-yaml": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" - } + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=" }, "jsbn": { "version": "0.1.1", @@ -4828,10 +3276,7 @@ "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "0.0.0" - } + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -4849,27 +3294,12 @@ "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-3.11.5.tgz", "integrity": "sha512-ORsw84BuRKMLxfI+HFZuvxRDnsJps53D5fIGr6tLn4ZY+ymcG8XU00E+JJ2wfAiHx5w2QRNmOLE8xHiGAeSfuQ==", "dev": true, - "requires": { - "cli-table": "0.3.1", - "commander": "2.12.2", - "debug": "3.1.0", - "flat": "4.0.0", - "lodash.clonedeep": "4.5.0", - "lodash.flatten": "4.4.0", - "lodash.get": "4.4.2", - "lodash.set": "4.3.2", - "lodash.uniq": "4.5.0", - "path-is-absolute": "1.0.1" - }, "dependencies": { "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" - } + "dev": true } } }, @@ -4893,16 +3323,15 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" }, + "JSONStream": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=" + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4914,19 +3343,12 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" }, "kraken-api": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/kraken-api/-/kraken-api-0.1.7.tgz", - "integrity": "sha1-t1JDXmkXunHZ5zSl/tP6WWFiLeg=", - "requires": { - "querystring": "0.2.0", - "request": "2.76.0" - } + "integrity": "sha1-t1JDXmkXunHZ5zSl/tP6WWFiLeg=" }, "lazy-cache": { "version": "0.2.7", @@ -4936,32 +3358,18 @@ "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } + "dev": true }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "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" - }, "dependencies": { "pify": { "version": "2.3.0", @@ -4978,21 +3386,12 @@ "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=" }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" }, "lodash": { "version": "4.17.4", @@ -5002,11 +3401,7 @@ "lodash._baseassign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" - } + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=" }, "lodash._basecopy": { "version": "3.0.1", @@ -5021,12 +3416,7 @@ "lodash._createassigner": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "requires": { - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9", - "lodash.restparam": "3.6.1" - } + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=" }, "lodash._getnative": { "version": "3.9.1", @@ -5083,12 +3473,7 @@ "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" - } + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=" }, "lodash.memoize": { "version": "4.1.2", @@ -5129,36 +3514,22 @@ "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "3.0.2" - } + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" }, "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==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==" }, "ltx": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/ltx/-/ltx-2.7.1.tgz", - "integrity": "sha1-Dly9y1vxeM+ngx6kHcMj2XQiMVo=", - "requires": { - "inherits": "2.0.3" - } + "integrity": "sha1-Dly9y1vxeM+ngx6kHcMj2XQiMVo=" }, "macaddress": { "version": "0.2.8", @@ -5168,10 +3539,7 @@ "make-dir": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", - "requires": { - "pify": "3.0.0" - } + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==" }, "map-obj": { "version": "1.0.1", @@ -5191,25 +3559,12 @@ "mathjs": { "version": "3.19.0", "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.19.0.tgz", - "integrity": "sha512-E1cKiSclqkPyrndVaE1gQ/IqveCRvTGBDcM+AT6lDK0tTAzUpI3kHdsq/9HKNRn0+v+i2m6arZ6PxBtATXQlxw==", - "requires": { - "complex.js": "2.0.4", - "decimal.js": "9.0.1", - "fraction.js": "4.0.4", - "javascript-natural-sort": "0.7.1", - "seed-random": "2.2.0", - "tiny-emitter": "2.0.2", - "typed-function": "0.10.6" - } + "integrity": "sha512-E1cKiSclqkPyrndVaE1gQ/IqveCRvTGBDcM+AT6lDK0tTAzUpI3kHdsq/9HKNRn0+v+i2m6arZ6PxBtATXQlxw==" }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=" }, "media-typer": { "version": "0.3.0", @@ -5219,36 +3574,17 @@ "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "1.1.0" - } + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=" }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.3" - } + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=" }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=" }, "merge-descriptors": { "version": "1.0.1", @@ -5268,31 +3604,12 @@ "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "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" - } + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=" }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" }, "mime": { "version": "1.6.0", @@ -5307,10 +3624,7 @@ "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=", - "requires": { - "mime-db": "1.30.0" - } + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=" }, "mimic-fn": { "version": "1.1.0", @@ -5330,10 +3644,7 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" }, "minimist": { "version": "1.2.0", @@ -5344,10 +3655,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - }, "dependencies": { "for-in": { "version": "0.1.8", @@ -5360,9 +3667,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, "dependencies": { "minimist": { "version": "0.0.8", @@ -5380,36 +3684,18 @@ "version": "2.2.34", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz", "integrity": "sha1-o09Zu+thdUrsQy3nLD/iFSakTBo=", - "requires": { - "es6-promise": "3.2.1", - "mongodb-core": "2.1.18", - "readable-stream": "2.2.7" - }, "dependencies": { "readable-stream": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=" } } }, "mongodb-core": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", - "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", - "requires": { - "bson": "1.0.4", - "require_optional": "1.0.1" - } + "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=" }, "ms": { "version": "2.0.0", @@ -5441,31 +3727,12 @@ "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==" }, "node-gyp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.76.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, "dependencies": { "semver": { "version": "5.3.0", @@ -5477,41 +3744,12 @@ "node-libs-browser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - } + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==" }, "node-prowl": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/node-prowl/-/node-prowl-0.1.7.tgz", "integrity": "sha1-Jt4onxRqp6SXBJYZOocBu/GO6rc=", - "requires": { - "request": "2.9.202", - "xml2js": "0.1.13" - }, "dependencies": { "request": { "version": "2.9.202", @@ -5524,65 +3762,16 @@ "version": "4.7.2", "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.2", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.0", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.8.0", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" - }, "dependencies": { "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "1.1.3", - "commander": "2.12.2", - "is-my-json-valid": "2.17.1", - "pinkie-promise": "2.0.1" - } + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=" }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "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" - } + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=" }, "uuid": { "version": "3.1.0", @@ -5595,19 +3784,6 @@ "version": "0.29.0", "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.29.0.tgz", "integrity": "sha512-WZBp5ccr0zMLRNtZ3avrevGpj05mrN59lDmxgpltls0bl3W/wqyNalNGKatTZEJ1cY0pctgd9FqKyCzWr36HcQ==", - "requires": { - "array.prototype.findindex": "2.0.2", - "bl": "1.2.1", - "bluebird": "3.5.1", - "debug": "2.6.9", - "depd": "1.1.1", - "eventemitter3": "2.0.3", - "file-type": "3.9.0", - "mime": "1.6.0", - "pump": "1.0.3", - "request": "2.76.0", - "request-promise": "4.2.2" - }, "dependencies": { "eventemitter3": { "version": "2.0.3", @@ -5625,41 +3801,18 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/node-xmpp-client/-/node-xmpp-client-3.2.0.tgz", "integrity": "sha1-r0Un3wzFq9JpDLohOcwezcgeoYk=", - "requires": { - "browser-request": "0.3.3", - "debug": "2.6.9", - "md5.js": "1.3.4", - "minimist": "1.2.0", - "node-xmpp-core": "5.0.9", - "request": "2.76.0", - "ws": "1.1.5" - }, "dependencies": { "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "requires": { - "options": "0.0.6", - "ultron": "1.0.2" - } + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==" } } }, "node-xmpp-core": { "version": "5.0.9", "resolved": "https://registry.npmjs.org/node-xmpp-core/-/node-xmpp-core-5.0.9.tgz", - "integrity": "sha1-XCjCjtsfs/i+uixnYHd2E/SPNCo=", - "requires": { - "@xmpp/jid": "0.0.2", - "@xmpp/streamparser": "0.0.6", - "@xmpp/xml": "0.1.3", - "debug": "2.6.9", - "inherits": "2.0.3", - "lodash.assign": "4.2.0", - "node-xmpp-tls-connect": "1.0.1", - "reconnect-core": "https://github.com/dodo/reconnect-core/tarball/merged" - } + "integrity": "sha1-XCjCjtsfs/i+uixnYHd2E/SPNCo=" }, "node-xmpp-tls-connect": { "version": "1.0.1", @@ -5669,12 +3822,7 @@ "node.bittrex.api": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/node.bittrex.api/-/node.bittrex.api-0.2.5.tgz", - "integrity": "sha1-rtkKEr/U9kgYQbScXA+e7MC5RtE=", - "requires": { - "JSONStream": "1.3.2", - "event-stream": "3.3.4", - "request": "2.76.0" - } + "integrity": "sha1-rtkKEr/U9kgYQbScXA+e7MC5RtE=" }, "nonce": { "version": "1.0.4", @@ -5684,29 +3832,17 @@ "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1.1.1" - } + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" - } + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=" }, "normalize-range": { "version": "0.1.2", @@ -5716,40 +3852,22 @@ "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=" }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - } + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" }, "num": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/num/-/num-0.3.0.tgz", - "integrity": "sha1-qC4qmx/FL7qzEzWM35KQXm8D8oc=", - "requires": { - "int": "0.2.0" - } + "integrity": "sha1-qC4qmx/FL7qzEzWM35KQXm8D8oc=" }, "num2fraction": { "version": "1.2.2", @@ -5793,59 +3911,35 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - }, "dependencies": { "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "1.0.2" - } + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=" } } }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - } + "dev": true }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - }, "dependencies": { "wordwrap": { "version": "1.0.0", @@ -5873,10 +3967,7 @@ "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "1.0.0" - } + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" }, "os-tmpdir": { "version": "1.0.2", @@ -5886,11 +3977,7 @@ "osenv": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=" }, "p-finally": { "version": "1.0.0", @@ -5900,18 +3987,12 @@ "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "requires": { - "p-try": "1.0.0" - } + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==" }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.2.0" - } + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" }, "p-try": { "version": "1.0.0", @@ -5926,33 +4007,17 @@ "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "requires": { - "asn1.js": "4.9.2", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" - } + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=" }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=" }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" }, "parseurl": { "version": "1.3.2", @@ -5962,11 +4027,7 @@ "path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "0.11.10", - "util": "0.10.3" - } + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=" }, "path-browserify": { "version": "0.0.0", @@ -6009,11 +4070,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, "dependencies": { "pify": { "version": "2.3.0", @@ -6025,22 +4081,12 @@ "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "2.3.8" - } + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=" }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", - "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" - } + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==" }, "performance-now": { "version": "2.1.0", @@ -6060,18 +4106,12 @@ "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "2.1.0" - } + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=" }, "pkginfo": { "version": "0.4.1", @@ -6088,10 +4128,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.7.tgz", "integrity": "sha1-B0crcBZtztjjaI0eqI7+3ZBrKeU=", - "requires": { - "nonce": "1.0.4", - "request": "2.33.0" - }, "dependencies": { "asn1": { "version": "0.1.11", @@ -6120,28 +4156,19 @@ "boom": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", - "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", - "requires": { - "hoek": "0.9.1" - } + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=" }, "combined-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", - "optional": true, - "requires": { - "delayed-stream": "0.0.5" - } + "optional": true }, "cryptiles": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", - "optional": true, - "requires": { - "boom": "0.4.2" - } + "optional": true }, "delayed-stream": { "version": "0.0.5", @@ -6158,24 +4185,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", - "optional": true, - "requires": { - "async": "0.9.2", - "combined-stream": "0.0.7", - "mime": "1.2.11" - } + "optional": true }, "hawk": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=", - "optional": true, - "requires": { - "boom": "0.4.2", - "cryptiles": "0.2.2", - "hoek": "0.9.1", - "sntp": "0.2.4" - } + "optional": true }, "hoek": { "version": "0.9.1", @@ -6186,12 +4202,7 @@ "version": "0.10.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", - "optional": true, - "requires": { - "asn1": "0.1.11", - "assert-plus": "0.1.5", - "ctype": "0.5.3" - } + "optional": true }, "mime": { "version": "1.2.11", @@ -6212,30 +4223,13 @@ "request": { "version": "2.33.0", "resolved": "https://registry.npmjs.org/request/-/request-2.33.0.tgz", - "integrity": "sha1-UWeHgTFyYHDsYzdS6iMKI3ncZf8=", - "requires": { - "aws-sign2": "0.5.0", - "forever-agent": "0.5.2", - "form-data": "0.1.4", - "hawk": "1.0.0", - "http-signature": "0.10.1", - "json-stringify-safe": "5.0.1", - "mime": "1.2.11", - "node-uuid": "1.4.8", - "oauth-sign": "0.3.0", - "qs": "0.6.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.3.0" - } + "integrity": "sha1-UWeHgTFyYHDsYzdS6iMKI3ncZf8=" }, "sntp": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", - "optional": true, - "requires": { - "hoek": "0.9.1" - } + "optional": true }, "tunnel-agent": { "version": "0.3.0", @@ -6254,167 +4248,93 @@ "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.0", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, "dependencies": { "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" } } }, "postcss-calc": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=" }, "postcss-colormin": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=" }, "postcss-convert-values": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=" }, "postcss-discard-comments": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=" }, "postcss-discard-duplicates": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=" }, "postcss-discard-empty": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=" }, "postcss-discard-overridden": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=" }, "postcss-discard-unused": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=" }, "postcss-filter-plugins": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - } + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=" }, "postcss-load-config": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" - } + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=" }, "postcss-load-options": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - } + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=" }, "postcss-load-plugins": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - } + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=" }, "postcss-loader": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.10.tgz", "integrity": "sha512-xQaDcEgJ/2JqFY18zpFkik8vyYs7oS5ZRbrjvDqkP97k2wYWfPT4+qA0m4o3pTSCsz0u26PNqs8ZO9FRUWAqrA==", - "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.16", - "postcss-load-config": "1.2.0", - "schema-utils": "0.3.0" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -6426,12 +4346,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -6441,42 +4356,24 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, "postcss-merge-idents": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=" }, "postcss-merge-longhand": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=" }, "postcss-merge-rules": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - } + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=" }, "postcss-message-helpers": { "version": "2.0.0", @@ -6486,77 +4383,42 @@ "postcss-minify-font-values": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=" }, "postcss-minify-gradients": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=" }, "postcss-minify-params": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - } + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=" }, "postcss-minify-selectors": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=" }, "postcss-modules-extract-imports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "requires": { - "postcss": "6.0.16" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -6568,12 +4430,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -6583,10 +4440,7 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, @@ -6594,36 +4448,21 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -6635,12 +4474,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -6650,10 +4484,7 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, @@ -6661,36 +4492,21 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -6702,12 +4518,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -6717,10 +4528,7 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, @@ -6728,36 +4536,21 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.16" - }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" } } }, @@ -6769,12 +4562,7 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" - } + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" }, "source-map": { "version": "0.6.1", @@ -6784,98 +4572,54 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" } } }, "postcss-normalize-charset": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=" }, "postcss-normalize-url": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=" }, "postcss-ordered-values": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=" }, "postcss-reduce-idents": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=" }, "postcss-reduce-initial": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "requires": { - "postcss": "5.2.18" - } + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=" }, "postcss-reduce-transforms": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=" }, "postcss-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=" }, "postcss-svgo": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - } + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=" }, "postcss-unique-selectors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=" }, "postcss-value-parser": { "version": "3.3.0", @@ -6885,12 +4629,7 @@ "postcss-zindex": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=" }, "prelude-ls": { "version": "1.1.2", @@ -6931,11 +4670,7 @@ "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" - } + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=" }, "prr": { "version": "1.0.1", @@ -6950,23 +4685,12 @@ "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" - } + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=" }, "pump": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "1.4.0", - "once": "1.4.0" - } + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==" }, "punycode": { "version": "1.4.1", @@ -6977,12 +4701,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pushbullet/-/pushbullet-2.0.0.tgz", "integrity": "sha1-QvQjTm3RT/jyytFokDgbRloqIS8=", - "requires": { - "clone": "2.1.1", - "mime": "1.6.0", - "request": "2.83.0", - "websocket": "1.0.25" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -6997,10 +4715,7 @@ "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=" }, "caseless": { "version": "0.12.0", @@ -7016,49 +4731,28 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, "dependencies": { "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==" } } }, "form-data": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=" }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=" }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" - } + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==" }, "hoek": { "version": "4.2.0", @@ -7068,12 +4762,7 @@ "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" }, "qs": { "version": "6.5.1", @@ -7083,47 +4772,17 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "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", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==" }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.0" - } + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" }, "uuid": { "version": "3.1.0", @@ -7135,11 +4794,7 @@ "pusher-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-4.2.2.tgz", - "integrity": "sha512-EjFE+PAC6lG7Ap3fhU7c2NyVul6DghNlEbiJVkcTca182U3b7iYgiQY8sQu9FCl5YmnOZ2L95RVYT9JM+YX9jQ==", - "requires": { - "faye-websocket": "0.9.4", - "xmlhttprequest": "1.8.0" - } + "integrity": "sha512-EjFE+PAC6lG7Ap3fhU7c2NyVul6DghNlEbiJVkcTca182U3b7iYgiQY8sQu9FCl5YmnOZ2L95RVYT9JM+YX9jQ==" }, "q": { "version": "1.5.1", @@ -7159,19 +4814,12 @@ "quadrigacx": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/quadrigacx/-/quadrigacx-0.0.7.tgz", - "integrity": "sha1-vptrBG28vDpNqRbBpQtJ2kiulsQ=", - "requires": { - "request": "2.76.0" - } + "integrity": "sha1-vptrBG28vDpNqRbBpQtJ2kiulsQ=" }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=" }, "querystring": { "version": "0.2.0", @@ -7192,55 +4840,35 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" } } }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.6" - } + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=" } } }, "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "requires": { - "safe-buffer": "5.1.1" - } + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==" }, "randomfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", - "requires": { - "randombytes": "2.0.5", - "safe-buffer": "5.1.1" - } + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==" }, "range-parser": { "version": "1.2.0", @@ -7250,111 +4878,59 @@ "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - } + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=" }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, "dependencies": { "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" } } }, "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==", - "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" - } + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" }, "readdirp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=" }, "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" - } + "dev": true }, "reconnect-core": { "version": "https://github.com/dodo/reconnect-core/tarball/merged", - "integrity": "sha1-udryrcRbGabMX9LwSPjZQGzs5Jg=", - "requires": { - "backoff": "2.3.0" - } + "integrity": "sha1-udryrcRbGabMX9LwSPjZQGzs5Jg=" }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=" }, "reduce-css-calc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, "dependencies": { "balanced-match": { "version": "0.4.2", @@ -7367,9 +4943,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "requires": { - "balanced-match": "0.4.2" - }, "dependencies": { "balanced-match": { "version": "0.4.2", @@ -7391,20 +4964,12 @@ "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==" }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "requires": { - "is-equal-shallow": "0.1.3" - } + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==" }, "regex-parser": { "version": "2.2.8", @@ -7414,12 +4979,7 @@ "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=" }, "regjsgen": { "version": "0.2.0", @@ -7430,9 +4990,6 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "0.5.0" - }, "dependencies": { "jsesc": { "version": "0.5.0", @@ -7464,69 +5021,34 @@ "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "1.0.2" - } + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" }, "request": { "version": "2.76.0", "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", "integrity": "sha1-vkRQWv73A2CgQ2lVEGvjlF2VVg4=", - "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", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3" - }, "dependencies": { "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "1.1.3", - "commander": "2.12.2", - "is-my-json-valid": "2.17.1", - "pinkie-promise": "2.0.1" - } + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=" } } }, "request-promise": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", - "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", - "requires": { - "bluebird": "3.5.1", - "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" - } + "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=" }, "request-promise-core": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "requires": { - "lodash": "4.17.4" - } + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=" + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==" }, "require-directory": { "version": "2.1.1", @@ -7548,10 +5070,6 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - }, "dependencies": { "resolve-from": { "version": "1.0.1", @@ -7561,23 +5079,11 @@ } } }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" - } - }, "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" - } + "dev": true }, "resolve-from": { "version": "2.0.0", @@ -7593,17 +5099,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.2.1.tgz", "integrity": "sha512-ywToZt/yttp4qG/SiiGMLAgaGuSaWSujAaf3WCadXehvQLxIgKFmMOSegaoH9Laa70Ayl4kti0zCAqLR48H/Mw==", - "requires": { - "adjust-sourcemap-loader": "1.1.0", - "camelcase": "4.1.0", - "convert-source-map": "1.5.1", - "loader-utils": "1.1.0", - "lodash.defaults": "4.2.0", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.5.7", - "urix": "0.1.0" - }, "dependencies": { "camelcase": { "version": "4.1.0", @@ -7616,11 +5111,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } + "dev": true }, "retry": { "version": "0.9.0", @@ -7631,10 +5122,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "requires": { - "convert-source-map": "0.3.5", - "css": "2.2.1" - }, "dependencies": { "convert-source-map": { "version": "0.3.5", @@ -7651,35 +5138,22 @@ "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "0.1.4" - } + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=" }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" }, "ripemd160": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" - }, "dependencies": { "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "requires": { - "inherits": "2.0.3" - } + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=" } } }, @@ -7687,20 +5161,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/round-precision/-/round-precision-1.0.0.tgz", "integrity": "sha1-9aK+t+1Z5v6FMS+/VTdpEC6o9k8=", - "dev": true, - "requires": { - "is-finite": "1.0.2", - "is-integer": "1.0.7" - } + "dev": true }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } + "dev": true }, "run-parallel": { "version": "1.1.6", @@ -7728,10 +5195,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" - } + "dev": true }, "safe-buffer": { "version": "5.1.1", @@ -7742,12 +5206,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" - }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -7757,36 +5215,14 @@ "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - } + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=" } } }, "sass-loader": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", - "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", - "requires": { - "async": "2.6.0", - "clone-deep": "0.3.0", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "pify": "3.0.0" - } + "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==" }, "sax": { "version": "1.2.4", @@ -7796,27 +5232,17 @@ "schema-utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "5.5.2" - } + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=" }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "requires": { - "js-base64": "2.4.0", - "source-map": "0.4.4" - }, "dependencies": { "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": "1.0.1" - } + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=" } } }, @@ -7834,21 +5260,6 @@ "version": "0.16.1", "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - }, "dependencies": { "mime": { "version": "1.4.1", @@ -7860,13 +5271,7 @@ "serve-static": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", - "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" - } + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==" }, "set-blocking": { "version": "2.0.0", @@ -7891,40 +5296,24 @@ "sha.js": { "version": "2.4.9", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==" }, "shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "requires": { - "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", - "mixin-object": "2.0.1" - }, "dependencies": { "kind-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "requires": { - "is-buffer": "1.1.6" - } + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=" } } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - } + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" }, "shebang-regex": { "version": "1.0.0", @@ -7935,12 +5324,7 @@ "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" - } + "dev": true }, "shortid": { "version": "2.2.8", @@ -7955,11 +5339,7 @@ "simple-xmpp": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/simple-xmpp/-/simple-xmpp-1.3.0.tgz", - "integrity": "sha1-sHfHIVHg9ZKbyak+H+58sihCgss=", - "requires": { - "node-xmpp-client": "3.2.0", - "qbox": "0.1.7" - } + "integrity": "sha1-sHfHIVHg9ZKbyak+H+58sihCgss=" }, "slash": { "version": "1.0.0", @@ -7971,9 +5351,6 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0" - }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", @@ -7986,18 +5363,12 @@ "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "1.1.0" - } + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=" }, "sosa": { "version": "1.1.3", @@ -8007,10 +5378,7 @@ "sosa_mongo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sosa_mongo/-/sosa_mongo-1.0.3.tgz", - "integrity": "sha1-zSy6BNSpZXJ1vQfcAKuCmeAm7VE=", - "requires": { - "sosa": "1.1.3" - } + "integrity": "sha1-zSy6BNSpZXJ1vQfcAKuCmeAm7VE=" }, "source-list-map": { "version": "2.0.0", @@ -8025,21 +5393,12 @@ "source-map-resolve": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", - "requires": { - "atob": "1.1.3", - "resolve-url": "0.2.1", - "source-map-url": "0.3.0", - "urix": "0.1.0" - } + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=" }, "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==", - "requires": { - "source-map": "0.5.7" - } + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==" }, "source-map-url": { "version": "0.3.0", @@ -8049,10 +5408,7 @@ "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "1.2.2" - } + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" }, "spdx-expression-parse": { "version": "1.0.4", @@ -8067,10 +5423,7 @@ "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "requires": { - "through": "2.3.8" - } + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=" }, "sprintf-js": { "version": "1.0.3", @@ -8081,16 +5434,6 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "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", @@ -8107,10 +5450,7 @@ "stats-lite": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/stats-lite/-/stats-lite-2.1.0.tgz", - "integrity": "sha1-R2hU/biNA1xJvLv/cEyNhe6Esbo=", - "requires": { - "isnumber": "1.0.0" - } + "integrity": "sha1-R2hU/biNA1xJvLv/cEyNhe6Esbo=" }, "statuses": { "version": "1.3.1", @@ -8120,10 +5460,7 @@ "stdout-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "requires": { - "readable-stream": "2.3.3" - } + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=" }, "stealthy-require": { "version": "1.1.1", @@ -8133,54 +5470,32 @@ "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=" }, "stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "0.1.1" - } + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=" }, "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==" }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, "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==", - "requires": { - "safe-buffer": "5.1.1" - } + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" }, "stringstream": { "version": "0.0.5", @@ -8190,18 +5505,12 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" }, "strip-eof": { "version": "1.0.0", @@ -8211,10 +5520,7 @@ "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "4.0.1" - } + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=" }, "strip-json-comments": { "version": "2.0.1", @@ -8225,11 +5531,7 @@ "style-loader": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - } + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==" }, "supports-color": { "version": "2.0.0", @@ -8239,30 +5541,13 @@ "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=" }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.3.0", - "lodash": "4.17.4", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -8274,21 +5559,13 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } + "dev": true }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } + "dev": true }, "has-flag": { "version": "2.0.0", @@ -8306,39 +5583,26 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } + "dev": true }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } + "dev": true } } }, "talib": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/talib/-/talib-1.0.3.tgz", - "integrity": "sha1-6wp+P1MBsyOwrwL7M41DHSubc1o=", - "requires": { - "nan": "2.8.0" - } + "integrity": "sha1-6wp+P1MBsyOwrwL7M41DHSubc1o=" }, "tapable": { "version": "0.2.8", @@ -8348,12 +5612,7 @@ "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=" }, "text-table": { "version": "0.2.0", @@ -8369,18 +5628,12 @@ "timebucket": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/timebucket/-/timebucket-0.4.0.tgz", - "integrity": "sha1-2H9xqMhrjqq95zX3qcSzJc6ZhXw=", - "requires": { - "moment": "2.20.1" - } + "integrity": "sha1-2H9xqMhrjqq95zX3qcSzJc6ZhXw=" }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", - "requires": { - "setimmediate": "1.0.5" - } + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==" }, "tiny-emitter": { "version": "2.0.2", @@ -8391,10 +5644,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } + "dev": true }, "to-arraybuffer": { "version": "1.0.1", @@ -8409,10 +5659,7 @@ "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", - "requires": { - "punycode": "1.4.1" - } + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=" }, "trend": { "version": "0.3.0", @@ -8433,21 +5680,11 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", - "requires": { - "glob": "6.0.4" - }, "dependencies": { "glob": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=" } } }, @@ -8471,19 +5708,12 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } + "dev": true }, "type-is": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.17" - } + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=" }, "typed-function": { "version": "0.10.6", @@ -8499,20 +5729,12 @@ "typedarray-to-buffer": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", - "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=", - "requires": { - "is-typedarray": "1.0.0" - } + "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=" }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, "dependencies": { "camelcase": { "version": "1.2.1", @@ -8522,23 +5744,12 @@ "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=" }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=" } } }, @@ -8551,12 +5762,7 @@ "uglifyjs-webpack-plugin": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - } + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=" }, "ultron": { "version": "1.0.2", @@ -8576,10 +5782,7 @@ "uniqid": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "requires": { - "macaddress": "0.2.8" - } + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=" }, "uniqs": { "version": "2.0.0", @@ -8600,10 +5803,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, "dependencies": { "punycode": { "version": "1.3.2", @@ -8620,20 +5819,12 @@ "url-loader": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", - "requires": { - "loader-utils": "1.1.0", - "mime": "1.6.0", - "schema-utils": "0.3.0" - } + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==" }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - }, "dependencies": { "inherits": { "version": "2.0.1", @@ -8655,11 +5846,7 @@ "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" - } + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" }, "vary": { "version": "1.1.2", @@ -8675,11 +5862,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -8691,20 +5873,12 @@ "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=" }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", - "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - } + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=" }, "waypoints": { "version": "4.0.1", @@ -8715,30 +5889,6 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", - "requires": { - "acorn": "5.3.0", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" - }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -8763,31 +5913,17 @@ "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=" }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==" }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "2.3.0" - } + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=" }, "pify": { "version": "2.3.0", @@ -8797,38 +5933,22 @@ "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=" }, "read-pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" }, "strip-bom": { "version": "3.0.0", @@ -8838,10 +5958,7 @@ "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" }, "which-module": { "version": "2.0.0", @@ -8851,30 +5968,12 @@ "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" - } + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=" }, "yargs-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "4.1.0" - } + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=" } } }, @@ -8882,10 +5981,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - }, "dependencies": { "source-map": { "version": "0.6.1", @@ -8897,22 +5992,12 @@ "websocket": { "version": "1.0.25", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.25.tgz", - "integrity": "sha512-M58njvi6ZxVb5k7kpnHh2BvNKuBWiwIYvsToErBzWhvBZYwlEiLcyLrG41T1jRcrY9ettqPYEqduLI7ul54CVQ==", - "requires": { - "debug": "2.6.9", - "nan": "2.8.0", - "typedarray-to-buffer": "3.1.2", - "yaeti": "0.0.6" - } + "integrity": "sha512-M58njvi6ZxVb5k7kpnHh2BvNKuBWiwIYvsToErBzWhvBZYwlEiLcyLrG41T1jRcrY9ettqPYEqduLI7ul54CVQ==" }, "websocket-driver": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.3" - } + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=" }, "websocket-extensions": { "version": "0.1.3", @@ -8921,8 +6006,8 @@ }, "wexnz": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.2.tgz", - "integrity": "sha512-7hUID+5H56RidHNHGmOPzCAfxZCcaz/joI48F2KoeIByQtWAEVwhesujbqOcGANCs57rWTgcKTtKah7qH0Mi0w==" + "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.3.tgz", + "integrity": "sha512-/aOABXmapFoTvv7hLKtQlW2ueWXE43JvrrMK5G3tD62fRA/S7ZX4Tu+Lv5O/VhcRz9FisFrO9PD49bOA0mFang==" }, "whet.extend": { "version": "0.9.9", @@ -8932,10 +6017,7 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - } + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==" }, "which-module": { "version": "1.0.0", @@ -8945,10 +6027,7 @@ "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "requires": { - "string-width": "1.0.2" - } + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==" }, "window-size": { "version": "0.1.0", @@ -8959,14 +6038,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", - "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" - }, "dependencies": { "async": { "version": "1.0.0", @@ -8988,11 +6059,7 @@ "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - } + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" }, "wrappy": { "version": "1.0.2", @@ -9003,20 +6070,12 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "0.5.1" - } + "dev": true }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" - }, "dependencies": { "ultron": { "version": "1.1.1", @@ -9028,10 +6087,7 @@ "xml2js": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.13.tgz", - "integrity": "sha1-Q4/zsdhaUa1ln/wuvoNAPhDJhyI=", - "requires": { - "sax": "1.2.4" - } + "integrity": "sha1-Q4/zsdhaUa1ln/wuvoNAPhDJhyI=" }, "xmlhttprequest": { "version": "1.8.0", @@ -9063,20 +6119,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", "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.1.0" - }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -9100,31 +6142,19 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } + "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } + "dev": true }, "which-module": { "version": "2.0.0", @@ -9136,10 +6166,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } + "dev": true } } }, @@ -9147,9 +6174,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "3.0.0" - }, "dependencies": { "camelcase": { "version": "3.0.0", From df19d75ed6895875be76f67149bba39fa1c69a3d Mon Sep 17 00:00:00 2001 From: Chase Date: Sun, 7 Jan 2018 10:33:04 +0100 Subject: [PATCH 003/236] bitstamp: exchange.js formatting (#1074) --- extensions/exchanges/bitstamp/exchange.js | 47 +++++++++++------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/extensions/exchanges/bitstamp/exchange.js b/extensions/exchanges/bitstamp/exchange.js index 6c38601231..7b254cff0c 100644 --- a/extensions/exchanges/bitstamp/exchange.js +++ b/extensions/exchanges/bitstamp/exchange.js @@ -86,13 +86,13 @@ module.exports = function container (get, set, clear) { amount: amount, price: price, daily_order: true - }); + }) } Bitstamp.prototype.tradeMarket = function(direction, market, amount, callback) { this._post(market, direction + '/market', callback, { amount: amount, - }); + }) } var util = require('util') @@ -158,7 +158,7 @@ module.exports = function container (get, set, clear) { if (wstrades.length > 30) wstrades.splice(0,10) }) //----------------------------------------------------- - + function statusErr (err, body) { if (typeof body === 'undefined') { var ret = {} @@ -184,7 +184,7 @@ module.exports = function container (get, set, clear) { }, to * 1000) } - var lastBalance = {asset: 0, currency: 0} + var lastBalance = {asset: 0, currency: 0} var orders = {} var exchange = { @@ -231,16 +231,16 @@ module.exports = function container (get, set, clear) { // getBalance: function (opts, cb) { - var args = { - currency: opts.currency.toLowerCase(), - asset: opts.asset.toLowerCase(), - wait: 10 - } + var args = { + currency: opts.currency.toLowerCase(), + asset: opts.asset.toLowerCase(), + wait: 10 + } var client = authedClient() client.balance(null, function (err, body) { body = statusErr(err,body) if (body.status === 'error') { - return retry('getBalance', args) + return retry('getBalance', args) } var balance = { asset: '0', @@ -248,7 +248,7 @@ module.exports = function container (get, set, clear) { currency: '0', currency_hold: '0' } - + // Dirty hack to avoid engine.js bailing out when balance has 0 value // The added amount is small enough to not have any significant effect balance.currency = n(body[opts.currency.toLowerCase() + '_balance']) + 0.000001 @@ -256,12 +256,12 @@ module.exports = function container (get, set, clear) { balance.currency_hold = n(body[opts.currency.toLowerCase() + '_reserved']) + 0.000001 balance.asset_hold = n(body[opts.asset.toLowerCase() + '_reserved']) + 0.000001 - if (typeof balance.asset == undefined || typeof balance.currency == undefined) { + if (typeof balance.asset == undefined || typeof balance.currency == undefined) { console.log('Communication delay, fallback to previous balance') - balance = lastBalance - } else { - lastBalance = balance - } + balance = lastBalance + } else { + lastBalance = balance + } cb(null, balance) }) }, @@ -273,7 +273,7 @@ module.exports = function container (get, set, clear) { body = statusErr(err,body) if (body.status === 'error') { - return retry('cancelOrder', func_args, err) + return retry('cancelOrder', func_args, err) } cb() }) @@ -293,7 +293,7 @@ module.exports = function container (get, set, clear) { if (body.status === 'error') { var order = { status: 'rejected', reject_reason: 'balance' } return cb(null, order) - } else { + } else { // Statuses: // 'In Queue', 'Open', 'Finished' body.status = 'done' @@ -309,8 +309,8 @@ module.exports = function container (get, set, clear) { if (body.status === 'error') { var order = { status: 'rejected', reject_reason: 'balance' } return cb(null, order) - } else { - body.status = 'done' + } else { + body.status = 'done' } orders['~' + body.id] = body cb(null, body) @@ -327,7 +327,6 @@ module.exports = function container (get, set, clear) { }, getOrder: function (opts, cb) { - var func_args = [].slice.call(arguments) var client = authedClient() client.order_status(opts.order_id, function (err, body) { @@ -337,12 +336,12 @@ module.exports = function container (get, set, clear) { body.status = 'done' body.done_reason = 'canceled' } else if(body.status === 'Finished') - body.status = 'done'; - + body.status = 'done' + if(body.status === 'done'){ if(body.transactions && body.transactions[0].datetime) body.done_at = body.transactions[0].datetime; } - + cb(null, body) }) }, From 2da5bacab6d20536468adca6e32a99e8b9bf1afc Mon Sep 17 00:00:00 2001 From: Chase Date: Sun, 7 Jan 2018 17:18:51 +0100 Subject: [PATCH 004/236] Bollinger Band indicator + strategy (#1075) * Bollinger Band indicator + strategy * update README * fix tradingview for gdax --- README.md | 12 + conf-sample.js | 4 + extensions/strategies/bollinger/_codemap.js | 6 + extensions/strategies/bollinger/strategy.js | 64 + lib/_codemap.js | 3 +- lib/bollinger.js | 15 + package-lock.json | 4637 ++++++++++++++++--- package.json | 9 +- templates/dashboard.ejs | 2 +- webpack.config.js | 2 +- zenbot.js | 4 +- 11 files changed, 3983 insertions(+), 775 deletions(-) create mode 100644 extensions/strategies/bollinger/_codemap.js create mode 100644 extensions/strategies/bollinger/strategy.js create mode 100644 lib/bollinger.js diff --git a/README.md b/README.md index 0f1da42ab7..f04da8333e 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,18 @@ and also: ``` zenbot list-strategies +bollinger + description: + Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band). + options: + --period= period length, same as --period_length (default: 1h) + --period_length= period length, same as --period (default: 1h) + --min_periods= min. number of history periods (default: 52) + --bollinger_size= period size (default: 20) + --bollinger_time= times of standard deviation between the upper band and the moving averages (default: 2) + --bollinger_upper_bound_pct= pct the current price should be near the bollinger upper bound before we sell (default: 0) + --bollinger_lower_bound_pct= pct the current price should be near the bollinger lower bound before we buy (default: 0) + cci_srsi description: Stochastic CCI Strategy diff --git a/conf-sample.js b/conf-sample.js index 5f400bf8ed..e8de677aa9 100644 --- a/conf-sample.js +++ b/conf-sample.js @@ -157,6 +157,10 @@ c.balance_snapshot_period = '15m' c.avg_slippage_pct = 0.045 // time to leave an order open, default to 1 day (this feature is not supported on all exchanges, currently: GDAX) c.cancel_after = 'day' +// bollinger period size +c.bollinger_size = 20 +// bollinger times of standard deviation between the upper band and the moving averages +c.bollinger_time = 2 // Notifiers: c.notifiers = {} diff --git a/extensions/strategies/bollinger/_codemap.js b/extensions/strategies/bollinger/_codemap.js new file mode 100644 index 0000000000..8762da8e67 --- /dev/null +++ b/extensions/strategies/bollinger/_codemap.js @@ -0,0 +1,6 @@ +module.exports = { + _ns: 'zenbot', + + 'strategies.bollinger': require('./strategy'), + 'strategies.list[]': '#strategies.bollinger' +} diff --git a/extensions/strategies/bollinger/strategy.js b/extensions/strategies/bollinger/strategy.js new file mode 100644 index 0000000000..193d4a3369 --- /dev/null +++ b/extensions/strategies/bollinger/strategy.js @@ -0,0 +1,64 @@ +var z = require('zero-fill') + , n = require('numbro') + +module.exports = function container (get, set, clear) { + return { + name: 'bollinger', + description: 'Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band).', + + getOptions: function () { + this.option('period', 'period length, same as --period_length', String, '1h') + this.option('period_length', 'period length, same as --period', String, '1h') + this.option('min_periods', 'min. number of history periods', Number, 52) + this.option('bollinger_size', 'period size', Number, 20) + this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2) + this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0) + this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0) + }, + + calculate: function (s) { + // calculate Bollinger Bands + get('lib.bollinger')(s, 'bollinger', s.options.bollinger_size) + }, + + onPeriod: function (s, cb) { + if (s.period.bollinger) { + if (s.period.bollinger.upper && s.period.bollinger.lower) { + let upperBound = s.period.bollinger.upper[s.period.bollinger.upper.length-1] + let lowerBound = s.period.bollinger.lower[s.period.bollinger.lower.length-1] + if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) { + s.signal = 'sell' + } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) { + s.signal = 'buy' + } else { + s.signal = 'null' // hold + } + } + } + cb() + }, + + onReport: function (s) { + var cols = [] + if (s.period.bollinger) { + if (s.period.bollinger.upper && s.period.bollinger.lower) { + let upperBound = s.period.bollinger.upper[s.period.bollinger.upper.length-1] + let lowerBound = s.period.bollinger.lower[s.period.bollinger.lower.length-1] + var color = 'grey' + if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) { + color = 'green' + } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) { + color = 'red' + } + cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color]) + cols.push(z(8, n(lowerBound).format('00'), ' ').cyan) + cols.push(z(8, n(upperBound).format('00'), ' ').cyan) + } + } + else { + cols.push(' ') + } + return cols + } + } +} diff --git a/lib/_codemap.js b/lib/_codemap.js index 00561ccb12..a7dd8bc6ee 100644 --- a/lib/_codemap.js +++ b/lib/_codemap.js @@ -22,5 +22,6 @@ module.exports = { 'vwap': require('./vwap'), 'slow_stochastic': require('./slow_stochastic'), 'collection-service': require('./services/collection-service'), - 'cmf': require('./cmf') + 'cmf': require('./cmf'), + 'bollinger': require('./bollinger') } diff --git a/lib/bollinger.js b/lib/bollinger.js new file mode 100644 index 0000000000..8c9f4043c5 --- /dev/null +++ b/lib/bollinger.js @@ -0,0 +1,15 @@ +// Linear Regression Curve +var bollingerbands = require('bollinger-bands') +module.exports = function container (get, set, clear) { + return function bollinger (s, key, length, source_key) { + if (!source_key) source_key = 'close' + if (s.lookback.length > length) { + let data = [] + for (var i=length-1; i>=0; i--) { + data.push(s.lookback[i][source_key]) + } + let result = bollingerbands(data, length, s.options.bollinger_time) + s.period[key] = result + } + } +} diff --git a/package-lock.json b/package-lock.json index 1f7048c4c4..d947d53385 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,11 +2,26 @@ "name": "zenbot4", "version": "4.1.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "@slack/client": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.15.0.tgz", "integrity": "sha512-MIgf5s9PrcxFaPlkJ2cFOhrfh9/KOmUKK5GG/Eka1IJK7+oBCscJFnQ6FfYnZICwIQxWkkuiXmeWYWNevZhCLg==", + "requires": { + "async": "1.5.2", + "bluebird": "3.5.1", + "eventemitter3": "1.2.0", + "https-proxy-agent": "1.0.0", + "inherits": "2.0.3", + "lodash": "4.17.4", + "pkginfo": "0.4.1", + "request": "2.76.0", + "retry": "0.9.0", + "url-join": "0.0.1", + "winston": "2.4.0", + "ws": "1.1.5" + }, "dependencies": { "async": { "version": "1.5.2", @@ -16,7 +31,11 @@ "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==" + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } } } }, @@ -28,12 +47,30 @@ "@xmpp/streamparser": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@xmpp/streamparser/-/streamparser-0.0.6.tgz", - "integrity": "sha1-EYAz6p23yGoctGED8mnr/3n28eo=" + "integrity": "sha1-EYAz6p23yGoctGED8mnr/3n28eo=", + "requires": { + "@xmpp/xml": "0.1.3", + "inherits": "2.0.3", + "ltx": "2.7.1" + } }, "@xmpp/xml": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@xmpp/xml/-/xml-0.1.3.tgz", - "integrity": "sha1-HxQ5nlPkGWiFWGmPbGLnHjmoam4=" + "integrity": "sha1-HxQ5nlPkGWiFWGmPbGLnHjmoam4=", + "requires": { + "inherits": "2.0.3", + "ltx": "2.7.1" + } + }, + "JSONStream": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } }, "abbrev": { "version": "1.1.1", @@ -43,7 +80,11 @@ "accepts": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=" + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } }, "acorn": { "version": "5.3.0", @@ -54,6 +95,9 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "requires": { + "acorn": "4.0.13" + }, "dependencies": { "acorn": { "version": "4.0.13", @@ -67,6 +111,9 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, + "requires": { + "acorn": "3.3.0" + }, "dependencies": { "acorn": { "version": "3.3.0", @@ -80,6 +127,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=", + "requires": { + "assert": "1.4.1", + "camelcase": "1.2.1", + "loader-utils": "1.1.0", + "lodash.assign": "4.2.0", + "lodash.defaults": "3.1.2", + "object-path": "0.9.2", + "regex-parser": "2.2.8" + }, "dependencies": { "camelcase": { "version": "1.2.1", @@ -90,11 +146,20 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", + "requires": { + "lodash.assign": "3.2.0", + "lodash.restparam": "3.6.1" + }, "dependencies": { "lodash.assign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=" + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } } } } @@ -104,6 +169,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, "dependencies": { "semver": { "version": "5.0.3", @@ -115,7 +184,13 @@ "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=" + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } }, "ajv-keywords": { "version": "2.1.1", @@ -125,7 +200,12 @@ "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=" + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } }, "alphanum-sort": { "version": "1.0.2", @@ -156,7 +236,11 @@ "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==" + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } }, "aproba": { "version": "1.2.0", @@ -166,17 +250,27 @@ "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=" + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=" + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "requires": { + "sprintf-js": "1.0.3" + } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=" + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } }, "arr-flatten": { "version": "1.1.0", @@ -197,7 +291,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } }, "array-uniq": { "version": "1.0.3", @@ -213,7 +310,11 @@ "array.prototype.findindex": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/array.prototype.findindex/-/array.prototype.findindex-2.0.2.tgz", - "integrity": "sha1-WAaNJYh+9QXknckssAxE3O5VsGc=" + "integrity": "sha1-WAaNJYh+9QXknckssAxE3O5VsGc=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } }, "arrify": { "version": "1.0.1", @@ -229,12 +330,20 @@ "asn1.js": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==" + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=" + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } }, "assert-plus": { "version": "0.2.0", @@ -244,7 +353,10 @@ "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==" + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } }, "async-each": { "version": "1.0.1", @@ -274,7 +386,26 @@ "autoprefixer": { "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=" + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000789", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000789", + "electron-to-chromium": "1.3.30" + } + } + } }, "aws-sign2": { "version": "0.6.0", @@ -289,232 +420,576 @@ "axios": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", - "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=" + "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", + "requires": { + "follow-redirects": "1.3.0", + "is-buffer": "1.1.6" + } }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=" + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } }, "babel-core": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=" + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } }, "babel-generator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=" + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "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-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=" + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=" + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=" + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=" + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=" + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=" + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=" + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=" + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=" + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } }, "babel-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==" + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "requires": { + "find-cache-dir": "1.0.0", + "loader-utils": "1.1.0", + "mkdirp": "0.5.1" + } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=" + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=" + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=" + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=" + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=" + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=" + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=" + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=" + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=" + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=" + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=" + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=" + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=" + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=" + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=" + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=" + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=" + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=" + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=" + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=" + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=" + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=" + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=" + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=" + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=" + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=" + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=" + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.11.0", + "invariant": "2.2.2", + "semver": "5.4.1" + } }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=" + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=" + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } }, "babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=" + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "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", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=" + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "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", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=" + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "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", @@ -540,7 +1015,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "big.js": { "version": "3.2.0", @@ -560,22 +1038,38 @@ "bitfinex-api-node": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bitfinex-api-node/-/bitfinex-api-node-1.2.1.tgz", - "integrity": "sha512-pG4BMCD7T/R1vkLhLdHPim4Lbfbkdyt/yTaJ+A48vrzGsQO7MwxIRRs6rEx1Acm/vpsUyksbOaQyladh2T8Whw==" + "integrity": "sha512-pG4BMCD7T/R1vkLhLdHPim4Lbfbkdyt/yTaJ+A48vrzGsQO7MwxIRRs6rEx1Acm/vpsUyksbOaQyladh2T8Whw==", + "requires": { + "debug": "2.6.9", + "lodash": "4.17.4", + "request": "2.76.0", + "request-promise": "4.2.2", + "ws": "3.3.3" + } }, "bitstamp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bitstamp/-/bitstamp-1.0.5.tgz", - "integrity": "sha512-hgo+gJ6AioE4dZAGAikbscq/F2TInnNi45WyMAV6e00zWQkjpeTKqtCXCu0hP6LRgooIPvZgWUrJbpjNwgmsOQ==" + "integrity": "sha512-hgo+gJ6AioE4dZAGAikbscq/F2TInnNi45WyMAV6e00zWQkjpeTKqtCXCu0hP6LRgooIPvZgWUrJbpjNwgmsOQ==", + "requires": { + "underscore": "1.4.4" + } }, "bl": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=" + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "requires": { + "readable-stream": "2.3.3" + } }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=" + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } }, "bluebird": { "version": "3.5.1", @@ -591,6 +1085,18 @@ "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + }, "dependencies": { "qs": { "version": "6.5.1", @@ -599,10 +1105,23 @@ } } }, + "bollinger-bands": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bollinger-bands/-/bollinger-bands-3.0.1.tgz", + "integrity": "sha512-DTod+FHUB6r/KPjbxwwfIDifRjbdt3U9nVbiPwELd0CbXzpslD0NwGbSE8H8E5i7Am1cLtmf4c9E7U+oej6UZQ==", + "requires": { + "math-array": "1.1.2", + "moving-averages": "4.0.5", + "s-deviation": "2.0.3" + } + }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } }, "bootstrap": { "version": "4.0.0-beta.3", @@ -612,12 +1131,21 @@ "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=" + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } }, "brorand": { "version": "1.1.0", @@ -632,37 +1160,75 @@ "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==" + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "browserify-cipher": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=" + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } }, "browserify-des": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=" + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=" + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.5" + } }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=" + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } }, "browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==" + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "1.0.6" + } }, "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=" + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.0.tgz", + "integrity": "sha512-mNYp0RNeu1xueGuJFSXkU+K0nH+dBE/gcjtyhtNKfU8hwdrVIfoA7i5iFSjOmzkGdL2QaO7YX9ExiVPE7AY9JA==", + "requires": { + "caniuse-lite": "1.0.30000789", + "electron-to-chromium": "1.3.30" + } }, "bson": { "version": "1.0.4", @@ -672,7 +1238,12 @@ "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=" + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } }, "buffer-shims": { "version": "1.0.0", @@ -703,7 +1274,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true + "dev": true, + "requires": { + "callsites": "0.2.0" + } }, "callsites": { "version": "0.2.0", @@ -719,27 +1293,58 @@ "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=" + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } }, "caniuse-api": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=" + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000789", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000789", + "electron-to-chromium": "1.3.30" + } + } + } }, "caniuse-db": { "version": "1.0.30000789", "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000789.tgz", "integrity": "sha1-XPP+x1SABBqxYsoGQTFTFB4jQyU=" }, + "caniuse-lite": { + "version": "1.0.30000789", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000789.tgz", + "integrity": "sha1-Lj2TeyZxM/Y2Ne9/RB+sZjYPyIk=" + }, "caseless": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "ccxt": { - "version": "1.10.579", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.579.tgz", - "integrity": "sha512-Tp6tRmj/zV/Wpap8v5Vq5RN1e8jeJFPRO9c8MK9HyKuXueWKXG+L3oVMsD4ZBCTjddsQqHyT/RPO/L3cgHL7bw==", + "version": "1.10.582", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.582.tgz", + "integrity": "sha512-sZrHPhG+Gf2Knfi3k4SiUulYU7GWZpEM6EXuvPzJnpXQXzaeIUz/Onxs4w4PzaJLZ6WKAhKzW1A9wVY5loiv+Q==", + "requires": { + "crypto-js": "3.1.9-1", + "fetch-ponyfill": "4.1.0", + "qs": "6.5.1" + }, "dependencies": { "qs": { "version": "6.5.1", @@ -752,6 +1357,10 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, "dependencies": { "lazy-cache": { "version": "1.0.4", @@ -764,6 +1373,13 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/cexio-api-node/-/cexio-api-node-1.1.0.tgz", "integrity": "sha512-qdqB/l/hBHUY7TgAo4nckteYdyyUkCJ7tSbEtC42lb5uztw6on6SSScE4Ve/mBM0V+fpURL8Jan+QzqYtybNmw==", + "requires": { + "debug": "3.1.0", + "moment": "2.20.1", + "request": "2.83.0", + "underscore": "1.8.3", + "ws": "3.3.3" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -778,7 +1394,10 @@ "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=" + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } }, "caseless": { "version": "0.12.0", @@ -789,33 +1408,57 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, "dependencies": { "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==" + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } } } }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } }, "form-data": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=" + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=" + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==" + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } }, "hoek": { "version": "4.2.0", @@ -825,7 +1468,12 @@ "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "qs": { "version": "6.5.1", @@ -835,34 +1483,66 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==" + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "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", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==" + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } }, "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" } } }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } }, "chardet": { "version": "0.4.2", @@ -873,12 +1553,27 @@ "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=" + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "circular-json": { "version": "0.3.3", @@ -889,19 +1584,28 @@ "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==" + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "requires": { + "chalk": "1.1.3" + } }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "dev": true, + "requires": { + "colors": "1.0.3" + }, "dependencies": { "colors": { "version": "1.0.3", @@ -921,6 +1625,11 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", + "requires": { + "colors": "1.0.3", + "eyes": "0.1.8", + "winston": "0.8.3" + }, "dependencies": { "async": { "version": "0.2.10", @@ -941,6 +1650,15 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", + "requires": { + "async": "0.2.10", + "colors": "0.6.2", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "pkginfo": "0.3.1", + "stack-trace": "0.0.10" + }, "dependencies": { "colors": { "version": "0.6.2", @@ -954,7 +1672,12 @@ "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=" + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } }, "clone": { "version": "1.0.3", @@ -964,7 +1687,13 @@ "clone-deep": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", - "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=" + "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "requires": { + "for-own": "1.0.0", + "is-plain-object": "2.0.4", + "kind-of": "3.2.2", + "shallow-clone": "0.1.2" + } }, "co": { "version": "4.6.0", @@ -974,7 +1703,10 @@ "coa": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=" + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "requires": { + "q": "1.5.1" + } }, "code-point-at": { "version": "1.1.0", @@ -984,17 +1716,28 @@ "codemap": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/codemap/-/codemap-1.3.1.tgz", - "integrity": "sha1-00p9ul87UQS2WkUQ4jGPqWbP3rk=" + "integrity": "sha1-00p9ul87UQS2WkUQ4jGPqWbP3rk=", + "requires": { + "debug": "2.6.9" + } }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=" + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "requires": { + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" + } }, "color-convert": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==" + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "1.1.3" + } }, "color-name": { "version": "1.1.3", @@ -1004,12 +1747,20 @@ "color-string": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=" + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "requires": { + "color-name": "1.1.3" + } }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=" + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } }, "colors": { "version": "1.1.2", @@ -1019,7 +1770,10 @@ "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } }, "commander": { "version": "2.12.2", @@ -1045,12 +1799,20 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=" + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } }, "console-control-strings": { "version": "1.1.0", @@ -1105,42 +1867,93 @@ "cosmiconfig": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==" + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } }, "counterup": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", - "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=" + "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", + "requires": { + "jquery": "3.2.1", + "waypoints": "4.0.1" + } }, "create-ecdh": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=" + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=" + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" + } }, "create-hmac": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=" + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=" + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5", + "randomfill": "1.0.3" + } }, "crypto-js": { "version": "3.1.9-1", @@ -1151,11 +1964,20 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, "dependencies": { "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=" + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -1167,17 +1989,43 @@ "css-loader": { "version": "0.28.8", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.8.tgz", - "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==" + "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==", + "requires": { + "babel-code-frame": "6.26.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "2.0.0" + } }, "css-selector-tokenizer": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + }, "dependencies": { "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=" + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } } } }, @@ -1189,12 +2037,50 @@ "cssnano": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=" + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + } }, "csso": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=" + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } }, "ctype": { "version": "0.5.3", @@ -1205,7 +2091,10 @@ "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=" + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "1.0.2" + } }, "cycle": { "version": "1.0.3", @@ -1215,12 +2104,18 @@ "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=" + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.37" + } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1237,7 +2132,10 @@ "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } }, "decamelize": { "version": "1.2.0", @@ -1258,7 +2156,11 @@ "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=" + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } }, "defined": { "version": "1.0.0", @@ -1270,6 +2172,15 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + }, "dependencies": { "pify": { "version": "2.3.0", @@ -1297,7 +2208,11 @@ "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=" + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "destroy": { "version": "1.0.4", @@ -1307,18 +2222,29 @@ "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=" + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=" + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.5" + } }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true + "dev": true, + "requires": { + "esutils": "2.0.2" + } }, "domain-browser": { "version": "1.1.7", @@ -1334,7 +2260,10 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "ee-first": { "version": "1.1.1", @@ -1354,12 +2283,24 @@ "electron-to-chromium": { "version": "1.3.30", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz", - "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==" + "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==", + "requires": { + "electron-releases": "2.1.0" + } }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=" + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "emojis-list": { "version": "2.1.0", @@ -1374,52 +2315,99 @@ "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } }, "end-of-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "requires": { + "once": "1.4.0" + } }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=" + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } }, "errno": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==" + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "requires": { + "prr": "1.0.1" + } }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } }, "es-abstract": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==" + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } }, "es5-ext": { "version": "0.10.37", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", - "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=" + "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=" + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-symbol": "3.1.1" + } }, "es6-map": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=" + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } }, "es6-promise": { "version": "3.2.1", @@ -1429,17 +2417,34 @@ "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=" + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=" + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37" + } }, "es6-weak-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=" + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } }, "escape-html": { "version": "1.0.3", @@ -1454,13 +2459,58 @@ "escope": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=" + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } }, "eslint": { "version": "4.15.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz", "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==", "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.2", + "esquery": "1.0.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.1.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.0.1", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.4.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -1472,25 +2522,41 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true + "dev": true, + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "esprima": { "version": "4.0.0", @@ -1514,19 +2580,29 @@ "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 + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true + "dev": true, + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -1534,7 +2610,11 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true + "dev": true, + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -1546,7 +2626,11 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", - "dev": true + "dev": true, + "requires": { + "acorn": "5.3.0", + "acorn-jsx": "3.0.1" + } }, "esprima": { "version": "2.7.3", @@ -1557,12 +2641,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "dev": true + "dev": true, + "requires": { + "estraverse": "4.2.0" + } }, "esrecurse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=" + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } }, "estraverse": { "version": "4.2.0", @@ -1582,12 +2673,25 @@ "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=" + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37" + } }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=" + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } }, "eventemitter3": { "version": "1.2.0", @@ -1602,17 +2706,35 @@ "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "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", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=" + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } } } }, @@ -1624,17 +2746,27 @@ "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=" + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=" + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "2.2.3" + } }, "exports-loader": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", - "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=" + "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7" + } }, "expose-loader": { "version": "0.7.4", @@ -1645,6 +2777,38 @@ "version": "4.16.2", "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, "dependencies": { "qs": { "version": "6.5.1", @@ -1662,12 +2826,20 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", - "dev": true + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=" + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } }, "extsprintf": { "version": "1.3.0", @@ -1703,29 +2875,46 @@ "faye-websocket": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.4.tgz", - "integrity": "sha1-iFk0x57/sECVSeDAo4Ae0XpAza0=" + "integrity": "sha1-iFk0x57/sECVSeDAo4Ae0XpAza0=", + "requires": { + "websocket-driver": "0.7.0" + } }, "fetch-ponyfill": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=" + "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", + "requires": { + "node-fetch": "1.7.3" + } }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } }, "file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } }, "file-loader": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz", - "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==" + "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } }, "file-type": { "version": "3.9.0", @@ -1741,40 +2930,76 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=" + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } } } }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=" + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } }, "find-cache-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=" + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "1.0.1", + "make-dir": "1.1.0", + "pkg-dir": "2.0.0" + } }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } }, "flat": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz", "integrity": "sha512-ji/WMv2jdsE+LaznpkIF9Haax0sdpTBozrz/Dtg4qSRMfbs8oVg4ypJunIRYPiMLvH/ed6OflXbnbTIKJhtgeg==", - "dev": true + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } }, "flat-cache": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } }, "flatten": { "version": "1.0.2", @@ -1785,11 +3010,17 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", "integrity": "sha1-9oSHH8EW0uMp/aVe9naH9Pq8kFw=", + "requires": { + "debug": "3.1.0" + }, "dependencies": { "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } } } }, @@ -1801,7 +3032,10 @@ "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=" + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "1.0.2" + } }, "foreach": { "version": "2.0.5", @@ -1814,12 +3048,20 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "forex.analytics": { - "version": "github:mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14" + "version": "github:mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14", + "requires": { + "nan": "2.8.0" + } }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } }, "forwarded": { "version": "0.1.2", @@ -1851,664 +3093,800 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=" + "bundled": true, + "requires": { + "inherits": "2.0.3" + } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "bundled": true, + "requires": { + "hoek": "2.16.3" + } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=" + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "bundled": true, + "requires": { + "boom": "2.10.1" + } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=" + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + "bundled": 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" + } }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "bundled": 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=" + "bundled": 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=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "bundled": 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=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "bundled": true, + "requires": { + "minimist": "0.0.8" + } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=" + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "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.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" + "bundled": true, + "requires": { + "glob": "7.1.2" + } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "bundled": true, + "requires": { + "hoek": "2.16.3" + } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": 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", + "jodid25519": "1.0.2", + "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=", + "bundled": true, "optional": true } } }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=" - }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=" + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "optional": true + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=" + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } }, "function-bind": { "version": "1.1.1", @@ -2524,20 +3902,43 @@ "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } }, "gaze": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=" + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "requires": { + "globule": "1.2.0" + } }, "gdax": { "version": "github:coinbase/gdax-node#4d74a7fe39a33ac12d1b9046d199df1c1f753927", + "requires": { + "bintrees": "1.0.1", + "num": "0.3.0", + "request": "2.81.0", + "ws": "3.0.0" + }, "dependencies": { "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "caseless": { "version": "0.12.0", @@ -2552,7 +3953,11 @@ "har-validator": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "performance-now": { "version": "0.2.0", @@ -2567,27 +3972,53 @@ "request": { "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "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", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, "ws": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ws/-/ws-3.0.0.tgz", "integrity": "sha1-mN2wAFbIOQy3Ued4h4hJf5kQO2w=", + "requires": { + "safe-buffer": "5.0.1", + "ultron": "1.1.1" + }, "dependencies": { "safe-buffer": { "version": "5.0.1", @@ -2602,6 +4033,13 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/gemini-api/-/gemini-api-2.0.4.tgz", "integrity": "sha512-pWWT+jjaVLrFUp2i8qIrBZoD/eBmY5XBu2MELQIc+pbgKdBJXefR5gVi/R9zaccoNbHZvpFztWCWrWhtXOxiKw==", + "requires": { + "axios": "0.16.2", + "lodash": "4.17.4", + "qs": "6.5.1", + "shortid": "2.2.8", + "ws": "2.3.1" + }, "dependencies": { "qs": { "version": "6.5.1", @@ -2621,7 +4059,11 @@ "ws": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", - "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=" + "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", + "requires": { + "safe-buffer": "5.0.1", + "ultron": "1.1.1" + } } } }, @@ -2633,7 +4075,10 @@ "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=" + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "1.0.2" + } }, "geneticalgorithm": { "version": "0.3.4", @@ -2660,6 +4105,9 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2671,17 +4119,32 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=" + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=" + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } }, "globals": { "version": "9.18.0", @@ -2693,6 +4156,14 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, "dependencies": { "pify": { "version": "2.3.0", @@ -2705,7 +4176,12 @@ "globule": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=" + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } }, "graceful-fs": { "version": "4.1.11", @@ -2720,17 +4196,27 @@ "har-validator": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==" + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "1.1.1" + } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } }, "has-flag": { "version": "1.0.0", @@ -2745,22 +4231,41 @@ "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=" + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==" + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "hoek": { "version": "2.16.3", @@ -2770,7 +4275,11 @@ "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=" + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "hosted-git-info": { "version": "2.5.0", @@ -2786,6 +4295,12 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, "dependencies": { "setprototypeof": { "version": "1.0.3", @@ -2802,7 +4317,12 @@ "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "https-browserify": { "version": "1.0.0", @@ -2812,7 +4332,12 @@ "https-proxy-agent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=" + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" + } }, "iconv-lite": { "version": "0.4.19", @@ -2828,21 +4353,35 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "6.0.16" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -2854,7 +4393,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -2864,14 +4408,20 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, "idgen": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/idgen/-/idgen-2.0.2.tgz", - "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=" + "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=", + "requires": { + "commander": "2.12.2" + } }, "ieee754": { "version": "1.1.8", @@ -2887,7 +4437,11 @@ "imports-loader": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.7.1.tgz", - "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=" + "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=", + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7" + } }, "imurmurhash": { "version": "0.1.4", @@ -2903,7 +4457,10 @@ "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=" + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "2.0.1" + } }, "indexes-of": { "version": "1.0.1", @@ -2918,7 +4475,11 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.3", @@ -2930,6 +4491,22 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -2941,13 +4518,21 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true + "dev": true, + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } }, "has-flag": { "version": "2.0.0", @@ -2965,19 +4550,29 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true + "dev": true, + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -2994,7 +4589,10 @@ "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } }, "invert-kv": { "version": "1.0.0", @@ -3024,7 +4622,10 @@ "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=" + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "1.11.0" + } }, "is-buffer": { "version": "1.1.6", @@ -3034,7 +4635,10 @@ "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } }, "is-callable": { "version": "1.1.3", @@ -3059,7 +4663,10 @@ "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=" + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "2.0.0" + } }, "is-extendable": { "version": "0.1.1", @@ -3074,33 +4681,54 @@ "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=" + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } }, "is-integer": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", "integrity": "sha1-a96Bqs3feLZZtmKdYpytxRqIbVw=", - "dev": true + "dev": true, + "requires": { + "is-finite": "1.0.2" + } }, "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==" + "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=" + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } }, "is-path-cwd": { "version": "1.0.0", @@ -3112,13 +4740,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } }, "is-plain-obj": { "version": "1.1.0", @@ -3128,7 +4762,10 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + } }, "is-posix-bracket": { "version": "0.1.1", @@ -3154,7 +4791,10 @@ "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.1" + } }, "is-resolvable": { "version": "1.0.1", @@ -3170,7 +4810,10 @@ "is-svg": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=" + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "requires": { + "html-comment-regex": "1.1.1" + } }, "is-symbol": { "version": "1.0.1", @@ -3215,7 +4858,12 @@ "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=" + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "requires": { + "exit": "0.1.2", + "glob": "7.1.2", + "jasmine-core": "2.8.0" + } }, "jasmine-core": { "version": "2.8.0", @@ -3245,7 +4893,11 @@ "js-yaml": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=" + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } }, "jsbn": { "version": "0.1.1", @@ -3276,7 +4928,10 @@ "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3294,12 +4949,27 @@ "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-3.11.5.tgz", "integrity": "sha512-ORsw84BuRKMLxfI+HFZuvxRDnsJps53D5fIGr6tLn4ZY+ymcG8XU00E+JJ2wfAiHx5w2QRNmOLE8xHiGAeSfuQ==", "dev": true, + "requires": { + "cli-table": "0.3.1", + "commander": "2.12.2", + "debug": "3.1.0", + "flat": "4.0.0", + "lodash.clonedeep": "4.5.0", + "lodash.flatten": "4.4.0", + "lodash.get": "4.4.2", + "lodash.set": "4.3.2", + "lodash.uniq": "4.5.0", + "path-is-absolute": "1.0.1" + }, "dependencies": { "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -3323,15 +4993,16 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=" - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3343,12 +5014,19 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } }, "kraken-api": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/kraken-api/-/kraken-api-0.1.7.tgz", - "integrity": "sha1-t1JDXmkXunHZ5zSl/tP6WWFiLeg=" + "integrity": "sha1-t1JDXmkXunHZ5zSl/tP6WWFiLeg=", + "requires": { + "querystring": "0.2.0", + "request": "2.76.0" + } }, "lazy-cache": { "version": "0.2.7", @@ -3358,18 +5036,32 @@ "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "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" + }, "dependencies": { "pify": { "version": "2.3.0", @@ -3386,12 +5078,21 @@ "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=" + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } }, "lodash": { "version": "4.17.4", @@ -3401,7 +5102,11 @@ "lodash._baseassign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=" + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } }, "lodash._basecopy": { "version": "3.0.1", @@ -3416,7 +5121,12 @@ "lodash._createassigner": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=" + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "requires": { + "lodash._bindcallback": "3.0.1", + "lodash._isiterateecall": "3.0.9", + "lodash.restparam": "3.6.1" + } }, "lodash._getnative": { "version": "3.9.1", @@ -3473,7 +5183,12 @@ "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=" + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } }, "lodash.memoize": { "version": "4.1.2", @@ -3514,22 +5229,36 @@ "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } }, "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==" + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } }, "ltx": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/ltx/-/ltx-2.7.1.tgz", - "integrity": "sha1-Dly9y1vxeM+ngx6kHcMj2XQiMVo=" + "integrity": "sha1-Dly9y1vxeM+ngx6kHcMj2XQiMVo=", + "requires": { + "inherits": "2.0.3" + } }, "macaddress": { "version": "0.2.8", @@ -3539,7 +5268,10 @@ "make-dir": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==" + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "requires": { + "pify": "3.0.0" + } }, "map-obj": { "version": "1.0.1", @@ -3551,6 +5283,11 @@ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, + "math-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/math-array/-/math-array-1.1.2.tgz", + "integrity": "sha512-54uCZjFRNbL4hEzUnaPYDR4MbGBFMnlUOfrk3kDfkB5v3QwaMKwZLIPIWK9WfM1skxxzfV01k05FbCEQGX/4qg==" + }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", @@ -3559,12 +5296,25 @@ "mathjs": { "version": "3.19.0", "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.19.0.tgz", - "integrity": "sha512-E1cKiSclqkPyrndVaE1gQ/IqveCRvTGBDcM+AT6lDK0tTAzUpI3kHdsq/9HKNRn0+v+i2m6arZ6PxBtATXQlxw==" + "integrity": "sha512-E1cKiSclqkPyrndVaE1gQ/IqveCRvTGBDcM+AT6lDK0tTAzUpI3kHdsq/9HKNRn0+v+i2m6arZ6PxBtATXQlxw==", + "requires": { + "complex.js": "2.0.4", + "decimal.js": "9.0.1", + "fraction.js": "4.0.4", + "javascript-natural-sort": "0.7.1", + "seed-random": "2.2.0", + "tiny-emitter": "2.0.2", + "typed-function": "0.10.6" + } }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=" + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } }, "media-typer": { "version": "0.3.0", @@ -3574,17 +5324,36 @@ "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=" + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.1.0" + } }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=" + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + } }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=" + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } }, "merge-descriptors": { "version": "1.0.1", @@ -3604,12 +5373,31 @@ "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=" + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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" + } }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } }, "mime": { "version": "1.6.0", @@ -3624,7 +5412,10 @@ "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=" + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } }, "mimic-fn": { "version": "1.1.0", @@ -3644,7 +5435,10 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } }, "minimist": { "version": "1.2.0", @@ -3655,6 +5449,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "0.1.8", + "is-extendable": "0.1.1" + }, "dependencies": { "for-in": { "version": "0.1.8", @@ -3667,6 +5465,9 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, "dependencies": { "minimist": { "version": "0.0.8", @@ -3684,18 +5485,41 @@ "version": "2.2.34", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz", "integrity": "sha1-o09Zu+thdUrsQy3nLD/iFSakTBo=", + "requires": { + "es6-promise": "3.2.1", + "mongodb-core": "2.1.18", + "readable-stream": "2.2.7" + }, "dependencies": { "readable-stream": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=" + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } } } }, "mongodb-core": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", - "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=" + "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", + "requires": { + "bson": "1.0.4", + "require_optional": "1.0.1" + } + }, + "moving-averages": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/moving-averages/-/moving-averages-4.0.5.tgz", + "integrity": "sha512-ofrBYz5tIiN3E24a9Q5evRprvb1AQLciE4fnblpv8P0zM/pwwEdGj7GgDQwSxyrAVNe3hfzn9IB5nXi0zt92AA==" }, "ms": { "version": "2.0.0", @@ -3727,12 +5551,31 @@ "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==" + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } }, "node-gyp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.76.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, "dependencies": { "semver": { "version": "5.3.0", @@ -3744,12 +5587,41 @@ "node-libs-browser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==" + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } }, "node-prowl": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/node-prowl/-/node-prowl-0.1.7.tgz", "integrity": "sha1-Jt4onxRqp6SXBJYZOocBu/GO6rc=", + "requires": { + "request": "2.9.202", + "xml2js": "0.1.13" + }, "dependencies": { "request": { "version": "2.9.202", @@ -3762,21 +5634,65 @@ "version": "4.7.2", "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.8.0", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, "dependencies": { "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=" + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.17.1", + "pinkie-promise": "2.0.1" + } }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "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" + } } } }, @@ -3784,6 +5700,19 @@ "version": "0.29.0", "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.29.0.tgz", "integrity": "sha512-WZBp5ccr0zMLRNtZ3avrevGpj05mrN59lDmxgpltls0bl3W/wqyNalNGKatTZEJ1cY0pctgd9FqKyCzWr36HcQ==", + "requires": { + "array.prototype.findindex": "2.0.2", + "bl": "1.2.1", + "bluebird": "3.5.1", + "debug": "2.6.9", + "depd": "1.1.1", + "eventemitter3": "2.0.3", + "file-type": "3.9.0", + "mime": "1.6.0", + "pump": "1.0.3", + "request": "2.76.0", + "request-promise": "4.2.2" + }, "dependencies": { "eventemitter3": { "version": "2.0.3", @@ -3792,27 +5721,45 @@ } } }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" - }, "node-xmpp-client": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/node-xmpp-client/-/node-xmpp-client-3.2.0.tgz", "integrity": "sha1-r0Un3wzFq9JpDLohOcwezcgeoYk=", + "requires": { + "browser-request": "0.3.3", + "debug": "2.6.9", + "md5.js": "1.3.4", + "minimist": "1.2.0", + "node-xmpp-core": "5.0.9", + "request": "2.76.0", + "ws": "1.1.5" + }, "dependencies": { "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==" + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } } } }, "node-xmpp-core": { "version": "5.0.9", "resolved": "https://registry.npmjs.org/node-xmpp-core/-/node-xmpp-core-5.0.9.tgz", - "integrity": "sha1-XCjCjtsfs/i+uixnYHd2E/SPNCo=" + "integrity": "sha1-XCjCjtsfs/i+uixnYHd2E/SPNCo=", + "requires": { + "@xmpp/jid": "0.0.2", + "@xmpp/streamparser": "0.0.6", + "@xmpp/xml": "0.1.3", + "debug": "2.6.9", + "inherits": "2.0.3", + "lodash.assign": "4.2.0", + "node-xmpp-tls-connect": "1.0.1", + "reconnect-core": "https://github.com/dodo/reconnect-core/tarball/merged" + } }, "node-xmpp-tls-connect": { "version": "1.0.1", @@ -3822,7 +5769,12 @@ "node.bittrex.api": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/node.bittrex.api/-/node.bittrex.api-0.2.5.tgz", - "integrity": "sha1-rtkKEr/U9kgYQbScXA+e7MC5RtE=" + "integrity": "sha1-rtkKEr/U9kgYQbScXA+e7MC5RtE=", + "requires": { + "JSONStream": "1.3.2", + "event-stream": "3.3.4", + "request": "2.76.0" + } }, "nonce": { "version": "1.0.4", @@ -3832,17 +5784,29 @@ "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1.1.1" + } }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "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", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=" + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } }, "normalize-range": { "version": "0.1.2", @@ -3852,22 +5816,40 @@ "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=" + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "num": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/num/-/num-0.3.0.tgz", - "integrity": "sha1-qC4qmx/FL7qzEzWM35KQXm8D8oc=" + "integrity": "sha1-qC4qmx/FL7qzEzWM35KQXm8D8oc=", + "requires": { + "int": "0.2.0" + } }, "num2fraction": { "version": "1.2.2", @@ -3885,7 +5867,7 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "numbro": { - "version": "github:highvelocityspace/numbro#797eae5605bf217a016a112343e8dd9746b72e15" + "version": "github:highvelocityspace/numbro#65a801c05c40496e5701458c0d4e780060e9a742" }, "oauth-sign": { "version": "0.8.2", @@ -3911,35 +5893,59 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, "dependencies": { "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=" + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "1.0.2" + } } } }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, "dependencies": { "wordwrap": { "version": "1.0.0", @@ -3967,7 +5973,10 @@ "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "1.0.0" + } }, "os-tmpdir": { "version": "1.0.2", @@ -3977,7 +5986,11 @@ "osenv": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=" + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "p-finally": { "version": "1.0.0", @@ -3987,12 +6000,18 @@ "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==" + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "requires": { + "p-try": "1.0.0" + } }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.2.0" + } }, "p-try": { "version": "1.0.0", @@ -4007,17 +6026,33 @@ "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=" + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "requires": { + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=" + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "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", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } }, "parseurl": { "version": "1.3.2", @@ -4027,7 +6062,11 @@ "path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=" + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "requires": { + "process": "0.11.10", + "util": "0.10.3" + } }, "path-browserify": { "version": "0.0.0", @@ -4070,6 +6109,11 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, "dependencies": { "pify": { "version": "2.3.0", @@ -4081,12 +6125,22 @@ "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=" + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "2.3.8" + } }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==" + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } }, "performance-now": { "version": "2.1.0", @@ -4106,12 +6160,18 @@ "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=" + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "2.1.0" + } }, "pkginfo": { "version": "0.4.1", @@ -4128,6 +6188,10 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.7.tgz", "integrity": "sha1-B0crcBZtztjjaI0eqI7+3ZBrKeU=", + "requires": { + "nonce": "1.0.4", + "request": "2.33.0" + }, "dependencies": { "asn1": { "version": "0.1.11", @@ -4156,19 +6220,28 @@ "boom": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", - "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=" + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "requires": { + "hoek": "0.9.1" + } }, "combined-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", - "optional": true + "optional": true, + "requires": { + "delayed-stream": "0.0.5" + } }, "cryptiles": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", - "optional": true + "optional": true, + "requires": { + "boom": "0.4.2" + } }, "delayed-stream": { "version": "0.0.5", @@ -4185,13 +6258,24 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", - "optional": true + "optional": true, + "requires": { + "async": "0.9.2", + "combined-stream": "0.0.7", + "mime": "1.2.11" + } }, "hawk": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=", - "optional": true + "optional": true, + "requires": { + "boom": "0.4.2", + "cryptiles": "0.2.2", + "hoek": "0.9.1", + "sntp": "0.2.4" + } }, "hoek": { "version": "0.9.1", @@ -4202,13 +6286,23 @@ "version": "0.10.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", - "optional": true + "optional": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "0.1.5", + "ctype": "0.5.3" + } }, "mime": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, "oauth-sign": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", @@ -4223,13 +6317,30 @@ "request": { "version": "2.33.0", "resolved": "https://registry.npmjs.org/request/-/request-2.33.0.tgz", - "integrity": "sha1-UWeHgTFyYHDsYzdS6iMKI3ncZf8=" + "integrity": "sha1-UWeHgTFyYHDsYzdS6iMKI3ncZf8=", + "requires": { + "aws-sign2": "0.5.0", + "forever-agent": "0.5.2", + "form-data": "0.1.4", + "hawk": "1.0.0", + "http-signature": "0.10.1", + "json-stringify-safe": "5.0.1", + "mime": "1.2.11", + "node-uuid": "1.4.8", + "oauth-sign": "0.3.0", + "qs": "0.6.6", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.3.0" + } }, "sntp": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", - "optional": true + "optional": true, + "requires": { + "hoek": "0.9.1" + } }, "tunnel-agent": { "version": "0.3.0", @@ -4248,93 +6359,167 @@ "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, "dependencies": { "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "1.0.0" + } } } }, "postcss-calc": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=" + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "requires": { + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } }, "postcss-colormin": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=" + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-convert-values": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=" + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-discard-comments": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=" + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-discard-duplicates": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=" + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-discard-empty": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=" + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-discard-overridden": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=" + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-discard-unused": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=" + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "requires": { + "postcss": "5.2.18", + "uniqs": "2.0.0" + } }, "postcss-filter-plugins": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=" + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "requires": { + "postcss": "5.2.18", + "uniqid": "4.1.1" + } }, "postcss-load-config": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=" + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1", + "postcss-load-options": "1.2.0", + "postcss-load-plugins": "2.3.0" + } }, "postcss-load-options": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=" + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } }, "postcss-load-plugins": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=" + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } }, "postcss-loader": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.10.tgz", "integrity": "sha512-xQaDcEgJ/2JqFY18zpFkik8vyYs7oS5ZRbrjvDqkP97k2wYWfPT4+qA0m4o3pTSCsz0u26PNqs8ZO9FRUWAqrA==", + "requires": { + "loader-utils": "1.1.0", + "postcss": "6.0.16", + "postcss-load-config": "1.2.0", + "schema-utils": "0.3.0" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4346,7 +6531,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -4356,24 +6546,53 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, "postcss-merge-idents": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=" + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-merge-longhand": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=" + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-merge-rules": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=" + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000789", + "electron-to-chromium": "1.3.30" + } + } + } }, "postcss-message-helpers": { "version": "2.0.0", @@ -4383,42 +6602,77 @@ "postcss-minify-font-values": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=" + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-minify-gradients": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=" + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-minify-params": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=" + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } }, "postcss-minify-selectors": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=" + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" + } }, "postcss-modules-extract-imports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "requires": { + "postcss": "6.0.16" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4430,7 +6684,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -4440,7 +6699,10 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4448,21 +6710,36 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.16" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4474,7 +6751,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -4484,7 +6766,10 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4492,21 +6777,36 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.16" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4518,7 +6818,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -4528,7 +6833,10 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4536,21 +6844,36 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.16" + }, "dependencies": { "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==" + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, "dependencies": { "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -4562,7 +6885,12 @@ "postcss": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==" + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } }, "source-map": { "version": "0.6.1", @@ -4572,54 +6900,98 @@ "supports-color": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==" + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } } } }, "postcss-normalize-charset": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=" + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-normalize-url": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=" + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-ordered-values": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=" + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-reduce-idents": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=" + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-reduce-initial": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=" + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "requires": { + "postcss": "5.2.18" + } }, "postcss-reduce-transforms": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=" + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } }, "postcss-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=" + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } }, "postcss-svgo": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=" + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } }, "postcss-unique-selectors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=" + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } }, "postcss-value-parser": { "version": "3.3.0", @@ -4629,7 +7001,12 @@ "postcss-zindex": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=" + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } }, "prelude-ls": { "version": "1.1.2", @@ -4670,7 +7047,11 @@ "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=" + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } }, "prr": { "version": "1.0.1", @@ -4685,12 +7066,23 @@ "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=" + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } }, "pump": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==" + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "requires": { + "end-of-stream": "1.4.0", + "once": "1.4.0" + } }, "punycode": { "version": "1.4.1", @@ -4701,6 +7093,12 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pushbullet/-/pushbullet-2.0.0.tgz", "integrity": "sha1-QvQjTm3RT/jyytFokDgbRloqIS8=", + "requires": { + "clone": "2.1.1", + "mime": "1.6.0", + "request": "2.83.0", + "websocket": "1.0.25" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4715,7 +7113,10 @@ "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=" + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } }, "caseless": { "version": "0.12.0", @@ -4731,28 +7132,49 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, "dependencies": { "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==" + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } } } }, "form-data": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=" + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=" + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==" + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } }, "hoek": { "version": "4.2.0", @@ -4762,7 +7184,12 @@ "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "qs": { "version": "6.5.1", @@ -4772,29 +7199,58 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==" + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "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", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==" + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } } } }, "pusher-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-4.2.2.tgz", - "integrity": "sha512-EjFE+PAC6lG7Ap3fhU7c2NyVul6DghNlEbiJVkcTca182U3b7iYgiQY8sQu9FCl5YmnOZ2L95RVYT9JM+YX9jQ==" + "integrity": "sha512-EjFE+PAC6lG7Ap3fhU7c2NyVul6DghNlEbiJVkcTca182U3b7iYgiQY8sQu9FCl5YmnOZ2L95RVYT9JM+YX9jQ==", + "requires": { + "faye-websocket": "0.9.4", + "xmlhttprequest": "1.8.0" + } }, "q": { "version": "1.5.1", @@ -4814,12 +7270,19 @@ "quadrigacx": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/quadrigacx/-/quadrigacx-0.0.7.tgz", - "integrity": "sha1-vptrBG28vDpNqRbBpQtJ2kiulsQ=" + "integrity": "sha1-vptrBG28vDpNqRbBpQtJ2kiulsQ=", + "requires": { + "request": "2.76.0" + } }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=" + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } }, "querystring": { "version": "0.2.0", @@ -4840,35 +7303,55 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } } } }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=" + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } } } }, "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==" + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "requires": { + "safe-buffer": "5.1.1" + } }, "randomfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==" + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" + } }, "range-parser": { "version": "1.2.0", @@ -4878,59 +7361,111 @@ "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=" + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "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", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, "dependencies": { "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } } } }, "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==" + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "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": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=" + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true + "dev": true, + "requires": { + "resolve": "1.5.0" + } }, "reconnect-core": { "version": "https://github.com/dodo/reconnect-core/tarball/merged", - "integrity": "sha1-udryrcRbGabMX9LwSPjZQGzs5Jg=" + "integrity": "sha512-wZK/v5ZaNaSUs2Wnwh2YSX/Jqv6bQHKNEwojdzV11tByKziR9ikOssf5tvUhx+8/oCBz6AakOFAjZuqPoiRHJQ==", + "requires": { + "backoff": "2.3.0" + } }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=" + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } }, "reduce-css-calc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, "dependencies": { "balanced-match": { "version": "0.4.2", @@ -4943,6 +7478,9 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "requires": { + "balanced-match": "0.4.2" + }, "dependencies": { "balanced-match": { "version": "0.4.2", @@ -4964,12 +7502,20 @@ "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==" + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==" + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "0.1.3" + } }, "regex-parser": { "version": "2.2.8", @@ -4979,7 +7525,12 @@ "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=" + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "regjsgen": { "version": "0.2.0", @@ -4990,6 +7541,9 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, "dependencies": { "jsesc": { "version": "0.5.0", @@ -5021,34 +7575,74 @@ "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } }, "request": { "version": "2.76.0", "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", "integrity": "sha1-vkRQWv73A2CgQ2lVEGvjlF2VVg4=", + "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", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3" + }, "dependencies": { "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=" + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.17.1", + "pinkie-promise": "2.0.1" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" } } }, "request-promise": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", - "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=" + "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", + "requires": { + "bluebird": "3.5.1", + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" + } }, "request-promise-core": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=" - }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==" + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "requires": { + "lodash": "4.17.4" + } }, "require-directory": { "version": "2.1.1", @@ -5070,6 +7664,10 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + }, "dependencies": { "resolve-from": { "version": "1.0.1", @@ -5079,11 +7677,23 @@ } } }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.4.1" + } + }, "resolve": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true + "dev": true, + "requires": { + "path-parse": "1.0.5" + } }, "resolve-from": { "version": "2.0.0", @@ -5099,6 +7709,17 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.2.1.tgz", "integrity": "sha512-ywToZt/yttp4qG/SiiGMLAgaGuSaWSujAaf3WCadXehvQLxIgKFmMOSegaoH9Laa70Ayl4kti0zCAqLR48H/Mw==", + "requires": { + "adjust-sourcemap-loader": "1.1.0", + "camelcase": "4.1.0", + "convert-source-map": "1.5.1", + "loader-utils": "1.1.0", + "lodash.defaults": "4.2.0", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.5.7", + "urix": "0.1.0" + }, "dependencies": { "camelcase": { "version": "4.1.0", @@ -5111,7 +7732,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } }, "retry": { "version": "0.9.0", @@ -5122,6 +7747,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "0.3.5", + "css": "2.2.1" + }, "dependencies": { "convert-source-map": { "version": "0.3.5", @@ -5138,22 +7767,35 @@ "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=" + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } }, "ripemd160": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + }, "dependencies": { "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=" + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } } } }, @@ -5161,13 +7803,20 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/round-precision/-/round-precision-1.0.0.tgz", "integrity": "sha1-9aK+t+1Z5v6FMS+/VTdpEC6o9k8=", - "dev": true + "dev": true, + "requires": { + "is-finite": "1.0.2", + "is-integer": "1.0.7" + } }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true + "dev": true, + "requires": { + "is-promise": "2.1.0" + } }, "run-parallel": { "version": "1.1.6", @@ -5195,7 +7844,18 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "s-deviation": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/s-deviation/-/s-deviation-2.0.3.tgz", + "integrity": "sha512-+HPtx5bqltCRCZPHmg7/qyscCbWef7un+/CxvmqNCyraSRjjdcUSfwP7RUjzFaidwfSTXVB1vYSd3q5d+s2YPw==", + "requires": { + "moving-averages": "4.0.5" + } }, "safe-buffer": { "version": "5.1.1", @@ -5206,6 +7866,12 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -5215,14 +7881,36 @@ "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=" + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } } } }, "sass-loader": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", - "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==" + "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "requires": { + "async": "2.6.0", + "clone-deep": "0.3.0", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "pify": "3.0.0" + } }, "sax": { "version": "1.2.4", @@ -5232,17 +7920,27 @@ "schema-utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=" + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "5.5.2" + } }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "2.4.0", + "source-map": "0.4.4" + }, "dependencies": { "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=" + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -5260,6 +7958,21 @@ "version": "0.16.1", "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, "dependencies": { "mime": { "version": "1.4.1", @@ -5271,7 +7984,13 @@ "serve-static": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==" + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } }, "set-blocking": { "version": "2.0.0", @@ -5296,24 +8015,40 @@ "sha.js": { "version": "2.4.9", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==" + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "0.1.1", + "kind-of": "2.0.1", + "lazy-cache": "0.2.7", + "mixin-object": "2.0.1" + }, "dependencies": { "kind-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=" + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "1.1.6" + } } } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } }, "shebang-regex": { "version": "1.0.0", @@ -5324,7 +8059,12 @@ "version": "0.7.8", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" + } }, "shortid": { "version": "2.2.8", @@ -5339,7 +8079,11 @@ "simple-xmpp": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/simple-xmpp/-/simple-xmpp-1.3.0.tgz", - "integrity": "sha1-sHfHIVHg9ZKbyak+H+58sihCgss=" + "integrity": "sha1-sHfHIVHg9ZKbyak+H+58sihCgss=", + "requires": { + "node-xmpp-client": "3.2.0", + "qbox": "0.1.7" + } }, "slash": { "version": "1.0.0", @@ -5351,6 +8095,9 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", @@ -5363,12 +8110,18 @@ "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=" + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "1.1.0" + } }, "sosa": { "version": "1.1.3", @@ -5378,7 +8131,10 @@ "sosa_mongo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sosa_mongo/-/sosa_mongo-1.0.3.tgz", - "integrity": "sha1-zSy6BNSpZXJ1vQfcAKuCmeAm7VE=" + "integrity": "sha1-zSy6BNSpZXJ1vQfcAKuCmeAm7VE=", + "requires": { + "sosa": "1.1.3" + } }, "source-list-map": { "version": "2.0.0", @@ -5393,12 +8149,21 @@ "source-map-resolve": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=" + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } }, "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==" + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } }, "source-map-url": { "version": "0.3.0", @@ -5408,7 +8173,10 @@ "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } }, "spdx-expression-parse": { "version": "1.0.4", @@ -5423,7 +8191,10 @@ "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=" + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2.3.8" + } }, "sprintf-js": { "version": "1.0.3", @@ -5434,6 +8205,16 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "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", @@ -5450,7 +8231,10 @@ "stats-lite": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/stats-lite/-/stats-lite-2.1.0.tgz", - "integrity": "sha1-R2hU/biNA1xJvLv/cEyNhe6Esbo=" + "integrity": "sha1-R2hU/biNA1xJvLv/cEyNhe6Esbo=", + "requires": { + "isnumber": "1.0.0" + } }, "statuses": { "version": "1.3.1", @@ -5460,7 +8244,10 @@ "stdout-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=" + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "requires": { + "readable-stream": "2.3.3" + } }, "stealthy-require": { "version": "1.1.1", @@ -5470,32 +8257,54 @@ "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=" + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } }, "stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=" + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "0.1.1" + } }, "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==" + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "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==" - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "5.1.1" + } }, "stringstream": { "version": "0.0.5", @@ -5505,12 +8314,18 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } }, "strip-eof": { "version": "1.0.0", @@ -5520,7 +8335,10 @@ "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=" + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "4.0.1" + } }, "strip-json-comments": { "version": "2.0.1", @@ -5531,7 +8349,11 @@ "style-loader": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", - "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==" + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } }, "supports-color": { "version": "2.0.0", @@ -5541,13 +8363,30 @@ "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=" + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.4", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -5559,13 +8398,21 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true + "dev": true, + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } }, "has-flag": { "version": "2.0.0", @@ -5583,26 +8430,39 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true + "dev": true, + "requires": { + "has-flag": "2.0.0" + } } } }, "talib": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/talib/-/talib-1.0.3.tgz", - "integrity": "sha1-6wp+P1MBsyOwrwL7M41DHSubc1o=" + "integrity": "sha1-6wp+P1MBsyOwrwL7M41DHSubc1o=", + "requires": { + "nan": "2.8.0" + } }, "tapable": { "version": "0.2.8", @@ -5612,7 +8472,12 @@ "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=" + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } }, "text-table": { "version": "0.2.0", @@ -5628,12 +8493,18 @@ "timebucket": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/timebucket/-/timebucket-0.4.0.tgz", - "integrity": "sha1-2H9xqMhrjqq95zX3qcSzJc6ZhXw=" + "integrity": "sha1-2H9xqMhrjqq95zX3qcSzJc6ZhXw=", + "requires": { + "moment": "2.20.1" + } }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==" + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "requires": { + "setimmediate": "1.0.5" + } }, "tiny-emitter": { "version": "2.0.2", @@ -5644,7 +8515,10 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } }, "to-arraybuffer": { "version": "1.0.1", @@ -5659,7 +8533,10 @@ "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=" + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } }, "trend": { "version": "0.3.0", @@ -5680,11 +8557,21 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "requires": { + "glob": "6.0.4" + }, "dependencies": { "glob": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=" + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } } } }, @@ -5708,12 +8595,19 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } }, "type-is": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=" + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } }, "typed-function": { "version": "0.10.6", @@ -5729,12 +8623,20 @@ "typedarray-to-buffer": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", - "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=" + "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=", + "requires": { + "is-typedarray": "1.0.0" + } }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, "dependencies": { "camelcase": { "version": "1.2.1", @@ -5744,12 +8646,23 @@ "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=" + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=" + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } } } }, @@ -5762,7 +8675,12 @@ "uglifyjs-webpack-plugin": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=" + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.1.0" + } }, "ultron": { "version": "1.0.2", @@ -5782,7 +8700,10 @@ "uniqid": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=" + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "requires": { + "macaddress": "0.2.8" + } }, "uniqs": { "version": "2.0.0", @@ -5803,6 +8724,10 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, "dependencies": { "punycode": { "version": "1.3.2", @@ -5819,12 +8744,20 @@ "url-loader": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==" + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "requires": { + "loader-utils": "1.1.0", + "mime": "1.6.0", + "schema-utils": "0.3.0" + } }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, "dependencies": { "inherits": { "version": "2.0.1", @@ -5843,10 +8776,19 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } }, "vary": { "version": "1.1.2", @@ -5862,6 +8804,11 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -5873,12 +8820,20 @@ "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=" + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=" + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "requires": { + "async": "2.6.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } }, "waypoints": { "version": "4.0.1", @@ -5889,6 +8844,30 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", + "requires": { + "acorn": "5.3.0", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.1.0", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.1.0", + "yargs": "8.0.2" + }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -5913,17 +8892,31 @@ "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=" + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==" + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=" + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } }, "pify": { "version": "2.3.0", @@ -5933,22 +8926,38 @@ "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=" + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } }, "read-pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=" + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } }, "strip-bom": { "version": "3.0.0", @@ -5958,7 +8967,10 @@ "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=" + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } }, "which-module": { "version": "2.0.0", @@ -5968,12 +8980,30 @@ "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=" + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" + } }, "yargs-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=" + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -5981,6 +9011,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, "dependencies": { "source-map": { "version": "0.6.1", @@ -5992,12 +9026,22 @@ "websocket": { "version": "1.0.25", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.25.tgz", - "integrity": "sha512-M58njvi6ZxVb5k7kpnHh2BvNKuBWiwIYvsToErBzWhvBZYwlEiLcyLrG41T1jRcrY9ettqPYEqduLI7ul54CVQ==" + "integrity": "sha512-M58njvi6ZxVb5k7kpnHh2BvNKuBWiwIYvsToErBzWhvBZYwlEiLcyLrG41T1jRcrY9ettqPYEqduLI7ul54CVQ==", + "requires": { + "debug": "2.6.9", + "nan": "2.8.0", + "typedarray-to-buffer": "3.1.2", + "yaeti": "0.0.6" + } }, "websocket-driver": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=" + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "requires": { + "http-parser-js": "0.4.9", + "websocket-extensions": "0.1.3" + } }, "websocket-extensions": { "version": "0.1.3", @@ -6017,7 +9061,10 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==" + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } }, "which-module": { "version": "1.0.0", @@ -6027,7 +9074,10 @@ "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==" + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + } }, "window-size": { "version": "0.1.0", @@ -6038,6 +9088,14 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + }, "dependencies": { "async": { "version": "1.0.0", @@ -6059,7 +9117,11 @@ "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } }, "wrappy": { "version": "1.0.2", @@ -6070,12 +9132,20 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + }, "dependencies": { "ultron": { "version": "1.1.1", @@ -6087,7 +9157,10 @@ "xml2js": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.13.tgz", - "integrity": "sha1-Q4/zsdhaUa1ln/wuvoNAPhDJhyI=" + "integrity": "sha1-Q4/zsdhaUa1ln/wuvoNAPhDJhyI=", + "requires": { + "sax": "1.2.4" + } }, "xmlhttprequest": { "version": "1.8.0", @@ -6119,6 +9192,20 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", "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.1.0" + }, "dependencies": { "ansi-regex": { "version": "3.0.0", @@ -6142,19 +9229,31 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } }, "which-module": { "version": "2.0.0", @@ -6166,7 +9265,10 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -6174,6 +9276,9 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "3.0.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", diff --git a/package.json b/package.json index 081f5472ee..6bed6a7f2f 100644 --- a/package.json +++ b/package.json @@ -21,24 +21,25 @@ "async": "^2.5.0", "babel-core": "^6.26.0", "babel-loader": "^7.1.2", - "babel-preset-es2015": "^6.24.1", + "babel-preset-env": "^1.6.1", "bitfinex-api-node": "^1.2.0", "bitstamp": "^1.0.4", "bl": "^1.2.1", + "bollinger-bands": "^3.0.1", "bootstrap": "^4.0.0-beta.2", "ccxt": "^1.10.171", "cexio-api-node": "^1.0.8", "cliff": "^0.1.10", - "css-loader": "^0.28.7", "codemap": "^1.3.1", "colors": "^1.1.2", "commander": "^2.9.0", "convnetjs": "0.3.0", "counterup": "^1.0.2", + "css-loader": "^0.28.7", "ejs": "^2.5.7", - "express": "^4.16.2", "exports-loader": "^0.6.4", "expose-loader": "^0.7.4", + "express": "^4.16.2", "file-loader": "^1.1.6", "forex.analytics": "mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14", "gdax": "coinbase/gdax-node#v0.5.0", @@ -60,7 +61,6 @@ "node-prowl": "^0.1.7", "node-sass": "^4.7.2", "node-telegram-bot-api": "^0.29.0", - "node-uuid": "^1.4.8", "node.bittrex.api": "^0.2.5", "number-abbreviate": "^2.0.0", "numbro": "highvelocityspace/numbro", @@ -87,6 +87,7 @@ "timebucket": "^0.4.0", "trend": "0.3.0", "url-loader": "^0.6.2", + "uuid": "^3.1.0", "waypoints": "^4.0.1", "webpack": "^3.10.0", "wexnz": "^0.1.3", diff --git a/templates/dashboard.ejs b/templates/dashboard.ejs index 34301cd84f..858f471946 100644 --- a/templates/dashboard.ejs +++ b/templates/dashboard.ejs @@ -154,7 +154,7 @@ -
{{output}}
+
{{output}}
- \ No newline at end of file + From 64b32c92a6fa092176f665f6e07d064272e7c1af Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Wed, 10 Jan 2018 23:12:19 +0100 Subject: [PATCH 012/236] update products.json file to newest trading pairs at binance for VIBE (#1097) --- extensions/exchanges/binance/products.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 7c2fdbb4dd..4e569b91f3 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -1862,6 +1862,24 @@ "increment": "0.00000001", "label": "VIB/BTC" }, + { + "id": "VIBEBTC", + "asset": "VIBE", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000", + "increment": "0.00000001", + "label": "VIBE/BTC" + }, + { + "id": "VIBEETH", + "asset": "VIBE", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000", + "increment": "0.0000001", + "label": "VIBE/ETH" + }, { "id": "VIBETH", "asset": "VIB", From c89b29ac0fe3b24f70aabc51949ac38944c8b88d Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Wed, 10 Jan 2018 23:18:14 +0100 Subject: [PATCH 013/236] Rebuild Websocket Client instead a "re"-connect (#1098) --- extensions/exchanges/gdax/exchange.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/exchanges/gdax/exchange.js b/extensions/exchanges/gdax/exchange.js index 1dcab81925..a5f3f1890b 100644 --- a/extensions/exchanges/gdax/exchange.js +++ b/extensions/exchanges/gdax/exchange.js @@ -20,7 +20,7 @@ module.exports = function container (get, set, clear) { try { auth = authedClient() } catch(e){} - websocket_client[product_id] = new Gdax.OrderbookSync([product_id], c.gdax.apiURI, c.gdax.websocketURI, auth) + websocket_client[product_id] = new Gdax.OrderbookSync([product_id], c.gdax.apiURI, c.gdax.websocketURI, auth, { heartbeat: true }) // initialize a cache for the websocket connection websocket_cache[product_id] = { trades: [], @@ -43,9 +43,11 @@ module.exports = function container (get, set, clear) { }) websocket_client[product_id].on('close', () => { console.error('websocket connection to '+product_id+' closed, attempting reconnect') - websocket_client[product_id].connect() + websocket_client[product_id] = null + websocket_client[product_id] = websocketClient(product_id) }) } + return websocket_client[product_id] } function authedClient () { From 20f7077fd4d560c7d031bd6a9bd18a9416c39c42 Mon Sep 17 00:00:00 2001 From: Paolo Brocco Date: Wed, 10 Jan 2018 23:57:00 +0100 Subject: [PATCH 014/236] Respect buy_max_amt also in paper mode (#1099) buy_max_amt was working only on live, now it works also on paper mode --- lib/engine.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/engine.js b/lib/engine.js index d4aedfa350..b9baf0dfd5 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -433,7 +433,7 @@ module.exports = function container (get, set, clear) { if (signal === 'buy') { price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format(s.product.increment, Math.floor) if (!size) { - if (so.mode === 'live') { + if (so.mode === 'live' || so.mode === 'paper') { var buy_pct = so.buy_pct if(so.buy_max_amt){ var buy_max_as_pct = n(so.buy_max_amt).divide(s.balance.currency).multiply(100) From 5cd1e28401b33aa1781a6d51ec455e0e3462b024 Mon Sep 17 00:00:00 2001 From: shr00mie Date: Wed, 10 Jan 2018 15:06:46 -0800 Subject: [PATCH 015/236] Update genetic_backtester.md (#1100) updated parameters to follow strategy layout in darwin with general/strategy format. added --start --end. made sure formatting was consistent for parameters. --- docs/scripts/genetic_backtester.md | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/scripts/genetic_backtester.md b/docs/scripts/genetic_backtester.md index 23fb72f08f..e61028a348 100644 --- a/docs/scripts/genetic_backtester.md +++ b/docs/scripts/genetic_backtester.md @@ -16,23 +16,28 @@ cd ../../ Launch the genetic backtester from the zenbot root by directly invoking darwin.js: ```bash - ./scripts/genetic_backtester/darwin.js --days=30 --asset_capital=0 --currency_capital=1000 --selector="gdax.BTC-USD" --population=150 --use_strategies="macd,trend_ema" +./scripts/genetic_backtester/darwin.js --selector="bitfinex.ETH-USD" --days="10" --currency_capital="1000" --use_strategies="all | macd,trend_ema,etc" --population="101" --population_data="simulations/generation_data_[simtimestamp]_gen_[x].json" ``` ## Parameters The following parameters are available when executing darwin.js: ``` -// Primary Parameters ---use_strategies="strategyname" # comma separated strategy list to test with. Leave blank to test all. ---population_data=./simulations/generation_data_1514280516_gen_582.json # (optional) continue backtesting from a specific generation ---population=150 # (optional) number of simulation per generation // General Parameters ---selector="gdax.BTC-USD" # selector to run simulations on ---days=30 # how many days to execute per simulation ---currency_capital=1000 # currency amount to start simulations with. Needs to be bigger than 0 (see issue #449). ---asset_capital=0 # (optional) asset amount to start simulations with. +--selector="gdax.BTC-USD" # Which selector (exchange.COIN-ALT) backfill trade data the backtest is to be run against. +--days="30" # How many days of backfill to run the backtest against. +(or) +--start="201712010001" # Specifies date/time in "YYYYMMDDhhmm" format at which to begin backtesting in liu of --days. Backtest will begin with start date through backtest execution time. +--end="201712312359" # Optional - Used in conjunction with --start in order to restrict backtesting to a specific period instead of from start -> now. +--currency_capital="1000" # Currency amount to start simulations with. Needs to be bigger than 0 (see issue #449). +(or) +--asset_capital="100" # Optional - Asset amount to start simulations with. + +// Specific Parameters +--use_strategies="all | strategy1,strategy2" # With this parameter, you can choose to test all, some (comma separated), or just one of the available strategies defined within darwin. +--population="150" # Optional - Number of simulation per generation +--population_data="./simulations/generation_data_[simtimestamp]_gen_[X].json" # Optional - Resume backtesting on a previously terminated backtesting session based on results from specified generation. ``` @@ -44,4 +49,4 @@ The top results are listed at the top of the file, in descending order. ## Further Customization -The default ranges can be further customized per strategy by editing the [darwin.js](blob/master/scripts/genetic_backtester/darwin.js) script. \ No newline at end of file +The default ranges can be further customized per strategy by editing the [darwin.js](blob/master/scripts/genetic_backtester/darwin.js) script. From d1e38ec6c896ea698cec358ebccaf8513e16290b Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Thu, 11 Jan 2018 12:00:47 -0500 Subject: [PATCH 016/236] Add bollinger strategy to genetic backtesting (#1103) * Add Bollinger strategy Updates the genetic backtested for the recently added bollinger strategy * Add bollinger strategy to genetic backtesting --- scripts/genetic_backtester/darwin.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index 37dc306fcd..3eda714e65 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -41,6 +41,7 @@ let iterationCount = 0; let runCommand = (taskStrategyName, phenotype, cb) => { let commonArgs = `--strategy=${taskStrategyName} --period_length=${phenotype.period_length} --min_periods=${phenotype.min_periods} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct} --order_type=${phenotype.order_type} --sell_stop_pct=${phenotype.sell_stop_pct} --buy_stop_pct=${phenotype.buy_stop_pct} --profit_stop_enable_pct=${phenotype.profit_stop_enable_pct} --profit_stop_pct=${phenotype.profit_stop_pct}`; let strategyArgs = { + bollinger: `--bollinger_size=${phenotype.bollinger_size} --bollinger_time=${phenotype.bollinger_time} --bollinger_upper_bound_pct=${phenotype.bollinger_upper_bound_pct} --bollinger_lower_bound_pct=${phenotype.bollinger_lower_bound_pct}`, crossover_vwap: `--emalen1=${phenotype.emalen1} --smalen1=${phenotype.smalen1} --smalen2=${phenotype.smalen2} --vwap_length=${phenotype.vwap_length} --vwap_max=${phenotype.vwap_max}`, trendline: `--lastpoints=${phenotype.lastpoints} --avgpoints=${phenotype.avgpoints} --lastpoints2=${phenotype.lastpoints2} --avgpoints2=${phenotype.avgpoints2} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct}`, cci_srsi: `--cci_periods=${phenotype.rsi_periods} --rsi_periods=${phenotype.srsi_periods} --srsi_periods=${phenotype.srsi_periods} --srsi_k=${phenotype.srsi_k} --srsi_d=${phenotype.srsi_d} --oversold_rsi=${phenotype.oversold_rsi} --overbought_rsi=${phenotype.overbought_rsi} --oversold_cci=${phenotype.oversold_cci} --overbought_cci=${phenotype.overbought_cci} --constant=${phenotype.constant}`, @@ -144,7 +145,7 @@ let processOutput = output => { delete r.use_strategies; delete r.verbose; r.selector = r.selector.normalized - + if (start) { r.start = moment(start).format("YYYYMMDDhhmm"); } @@ -240,6 +241,23 @@ let RangeNeuralActivation = () => { }; let strategies = { + bollinger: { + period_length: RangePeriod(1, 60, 'm'), + min_periods: Range(1, 20), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // -- strategy + bollinger_size: Range(1, 40), + bollinger_time: RangeFloat(1,6), + bollinger_upper_bound_pct: RangeFloat(-1, 30), + bollinger_lower_bound_pct: RangeFloat(-1, 30) + }, crossover_vwap: { // -- common period_length: RangePeriod(1, 400, 'm'), @@ -562,6 +580,7 @@ console.log(`Creating population of ${populationSize} ...\n`); let pools = {}; let selectedStrategies = (strategyName === 'all') ? allStrategyNames() : strategyName.split(','); + let importedPoolData = (populationFileName) ? JSON.parse(fs.readFileSync(populationFileName, 'utf8')) : null; selectedStrategies.forEach(function(v) { From bb100aa6f0fcfcd888063afeffe5a2e4019c5e58 Mon Sep 17 00:00:00 2001 From: kernelsndrs Date: Thu, 11 Jan 2018 20:43:44 -0500 Subject: [PATCH 017/236] Add keep_lookback_periods flag and utilize previously added lookback_size parameter to check against. (#1107) Removes the last entry if check passes. --- commands/trade.js | 8 ++++++-- conf-sample.js | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/commands/trade.js b/commands/trade.js index 53fee437f1..b7b91580c2 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -42,6 +42,7 @@ module.exports = function container (get, set, clear) { .option('--max_slippage_pct ', 'avoid selling at a slippage pct above this float', c.max_slippage_pct) .option('--rsi_periods ', 'number of periods to calculate RSI at', Number, c.rsi_periods) .option('--poll_trades ', 'poll new trades at this interval in ms', Number, c.poll_trades) + .option('--keep_lookback_periods ', 'Keep this many lookback periods max. ', Number, c.keep_lookback_periods) .option('--disable_stats', 'disable printing order stats') .option('--reset_profit', 'start new profit calculation from 0') .option('--debug', 'output detailed debug info') @@ -55,7 +56,7 @@ module.exports = function container (get, set, clear) { so[k] = cmd[k] } }) - + so.keep_lookback_periods = cmd.keep_lookback_periods so.debug = cmd.debug so.stats = !cmd.disable_stats so.mode = so.paper ? 'paper' : 'live' @@ -421,7 +422,10 @@ module.exports = function container (get, set, clear) { } } } - lookback_size = s.lookback.length + if(lookback_size = s.lookback.length > so.keep_lookback_periods){ + s.lookback.splice(-1,1) + } + forwardScan() setInterval(forwardScan, so.poll_trades) readline.emitKeypressEvents(process.stdin) diff --git a/conf-sample.js b/conf-sample.js index e8de677aa9..a6bdbda326 100644 --- a/conf-sample.js +++ b/conf-sample.js @@ -141,6 +141,8 @@ c.post_only = true // default # days for backfill and sim commands c.days = 14 +// defaults to a high number of lookback periods +c.keep_lookback_periods = 50000 // ms to poll new trades at c.poll_trades = 30000 // amount of currency to start simulations with From 6f24a63dfe70fe70a26dc3ba4c12e2b7c7953226 Mon Sep 17 00:00:00 2001 From: Rick Tonoli Date: Sat, 13 Jan 2018 00:55:58 +1300 Subject: [PATCH 018/236] Fix to correct number of days shown in darwin CSV when running with start and end parameters only (#1110) If you the simulator with no --days parameter and only --start and/or --end, it seems to default the days parameter to 14, not the difference between start and end. This is not serious for the sim because it does it's calculations based on start and end but messes up the CSV output of the darwin backtester by always putting 14 days in the #Days column. This change should fix that. --- commands/sim.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/commands/sim.js b/commands/sim.js index c989eefc30..24ce6c620c 100644 --- a/commands/sim.js +++ b/commands/sim.js @@ -65,6 +65,8 @@ module.exports = function container (get, set, clear) { var d = tb('1d') so.start = d.subtract(so.days).toMilliseconds() } + so.days = moment(so.end).diff(moment(so.start), 'days') + so.stats = !!cmd.enable_stats so.show_options = !cmd.disable_options so.verbose = !!cmd.verbose From 7fde22f223f5d3fcc9543e5a11dfb3a4de773325 Mon Sep 17 00:00:00 2001 From: firepol <1702718+firepol@users.noreply.github.com> Date: Fri, 12 Jan 2018 17:11:40 +0100 Subject: [PATCH 019/236] Fix node-telegram-bot-api deprecated warning (#1113) * Respect buy_max_amt also in paper mode buy_max_amt was working only on live, now it works also on paper mode * Fix node-telegram-bot-api deprecated warning Get rid of that annoying message. Telegram tested and working fine. --- extensions/notifiers/telegram.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/notifiers/telegram.js b/extensions/notifiers/telegram.js index 7c20b22f40..764fd2d079 100644 --- a/extensions/notifiers/telegram.js +++ b/extensions/notifiers/telegram.js @@ -1,3 +1,5 @@ +process.env["NTBA_FIX_319"] = 1; + var TelegramBot = require('node-telegram-bot-api'); module.exports = function container (get, set, clear) { From b0b7c9205e5ca587aacbe80bb5c3d76108664a84 Mon Sep 17 00:00:00 2001 From: Travis Frisinger Date: Fri, 12 Jan 2018 18:16:28 +0200 Subject: [PATCH 020/236] Cherry picked master branch changes into unstable branch (#1112) --- lib/engine.js | 31 ++-- package-lock.json | 1 + test/lib/engine.test.js | 306 +++++++++++++++++++++++++++------------- 3 files changed, 225 insertions(+), 113 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index b9baf0dfd5..2a295dc93c 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -18,6 +18,7 @@ module.exports = function container (get, set, clear) { s.product_id = so.selector.product_id s.asset = so.selector.asset s.currency = so.selector.currency + s.asset_capital = 0 if (typeof so.period_length == 'undefined') so.period_length = so.period @@ -192,18 +193,19 @@ module.exports = function container (get, set, clear) { s.exchange.getBalance({currency: s.currency, asset: s.asset}, function (err, balance) { if (err) return cb(err) s.balance = balance - if (!s.start_capital) { - s.exchange.getQuote({product_id: s.product_id}, function (err, quote) { - if (err) return cb(err) + s.exchange.getQuote({product_id: s.product_id}, function (err, quote) { + if (err) return cb(err) + + if (!s.start_capital) { s.start_price = n(quote.ask).value() s.start_capital = n(s.balance.currency).add(n(s.balance.asset).multiply(quote.ask)).value() pushMessage('Balance ' + s.exchange.name.toUpperCase(), 'sync balance ' + s.start_capital + ' ' + s.currency + '\n') - - cb() - }) - } - else cb() + } + + s.asset_capital = n(s.balance.asset).multiply(quote.ask).value() + cb() + }) }) } @@ -435,11 +437,14 @@ module.exports = function container (get, set, clear) { if (!size) { if (so.mode === 'live' || so.mode === 'paper') { var buy_pct = so.buy_pct - if(so.buy_max_amt){ - var buy_max_as_pct = n(so.buy_max_amt).divide(s.balance.currency).multiply(100) - if(buy_max_as_pct < buy_pct){ - buy_pct = buy_max_as_pct - } + if(so.buy_max_amt){ // account for held assets as buy_max + var adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() + var buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() + buy_pct = buy_max_as_pct + }else{ // account for held assets as % + var held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() + var to_buy_pct = n(so.buy_pct).subtract(held_pct).value() + buy_pct = to_buy_pct } if (so.order_type === 'maker') { size = n(s.balance.currency).multiply(buy_pct).divide(100).multiply(s.exchange.makerFee / 100).format('0.00000000') diff --git a/package-lock.json b/package-lock.json index 2655853faa..1c4fad6996 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12206,3 +12206,4 @@ } } } + diff --git a/test/lib/engine.test.js b/test/lib/engine.test.js index 2b44bb56c6..4a3bd62bef 100644 --- a/test/lib/engine.test.js +++ b/test/lib/engine.test.js @@ -1,121 +1,227 @@ describe("Engine", function() { describe("executeSignal", function() { - describe("when maker", function(){ - it("with buy_max_amt less than buy_pct amount should use buy_max_amt", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.25 - var order_type = "maker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "2.77500000" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) + describe("when maker in live mode", function(){ + describe("with buy_max set", function(){ + it("and no held assets should use raw buy_max_amt", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "maker" + var held_asset = 0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "2.77500000" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets should use adjusted buy_max_amt", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 3.0 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "maker" + var held_asset = 0.75 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "1.85925000" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets so large adjusted buy_max_amt is below order minimum should not place order", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "maker" + var held_asset = 2.0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + expect(buy_spy).not.toHaveBeenCalled() + }) }) - - it("with buy_max_amt more than buy_pct amount should use buy_pct", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.75 - var order_type = "maker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "5.55000000" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) - }) - - it("with buy_max_amt equals buy_pct amount should use buy_pct", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.50 - var order_type = "maker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "5.55000000" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) + describe("with no buy_max set", function(){ + it("and no held assets should use raw buy_pct", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "maker" + var held_asset = 0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "5.55000000" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets should use adjusted buy_pct", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "maker" + var held_asset = 0.5 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "4.93950000" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets so large adjusted buy_pct is below order minimum should not place order", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "maker" + var held_asset = 5.25 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + expect(buy_spy).not.toHaveBeenCalled() + }) }) }) - describe("when taker", function(){ - it("with buy_max_amt less than buy_pct amount should use buy_max_amt", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.25 - var order_type = "taker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "2.77222222" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) - }) - - it("with buy_max_amt more than buy_pct amount should use buy_pct", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.75 - var order_type = "taker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "5.54444444" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) + describe("when taker in live mode", function(){ + describe("with buy_max_amt set",function(){ + it("and no held assets should use raw buy_max_amt", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "taker" + var held_asset = 0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "2.77222222" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + + it("and held assets should use adjusted buy_max_amt", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 3.0 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "taker" + var held_asset = 0.75 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "1.85738888" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + + it("and held assets so large adjusted buy_max_amt is below order minimum should not place order", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = 0.25 + var order_type = "taker" + var held_asset = 2.0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + expect(buy_spy).not.toHaveBeenCalled() + }) }) - - it("with buy_max_amt equals buy_pct amount should use buy_pct", function(){ - // arrange - var signal_type = "buy" - var currency_amount = 1 - var buy_pct = 50 - var buy_max_amt = 0.50 - var order_type = "taker" - var buy_spy = jasmine.createSpy() - var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy) - // act - sut.executeSignal(signal_type) - // assert - var expected = "5.54444444" - var buyArgs = buy_spy.calls.mostRecent().args[0] - expect(buyArgs.size).toBe(expected) + describe("with no buy_max_amt set",function(){ + it("with no buy_max_amt set and no held assets should use raw buy_pct", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "taker" + var held_asset = 0 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "5.54444444" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets should use adjusted buy_pct", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "taker" + var held_asset = 0.5 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + var expected = "4.93455555" + var buyArgs = buy_spy.calls.mostRecent().args[0] + expect(buyArgs.size).toBe(expected) + }) + it("and held assets so large adjusted buy_pct is below order minimum should not place order", function(){ + // arrange + var signal_type = "buy" + var currency_amount = 1.0 + var buy_pct = 50 + var buy_max_amt = undefined + var order_type = "taker" + var held_asset = 5.25 + var buy_spy = jasmine.createSpy() + var sut = createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy) + // act + sut.executeSignal(signal_type) + // assert + expect(buy_spy).not.toHaveBeenCalled() + }) }) }) }) }) -function createEngine(currency_amount, buy_pct, buy_max_amt, order_type, buy_spy){ +function createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_asset, buy_spy){ var fake_asset = "test_asset" var fake_currency = "BTC" var fake_exchange = "test_exchange" var fake_project = "test_product" var fake_bid = 0.10 var fake_ask = 0.11 - var fake_balance = { currency: currency_amount, asset:0} + var fake_balance = { currency: currency_amount, asset:held_asset} var fakes = { get: function() { }, From c5712ceca1cde9a7e5e4671d08aff236f4b1a41b Mon Sep 17 00:00:00 2001 From: Trivalik Date: Fri, 12 Jan 2018 20:30:22 +0100 Subject: [PATCH 021/236] add logs in case conf parameter could not properly handled (#1114) --- boot.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/boot.js b/boot.js index c49adb2f89..63973a008f 100644 --- a/boot.js +++ b/boot.js @@ -66,6 +66,7 @@ module.exports = function (cb) { try { conf = require(_allArgs[0]) } catch (ee) { + console.log('Fall back to conf.js, ' + ee) conf = require('./conf') } } else { @@ -73,6 +74,7 @@ module.exports = function (cb) { } } catch (e) { + console.log('Fall back to sample-conf.js, ' + e) conf = {} } From 409ef61a141133715e4a9af74119b1ce117bb5d5 Mon Sep 17 00:00:00 2001 From: Trivalik Date: Fri, 12 Jan 2018 20:30:36 +0100 Subject: [PATCH 022/236] allow --conf in backfill (#1115) --- commands/backfill.js | 1 + 1 file changed, 1 insertion(+) diff --git a/commands/backfill.js b/commands/backfill.js index 1d2a2ab0ef..357ef15ba6 100644 --- a/commands/backfill.js +++ b/commands/backfill.js @@ -12,6 +12,7 @@ module.exports = function container (get, set, clear) { program .command('backfill [selector]') .description('download historical trades for analysis') + .option('--conf ', 'path to optional conf overrides file') .option('-d, --days ', 'number of days to acquire (default: ' + c.days + ')', Number, c.days) .action(function (selector, cmd) { selector = get('lib.objectify-selector')(selector || c.selector) From 04e976cf51a1e0e768a73d2d3c1838dfa2f2b1ae Mon Sep 17 00:00:00 2001 From: firepol <1702718+firepol@users.noreply.github.com> Date: Sat, 13 Jan 2018 12:03:18 +0100 Subject: [PATCH 023/236] Fix training start and simulation start/end (#1119) * Respect buy_max_amt also in paper mode buy_max_amt was working only on live, now it works also on paper mode * Fix node-telegram-bot-api deprecated warning Get rid of that annoying message. Telegram tested and working fine. * Fix training start and simulation start/end Previously the training was starting too early if --days_test was specified. According to the parameter description, --days_test is a parameter to specify when the simulation should stop (days after training). The simulator wants the start and end date in this format: YYYYMMDDhhmm, which was not the case, thus the simulator wasn't running properly. Now if the user specifies dates it works properly. Example: ./zenbot.sh train binance.ETH-BTC --start_training 2018-01-01 --end_training 2018-01-03 --days_test 3 In this example, the training stops on Jan 2nd (midnight). The simulation test runs after the period used in the training, thus begins on on Jan 3rd and stops 3 days later, on Jan 5th (midnight). * Ignore models in models/subdirectories --- .gitignore | 4 ++-- commands/train.js | 23 +++++++++++------------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 70591b9dd9..a18b7430d3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,8 +21,8 @@ trade_result* *_test backtesting_* generation_data_* -models/*.json -models/*.html +models/**/*.json +models/**/*.html *.pyc *.swp temp.html diff --git a/commands/train.js b/commands/train.js index 3db11b15ed..0f21ef2044 100644 --- a/commands/train.js +++ b/commands/train.js @@ -113,11 +113,7 @@ module.exports = function container (get, set, clear) { } if (!so.start_training && so.days_training) { var d = tb('1d') - so.start_training = d.subtract(so.days_test).subtract(so.days_training).toMilliseconds() - } - if (so.days_test > 0) { - var d = tb('1d') - so.end_training = d.subtract(so.days_test).toMilliseconds() + so.start_training = d.subtract(so.days_training).toMilliseconds() } so.selector = get('lib.objectify-selector')(selector || c.selector) so.mode = 'train' @@ -232,8 +228,8 @@ module.exports = function container (get, set, clear) { '--strategy', 'forex_analytics', '--disable_options', '--modelfile', path.resolve(__dirname, '..', tempModelFile), - '--start', so.start_training, - '--end', so.end_training, + '--start', moment(so.start_training).format('YYYYMMDDHHmm'), + '--end', moment(so.end_training).format('YYYYMMDDHHmm'), '--period', so.period_length, '--filename', path.resolve(__dirname, '..', tempModelFile) + '-simTrainingResult.html' ] @@ -248,18 +244,21 @@ module.exports = function container (get, set, clear) { var trainingResult = parseSimulation(path.resolve(__dirname, '..', tempModelFile) + '-simTrainingResult.html') if (so.days_test > 0) { - console.log( - "\nRunning simulation on test data from " - + moment(so.end_training).format('YYYY-MM-DD HH:mm:ss ZZ') + " onwards.\n" + var endTest = moment(so.end_training).add(so.days_test, 'days') + + console.log("\nRunning simulation on test data from " + + moment(so.end_training).format('YYYY-MM-DD HH:mm:ss ZZ') + " to " + + moment(endTest).format('YYYY-MM-DD HH:mm:ss ZZ') + " (" + so.days_test + " days).\n" ) - + var testArgs = [ 'sim', so.selector.normalized, '--strategy', 'forex_analytics', '--disable_options', '--modelfile', path.resolve(__dirname, '..', tempModelFile), - '--start', so.end_training, + '--start', moment(so.end_training).format('YYYYMMDDHHmm'), + '--end', moment(endTest).format('YYYYMMDDHHmm'), '--period', so.period_length, '--filename', path.resolve(__dirname, '..', tempModelFile) + '-simTestResult.html', ] From f27f71b33cb196cf8d606af61c2bfd7aec35304e Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Sat, 13 Jan 2018 12:04:01 +0100 Subject: [PATCH 024/236] extend dashboard trades overview with trade slippage (#1121) * extend dashboard trades overview with trade slippage * Update dashboard.ejs --- templates/dashboard.ejs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/templates/dashboard.ejs b/templates/dashboard.ejs index 858f471946..17cd5c5b19 100644 --- a/templates/dashboard.ejs +++ b/templates/dashboard.ejs @@ -185,6 +185,7 @@ TYPE AMOUNT PRICE + SLIPPAGE DATE EXECUTED DATE @@ -195,6 +196,7 @@ BUY <%= buy_order.size %> <%= asset.toUpperCase() %> <%= buy_order.price %> <%= currency.toUpperCase() %> + <%= new Date(buy_order.time).toLocaleString("en-US", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) %> Waiting @@ -204,6 +206,7 @@ SELL <%= sell_order.size %> <%= asset.toUpperCase() %> <%= sell_order.price %> <%= currency.toUpperCase() %> + <%= new Date(sell_order.time).toLocaleString("en-US", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) %> Waiting @@ -214,6 +217,7 @@ <%= trade.type.toUpperCase() %> <%= trade.size %> <%= asset.toUpperCase() %> <%= trade.price %> <%= currency.toUpperCase() %> + <%= new Intl.NumberFormat("en-US", {style: "percent", maximumSignificantDigits: 4}).format(trade.slippage) %> <%= new Date(trade.time).toLocaleString("en-US", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) %> <%= new Date(trade.time + trade.execution_time).toLocaleString("en-US", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) %> @@ -221,7 +225,7 @@ <% } %> <% if (!(typeof buy_order != "undefined" || typeof sell_order != "undefined") && !my_trades) { %> - There is no trades at the moment + There is no trades at the moment <% } %> From 0ebf4313bcc13d1f5194fe60ee6ba52dd8265bda Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Sun, 14 Jan 2018 20:23:11 +0100 Subject: [PATCH 025/236] Fix endless retry in cancelOrder Binance exchange action (#1122) fixes #1120 and is somehow related to #1096 --- extensions/exchanges/binance/exchange.js | 27 +++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/extensions/exchanges/binance/exchange.js b/extensions/exchanges/binance/exchange.js index d332f78104..855c588e02 100644 --- a/extensions/exchanges/binance/exchange.js +++ b/extensions/exchanges/binance/exchange.js @@ -25,8 +25,15 @@ module.exports = function container (get, set, clear) { return authed_client } + /** + * Convert BNB-BTC to BNB/BTC + * + * @param product_id BNB-BTC + * @returns {string} + */ function joinProduct(product_id) { - return product_id.split('-')[0] + '/' + product_id.split('-')[1] + let split = product_id.split('-'); + return split[0] + '/' + split[1] } function retry (method, args, err) { @@ -130,8 +137,22 @@ module.exports = function container (get, set, clear) { client.cancelOrder(opts.order_id, joinProduct(opts.product_id)).then(function (body) { if (body && (body.message === 'Order already done' || body.message === 'order not found')) return cb() cb(null) - },function(err){ - if (err) return retry('cancelOrder', func_args, err) + }, function(err){ + // match error against string: + // "binance {"code":-2011,"msg":"UNKNOWN_ORDER"}" + + if (err) { + // decide if this error is allowed for a retry + + if (err.message && err.message.match(new RegExp(/-2011|UNKNOWN_ORDER/))) { + console.error(('\ncancelOrder retry - unknown Order: ' + JSON.stringify(opts) + " - " + err).cyan) + } else { + // retry is allowed for this error + + return retry('cancelOrder', func_args, err) + } + } + cb() }) }, From 5105d9f2764c73669d7a841b0b323995ca054d84 Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Sun, 14 Jan 2018 20:24:20 +0100 Subject: [PATCH 026/236] Fixed wrong hold signals (#1125) --- extensions/strategies/bollinger/strategy.js | 2 +- extensions/strategies/dema/strategy.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/strategies/bollinger/strategy.js b/extensions/strategies/bollinger/strategy.js index 193d4a3369..e0a1442f58 100644 --- a/extensions/strategies/bollinger/strategy.js +++ b/extensions/strategies/bollinger/strategy.js @@ -31,7 +31,7 @@ module.exports = function container (get, set, clear) { } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) { s.signal = 'buy' } else { - s.signal = 'null' // hold + s.signal = null // hold } } } diff --git a/extensions/strategies/dema/strategy.js b/extensions/strategies/dema/strategy.js index a5dbb4d278..9cfd47cc57 100644 --- a/extensions/strategies/dema/strategy.js +++ b/extensions/strategies/dema/strategy.js @@ -49,7 +49,7 @@ module.exports = function container (get, set, clear) { if (typeof s.period.dema_histogram === 'number' && typeof s.lookback[0].dema_histogram === 'number') { if (s.options.noise_level_pct != 0 && (s.period.ema_short / s.lookback[0].ema_short * 100 < s.options.noise_level_pct)) { - s.signal = 'null'; + s.signal = null; } else if ((s.period.dema_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].dema_histogram - s.options.up_trend_threshold) <= 0) { s.signal = 'buy'; } else if ((s.period.dema_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].dema_histogram + s.options.down_trend_threshold) >= 0) { From b933e144b38f6dcb8cd351880a995e5199efa3c2 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Sun, 14 Jan 2018 20:25:49 +0100 Subject: [PATCH 027/236] update products.json file to newest trading pairs at binance for RLC (#1126) --- extensions/exchanges/binance/products.json | 31 ++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 4e569b91f3..c6f0122c66 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -120,9 +120,9 @@ "id": "WTCBTC", "asset": "WTC", "currency": "BTC", - "min_size": "1.00000000", + "min_size": "0.01000000", "max_size": "100000", - "increment": "0.00000001", + "increment": "0.0000001", "label": "WTC/BTC" }, { @@ -1709,6 +1709,33 @@ "increment": "0.00000001", "label": "REQ/ETH" }, + { + "id": "RLCBNB", + "asset": "RLC", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "100000", + "increment": "0.00001", + "label": "RLC/BNB" + }, + { + "id": "RLCBTC", + "asset": "RLC", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000", + "increment": "0.0000001", + "label": "RLC/BTC" + }, + { + "id": "RLCETH", + "asset": "RLC", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000", + "increment": "0.000001", + "label": "RLC/ETH" + }, { "id": "SNTBTC", "asset": "SNT", From acaf18e8cebc2609fffc1fecc4def6038ed76c11 Mon Sep 17 00:00:00 2001 From: defkev Date: Sun, 14 Jan 2018 20:27:24 +0100 Subject: [PATCH 028/236] Web UI fix CoinMarketCap static css 404 (#1129) Just tried the web UI for the first time and noticed that all icons were missing. Looks like they moved some files on their end. --- templates/dashboard_assets/css/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/dashboard_assets/css/style.css b/templates/dashboard_assets/css/style.css index 5d310154dd..8174f077b9 100644 --- a/templates/dashboard_assets/css/style.css +++ b/templates/dashboard_assets/css/style.css @@ -1,5 +1,5 @@ @import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900); -@import url(https://coinmarketcap.com/static/sprites/all_views_market-cap-by-circulating-supply_0.css?3177814135); +@import url(https://coinmarketcap.com/static/public/sprites/all_views_market-cap-by-circulating-supply_0.css); @import "spinners.css"; .preloader { From 877d3ddd5dc931495682d2438cc66426f923d333 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Sun, 14 Jan 2018 20:43:51 +0100 Subject: [PATCH 029/236] use ccxt for loading binance exchanges pairs; instead of a direct api call (#1134) --- extensions/exchanges/binance/products.json | 2757 +++++++++-------- .../exchanges/binance/update-products.sh | 31 +- 2 files changed, 1418 insertions(+), 1370 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index c6f0122c66..94de69013b 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -1,120 +1,129 @@ [ { - "id": "NULSBNB", - "asset": "NULS", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "NULS/BNB" + "id": "ETHBTC", + "asset": "ETH", + "currency": "BTC", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "ETH/BTC" }, { - "id": "VENBNB", - "asset": "VEN", - "currency": "BNB", + "id": "LTCBTC", + "asset": "LTC", + "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0001", - "label": "VEN/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LTC/BTC" }, { "id": "BNBBTC", "asset": "BNB", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "BNB/BTC" }, { - "id": "NULSBTC", - "asset": "NULS", + "id": "NEOBTC", + "asset": "NEO", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "NULS/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NEO/BTC" }, { - "id": "CTRBTC", - "asset": "CTR", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CTR/BTC" + "id": "123456", + "asset": "123", + "currency": "456", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "123/456" }, { - "id": "NEOBTC", - "asset": "NEO", - "currency": "BTC", + "id": "QTUMETH", + "asset": "QTUM", + "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "NEO/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "QTUM/ETH" }, { - "id": "NULSETH", - "asset": "NULS", + "id": "EOSETH", + "asset": "EOS", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "NULS/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "EOS/ETH" }, { - "id": "LINKBTC", - "asset": "LINK", - "currency": "BTC", + "id": "SNTETH", + "asset": "SNT", + "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LINK/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SNT/ETH" }, { - "id": "SALTBTC", - "asset": "SALT", - "currency": "BTC", + "id": "BNTETH", + "asset": "BNT", + "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "SALT/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "BNT/ETH" }, { - "id": "IOTABTC", - "asset": "IOTA", + "id": "BCCBTC", + "asset": "BCH", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "IOTA/BTC" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "BCH/BTC" }, { - "id": "ETCBTC", - "asset": "ETC", + "id": "GASBTC", + "asset": "GAS", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "ETC/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "GAS/BTC" }, { - "id": "ASTETH", - "asset": "AST", + "id": "BNBETH", + "asset": "BNB", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "AST/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "BNB/ETH" }, { - "id": "KNCBTC", - "asset": "KNC", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "KNC/BTC" + "id": "BTCUSDT", + "asset": "BTC", + "currency": "USDT", + "min_size": "0.00000100", + "max_size": "10000000.00000000", + "increment": "0.00000100", + "label": "BTC/USDT" + }, + { + "id": "ETHUSDT", + "asset": "ETH", + "currency": "USDT", + "min_size": "0.00001000", + "max_size": "10000000.00000000", + "increment": "0.00001000", + "label": "ETH/USDT" }, { "id": "WTCBTC", @@ -126,156 +135,183 @@ "label": "WTC/BTC" }, { - "id": "SNGLSBTC", - "asset": "SNGLS", + "id": "HSRBTC", + "asset": "HSR", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SNGLS/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "HSR/BTC" }, { - "id": "EOSETH", - "asset": "EOS", + "id": "OAXETH", + "asset": "OAX", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "EOS/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "OAX/ETH" }, { - "id": "SNTETH", - "asset": "SNT", + "id": "DNTETH", + "asset": "DNT", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SNT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "DNT/ETH" }, { "id": "MCOETH", "asset": "MCO", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "MCO/ETH" }, { - "id": "BTCUSDT", - "asset": "BTC", - "currency": "USDT", - "min_size": "0.00000100", - "max_size": "100000", - "increment": "0.01", - "label": "BTC/USDT" - }, - { - "id": "OAXETH", - "asset": "OAX", + "id": "ICNETH", + "asset": "ICN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "OAX/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ICN/ETH" }, { - "id": "OMGETH", - "asset": "OMG", - "currency": "ETH", + "id": "MCOBTC", + "asset": "MCO", + "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "OMG/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "MCO/BTC" }, { - "id": "GASBTC", - "asset": "GAS", + "id": "WTCBTC", + "asset": "WTC", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "GAS/BTC" - }, - { - "id": "BQXETH", - "asset": "BQX", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "BQX/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "WTC/BTC" }, { "id": "WTCETH", "asset": "WTC", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "WTC/ETH" }, { - "id": "QTUMETH", - "asset": "QTUM", - "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "QTUM/ETH" + "id": "LRCBTC", + "asset": "LRC", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LRC/BTC" }, { - "id": "BNTETH", - "asset": "BNT", + "id": "LRCETH", + "asset": "LRC", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "BNT/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LRC/ETH" }, { - "id": "DNTETH", - "asset": "DNT", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "DNT/ETH" + "id": "QTUMBTC", + "asset": "QTUM", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "QTUM/BTC" }, { - "id": "ICNETH", - "asset": "ICN", - "currency": "ETH", + "id": "YOYOBTC", + "asset": "YOYO", + "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "ICN/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "YOYO/BTC" }, { - "id": "SNMBTC", - "asset": "SNM", + "id": "OMGBTC", + "asset": "OMG", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SNM/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "OMG/BTC" }, { - "id": "SNMETH", - "asset": "SNM", + "id": "OMGETH", + "asset": "OMG", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SNM/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "OMG/ETH" }, { - "id": "SNGLSETH", - "asset": "SNGLS", + "id": "ZRXBTC", + "asset": "ZRX", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ZRX/BTC" + }, + { + "id": "ZRXETH", + "asset": "ZRX", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ZRX/ETH" + }, + { + "id": "STRATBTC", + "asset": "STRAT", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "STRAT/BTC" + }, + { + "id": "STRATETH", + "asset": "STRAT", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "STRAT/ETH" + }, + { + "id": "SNGLSBTC", + "asset": "SNGLS", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SNGLS/BTC" + }, + { + "id": "SNGLSETH", + "asset": "SNGLS", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "SNGLS/ETH" }, { @@ -283,1322 +319,1286 @@ "asset": "BQX", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "BQX/BTC" }, { - "id": "NEOETH", - "asset": "NEO", + "id": "BQXETH", + "asset": "BQX", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "NEO/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BQX/ETH" }, { - "id": "KNCETH", + "id": "KNCBTC", "asset": "KNC", - "currency": "ETH", + "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "KNC/ETH" - }, - { - "id": "STRATETH", - "asset": "STRAT", - "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "STRAT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "KNC/BTC" }, { - "id": "ZRXETH", - "asset": "ZRX", + "id": "KNCETH", + "asset": "KNC", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ZRX/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "KNC/ETH" }, { - "id": "QTUMBTC", - "asset": "QTUM", + "id": "FUNBTC", + "asset": "FUN", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "QTUM/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "FUN/BTC" }, { "id": "FUNETH", "asset": "FUN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "FUN/ETH" }, { - "id": "LTCBTC", - "asset": "LTC", + "id": "SNMBTC", + "asset": "SNM", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "LTC/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SNM/BTC" }, { - "id": "LINKETH", - "asset": "LINK", + "id": "SNMETH", + "asset": "SNM", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LINK/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SNM/ETH" }, { - "id": "ETHBTC", - "asset": "ETH", + "id": "NEOETH", + "asset": "NEO", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NEO/ETH" + }, + { + "id": "IOTABTC", + "asset": "IOTA", "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "ETH/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "IOTA/BTC" }, { - "id": "XVGETH", - "asset": "XVG", + "id": "IOTAETH", + "asset": "IOTA", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XVG/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "IOTA/ETH" }, { - "id": "STRATBTC", - "asset": "STRAT", + "id": "LINKBTC", + "asset": "LINK", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "STRAT/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LINK/BTC" }, { - "id": "ZRXBTC", - "asset": "ZRX", + "id": "LINKETH", + "asset": "LINK", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LINK/ETH" + }, + { + "id": "XVGBTC", + "asset": "XVG", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ZRX/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XVG/BTC" }, { - "id": "IOTAETH", - "asset": "IOTA", + "id": "XVGETH", + "asset": "XVG", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "IOTA/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XVG/ETH" }, { - "id": "BCCBTC", - "asset": "BCC", + "id": "CTRBTC", + "asset": "CTR", "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "BCC/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CTR/BTC" }, { "id": "CTRETH", "asset": "CTR", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "CTR/ETH" }, { - "id": "OMGBTC", - "asset": "OMG", - "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "OMG/BTC" - }, - { - "id": "MCOBTC", - "asset": "MCO", + "id": "SALTBTC", + "asset": "SALT", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "MCO/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "SALT/BTC" }, { "id": "SALTETH", "asset": "SALT", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "SALT/ETH" }, { - "id": "ADABTC", - "asset": "ADA", + "id": "MDABTC", + "asset": "MDA", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ADA/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MDA/BTC" }, { - "id": "ADAETH", - "asset": "ADA", + "id": "MDAETH", + "asset": "MDA", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ADA/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MDA/ETH" }, { - "id": "ADXBNB", - "asset": "ADX", - "currency": "BNB", + "id": "MTLBTC", + "asset": "MTL", + "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "ADX/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "MTL/BTC" }, { - "id": "ADXBTC", - "asset": "ADX", + "id": "MTLETH", + "asset": "MTL", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "MTL/ETH" + }, + { + "id": "SUBBTC", + "asset": "SUB", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ADX/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SUB/BTC" }, { - "id": "ADXETH", - "asset": "ADX", + "id": "SUBETH", + "asset": "SUB", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "ADX/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SUB/ETH" }, { - "id": "AIONBNB", - "asset": "AION", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "AION/BNB" + "id": "EOSBTC", + "asset": "EOS", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "EOS/BTC" }, { - "id": "AIONBTC", - "asset": "AION", + "id": "SNTBTC", + "asset": "SNT", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "AION/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "SNT/BTC" }, { - "id": "AIONETH", - "asset": "AION", - "currency": "ETH", + "id": "ETCETH", + "asset": "ETC", + "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "AION/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ETC/ETH" }, { - "id": "AMBBNB", - "asset": "AMB", - "currency": "BNB", + "id": "ETCBTC", + "asset": "ETC", + "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "AMB/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ETC/BTC" }, { - "id": "AMBBTC", - "asset": "AMB", + "id": "MTHBTC", + "asset": "MTH", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "AMB/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MTH/BTC" }, { - "id": "AMBETH", - "asset": "AMB", + "id": "MTHETH", + "asset": "MTH", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "AMB/ETH" - }, - { - "id": "APPCBNB", - "asset": "APPC", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "APPC/BNB" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MTH/ETH" }, { - "id": "APPCBTC", - "asset": "APPC", + "id": "ENGBTC", + "asset": "ENG", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "APPC/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ENG/BTC" }, { - "id": "APPCETH", - "asset": "APPC", + "id": "ENGETH", + "asset": "ENG", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "APPC/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ENG/ETH" }, { - "id": "ARKBTC", - "asset": "ARK", + "id": "DNTBTC", + "asset": "DNT", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "ARK/BTC" - }, - { - "id": "ARKETH", - "asset": "ARK", - "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "ARK/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "DNT/BTC" }, { - "id": "ARNBTC", - "asset": "ARN", + "id": "ZECBTC", + "asset": "ZEC", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ARN/BTC" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "ZEC/BTC" }, { - "id": "ARNETH", - "asset": "ARN", + "id": "ZECETH", + "asset": "ZEC", "currency": "ETH", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "ZEC/ETH" + }, + { + "id": "BNTBTC", + "asset": "BNT", + "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ARN/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BNT/BTC" }, { "id": "ASTBTC", "asset": "AST", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "AST/BTC" }, { - "id": "BATBNB", - "asset": "BAT", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "BAT/BNB" + "id": "ASTETH", + "asset": "AST", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "AST/ETH" }, { - "id": "BATBTC", - "asset": "BAT", + "id": "DASHBTC", + "asset": "DASH", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BAT/BTC" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "DASH/BTC" }, { - "id": "BATETH", - "asset": "BAT", + "id": "DASHETH", + "asset": "DASH", "currency": "ETH", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "DASH/ETH" + }, + { + "id": "OAXBTC", + "asset": "OAX", + "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BAT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "OAX/BTC" }, { - "id": "BCCBNB", - "asset": "BCC", - "currency": "BNB", - "min_size": "0.00001000", - "max_size": "100000", - "increment": "0.01", - "label": "BCC/BNB" + "id": "ICNBTC", + "asset": "ICN", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ICN/BTC" }, { - "id": "BCCETH", - "asset": "BCC", - "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "BCC/ETH" + "id": "BTGBTC", + "asset": "BTG", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "BTG/BTC" }, { - "id": "BCCUSDT", - "asset": "BCC", - "currency": "USDT", - "min_size": "0.00001000", - "max_size": "100000", - "increment": "0.01", - "label": "BCC/USDT" + "id": "BTGETH", + "asset": "BTG", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "BTG/ETH" }, { - "id": "BCDBTC", - "asset": "BCD", + "id": "EVXBTC", + "asset": "EVX", "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "BCD/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "EVX/BTC" }, { - "id": "BCDETH", - "asset": "BCD", + "id": "EVXETH", + "asset": "EVX", "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "BCD/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "EVX/ETH" }, { - "id": "BCPTBNB", - "asset": "BCPT", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "BCPT/BNB" + "id": "REQBTC", + "asset": "REQ", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "REQ/BTC" }, { - "id": "BCPTBTC", - "asset": "BCPT", + "id": "REQETH", + "asset": "REQ", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "REQ/ETH" + }, + { + "id": "VIBBTC", + "asset": "VIB", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BCPT/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VIB/BTC" }, { - "id": "BCPTETH", - "asset": "BCPT", + "id": "VIBETH", + "asset": "VIB", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BCPT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VIB/ETH" }, { - "id": "BNBETH", - "asset": "BNB", + "id": "HSRETH", + "asset": "HSR", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "BNB/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "HSR/ETH" }, { - "id": "BNTBTC", - "asset": "BNT", + "id": "TRXBTC", + "asset": "TRX", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BNT/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "TRX/BTC" }, { - "id": "BRDBNB", - "asset": "BRD", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "BRD/BNB" + "id": "TRXETH", + "asset": "TRX", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "TRX/ETH" }, { - "id": "BRDBTC", - "asset": "BRD", + "id": "POWRBTC", + "asset": "POWR", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BRD/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "POWR/BTC" }, { - "id": "BRDETH", - "asset": "BRD", + "id": "POWRETH", + "asset": "POWR", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "BRD/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "POWR/ETH" }, { - "id": "BTGBTC", - "asset": "BTG", + "id": "ARKBTC", + "asset": "ARK", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "BTG/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ARK/BTC" }, { - "id": "BTGETH", - "asset": "BTG", + "id": "ARKETH", + "asset": "ARK", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "BTG/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ARK/ETH" }, { - "id": "BTSBNB", - "asset": "BTS", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "BTS/BNB" + "id": "YOYOETH", + "asset": "YOYO", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "YOYO/ETH" }, { - "id": "BTSBTC", - "asset": "BTS", + "id": "XRPBTC", + "asset": "XRP", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BTS/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XRP/BTC" }, { - "id": "BTSETH", - "asset": "BTS", + "id": "XRPETH", + "asset": "XRP", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "BTS/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XRP/ETH" }, { - "id": "CDTBTC", - "asset": "CDT", + "id": "MODBTC", + "asset": "MOD", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CDT/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "MOD/BTC" }, { - "id": "CDTETH", - "asset": "CDT", + "id": "MODETH", + "asset": "MOD", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CDT/ETH" - }, - { - "id": "CMTBNB", - "asset": "CMT", - "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "CMT/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "MOD/ETH" }, { - "id": "CMTBTC", - "asset": "CMT", + "id": "ENJBTC", + "asset": "ENJ", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CMT/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ENJ/BTC" }, { - "id": "CMTETH", - "asset": "CMT", + "id": "ENJETH", + "asset": "ENJ", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CMT/ETH" - }, - { - "id": "CNDBNB", - "asset": "CND", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "CND/BNB" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ENJ/ETH" }, { - "id": "CNDBTC", - "asset": "CND", + "id": "STORJBTC", + "asset": "STORJ", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CND/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "STORJ/BTC" }, { - "id": "CNDETH", - "asset": "CND", + "id": "STORJETH", + "asset": "STORJ", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "CND/ETH" - }, - { - "id": "DASHBTC", - "asset": "DASH", - "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "DASH/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "STORJ/ETH" }, { - "id": "DASHETH", - "asset": "DASH", - "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "DASH/ETH" + "id": "BNBUSDT", + "asset": "BNB", + "currency": "USDT", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "BNB/USDT" }, { - "id": "DGDBTC", - "asset": "DGD", - "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "DGD/BTC" + "id": "VENBNB", + "asset": "VEN", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "VEN/BNB" }, { - "id": "DGDETH", - "asset": "DGD", - "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "DGD/ETH" + "id": "YOYOBNB", + "asset": "YOYO", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "YOYO/BNB" }, { - "id": "DLTBNB", - "asset": "DLT", + "id": "POWRBNB", + "asset": "POWR", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "DLT/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "POWR/BNB" }, { - "id": "DLTBTC", - "asset": "DLT", + "id": "VENBTC", + "asset": "VEN", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "DLT/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VEN/BTC" }, { - "id": "DLTETH", - "asset": "DLT", + "id": "VENETH", + "asset": "VEN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "DLT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VEN/ETH" }, { - "id": "DNTBTC", - "asset": "DNT", + "id": "KMDBTC", + "asset": "KMD", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "DNT/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "KMD/BTC" }, { - "id": "EDOBTC", - "asset": "EDO", - "currency": "BTC", + "id": "KMDETH", + "asset": "KMD", + "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "EDO/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "KMD/ETH" }, { - "id": "EDOETH", - "asset": "EDO", - "currency": "ETH", + "id": "NULSBNB", + "asset": "NULS", + "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "EDO/ETH" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "NULS/BNB" }, { - "id": "ELFBTC", - "asset": "ELF", + "id": "RCNBTC", + "asset": "RCN", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ELF/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "RCN/BTC" }, { - "id": "ELFETH", - "asset": "ELF", + "id": "RCNETH", + "asset": "RCN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ELF/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "RCN/ETH" }, { - "id": "ENGBTC", - "asset": "ENG", + "id": "RCNBNB", + "asset": "RCN", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "RCN/BNB" + }, + { + "id": "NULSBTC", + "asset": "NULS", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ENG/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "NULS/BTC" }, { - "id": "ENGETH", - "asset": "ENG", + "id": "NULSETH", + "asset": "NULS", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "ENG/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "NULS/ETH" }, { - "id": "ENJBTC", - "asset": "ENJ", + "id": "RDNBTC", + "asset": "RDN", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ENJ/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "RDN/BTC" }, { - "id": "ENJETH", - "asset": "ENJ", + "id": "RDNETH", + "asset": "RDN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ENJ/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "RDN/ETH" }, { - "id": "EOSBTC", - "asset": "EOS", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "EOS/BTC" - }, - { - "id": "ETCETH", - "asset": "ETC", - "currency": "ETH", + "id": "RDNBNB", + "asset": "RDN", + "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "ETC/ETH" - }, - { - "id": "EVXBTC", - "asset": "EVX", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "EVX/BTC" - }, - { - "id": "EVXETH", - "asset": "EVX", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "EVX/ETH" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "RDN/BNB" }, { - "id": "FUELBTC", - "asset": "FUEL", + "id": "XMRBTC", + "asset": "XMR", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "FUEL/BTC" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "XMR/BTC" }, { - "id": "FUELETH", - "asset": "FUEL", + "id": "XMRETH", + "asset": "XMR", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "FUEL/ETH" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "XMR/ETH" }, { - "id": "FUNBTC", - "asset": "FUN", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "FUN/BTC" + "id": "DLTBNB", + "asset": "DLT", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "DLT/BNB" }, { - "id": "GTOBNB", - "asset": "GTO", + "id": "WTCBNB", + "asset": "WTC", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "GTO/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "WTC/BNB" }, { - "id": "GTOBTC", - "asset": "GTO", + "id": "DLTBTC", + "asset": "DLT", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "GTO/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "DLT/BTC" }, { - "id": "GTOETH", - "asset": "GTO", + "id": "DLTETH", + "asset": "DLT", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "GTO/ETH" - }, - { - "id": "GVTBTC", - "asset": "GVT", - "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "GVT/BTC" - }, - { - "id": "GVTETH", - "asset": "GVT", - "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "GVT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "DLT/ETH" }, { - "id": "GXSBTC", - "asset": "GXS", + "id": "AMBBTC", + "asset": "AMB", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "GXS/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "AMB/BTC" }, { - "id": "GXSETH", - "asset": "GXS", + "id": "AMBETH", + "asset": "AMB", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "GXS/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "AMB/ETH" }, { - "id": "HSRBTC", - "asset": "HSR", - "currency": "BTC", + "id": "AMBBNB", + "asset": "AMB", + "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "HSR/BTC" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "AMB/BNB" }, { - "id": "HSRETH", - "asset": "HSR", + "id": "BCCETH", + "asset": "BCH", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "HSR/ETH" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "BCH/ETH" }, { - "id": "ICNBTC", - "asset": "ICN", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "ICN/BTC" + "id": "BCCUSDT", + "asset": "BCH", + "currency": "USDT", + "min_size": "0.00001000", + "max_size": "10000000.00000000", + "increment": "0.00001000", + "label": "BCH/USDT" }, { - "id": "ICXBNB", - "asset": "ICX", + "id": "BCCBNB", + "asset": "BCH", "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "ICX/BNB" + "min_size": "0.00001000", + "max_size": "100000.00000000", + "increment": "0.00001000", + "label": "BCH/BNB" }, { - "id": "ICXBTC", - "asset": "ICX", + "id": "BATBTC", + "asset": "BAT", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "ICX/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BAT/BTC" }, { - "id": "ICXETH", - "asset": "ICX", + "id": "BATETH", + "asset": "BAT", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "ICX/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BAT/ETH" }, { - "id": "IOTABNB", - "asset": "IOTA", + "id": "BATBNB", + "asset": "BAT", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "IOTA/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "BAT/BNB" }, { - "id": "KMDBTC", - "asset": "KMD", + "id": "BCPTBTC", + "asset": "BCPT", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "KMD/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BCPT/BTC" }, { - "id": "KMDETH", - "asset": "KMD", + "id": "BCPTETH", + "asset": "BCPT", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "KMD/ETH" - }, - { - "id": "LENDBTC", - "asset": "LEND", - "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LEND/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BCPT/ETH" }, { - "id": "LENDETH", - "asset": "LEND", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LEND/ETH" + "id": "BCPTBNB", + "asset": "BCPT", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "BCPT/BNB" }, { - "id": "LRCBTC", - "asset": "LRC", + "id": "ARNBTC", + "asset": "ARN", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LRC/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ARN/BTC" }, { - "id": "LRCETH", - "asset": "LRC", + "id": "ARNETH", + "asset": "ARN", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "LRC/ETH" - }, - { - "id": "LSKBNB", - "asset": "LSK", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0001", - "label": "LSK/BNB" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ARN/ETH" }, { - "id": "LSKBTC", - "asset": "LSK", + "id": "GVTBTC", + "asset": "GVT", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "LSK/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "GVT/BTC" }, { - "id": "LSKETH", - "asset": "LSK", + "id": "GVTETH", + "asset": "GVT", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "LSK/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "GVT/ETH" }, { - "id": "LTCBNB", - "asset": "LTC", - "currency": "BNB", - "min_size": "0.00001000", - "max_size": "100000", - "increment": "0.01", - "label": "LTC/BNB" + "id": "CDTBTC", + "asset": "CDT", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CDT/BTC" }, { - "id": "LTCETH", - "asset": "LTC", + "id": "CDTETH", + "asset": "CDT", "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "LTC/ETH" - }, - { - "id": "LTCUSDT", - "asset": "LTC", - "currency": "USDT", - "min_size": "0.00001000", - "max_size": "100000", - "increment": "0.01", - "label": "LTC/USDT" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CDT/ETH" }, { - "id": "LUNBTC", - "asset": "LUN", + "id": "GXSBTC", + "asset": "GXS", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "LUN/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "GXS/BTC" }, { - "id": "LUNETH", - "asset": "LUN", + "id": "GXSETH", + "asset": "GXS", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "LUN/ETH" - }, - { - "id": "MANABTC", - "asset": "MANA", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "MANA/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "GXS/ETH" }, { - "id": "MANAETH", - "asset": "MANA", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "MANA/ETH" + "id": "NEOUSDT", + "asset": "NEO", + "currency": "USDT", + "min_size": "0.00100000", + "max_size": "10000000.00000000", + "increment": "0.00100000", + "label": "NEO/USDT" }, { - "id": "MCOBNB", - "asset": "MCO", + "id": "NEOBNB", + "asset": "NEO", "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "MCO/BNB" + "min_size": "0.00100000", + "max_size": "10000000.00000000", + "increment": "0.00100000", + "label": "NEO/BNB" }, { - "id": "MDABTC", - "asset": "MDA", + "id": "POEBTC", + "asset": "POE", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "MDA/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "POE/BTC" }, { - "id": "MDAETH", - "asset": "MDA", + "id": "POEETH", + "asset": "POE", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "MDA/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "POE/ETH" }, { - "id": "MODBTC", - "asset": "MOD", + "id": "QSPBTC", + "asset": "QSP", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "MOD/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "QSP/BTC" }, { - "id": "MODETH", - "asset": "MOD", + "id": "QSPETH", + "asset": "QSP", "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "QSP/ETH" + }, + { + "id": "QSPBNB", + "asset": "QSP", + "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "MOD/ETH" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "QSP/BNB" }, { - "id": "MTHBTC", - "asset": "MTH", + "id": "BTSBTC", + "asset": "BTS", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "MTH/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BTS/BTC" }, { - "id": "MTHETH", - "asset": "MTH", + "id": "BTSETH", + "asset": "BTS", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "MTH/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BTS/ETH" }, { - "id": "MTLBTC", - "asset": "MTL", + "id": "BTSBNB", + "asset": "BTS", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "BTS/BNB" + }, + { + "id": "XZCBTC", + "asset": "XZC", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "MTL/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "XZC/BTC" }, { - "id": "MTLETH", - "asset": "MTL", + "id": "XZCETH", + "asset": "XZC", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "MTL/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "XZC/ETH" }, { - "id": "NAVBNB", - "asset": "NAV", + "id": "XZCBNB", + "asset": "XZC", "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "NAV/BNB" + "min_size": "0.00100000", + "max_size": "10000000.00000000", + "increment": "0.00100000", + "label": "XZC/BNB" }, { - "id": "NAVBTC", - "asset": "NAV", + "id": "LSKBTC", + "asset": "LSK", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "NAV/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LSK/BTC" }, { - "id": "NAVETH", - "asset": "NAV", + "id": "LSKETH", + "asset": "LSK", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "NAV/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LSK/ETH" }, { - "id": "NEBLBNB", - "asset": "NEBL", + "id": "LSKBNB", + "asset": "LSK", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "NEBL/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LSK/BNB" }, { - "id": "NEBLBTC", - "asset": "NEBL", + "id": "TNTBTC", + "asset": "TNT", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "NEBL/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "TNT/BTC" }, { - "id": "NEBLETH", - "asset": "NEBL", + "id": "TNTETH", + "asset": "TNT", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "NEBL/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "TNT/ETH" }, { - "id": "NEOBNB", - "asset": "NEO", - "currency": "BNB", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.001", - "label": "NEO/BNB" + "id": "FUELBTC", + "asset": "FUEL", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "FUEL/BTC" }, { - "id": "NEOUSDT", - "asset": "NEO", - "currency": "USDT", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.001", - "label": "NEO/USDT" + "id": "FUELETH", + "asset": "FUEL", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "FUEL/ETH" }, { - "id": "OAXBTC", - "asset": "OAX", + "id": "MANABTC", + "asset": "MANA", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "OAX/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MANA/BTC" }, { - "id": "OSTBNB", - "asset": "OST", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "OST/BNB" + "id": "MANAETH", + "asset": "MANA", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "MANA/ETH" }, { - "id": "OSTBTC", - "asset": "OST", + "id": "BCDBTC", + "asset": "BCD", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "OST/BTC" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "BCD/BTC" }, { - "id": "OSTETH", - "asset": "OST", + "id": "BCDETH", + "asset": "BCD", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "OST/ETH" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "BCD/ETH" }, { - "id": "POEBTC", - "asset": "POE", + "id": "DGDBTC", + "asset": "DGD", + "currency": "BTC", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "DGD/BTC" + }, + { + "id": "DGDETH", + "asset": "DGD", + "currency": "ETH", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "DGD/ETH" + }, + { + "id": "IOTABNB", + "asset": "IOTA", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "IOTA/BNB" + }, + { + "id": "ADXBTC", + "asset": "ADX", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "POE/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ADX/BTC" }, { - "id": "POEETH", - "asset": "POE", + "id": "ADXETH", + "asset": "ADX", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "POE/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ADX/ETH" }, { - "id": "POWRBNB", - "asset": "POWR", + "id": "ADXBNB", + "asset": "ADX", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "POWR/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "ADX/BNB" }, { - "id": "POWRBTC", - "asset": "POWR", + "id": "ADABTC", + "asset": "ADA", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "POWR/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ADA/BTC" }, { - "id": "POWRETH", - "asset": "POWR", + "id": "ADAETH", + "asset": "ADA", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "POWR/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ADA/ETH" }, { "id": "PPTBTC", "asset": "PPT", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "PPT/BTC" }, { @@ -1606,110 +1606,118 @@ "asset": "PPT", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", + "max_size": "100000.00000000", + "increment": "0.01000000", "label": "PPT/ETH" }, { - "id": "QSPBNB", - "asset": "QSP", + "id": "CMTBTC", + "asset": "CMT", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CMT/BTC" + }, + { + "id": "CMTETH", + "asset": "CMT", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CMT/ETH" + }, + { + "id": "CMTBNB", + "asset": "CMT", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "QSP/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "CMT/BNB" }, { - "id": "QSPBTC", - "asset": "QSP", + "id": "XLMBTC", + "asset": "XLM", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "QSP/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XLM/BTC" }, { - "id": "QSPETH", - "asset": "QSP", + "id": "XLMETH", + "asset": "XLM", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "QSP/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "XLM/ETH" }, { - "id": "RCNBNB", - "asset": "RCN", + "id": "XLMBNB", + "asset": "XLM", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "RCN/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "XLM/BNB" }, { - "id": "RCNBTC", - "asset": "RCN", + "id": "CNDBTC", + "asset": "CND", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "RCN/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CND/BTC" }, { - "id": "RCNETH", - "asset": "RCN", + "id": "CNDETH", + "asset": "CND", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "RCN/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "CND/ETH" }, { - "id": "RDNBNB", - "asset": "RDN", + "id": "CNDBNB", + "asset": "CND", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "RDN/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "CND/BNB" }, { - "id": "RDNBTC", - "asset": "RDN", + "id": "LENDBTC", + "asset": "LEND", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "RDN/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LEND/BTC" }, { - "id": "RDNETH", - "asset": "RDN", + "id": "LENDETH", + "asset": "LEND", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "RDN/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "LEND/ETH" }, { - "id": "REQBTC", - "asset": "REQ", + "id": "WABIBTC", + "asset": "WABI", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "REQ/BTC" - }, - { - "id": "REQETH", - "asset": "REQ", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "REQ/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "WABI/BTC" }, - { "id": "RLCBNB", "asset": "RLC", "currency": "BNB", @@ -1741,53 +1749,62 @@ "asset": "SNT", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "SNT/BTC" }, { - "id": "STORJBTC", - "asset": "STORJ", - "currency": "BTC", + "id": "WABIETH", + "asset": "WABI", + "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "STORJ/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "WABI/ETH" }, { - "id": "STORJETH", - "asset": "STORJ", + "id": "WABIBNB", + "asset": "WABI", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "WABI/BNB" + }, + { + "id": "LTCETH", + "asset": "LTC", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "STORJ/ETH" + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.00100000", + "label": "LTC/ETH" }, { - "id": "SUBBTC", - "asset": "SUB", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SUB/BTC" + "id": "LTCUSDT", + "asset": "LTC", + "currency": "USDT", + "min_size": "0.00001000", + "max_size": "10000000.00000000", + "increment": "0.00001000", + "label": "LTC/USDT" }, { - "id": "SUBETH", - "asset": "SUB", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "SUB/ETH" + "id": "LTCBNB", + "asset": "LTC", + "currency": "BNB", + "min_size": "0.00001000", + "max_size": "100000.00000000", + "increment": "0.00001000", + "label": "LTC/BNB" }, { "id": "TNBBTC", "asset": "TNB", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "TNB/BTC" }, { @@ -1795,188 +1812,251 @@ "asset": "TNB", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "TNB/ETH" }, { - "id": "TNTBTC", - "asset": "TNT", + "id": "WAVESBTC", + "asset": "WAVES", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "WAVES/BTC" + }, + { + "id": "WAVESETH", + "asset": "WAVES", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "WAVES/ETH" + }, + { + "id": "WAVESBNB", + "asset": "WAVES", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "WAVES/BNB" + }, + { + "id": "GTOBTC", + "asset": "GTO", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "TNT/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "GTO/BTC" }, { - "id": "TNTETH", - "asset": "TNT", + "id": "GTOETH", + "asset": "GTO", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "TNT/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "GTO/ETH" }, { - "id": "TRIGBNB", - "asset": "TRIG", + "id": "GTOBNB", + "asset": "GTO", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "TRIG/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "GTO/BNB" }, { - "id": "TRIGBTC", - "asset": "TRIG", + "id": "ICXBTC", + "asset": "ICX", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "TRIG/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ICX/BTC" }, { - "id": "TRIGETH", - "asset": "TRIG", + "id": "ICXETH", + "asset": "ICX", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "TRIG/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "ICX/ETH" }, { - "id": "TRXBTC", - "asset": "TRX", + "id": "ICXBNB", + "asset": "ICX", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "ICX/BNB" + }, + { + "id": "OSTBTC", + "asset": "OST", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "TRX/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "OST/BTC" }, { - "id": "TRXETH", - "asset": "TRX", + "id": "OSTETH", + "asset": "OST", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "TRX/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "OST/ETH" }, { - "id": "VENBTC", - "asset": "VEN", + "id": "OSTBNB", + "asset": "OST", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "OST/BNB" + }, + { + "id": "ELFBTC", + "asset": "ELF", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "VEN/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ELF/BTC" }, { - "id": "VENETH", - "asset": "VEN", + "id": "ELFETH", + "asset": "ELF", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "VEN/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "ELF/ETH" }, { - "id": "VIBBTC", - "asset": "VIB", + "id": "AIONBTC", + "asset": "AION", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "VIB/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "AION/BTC" + }, + { + "id": "AIONETH", + "asset": "AION", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "AION/ETH" + }, + { + "id": "AIONBNB", + "asset": "AION", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "AION/BNB" }, { - "id": "VIBEBTC", - "asset": "VIBE", + "id": "NEBLBTC", + "asset": "NEBL", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "VIBE/BTC" - }, - { - "id": "VIBEETH", - "asset": "VIBE", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "VIBE/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NEBL/BTC" }, { - "id": "VIBETH", - "asset": "VIB", + "id": "NEBLETH", + "asset": "NEBL", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "VIB/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NEBL/ETH" }, { - "id": "WABIBNB", - "asset": "WABI", + "id": "NEBLBNB", + "asset": "NEBL", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "WABI/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "NEBL/BNB" }, { - "id": "WABIBTC", - "asset": "WABI", + "id": "BRDBTC", + "asset": "BRD", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "WABI/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BRD/BTC" }, { - "id": "WABIETH", - "asset": "WABI", + "id": "BRDETH", + "asset": "BRD", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "WABI/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "BRD/ETH" }, { - "id": "WAVESBNB", - "asset": "WAVES", + "id": "BRDBNB", + "asset": "BRD", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0001", - "label": "WAVES/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "BRD/BNB" }, { - "id": "WAVESBTC", - "asset": "WAVES", + "id": "MCOBNB", + "asset": "MCO", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "MCO/BNB" + }, + { + "id": "EDOBTC", + "asset": "EDO", "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "WAVES/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "EDO/BTC" }, { - "id": "WAVESETH", - "asset": "WAVES", + "id": "EDOETH", + "asset": "EDO", "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "WAVES/ETH" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "EDO/ETH" }, { "id": "WINGSBTC", "asset": "WINGS", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "WINGS/BTC" }, { @@ -1984,179 +2064,152 @@ "asset": "WINGS", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.0000001", + "max_size": "100000.00000000", + "increment": "1.00000000", "label": "WINGS/ETH" }, { - "id": "WTCBNB", - "asset": "WTC", - "currency": "BNB", + "id": "NAVBTC", + "asset": "NAV", + "currency": "BTC", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0001", - "label": "WTC/BNB" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NAV/BTC" }, { - "id": "XLMBNB", - "asset": "XLM", - "currency": "BNB", + "id": "NAVETH", + "asset": "NAV", + "currency": "ETH", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "XLM/BNB" - }, - { - "id": "XLMBTC", - "asset": "XLM", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XLM/BTC" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "NAV/ETH" }, { - "id": "XLMETH", - "asset": "XLM", - "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XLM/ETH" + "id": "NAVBNB", + "asset": "NAV", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "NAV/BNB" }, { - "id": "XMRBTC", - "asset": "XMR", + "id": "LUNBTC", + "asset": "LUN", "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "XMR/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LUN/BTC" }, { - "id": "XMRETH", - "asset": "XMR", + "id": "LUNETH", + "asset": "LUN", "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "XMR/ETH" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "LUN/ETH" }, { - "id": "XRPBTC", - "asset": "XRP", + "id": "TRIGBTC", + "asset": "TRIG", "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XRP/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "TRIG/BTC" }, { - "id": "XRPETH", - "asset": "XRP", + "id": "TRIGETH", + "asset": "TRIG", "currency": "ETH", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XRP/ETH" - }, - { - "id": "XVGBTC", - "asset": "XVG", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "XVG/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "TRIG/ETH" }, { - "id": "XZCBNB", - "asset": "XZC", + "id": "TRIGBNB", + "asset": "TRIG", "currency": "BNB", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.001", - "label": "XZC/BNB" + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "TRIG/BNB" }, { - "id": "XZCBTC", - "asset": "XZC", + "id": "APPCBTC", + "asset": "APPC", "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "XZC/BTC" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "APPC/BTC" }, { - "id": "XZCETH", - "asset": "XZC", + "id": "APPCETH", + "asset": "APPC", "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "XZC/ETH" + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "APPC/ETH" }, { - "id": "YOYOBNB", - "asset": "YOYO", + "id": "APPCBNB", + "asset": "APPC", "currency": "BNB", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "YOYO/BNB" + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "APPC/BNB" }, { - "id": "YOYOBTC", - "asset": "YOYO", + "id": "VIBEBTC", + "asset": "VIBE", "currency": "BTC", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "YOYO/BTC" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VIBE/BTC" }, { - "id": "YOYOETH", - "asset": "YOYO", + "id": "VIBEETH", + "asset": "VIBE", "currency": "ETH", "min_size": "1.00000000", - "max_size": "100000", - "increment": "0.00000001", - "label": "YOYO/ETH" + "max_size": "100000.00000000", + "increment": "1.00000000", + "label": "VIBE/ETH" }, { - "id": "ZECBTC", - "asset": "ZEC", + "id": "RLCBTC", + "asset": "RLC", "currency": "BTC", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.000001", - "label": "ZEC/BTC" + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "RLC/BTC" }, { - "id": "ZECETH", - "asset": "ZEC", + "id": "RLCETH", + "asset": "RLC", "currency": "ETH", - "min_size": "0.00100000", - "max_size": "100000", - "increment": "0.00001", - "label": "ZEC/ETH" - }, - { - "id": "BNBUSDT", - "asset": "BNB", - "currency": "USDT", "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0001", - "label": "BNB/USDT" + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "RLC/ETH" }, { - "id": "ETHUSDT", - "asset": "ETH", - "currency": "USDT", - "min_size": "0.00001000", - "max_size": "100000", - "increment": "0.01", - "label": "ETH/USDT" + "id": "RLCBNB", + "asset": "RLC", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "RLC/BNB" } -] +] \ No newline at end of file diff --git a/extensions/exchanges/binance/update-products.sh b/extensions/exchanges/binance/update-products.sh index b53f42c2cf..b6dcd82803 100644 --- a/extensions/exchanges/binance/update-products.sh +++ b/extensions/exchanges/binance/update-products.sh @@ -1,26 +1,21 @@ #!/usr/bin/env node -var request = require('micro-request') -request('https://www.binance.com/exchange/public/product', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, body) { - if (err) throw err - if (resp.statusCode !== 200) { - var err = new Error('non-200 status: ' + resp.statusCode) - err.code = 'HTTP_STATUS' - err.body = body - console.error(err) - process.exit(1) - } +let ccxt = require('ccxt') + +new ccxt.binance().fetch_markets().then(function(markets) { var products = [] - body.data.forEach(function (product) { + + markets.forEach(function (market) { products.push({ - id: product.symbol, - asset: product.baseAsset, - currency: product.quoteAsset, - min_size: product.minTrade, - max_size: '100000', - increment: product.tickSize, - label: product.baseAsset + '/' + product.quoteAsset + id: market.id, + asset: market.base, + currency: market.quote, + min_size: market.info.filters[1].minQty, + max_size: market.info.filters[0].maxPrice, + increment: market.info.filters[1].stepSize, + label: market.base + '/' + market.quote }) }) + var target = require('path').resolve(__dirname, 'products.json') require('fs').writeFileSync(target, JSON.stringify(products, null, 2)) console.log('wrote', target) From 8889d2c92be3ef55eb1ec7fbc12ceeefebf14337 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Sun, 14 Jan 2018 20:56:19 +0100 Subject: [PATCH 030/236] binance order placement must not retry a MIN_NOTIONAL issue (#1130) follow up of #1123; fix in #1096 was not working. tested against real life issue --- extensions/exchanges/binance/exchange.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/extensions/exchanges/binance/exchange.js b/extensions/exchanges/binance/exchange.js index 855c588e02..204dd8a8d9 100644 --- a/extensions/exchanges/binance/exchange.js +++ b/extensions/exchanges/binance/exchange.js @@ -197,6 +197,16 @@ module.exports = function container (get, set, clear) { cb(null, order) }).catch(function (error) { console.error('An error occurred', error) + + // decide if this error is allowed for a retry: + // {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"} + if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL/))) { + return cb(null, { + status: 'rejected', + reject_reason: 'balance' + }) + } + return retry('buy', func_args) }) }, @@ -241,6 +251,16 @@ module.exports = function container (get, set, clear) { cb(null, order) }).catch(function (error) { console.error('An error occurred', error) + + // decide if this error is allowed for a retry: + // {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"} + if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL/))) { + return cb(null, { + status: 'rejected', + reject_reason: 'balance' + }) + } + return retry('sell', func_args) }) }, From a8ef2ef9a843abef151ec55a41a4307f39ffcec1 Mon Sep 17 00:00:00 2001 From: kernelsndrs Date: Sun, 14 Jan 2018 15:10:56 -0500 Subject: [PATCH 031/236] add opt-in flag to use currency specific increment. (#1106) * add opt-in flag to use currency specific increment. if flag is set, utilize in order adjustment calculation. * Update Readme for currency increment flag --- README.md | 1 + commands/trade.js | 2 ++ lib/engine.js | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index efddab963f..7afbaaa20b 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,7 @@ zenbot trade --help --max_slippage_pct avoid selling at a slippage pct above this float --rsi_periods number of periods to calculate RSI at --poll_trades poll new trades at this interval in ms + --currency_increment Currency increment, if different than the asset increment; e.g. 0.000001 --disable_stats disable printing order stats --reset_profit start new profit calculation from 0 --debug output detailed debug info diff --git a/commands/trade.js b/commands/trade.js index b7b91580c2..818e5a7d96 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -42,6 +42,7 @@ module.exports = function container (get, set, clear) { .option('--max_slippage_pct ', 'avoid selling at a slippage pct above this float', c.max_slippage_pct) .option('--rsi_periods ', 'number of periods to calculate RSI at', Number, c.rsi_periods) .option('--poll_trades ', 'poll new trades at this interval in ms', Number, c.poll_trades) + .option('--currency_increment ', 'Currency increment, if different than the asset increment', String, null) .option('--keep_lookback_periods ', 'Keep this many lookback periods max. ', Number, c.keep_lookback_periods) .option('--disable_stats', 'disable printing order stats') .option('--reset_profit', 'start new profit calculation from 0') @@ -56,6 +57,7 @@ module.exports = function container (get, set, clear) { so[k] = cmd[k] } }) + so.currency_increment = cmd.currency_increment so.keep_lookback_periods = cmd.keep_lookback_periods so.debug = cmd.debug so.stats = !cmd.disable_stats diff --git a/lib/engine.js b/lib/engine.js index 2a295dc93c..4bfafa8894 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -331,7 +331,7 @@ module.exports = function container (get, set, clear) { } var marked_price if (type === 'buy') { - marked_price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format(s.product.increment, Math.floor) + marked_price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format((so.currency_increment !== null) ? so.currency_increment : s.product.increment, Math.floor) if (n(order.price).value() < marked_price) { msg(marked_price + ' vs our ' + order.price) cancelOrder(true) @@ -342,7 +342,7 @@ module.exports = function container (get, set, clear) { } } else { - marked_price = n(quote.ask).add(n(quote.ask).multiply(so.markup_sell_pct / 100)).format(s.product.increment, Math.ceil) + marked_price = n(quote.ask).add(n(quote.ask).multiply(so.markup_sell_pct / 100)).format((so.currency_increment !== null) ? so.currency_increment : s.product.increment, Math.ceil) if (n(order.price).value() > marked_price) { msg(marked_price + ' vs our ' + order.price) cancelOrder(true) From 2160629ce8ac578972da773025a1f6466395dfab Mon Sep 17 00:00:00 2001 From: Chase Date: Sun, 14 Jan 2018 21:51:13 +0100 Subject: [PATCH 032/236] Docker: resolve build issues (#1136) * Docker: resolve build issues * Update Dockerfile --- Dockerfile | 8 ++------ package-lock.json | 3 +-- package.json | 6 +++--- post_install.js | 3 +-- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8d4c09ba10..dd23218fee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,14 +3,10 @@ FROM node:8 RUN mkdir -p /app WORKDIR /app -COPY package.json /app/ -COPY webpack.config.js /app/ -COPY webpack-src /app/webpack-src -COPY templates /app/templates +COPY . /app RUN npm install -g node-gyp -RUN npm install --unsafe-perm +RUN npm install --unsafe -COPY . /app RUN ln -s /app/zenbot.sh /usr/local/bin/zenbot ENV NODE_ENV production diff --git a/package-lock.json b/package-lock.json index 1c4fad6996..3179cad238 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8609,7 +8609,7 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "numbro": { - "version": "github:highvelocityspace/numbro#797eae5605bf217a016a112343e8dd9746b72e15" + "version": "github:highvelocityspace/numbro#65a801c05c40496e5701458c0d4e780060e9a742" }, "oauth-sign": { "version": "0.8.2", @@ -12206,4 +12206,3 @@ } } } - diff --git a/package.json b/package.json index aa0baee72c..a45777548c 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,11 @@ "name": "zenbot4", "version": "4.1.0", "description": "Cryptocurrency trading bot", - "bugs": "https://github.com/carlos8f/zenbot/issues", + "bugs": "https://github.com/deviavir/zenbot/issues", "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/carlos8f/zenbot.git" + "url": "https://github.com/deviavir/zenbot.git" }, "main": "./index.js", "bin": { @@ -104,6 +104,6 @@ "yargs": "^10.0.3" }, "engines": { - "node": "^8.0.0 || ^9.0.0" + "node": "^8.3.0 || ^9.0.0" } } diff --git a/post_install.js b/post_install.js index aeb6012ac9..a8b0cb84ed 100644 --- a/post_install.js +++ b/post_install.js @@ -5,5 +5,4 @@ shell.rm('-rf', 'node_modules/forex.analytics/.git') console.log('bundling WebApp components') shell.exec('webpack -p') console.log('installing genetic_backtester components') -shell.cd('scripts/genetic_backtester/') -shell.exec('npm i') +shell.exec('(cd scripts/genetic_backtester/ && npm i)') From 3ae51fe1d7a91d80a67f0501c0474959f1c6f883 Mon Sep 17 00:00:00 2001 From: Junyuan Zheng Date: Mon, 15 Jan 2018 00:48:04 -0800 Subject: [PATCH 033/236] Update Binance JSON file (#1138) Fix Issue #1137 --- extensions/exchanges/binance/products.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 94de69013b..8b906392d3 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -1718,6 +1718,7 @@ "increment": "1.00000000", "label": "WABI/BTC" }, + { "id": "RLCBNB", "asset": "RLC", "currency": "BNB", @@ -2212,4 +2213,4 @@ "increment": "0.01000000", "label": "RLC/BNB" } -] \ No newline at end of file +] From b1ae26ee76fe19247cd75e267afb372dd5a96a76 Mon Sep 17 00:00:00 2001 From: defkev Date: Mon, 15 Jan 2018 10:15:01 +0100 Subject: [PATCH 034/236] Allow the REST API/Web UI to run on a specific IP (#1128) * Allow the REST API/Web UI to run on a specific IP Instead of listening on all available interfaces e.g. use: c.output.api.ip = '127.0.0.1' in conf.js to bind to localhost (for use with a reverse proxy) * Add default for API IP instead of declaring it as undefined --- conf-sample.js | 1 + extensions/output/api.js | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/conf-sample.js b/conf-sample.js index a6bdbda326..3cdf55f150 100644 --- a/conf-sample.js +++ b/conf-sample.js @@ -241,4 +241,5 @@ c.output = {} // REST API c.output.api = {} c.output.api.on = true +c.output.api.ip = '0.0.0.0' // IPv4 or IPv6 address to listen on, uses all available interfaces if omitted c.output.api.port = 0 // 0 = random port diff --git a/extensions/output/api.js b/extensions/output/api.js index b38b11a068..b9edaf1199 100644 --- a/extensions/output/api.js +++ b/extensions/output/api.js @@ -10,10 +10,10 @@ module.exports = function container (get) { let run = function(reporter, tradeObject) { if (!reporter.port || reporter.port === 0) { random_port({from: 20000}, function(port) { - startServer(port, tradeObject) + startServer(port, reporter.ip, tradeObject) }) } else { - startServer(reporter.port, tradeObject) + startServer(reporter.port, reporter.ip, tradeObject) } } @@ -22,7 +22,7 @@ module.exports = function container (get) { return otherKeys; }; - let startServer = function(port, tradeObject) { + let startServer = function(port, ip, tradeObject) { tradeObject.port = port app.set('views', path.join(__dirname+'/../../templates')); @@ -46,8 +46,13 @@ module.exports = function container (get) { res.sendFile(path.join(__dirname+'../../../stats/index.html')); }); - app.listen(port) - tradeObject.url = require('ip').address() + ':' + port + '/' + if (ip) { + app.listen(port, ip) + tradeObject.url = ip + ':' + port + '/' + } else { + app.listen(port) + tradeObject.url = require('ip').address() + ':' + port + '/' + } console.log('Web GUI running on http://' + tradeObject.url) } From 51e413b0777250841a02e2bcea059df7b5746b83 Mon Sep 17 00:00:00 2001 From: Chase Date: Mon, 15 Jan 2018 10:31:38 +0100 Subject: [PATCH 035/236] Travis: set up cron (#1139) --- .travis.yml | 9 +- .../exchanges/binance/update-products.sh | 0 .../exchanges/bitfinex/update-products.sh | 0 .../exchanges/bittrex/update-products.sh | 0 .../exchanges/gemini/update-products.sh | 0 package-lock.json | 790 ++++++++++++++++++ scripts/cron.sh | 30 + 7 files changed, 827 insertions(+), 2 deletions(-) mode change 100644 => 100755 extensions/exchanges/binance/update-products.sh mode change 100644 => 100755 extensions/exchanges/bitfinex/update-products.sh mode change 100644 => 100755 extensions/exchanges/bittrex/update-products.sh mode change 100644 => 100755 extensions/exchanges/gemini/update-products.sh create mode 100755 scripts/cron.sh diff --git a/.travis.yml b/.travis.yml index e6c1e88b9e..aa922c7918 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,11 @@ language: node_js node_js: - - "8" - - "9" + - '8' + - '9' before_install: - npm install -g node-gyp +after_success: + - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then ./scripts/cron.sh; fi +env: + global: + secure: X5ZcoLrEavb26c1vY6L6hxmOtUGp07ta9jb0heU/9TkR0PCxBwqh1THHZIUO4qhOURSPXmBmajgMBDYzBgHpjd+5PrtF5mTqcRhXLpAbb9RQ0+H9VvTuwAWca6H7jG8RUS7zcV70u9de0zEmRFTX85iusPoIoqF2cafgsMtq6Gtx8rb+4WZ45Etn589RrOaehG2u1w+MW6vzohWpHY6hc3yqFWsKUfDdahWofdmH1SIpEgckbQ26LuaBMfqHeDPHtHsMfloHhukvmPzobBKJ7PuQWtJ/enuygY9ZjAX7NTgWEG7m5SLvJZ4PuVkc9ea0ZHMVB3L9bR2njbtBf4QnRhti/XyaNgBGqTsce52z3Z+3Hs9/Hktbb2KLJ2Jid3nwhoUmYr5HTRPkkQ54gOgLFMshi4H+vr4s+MMcfHQ6B0kjADenEf2vFcMwLCey/ERh52csqdlJviw9IJRa0YrSXc3krnlOVMPHnaOgKuU/hYyM3uj5CzG4iCmqOJG0sBtlrp+Q+q9kDtpNw+U/xRZzJ6+0XmFNtNLz762VCW6zs/zsaJ6livU6rSUOKyUo5v+5Ay6DOAjDe2NM3R7hymvhlWJh8SCLBJEDZsLbeN1pozDatOXsD2OWJnhHYfQbntekytoXy3fSrgZYuWJ6yL/S6R4Eo73XkoL2Bah8+aAhcEE= diff --git a/extensions/exchanges/binance/update-products.sh b/extensions/exchanges/binance/update-products.sh old mode 100644 new mode 100755 diff --git a/extensions/exchanges/bitfinex/update-products.sh b/extensions/exchanges/bitfinex/update-products.sh old mode 100644 new mode 100755 diff --git a/extensions/exchanges/bittrex/update-products.sh b/extensions/exchanges/bittrex/update-products.sh old mode 100644 new mode 100755 diff --git a/extensions/exchanges/gemini/update-products.sh b/extensions/exchanges/gemini/update-products.sh old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json index 3179cad238..e4743a0d5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1561,6 +1561,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", + "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -3096,6 +3097,795 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": 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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "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.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": 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", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", diff --git a/scripts/cron.sh b/scripts/cron.sh new file mode 100755 index 0000000000..56fc4564c7 --- /dev/null +++ b/scripts/cron.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +setup_git() { + git config --global user.email "travis@travis-ci.org" + git config --global user.name "Travis CI" +} + +run_cron() { + git checkout unstable + git reset --hard origin/unstable + npm install -g node-gyp + npm install + for f in extensions/exchanges/*/update-products.sh; + do + echo "processing ${f}" + ./${f} + done + + git add . + git commit --message "Exchanges: update-products $TRAVIS_BUILD_NUMBER" +} + +upload_files() { + git remote add upstream https://${GH_TOKEN}@github.com/DeviaVir/zenbot.git > /dev/null 2>&1 + git push --quiet --set-upstream upstream unstable +} + +setup_git +run_cron +upload_files From 290bf41fca5126e64cf94be2ea3713a3dcbb45a1 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Mon, 15 Jan 2018 10:37:01 +0100 Subject: [PATCH 036/236] Travis: unnecessary --- scripts/cron.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/cron.sh b/scripts/cron.sh index 56fc4564c7..23a79996b8 100755 --- a/scripts/cron.sh +++ b/scripts/cron.sh @@ -6,10 +6,6 @@ setup_git() { } run_cron() { - git checkout unstable - git reset --hard origin/unstable - npm install -g node-gyp - npm install for f in extensions/exchanges/*/update-products.sh; do echo "processing ${f}" From a3e50556ab829c9c2e5e99da35a8dce99b1192b9 Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Mon, 15 Jan 2018 10:55:22 +0100 Subject: [PATCH 037/236] Travis: run only on node 9 --- .travis.yml | 2 +- scripts/cron.sh | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index aa922c7918..fa2e0f9821 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ node_js: before_install: - npm install -g node-gyp after_success: - - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then ./scripts/cron.sh; fi + - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then /bin/sh scripts/cron.sh; fi env: global: secure: X5ZcoLrEavb26c1vY6L6hxmOtUGp07ta9jb0heU/9TkR0PCxBwqh1THHZIUO4qhOURSPXmBmajgMBDYzBgHpjd+5PrtF5mTqcRhXLpAbb9RQ0+H9VvTuwAWca6H7jG8RUS7zcV70u9de0zEmRFTX85iusPoIoqF2cafgsMtq6Gtx8rb+4WZ45Etn589RrOaehG2u1w+MW6vzohWpHY6hc3yqFWsKUfDdahWofdmH1SIpEgckbQ26LuaBMfqHeDPHtHsMfloHhukvmPzobBKJ7PuQWtJ/enuygY9ZjAX7NTgWEG7m5SLvJZ4PuVkc9ea0ZHMVB3L9bR2njbtBf4QnRhti/XyaNgBGqTsce52z3Z+3Hs9/Hktbb2KLJ2Jid3nwhoUmYr5HTRPkkQ54gOgLFMshi4H+vr4s+MMcfHQ6B0kjADenEf2vFcMwLCey/ERh52csqdlJviw9IJRa0YrSXc3krnlOVMPHnaOgKuU/hYyM3uj5CzG4iCmqOJG0sBtlrp+Q+q9kDtpNw+U/xRZzJ6+0XmFNtNLz762VCW6zs/zsaJ6livU6rSUOKyUo5v+5Ay6DOAjDe2NM3R7hymvhlWJh8SCLBJEDZsLbeN1pozDatOXsD2OWJnhHYfQbntekytoXy3fSrgZYuWJ6yL/S6R4Eo73XkoL2Bah8+aAhcEE= diff --git a/scripts/cron.sh b/scripts/cron.sh index 23a79996b8..7a23fe6308 100755 --- a/scripts/cron.sh +++ b/scripts/cron.sh @@ -1,8 +1,19 @@ #!/bin/sh +verify_environment() { + if [[ $(node -v | grep -q "v9" ; echo $?) -gt 0 ]]; + then + echo "not node 9" + exit 0 + fi +} + setup_git() { git config --global user.email "travis@travis-ci.org" git config --global user.name "Travis CI" + git remote add upstream https://${GH_TOKEN}@github.com/DeviaVir/zenbot.git + git checkout unstable + git pull upstream unstable } run_cron() { @@ -11,16 +22,15 @@ run_cron() { echo "processing ${f}" ./${f} done - - git add . - git commit --message "Exchanges: update-products $TRAVIS_BUILD_NUMBER" } upload_files() { - git remote add upstream https://${GH_TOKEN}@github.com/DeviaVir/zenbot.git > /dev/null 2>&1 - git push --quiet --set-upstream upstream unstable + git add . + git commit --message "Exchanges: update-products $TRAVIS_BUILD_NUMBER" + git push upstream unstable } +verify_environment setup_git run_cron upload_files From 6fa48f219990f0b178835295fbea0c30171f90c0 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Mon, 15 Jan 2018 10:32:05 +0000 Subject: [PATCH 038/236] Exchanges: update-products 177 --- extensions/exchanges/binance/products.json | 65 +- extensions/exchanges/bitfinex/products.json | 442 ++++++++---- extensions/exchanges/bittrex/products.json | 723 +++++++++----------- extensions/exchanges/wexnz/products.json | 74 +- 4 files changed, 715 insertions(+), 589 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 8b906392d3..ffb4be9561 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -125,15 +125,6 @@ "increment": "0.00001000", "label": "ETH/USDT" }, - { - "id": "WTCBTC", - "asset": "WTC", - "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "WTC/BTC" - }, { "id": "HSRBTC", "asset": "HSR", @@ -1718,42 +1709,6 @@ "increment": "1.00000000", "label": "WABI/BTC" }, - { - "id": "RLCBNB", - "asset": "RLC", - "currency": "BNB", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.00001", - "label": "RLC/BNB" - }, - { - "id": "RLCBTC", - "asset": "RLC", - "currency": "BTC", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.0000001", - "label": "RLC/BTC" - }, - { - "id": "RLCETH", - "asset": "RLC", - "currency": "ETH", - "min_size": "0.01000000", - "max_size": "100000", - "increment": "0.000001", - "label": "RLC/ETH" - }, - { - "id": "SNTBTC", - "asset": "SNT", - "currency": "BTC", - "min_size": "1.00000000", - "max_size": "100000.00000000", - "increment": "1.00000000", - "label": "SNT/BTC" - }, { "id": "WABIETH", "asset": "WABI", @@ -2212,5 +2167,23 @@ "max_size": "10000.00000000", "increment": "0.01000000", "label": "RLC/BNB" + }, + { + "id": "INSBTC", + "asset": "INS", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "INS/BTC" + }, + { + "id": "INSETH", + "asset": "INS", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "INS/ETH" } -] +] \ No newline at end of file diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index 86e9d5c175..0049100c1c 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -10,23 +10,23 @@ { "asset": "LTC", "currency": "USD", - "min_size": "0.2", + "min_size": "0.08", "max_size": "5000.0", - "increment": "0.0001", + "increment": "0.001", "label": "LTC/USD" }, { "asset": "LTC", "currency": "BTC", - "min_size": "0.2", + "min_size": "0.08", "max_size": "5000.0", - "increment": "0.0000001", + "increment": "0.000001", "label": "LTC/BTC" }, { "asset": "ETH", "currency": "USD", - "min_size": "0.04", + "min_size": "0.02", "max_size": "5000.0", "increment": "0.001", "label": "ETH/USD" @@ -34,7 +34,7 @@ { "asset": "ETH", "currency": "BTC", - "min_size": "0.04", + "min_size": "0.02", "max_size": "5000.0", "increment": "0.000001", "label": "ETH/BTC" @@ -42,7 +42,7 @@ { "asset": "ETC", "currency": "BTC", - "min_size": "1.0", + "min_size": "0.6", "max_size": "100000.0", "increment": "0.0000001", "label": "ETC/BTC" @@ -50,7 +50,7 @@ { "asset": "ETC", "currency": "USD", - "min_size": "1.0", + "min_size": "0.6", "max_size": "100000.0", "increment": "0.0001", "label": "ETC/USD" @@ -58,7 +58,7 @@ { "asset": "RRT", "currency": "USD", - "min_size": "98.0", + "min_size": "72.0", "max_size": "100000.0", "increment": "0.000001", "label": "RRT/USD" @@ -66,7 +66,7 @@ { "asset": "RRT", "currency": "BTC", - "min_size": "98.0", + "min_size": "72.0", "max_size": "100000.0", "increment": "0.000000001", "label": "RRT/BTC" @@ -90,23 +90,23 @@ { "asset": "XMR", "currency": "USD", - "min_size": "0.2", + "min_size": "0.06", "max_size": "5000.0", - "increment": "0.0001", + "increment": "0.001", "label": "XMR/USD" }, { "asset": "XMR", "currency": "BTC", - "min_size": "0.2", + "min_size": "0.06", "max_size": "5000.0", - "increment": "0.0000001", + "increment": "0.000001", "label": "XMR/BTC" }, { "asset": "DSH", "currency": "USD", - "min_size": "0.04", + "min_size": "0.02", "max_size": "5000.0", "increment": "0.001", "label": "DSH/USD" @@ -114,43 +114,11 @@ { "asset": "DSH", "currency": "BTC", - "min_size": "0.04", + "min_size": "0.02", "max_size": "5000.0", "increment": "0.000001", "label": "DSH/BTC" }, - { - "asset": "BCC", - "currency": "BTC", - "min_size": "0.002", - "max_size": "2000.0", - "increment": "0.000001", - "label": "BCC/BTC" - }, - { - "asset": "BCU", - "currency": "BTC", - "min_size": "0.08", - "max_size": "2000.0", - "increment": "0.000001", - "label": "BCU/BTC" - }, - { - "asset": "BCC", - "currency": "USD", - "min_size": "0.002", - "max_size": "2000.0", - "increment": "0.001", - "label": "BCC/USD" - }, - { - "asset": "BCU", - "currency": "USD", - "min_size": "0.08", - "max_size": "2000.0", - "increment": "0.001", - "label": "BCU/USD" - }, { "asset": "BTC", "currency": "EUR", @@ -162,23 +130,23 @@ { "asset": "XRP", "currency": "USD", - "min_size": "52.0", + "min_size": "10.0", "max_size": "200000.0", - "increment": "0.000001", + "increment": "0.00001", "label": "XRP/USD" }, { "asset": "XRP", "currency": "BTC", - "min_size": "52.0", + "min_size": "10.0", "max_size": "200000.0", - "increment": "0.000000001", + "increment": "0.00000001", "label": "XRP/BTC" }, { "asset": "IOT", "currency": "USD", - "min_size": "28.0", + "min_size": "6.0", "max_size": "100000.0", "increment": "0.00001", "label": "IOT/USD" @@ -186,7 +154,7 @@ { "asset": "IOT", "currency": "BTC", - "min_size": "28.0", + "min_size": "6.0", "max_size": "100000.0", "increment": "0.00000001", "label": "IOT/BTC" @@ -194,7 +162,7 @@ { "asset": "IOT", "currency": "ETH", - "min_size": "28.0", + "min_size": "6.0", "max_size": "100000.0", "increment": "0.00000001", "label": "IOT/ETH" @@ -202,7 +170,7 @@ { "asset": "EOS", "currency": "USD", - "min_size": "12.0", + "min_size": "2.0", "max_size": "50000.0", "increment": "0.00001", "label": "EOS/USD" @@ -210,7 +178,7 @@ { "asset": "EOS", "currency": "BTC", - "min_size": "12.0", + "min_size": "2.0", "max_size": "50000.0", "increment": "0.00000001", "label": "EOS/BTC" @@ -218,7 +186,7 @@ { "asset": "EOS", "currency": "ETH", - "min_size": "12.0", + "min_size": "2.0", "max_size": "50000.0", "increment": "0.00000001", "label": "EOS/ETH" @@ -226,7 +194,7 @@ { "asset": "SAN", "currency": "USD", - "min_size": "20.0", + "min_size": "4.0", "max_size": "200000.0", "increment": "0.00001", "label": "SAN/USD" @@ -234,7 +202,7 @@ { "asset": "SAN", "currency": "BTC", - "min_size": "20.0", + "min_size": "4.0", "max_size": "200000.0", "increment": "0.00000001", "label": "SAN/BTC" @@ -242,7 +210,7 @@ { "asset": "SAN", "currency": "ETH", - "min_size": "20.0", + "min_size": "4.0", "max_size": "200000.0", "increment": "0.00000001", "label": "SAN/ETH" @@ -250,31 +218,31 @@ { "asset": "OMG", "currency": "USD", - "min_size": "2.0", + "min_size": "1.0", "max_size": "100000.0", - "increment": "0.00001", + "increment": "0.0001", "label": "OMG/USD" }, { "asset": "OMG", "currency": "BTC", - "min_size": "2.0", + "min_size": "1.0", "max_size": "100000.0", - "increment": "0.00000001", + "increment": "0.0000001", "label": "OMG/BTC" }, { "asset": "OMG", "currency": "ETH", - "min_size": "2.0", + "min_size": "1.0", "max_size": "100000.0", - "increment": "0.00000001", + "increment": "0.0000001", "label": "OMG/ETH" }, { "asset": "BCH", "currency": "USD", - "min_size": "0.02", + "min_size": "0.006", "max_size": "2000.0", "increment": "0.001", "label": "BCH/USD" @@ -282,7 +250,7 @@ { "asset": "BCH", "currency": "BTC", - "min_size": "0.02", + "min_size": "0.006", "max_size": "2000.0", "increment": "0.000001", "label": "BCH/BTC" @@ -290,7 +258,7 @@ { "asset": "BCH", "currency": "ETH", - "min_size": "0.02", + "min_size": "0.006", "max_size": "2000.0", "increment": "0.000001", "label": "BCH/ETH" @@ -298,7 +266,7 @@ { "asset": "NEO", "currency": "USD", - "min_size": "0.4", + "min_size": "0.2", "max_size": "10000.0", "increment": "0.0001", "label": "NEO/USD" @@ -306,7 +274,7 @@ { "asset": "NEO", "currency": "BTC", - "min_size": "0.4", + "min_size": "0.2", "max_size": "10000.0", "increment": "0.0000001", "label": "NEO/BTC" @@ -314,7 +282,7 @@ { "asset": "NEO", "currency": "ETH", - "min_size": "0.4", + "min_size": "0.2", "max_size": "10000.0", "increment": "0.0000001", "label": "NEO/ETH" @@ -346,87 +314,55 @@ { "asset": "QTM", "currency": "USD", - "min_size": "2.0", + "min_size": "0.4", "max_size": "2000.0", - "increment": "0.00001", + "increment": "0.0001", "label": "QTM/USD" }, { "asset": "QTM", "currency": "BTC", - "min_size": "2.0", + "min_size": "0.4", "max_size": "2000.0", - "increment": "0.00000001", + "increment": "0.0000001", "label": "QTM/BTC" }, { "asset": "QTM", "currency": "ETH", - "min_size": "2.0", - "max_size": "2000.0", - "increment": "0.00000001", - "label": "QTM/ETH" - }, - { - "asset": "BT1", - "currency": "USD", - "min_size": "0.002", - "max_size": "2000.0", - "increment": "0.001", - "label": "BT1/USD" - }, - { - "asset": "BT2", - "currency": "USD", - "min_size": "0.2", - "max_size": "2000.0", - "increment": "0.0001", - "label": "BT2/USD" - }, - { - "asset": "BT1", - "currency": "BTC", - "min_size": "0.002", - "max_size": "2000.0", - "increment": "0.000001", - "label": "BT1/BTC" - }, - { - "asset": "BT2", - "currency": "BTC", - "min_size": "0.2", + "min_size": "0.4", "max_size": "2000.0", "increment": "0.0000001", - "label": "BT2/BTC" + "label": "QTM/ETH" }, { "asset": "AVT", "currency": "USD", - "min_size": "6.0", - "max_size": "2000.0", + "min_size": "4.0", + "max_size": "50000.0", "increment": "0.00001", "label": "AVT/USD" }, { "asset": "AVT", "currency": "BTC", - "min_size": "6.0", - "max_size": "2000.0", + "min_size": "4.0", + "max_size": "50000.0", "increment": "0.00000001", "label": "AVT/BTC" }, { "asset": "AVT", "currency": "ETH", - "min_size": "6.0", - "max_size": "2000.0", + "min_size": "4.0", + "max_size": "50000.0", "increment": "0.00000001", "label": "AVT/ETH" }, { "asset": "EDO", "currency": "USD", - "min_size": "6.0", + "min_size": "4.0", "max_size": "50000.0", "increment": "0.00001", "label": "EDO/USD" @@ -434,7 +370,7 @@ { "asset": "EDO", "currency": "BTC", - "min_size": "6.0", + "min_size": "4.0", "max_size": "50000.0", "increment": "0.00000001", "label": "EDO/BTC" @@ -442,7 +378,7 @@ { "asset": "EDO", "currency": "ETH", - "min_size": "6.0", + "min_size": "4.0", "max_size": "50000.0", "increment": "0.00000001", "label": "EDO/ETH" @@ -466,25 +402,273 @@ { "asset": "DAT", "currency": "USD", - "min_size": "158.0", - "max_size": "100000.0", - "increment": "0.0000001", + "min_size": "74.0", + "max_size": "250000.0", + "increment": "0.000001", "label": "DAT/USD" }, { "asset": "DAT", "currency": "BTC", - "min_size": "158.0", - "max_size": "100000.0", - "increment": "0.0000000001", + "min_size": "74.0", + "max_size": "250000.0", + "increment": "0.000000001", "label": "DAT/BTC" }, { "asset": "DAT", "currency": "ETH", - "min_size": "158.0", - "max_size": "100000.0", - "increment": "0.0000000001", + "min_size": "74.0", + "max_size": "250000.0", + "increment": "0.000000001", "label": "DAT/ETH" + }, + { + "asset": "QSH", + "currency": "USD", + "min_size": "10.0", + "max_size": "50000.0", + "increment": "0.00001", + "label": "QSH/USD" + }, + { + "asset": "QSH", + "currency": "BTC", + "min_size": "10.0", + "max_size": "50000.0", + "increment": "0.00000001", + "label": "QSH/BTC" + }, + { + "asset": "QSH", + "currency": "ETH", + "min_size": "10.0", + "max_size": "50000.0", + "increment": "0.00000001", + "label": "QSH/ETH" + }, + { + "asset": "YYW", + "currency": "USD", + "min_size": "48.0", + "max_size": "50000.0", + "increment": "0.000001", + "label": "YYW/USD" + }, + { + "asset": "YYW", + "currency": "BTC", + "min_size": "48.0", + "max_size": "50000.0", + "increment": "0.000000001", + "label": "YYW/BTC" + }, + { + "asset": "YYW", + "currency": "ETH", + "min_size": "48.0", + "max_size": "50000.0", + "increment": "0.000000001", + "label": "YYW/ETH" + }, + { + "asset": "GNT", + "currency": "USD", + "min_size": "14.0", + "max_size": "200000.0", + "increment": "0.00001", + "label": "GNT/USD" + }, + { + "asset": "GNT", + "currency": "BTC", + "min_size": "14.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "GNT/BTC" + }, + { + "asset": "GNT", + "currency": "ETH", + "min_size": "14.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "GNT/ETH" + }, + { + "asset": "SNT", + "currency": "USD", + "min_size": "38.0", + "max_size": "200000.0", + "increment": "0.000001", + "label": "SNT/USD" + }, + { + "asset": "SNT", + "currency": "BTC", + "min_size": "38.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "SNT/BTC" + }, + { + "asset": "SNT", + "currency": "ETH", + "min_size": "38.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "SNT/ETH" + }, + { + "asset": "IOT", + "currency": "EUR", + "min_size": "4.0", + "max_size": "100000.0", + "increment": "0.00000001", + "label": "IOT/EUR" + }, + { + "asset": "BAT", + "currency": "USD", + "min_size": "16.0", + "max_size": "200000.0", + "increment": "0.00001", + "label": "BAT/USD" + }, + { + "asset": "BAT", + "currency": "BTC", + "min_size": "16.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "BAT/BTC" + }, + { + "asset": "BAT", + "currency": "ETH", + "min_size": "16.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "BAT/ETH" + }, + { + "asset": "MNA", + "currency": "USD", + "min_size": "80.0", + "max_size": "200000.0", + "increment": "0.000001", + "label": "MNA/USD" + }, + { + "asset": "MNA", + "currency": "BTC", + "min_size": "80.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "MNA/BTC" + }, + { + "asset": "MNA", + "currency": "ETH", + "min_size": "80.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "MNA/ETH" + }, + { + "asset": "FUN", + "currency": "USD", + "min_size": "76.0", + "max_size": "200000.0", + "increment": "0.000001", + "label": "FUN/USD" + }, + { + "asset": "FUN", + "currency": "BTC", + "min_size": "76.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "FUN/BTC" + }, + { + "asset": "FUN", + "currency": "ETH", + "min_size": "76.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "FUN/ETH" + }, + { + "asset": "ZRX", + "currency": "USD", + "min_size": "6.0", + "max_size": "200000.0", + "increment": "0.00001", + "label": "ZRX/USD" + }, + { + "asset": "ZRX", + "currency": "BTC", + "min_size": "6.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "ZRX/BTC" + }, + { + "asset": "ZRX", + "currency": "ETH", + "min_size": "6.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "ZRX/ETH" + }, + { + "asset": "TNB", + "currency": "USD", + "min_size": "70.0", + "max_size": "200000.0", + "increment": "0.000001", + "label": "TNB/USD" + }, + { + "asset": "TNB", + "currency": "BTC", + "min_size": "70.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "TNB/BTC" + }, + { + "asset": "TNB", + "currency": "ETH", + "min_size": "70.0", + "max_size": "200000.0", + "increment": "0.000000001", + "label": "TNB/ETH" + }, + { + "asset": "SPK", + "currency": "USD", + "min_size": "26.0", + "max_size": "200000.0", + "increment": "0.00001", + "label": "SPK/USD" + }, + { + "asset": "SPK", + "currency": "BTC", + "min_size": "26.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "SPK/BTC" + }, + { + "asset": "SPK", + "currency": "ETH", + "min_size": "26.0", + "max_size": "200000.0", + "increment": "0.00000001", + "label": "SPK/ETH" } ] \ No newline at end of file diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index 19e5e25f1b..9649a12141 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2,7 +2,7 @@ { "asset": "LTC", "currency": "BTC", - "min_size": "0.02784181", + "min_size": "0.01469482", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -11,7 +11,7 @@ { "asset": "DOGE", "currency": "BTC", - "min_size": "1388.88888889", + "min_size": "274.72527473", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -20,7 +20,7 @@ { "asset": "VTC", "currency": "BTC", - "min_size": "0.44782001", + "min_size": "0.58028875", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -29,7 +29,7 @@ { "asset": "PPC", "currency": "BTC", - "min_size": "1.20325360", + "min_size": "0.45880820", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -38,7 +38,7 @@ { "asset": "FTC", "currency": "BTC", - "min_size": "15.29051988", + "min_size": "7.16537690", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -47,7 +47,7 @@ { "asset": "RDD", "currency": "BTC", - "min_size": "1923.07692308", + "min_size": "176.05633803", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -56,7 +56,7 @@ { "asset": "NXT", "currency": "BTC", - "min_size": "24.08477842", + "min_size": "7.68285187", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -65,7 +65,7 @@ { "asset": "DASH", "currency": "BTC", - "min_size": "0.00433285", + "min_size": "0.00336022", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -74,7 +74,7 @@ { "asset": "POT", "currency": "BTC", - "min_size": "15.11487304", + "min_size": "10.37775010", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -83,7 +83,7 @@ { "asset": "BLK", "currency": "BTC", - "min_size": "7.80518264", + "min_size": "3.48723671", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -92,7 +92,7 @@ { "asset": "EMC2", "currency": "BTC", - "min_size": "16.44736842", + "min_size": "4.41696113", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -101,7 +101,7 @@ { "asset": "XMY", "currency": "BTC", - "min_size": "625.00000000", + "min_size": "92.93680297", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -110,7 +110,7 @@ { "asset": "AUR", "currency": "BTC", - "min_size": "3.04506699", + "min_size": "1.80375180", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -119,7 +119,7 @@ { "asset": "EFL", "currency": "BTC", - "min_size": "13.29080276", + "min_size": "7.28650539", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -128,7 +128,7 @@ { "asset": "GLD", "currency": "BTC", - "min_size": "12.02501203", + "min_size": "8.10372771", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -137,7 +137,7 @@ { "asset": "SLR", "currency": "BTC", - "min_size": "3.89954765", + "min_size": "1.74886324", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -146,7 +146,7 @@ { "asset": "PTC", "currency": "BTC", - "min_size": "57.73672055", + "min_size": "22.97794118", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -155,7 +155,7 @@ { "asset": "GRS", "currency": "BTC", - "min_size": "3.28947368", + "min_size": "2.49227395", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -164,7 +164,7 @@ { "asset": "NLG", "currency": "BTC", - "min_size": "23.14814815", + "min_size": "7.97957229", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -173,7 +173,7 @@ { "asset": "RBY", "currency": "BTC", - "min_size": "2.64690312", + "min_size": "1.87125749", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -182,7 +182,7 @@ { "asset": "XWC", "currency": "BTC", - "min_size": "34.43526171", + "min_size": "16.90331305", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -191,7 +191,7 @@ { "asset": "MONA", "currency": "BTC", - "min_size": "0.62084037", + "min_size": "0.46213284", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -200,7 +200,7 @@ { "asset": "THC", "currency": "BTC", - "min_size": "112.61261261", + "min_size": "6.15611918", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -209,7 +209,7 @@ { "asset": "ENRG", "currency": "BTC", - "min_size": "18.32844575", + "min_size": "8.88099467", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -218,7 +218,7 @@ { "asset": "ERC", "currency": "BTC", - "min_size": "3.77187689", + "min_size": "3.30994307", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -227,7 +227,7 @@ { "asset": "VRC", "currency": "BTC", - "min_size": "3.93391031", + "min_size": "1.47964015", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -236,7 +236,7 @@ { "asset": "CURE", "currency": "BTC", - "min_size": "6.67378537", + "min_size": "3.06823760", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -245,7 +245,7 @@ { "asset": "XMR", "currency": "BTC", - "min_size": "0.01470588", + "min_size": "0.00932733", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -254,7 +254,7 @@ { "asset": "CLOAK", "currency": "BTC", - "min_size": "0.31171292", + "min_size": "0.16682125", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -263,7 +263,7 @@ { "asset": "START", "currency": "BTC", - "min_size": "43.32755633", + "min_size": "9.94431185", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -272,7 +272,7 @@ { "asset": "KORE", "currency": "BTC", - "min_size": "0.58139535", + "min_size": "0.40676863", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -281,7 +281,7 @@ { "asset": "XDN", "currency": "BTC", - "min_size": "892.85714286", + "min_size": "53.19148936", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -290,7 +290,7 @@ { "asset": "TRUST", "currency": "BTC", - "min_size": "17.86990708", + "min_size": "9.45537065", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -299,7 +299,7 @@ { "asset": "NAV", "currency": "BTC", - "min_size": "2.23553608", + "min_size": "0.78448600", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -308,7 +308,7 @@ { "asset": "XST", "currency": "BTC", - "min_size": "7.45156483", + "min_size": "3.06748466", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -317,7 +317,7 @@ { "asset": "BTCD", "currency": "BTC", - "min_size": "0.01634094", + "min_size": "0.01139371", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -326,7 +326,7 @@ { "asset": "VIA", "currency": "BTC", - "min_size": "1.34509846", + "min_size": "0.52410901", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -335,7 +335,7 @@ { "asset": "PINK", "currency": "BTC", - "min_size": "87.41258741", + "min_size": "42.95532646", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -344,7 +344,7 @@ { "asset": "IOC", "currency": "BTC", - "min_size": "0.75755280", + "min_size": "0.69440587", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -353,7 +353,7 @@ { "asset": "CANN", "currency": "BTC", - "min_size": "71.02272727", + "min_size": "14.88095238", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -362,7 +362,7 @@ { "asset": "SYS", "currency": "BTC", - "min_size": "9.18779860", + "min_size": "4.31406385", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -371,7 +371,7 @@ { "asset": "NEOS", "currency": "BTC", - "min_size": "0.73529412", + "min_size": "0.25349828", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -380,7 +380,7 @@ { "asset": "DGB", "currency": "BTC", - "min_size": "215.51724138", + "min_size": "34.01360544", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -389,7 +389,7 @@ { "asset": "BURST", "currency": "BTC", - "min_size": "324.67532468", + "min_size": "45.95588235", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -398,7 +398,7 @@ { "asset": "EXCL", "currency": "BTC", - "min_size": "1.67280027", + "min_size": "1.27936134", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -407,7 +407,7 @@ { "asset": "SWIFT", "currency": "BTC", - "min_size": "1.88097209", + "min_size": "1.80440274", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -416,7 +416,7 @@ { "asset": "DOPE", "currency": "BTC", - "min_size": "91.57509158", + "min_size": "21.72024327", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -425,7 +425,7 @@ { "asset": "BLOCK", "currency": "BTC", - "min_size": "0.08708799", + "min_size": "0.07435586", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -434,7 +434,7 @@ { "asset": "ABY", "currency": "BTC", - "min_size": "342.46575342", + "min_size": "83.05647841", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -443,7 +443,7 @@ { "asset": "BYC", "currency": "BTC", - "min_size": "3.16455696", + "min_size": "1.29085558", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -452,7 +452,7 @@ { "asset": "XMG", "currency": "BTC", - "min_size": "7.57575758", + "min_size": "2.85583733", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -461,7 +461,7 @@ { "asset": "BLITZ", "currency": "BTC", - "min_size": "2.17089267", + "min_size": "0.69748626", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -470,25 +470,16 @@ { "asset": "BAY", "currency": "BTC", - "min_size": "42.73504274", + "min_size": "17.48251748", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BAY" }, - { - "asset": "BTS", - "currency": "BTC", - "min_size": "28.21670429", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/BTS" - }, { "asset": "FAIR", "currency": "BTC", - "min_size": "1.94749552", + "min_size": "3.36292709", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -497,7 +488,7 @@ { "asset": "SPR", "currency": "BTC", - "min_size": "7.19424460", + "min_size": "1.20720460", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -506,7 +497,7 @@ { "asset": "VTR", "currency": "BTC", - "min_size": "9.89707047", + "min_size": "3.57909807", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -515,7 +506,7 @@ { "asset": "XRP", "currency": "BTC", - "min_size": "8.53533629", + "min_size": "1.72723504", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -524,7 +515,7 @@ { "asset": "GAME", "currency": "BTC", - "min_size": "1.00522718", + "min_size": "0.56628990", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -533,7 +524,7 @@ { "asset": "COVAL", "currency": "BTC", - "min_size": "423.72881356", + "min_size": "108.22510823", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -542,7 +533,7 @@ { "asset": "NXS", "currency": "BTC", - "min_size": "1.84501845", + "min_size": "0.37650602", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -551,7 +542,7 @@ { "asset": "XCP", "currency": "BTC", - "min_size": "0.12327051", + "min_size": "0.04226221", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -560,7 +551,7 @@ { "asset": "BITB", "currency": "BTC", - "min_size": "625.00000000", + "min_size": "155.27950311", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -569,7 +560,7 @@ { "asset": "GEO", "currency": "BTC", - "min_size": "1.86608942", + "min_size": "0.43667360", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -578,7 +569,7 @@ { "asset": "FLDC", "currency": "BTC", - "min_size": "203.25203252", + "min_size": "54.46623094", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -587,7 +578,7 @@ { "asset": "GRC", "currency": "BTC", - "min_size": "48.26254826", + "min_size": "21.16850127", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -596,7 +587,7 @@ { "asset": "FLO", "currency": "BTC", - "min_size": "27.77777778", + "min_size": "12.15953307", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -605,7 +596,7 @@ { "asset": "NBT", "currency": "BTC", - "min_size": "1.94280385", + "min_size": "3.50336323", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -614,7 +605,7 @@ { "asset": "MUE", "currency": "BTC", - "min_size": "18.69857891", + "min_size": "8.55285665", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -623,7 +614,7 @@ { "asset": "XEM", "currency": "BTC", - "min_size": "9.87361769", + "min_size": "2.61178437", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -632,7 +623,7 @@ { "asset": "CLAM", "currency": "BTC", - "min_size": "0.35637919", + "min_size": "0.29645792", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -641,7 +632,7 @@ { "asset": "DMD", "currency": "BTC", - "min_size": "0.19092568", + "min_size": "0.12173210", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -650,7 +641,7 @@ { "asset": "GAM", "currency": "BTC", - "min_size": "0.28409091", + "min_size": "0.13333262", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -659,7 +650,7 @@ { "asset": "SPHR", "currency": "BTC", - "min_size": "0.67558438", + "min_size": "0.52221503", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -668,7 +659,7 @@ { "asset": "OK", "currency": "BTC", - "min_size": "4.48028674", + "min_size": "6.17436404", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -677,7 +668,7 @@ { "asset": "SNRG", "currency": "BTC", - "min_size": "1.32023659", + "min_size": "0.65445026", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -686,7 +677,7 @@ { "asset": "PKB", "currency": "BTC", - "min_size": "3.26583932", + "min_size": "1.54645552", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -695,7 +686,7 @@ { "asset": "CPC", "currency": "BTC", - "min_size": "5.74184658", + "min_size": "2.25225225", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -704,7 +695,7 @@ { "asset": "AEON", "currency": "BTC", - "min_size": "0.86180151", + "min_size": "0.52083333", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -713,7 +704,7 @@ { "asset": "ETH", "currency": "BTC", - "min_size": "0.00519751", + "min_size": "0.00283350", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -722,7 +713,7 @@ { "asset": "GCR", "currency": "BTC", - "min_size": "39.80891720", + "min_size": "10.93613298", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -731,7 +722,7 @@ { "asset": "TX", "currency": "BTC", - "min_size": "1.11831805", + "min_size": "1.07986696", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -740,7 +731,7 @@ { "asset": "BCY", "currency": "BTC", - "min_size": "6.53936699", + "min_size": "3.13479624", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -749,7 +740,7 @@ { "asset": "EXP", "currency": "BTC", - "min_size": "1.08455165", + "min_size": "0.45302165", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -758,7 +749,7 @@ { "asset": "INFX", "currency": "BTC", - "min_size": "2.94394724", + "min_size": "1.37144111", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -767,7 +758,7 @@ { "asset": "OMNI", "currency": "BTC", - "min_size": "0.08380853", + "min_size": "0.03816794", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -776,7 +767,7 @@ { "asset": "AMP", "currency": "BTC", - "min_size": "12.57545272", + "min_size": "3.72633776", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -785,7 +776,7 @@ { "asset": "AGRS", "currency": "BTC", - "min_size": "5.31801744", + "min_size": "1.14296164", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -794,7 +785,7 @@ { "asset": "XLM", "currency": "BTC", - "min_size": "52.85412262", + "min_size": "5.30785563", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -803,7 +794,7 @@ { "asset": "BTC", "currency": "USDT", - "min_size": "0.00039117", + "min_size": "0.00021583", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -812,7 +803,7 @@ { "asset": "CLUB", "currency": "BTC", - "min_size": "0.86011147", + "min_size": "1.25684983", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -821,7 +812,7 @@ { "asset": "VOX", "currency": "BTC", - "min_size": "45.53734062", + "min_size": "6.09607413", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -830,7 +821,7 @@ { "asset": "EMC", "currency": "BTC", - "min_size": "2.65392781", + "min_size": "0.51545329", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -839,7 +830,7 @@ { "asset": "FCT", "currency": "BTC", - "min_size": "0.10205540", + "min_size": "0.05686328", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -848,7 +839,7 @@ { "asset": "MAID", "currency": "BTC", - "min_size": "4.87709715", + "min_size": "3.47705146", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -857,7 +848,7 @@ { "asset": "EGC", "currency": "BTC", - "min_size": "8.06711843", + "min_size": "5.00100020", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -866,7 +857,7 @@ { "asset": "SLS", "currency": "BTC", - "min_size": "0.14381371", + "min_size": "0.04112404", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -875,7 +866,7 @@ { "asset": "RADS", "currency": "BTC", - "min_size": "0.49971017", + "min_size": "0.21779470", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -884,25 +875,16 @@ { "asset": "DCR", "currency": "BTC", - "min_size": "0.05364795", + "min_size": "0.03206851", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DCR" }, - { - "asset": "SAFEX", - "currency": "BTC", - "min_size": "225.22522523", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/SAFEX" - }, { "asset": "BSD", "currency": "BTC", - "min_size": "2.31010904", + "min_size": "1.94431482", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -911,7 +893,7 @@ { "asset": "XVG", "currency": "BTC", - "min_size": "312.50000000", + "min_size": "21.09704641", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -920,7 +902,7 @@ { "asset": "PIVX", "currency": "BTC", - "min_size": "0.62344140", + "min_size": "0.27289597", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -929,7 +911,7 @@ { "asset": "XVC", "currency": "BTC", - "min_size": "2.31074961", + "min_size": "2.20109174", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -938,7 +920,7 @@ { "asset": "MEME", "currency": "BTC", - "min_size": "8.58221765", + "min_size": "3.63530609", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -947,7 +929,7 @@ { "asset": "STEEM", "currency": "BTC", - "min_size": "2.09485504", + "min_size": "0.63316787", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -956,7 +938,7 @@ { "asset": "2GIVE", "currency": "BTC", - "min_size": "320.51282051", + "min_size": "134.40860215", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -965,7 +947,7 @@ { "asset": "LSK", "currency": "BTC", - "min_size": "0.19185020", + "min_size": "0.11525517", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -974,7 +956,7 @@ { "asset": "PDC", "currency": "BTC", - "min_size": "16.31853786", + "min_size": "12.98701299", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -983,34 +965,16 @@ { "asset": "BRK", "currency": "BTC", - "min_size": "11.57943492", + "min_size": "2.86828821", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BRK" }, - { - "asset": "DGD", - "currency": "BTC", - "min_size": "0.02768286", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/DGD" - }, - { - "asset": "DGD", - "currency": "ETH", - "min_size": "0.02688357", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/DGD" - }, { "asset": "WAVES", "currency": "BTC", - "min_size": "0.35602392", + "min_size": "0.30248034", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1019,7 +983,7 @@ { "asset": "RISE", "currency": "BTC", - "min_size": "7.46268657", + "min_size": "3.42465753", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1028,7 +992,7 @@ { "asset": "LBC", "currency": "BTC", - "min_size": "9.90099010", + "min_size": "2.80112045", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1037,7 +1001,7 @@ { "asset": "SBD", "currency": "BTC", - "min_size": "1.94024059", + "min_size": "0.54285280", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1046,7 +1010,7 @@ { "asset": "BRX", "currency": "BTC", - "min_size": "3.58371560", + "min_size": "1.44625709", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1055,7 +1019,7 @@ { "asset": "ETC", "currency": "BTC", - "min_size": "0.10843211", + "min_size": "0.10245902", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1064,7 +1028,7 @@ { "asset": "ETC", "currency": "ETH", - "min_size": "0.10482574", + "min_size": "0.18035579", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1073,7 +1037,7 @@ { "asset": "STRAT", "currency": "BTC", - "min_size": "0.54993401", + "min_size": "0.18254038", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1082,7 +1046,7 @@ { "asset": "UNB", "currency": "BTC", - "min_size": "6.45327827", + "min_size": "1.61718093", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1091,25 +1055,16 @@ { "asset": "SYNX", "currency": "BTC", - "min_size": "8.24266403", + "min_size": "3.47366958", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SYNX" }, - { - "asset": "TRIG", - "currency": "BTC", - "min_size": "3.47947112", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/TRIG" - }, { "asset": "EBST", "currency": "BTC", - "min_size": "18.61504095", + "min_size": "2.07210941", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1118,7 +1073,7 @@ { "asset": "VRM", "currency": "BTC", - "min_size": "0.79615299", + "min_size": "0.26178010", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1127,34 +1082,16 @@ { "asset": "SEQ", "currency": "BTC", - "min_size": "13.69863014", + "min_size": "5.07099391", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SEQ" }, - { - "asset": "XAUR", - "currency": "BTC", - "min_size": "11.50483203", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/XAUR" - }, - { - "asset": "SNGLS", - "currency": "BTC", - "min_size": "14.38434983", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/SNGLS" - }, { "asset": "REP", "currency": "BTC", - "min_size": "0.09447617", + "min_size": "0.03144670", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1163,7 +1100,7 @@ { "asset": "SHIFT", "currency": "BTC", - "min_size": "1.56240235", + "min_size": "0.38023970", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1172,7 +1109,7 @@ { "asset": "ARDR", "currency": "BTC", - "min_size": "7.93650794", + "min_size": "2.12983472", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1181,7 +1118,7 @@ { "asset": "XZC", "currency": "BTC", - "min_size": "0.08148790", + "min_size": "0.03666802", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1190,7 +1127,7 @@ { "asset": "NEO", "currency": "BTC", - "min_size": "0.04612546", + "min_size": "0.02840909", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1199,7 +1136,7 @@ { "asset": "ZEC", "currency": "BTC", - "min_size": "0.00646468", + "min_size": "0.00491071", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1208,7 +1145,7 @@ { "asset": "ZCL", "currency": "BTC", - "min_size": "1.09524227", + "min_size": "0.02069991", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1217,7 +1154,7 @@ { "asset": "IOP", "currency": "BTC", - "min_size": "0.78129883", + "min_size": "0.43283298", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1226,7 +1163,7 @@ { "asset": "GOLOS", "currency": "BTC", - "min_size": "16.81237391", + "min_size": "9.01550667", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1235,7 +1172,7 @@ { "asset": "UBQ", "currency": "BTC", - "min_size": "1.46224484", + "min_size": "0.65390249", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1244,7 +1181,7 @@ { "asset": "KMD", "currency": "BTC", - "min_size": "0.82904991", + "min_size": "0.42365701", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1253,7 +1190,7 @@ { "asset": "GBG", "currency": "BTC", - "min_size": "20.00000000", + "min_size": "10.15847217", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1262,7 +1199,7 @@ { "asset": "SIB", "currency": "BTC", - "min_size": "1.54483100", + "min_size": "0.89802076", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1271,7 +1208,7 @@ { "asset": "ION", "currency": "BTC", - "min_size": "1.63334640", + "min_size": "1.08738202", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1280,7 +1217,7 @@ { "asset": "LMC", "currency": "BTC", - "min_size": "41.80602007", + "min_size": "15.96424010", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1289,7 +1226,7 @@ { "asset": "QWARK", "currency": "BTC", - "min_size": "14.09244645", + "min_size": "7.03234880", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1298,7 +1235,7 @@ { "asset": "CRW", "currency": "BTC", - "min_size": "1.48060409", + "min_size": "0.86209869", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1307,25 +1244,16 @@ { "asset": "SWT", "currency": "BTC", - "min_size": "0.93168859", + "min_size": "0.78125000", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SWT" }, - { - "asset": "TIME", - "currency": "BTC", - "min_size": "0.07726781", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/TIME" - }, { "asset": "MLN", "currency": "BTC", - "min_size": "0.03044251", + "min_size": "0.01539331", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1334,7 +1262,7 @@ { "asset": "ARK", "currency": "BTC", - "min_size": "0.58411215", + "min_size": "0.39142007", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1343,7 +1271,7 @@ { "asset": "DYN", "currency": "BTC", - "min_size": "0.56292360", + "min_size": "0.62043977", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1352,7 +1280,7 @@ { "asset": "TKS", "currency": "BTC", - "min_size": "1.14615808", + "min_size": "0.37796323", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1361,7 +1289,7 @@ { "asset": "MUSIC", "currency": "BTC", - "min_size": "156.25000000", + "min_size": "47.52851711", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1370,7 +1298,7 @@ { "asset": "DTB", "currency": "BTC", - "min_size": "5.28429508", + "min_size": "1.84515462", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1379,7 +1307,7 @@ { "asset": "INCNT", "currency": "BTC", - "min_size": "11.89909567", + "min_size": "4.13223140", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1388,7 +1316,7 @@ { "asset": "GBYTE", "currency": "BTC", - "min_size": "0.00833333", + "min_size": "0.00341996", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1397,7 +1325,7 @@ { "asset": "GNT", "currency": "BTC", - "min_size": "9.08760451", + "min_size": "3.83847689", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1406,7 +1334,7 @@ { "asset": "NXC", "currency": "BTC", - "min_size": "11.84834123", + "min_size": "5.86992252", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1415,7 +1343,7 @@ { "asset": "EDG", "currency": "BTC", - "min_size": "2.88250894", + "min_size": "1.37779002", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1424,7 +1352,7 @@ { "asset": "LGD", "currency": "BTC", - "min_size": "2.26490306", + "min_size": "1.52718387", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1433,7 +1361,7 @@ { "asset": "TRST", "currency": "BTC", - "min_size": "7.35294118", + "min_size": "3.20430659", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1442,7 +1370,7 @@ { "asset": "GNT", "currency": "ETH", - "min_size": "8.64707815", + "min_size": "6.80327646", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1451,7 +1379,7 @@ { "asset": "REP", "currency": "ETH", - "min_size": "0.09090889", + "min_size": "0.05576824", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1460,7 +1388,7 @@ { "asset": "ETH", "currency": "USDT", - "min_size": "0.00811030", + "min_size": "0.00245499", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1469,7 +1397,7 @@ { "asset": "WINGS", "currency": "ETH", - "min_size": "3.65652104", + "min_size": "3.75959637", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1478,7 +1406,7 @@ { "asset": "WINGS", "currency": "BTC", - "min_size": "3.90320062", + "min_size": "2.21199788", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1487,7 +1415,7 @@ { "asset": "RLC", "currency": "BTC", - "min_size": "3.42278204", + "min_size": "0.83333333", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1496,7 +1424,7 @@ { "asset": "GNO", "currency": "BTC", - "min_size": "0.02777716", + "min_size": "0.01006845", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1505,7 +1433,7 @@ { "asset": "GUP", "currency": "BTC", - "min_size": "8.62663906", + "min_size": "2.96630280", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1514,7 +1442,7 @@ { "asset": "LUN", "currency": "BTC", - "min_size": "0.41646538", + "min_size": "0.06663539", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1523,7 +1451,7 @@ { "asset": "GUP", "currency": "ETH", - "min_size": "9.28936368", + "min_size": "4.78807960", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1532,7 +1460,7 @@ { "asset": "RLC", "currency": "ETH", - "min_size": "3.31125828", + "min_size": "1.43763262", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1541,25 +1469,16 @@ { "asset": "LUN", "currency": "ETH", - "min_size": "0.40262414", + "min_size": "0.11588049", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LUN" }, - { - "asset": "SNGLS", - "currency": "ETH", - "min_size": "14.08331690", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/SNGLS" - }, { "asset": "GNO", "currency": "ETH", - "min_size": "0.02674668", + "min_size": "0.01766784", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1568,34 +1487,16 @@ { "asset": "APX", "currency": "BTC", - "min_size": "0.26913554", + "min_size": "0.18380596", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/APX" }, - { - "asset": "TKN", - "currency": "BTC", - "min_size": "1.52123646", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/TKN" - }, - { - "asset": "TKN", - "currency": "ETH", - "min_size": "1.47492625", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/TKN" - }, { "asset": "HMQ", "currency": "BTC", - "min_size": "20.78137988", + "min_size": "8.10110175", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1604,7 +1505,7 @@ { "asset": "HMQ", "currency": "ETH", - "min_size": "19.22411473", + "min_size": "14.11392762", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1613,7 +1514,7 @@ { "asset": "ANT", "currency": "BTC", - "min_size": "1.26582278", + "min_size": "0.53998013", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1622,7 +1523,7 @@ { "asset": "TRST", "currency": "ETH", - "min_size": "7.04225352", + "min_size": "5.24939894", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1631,7 +1532,7 @@ { "asset": "ANT", "currency": "ETH", - "min_size": "1.22211142", + "min_size": "0.97131135", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1640,7 +1541,7 @@ { "asset": "SC", "currency": "BTC", - "min_size": "462.96296296", + "min_size": "51.33470226", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1649,7 +1550,7 @@ { "asset": "BAT", "currency": "ETH", - "min_size": "11.36337811", + "min_size": "8.10569831", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1658,7 +1559,7 @@ { "asset": "BAT", "currency": "BTC", - "min_size": "11.63331782", + "min_size": "4.70101542", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1667,7 +1568,7 @@ { "asset": "ZEN", "currency": "BTC", - "min_size": "0.08802817", + "min_size": "0.06560767", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1676,7 +1577,7 @@ { "asset": "1ST", "currency": "BTC", - "min_size": "5.70255474", + "min_size": "2.23693629", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1685,7 +1586,7 @@ { "asset": "QRL", "currency": "BTC", - "min_size": "2.88716942", + "min_size": "1.13775998", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1694,7 +1595,7 @@ { "asset": "1ST", "currency": "ETH", - "min_size": "5.45042295", + "min_size": "4.13701804", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1703,7 +1604,7 @@ { "asset": "QRL", "currency": "ETH", - "min_size": "2.79507619", + "min_size": "1.91776619", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1712,7 +1613,7 @@ { "asset": "CRB", "currency": "BTC", - "min_size": "6.16979269", + "min_size": "2.27686703", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1721,7 +1622,7 @@ { "asset": "CRB", "currency": "ETH", - "min_size": "5.97671472", + "min_size": "3.59719994", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1730,7 +1631,7 @@ { "asset": "LGD", "currency": "ETH", - "min_size": "2.17391304", + "min_size": "2.87257268", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1739,7 +1640,7 @@ { "asset": "PTOY", "currency": "BTC", - "min_size": "12.15362178", + "min_size": "6.02119461", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1748,7 +1649,7 @@ { "asset": "PTOY", "currency": "ETH", - "min_size": "11.69645364", + "min_size": "10.47339757", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1757,7 +1658,7 @@ { "asset": "MYST", "currency": "BTC", - "min_size": "3.46981263", + "min_size": "1.08131488", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1766,7 +1667,7 @@ { "asset": "MYST", "currency": "ETH", - "min_size": "3.30906684", + "min_size": "1.86567164", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1775,7 +1676,7 @@ { "asset": "CFI", "currency": "BTC", - "min_size": "20.92050209", + "min_size": "12.89989680", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1784,7 +1685,7 @@ { "asset": "CFI", "currency": "ETH", - "min_size": "19.90128960", + "min_size": "23.03192224", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1793,7 +1694,7 @@ { "asset": "BNT", "currency": "BTC", - "min_size": "0.88208313", + "min_size": "0.39172673", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1802,7 +1703,7 @@ { "asset": "BNT", "currency": "ETH", - "min_size": "0.83347225", + "min_size": "0.68480674", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1811,7 +1712,7 @@ { "asset": "NMR", "currency": "BTC", - "min_size": "0.16847042", + "min_size": "0.08155782", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1820,25 +1721,16 @@ { "asset": "NMR", "currency": "ETH", - "min_size": "0.16100861", + "min_size": "0.14283674", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/NMR" }, - { - "asset": "TIME", - "currency": "ETH", - "min_size": "0.07499390", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/TIME" - }, { "asset": "LTC", "currency": "ETH", - "min_size": "0.02669794", + "min_size": "0.02577319", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1847,7 +1739,7 @@ { "asset": "XRP", "currency": "ETH", - "min_size": "8.12928820", + "min_size": "3.03951368", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1856,7 +1748,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "64.76683938", + "min_size": "8.22097994", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1865,7 +1757,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "62.39081607", + "min_size": "14.49275362", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1874,7 +1766,7 @@ { "asset": "DCT", "currency": "BTC", - "min_size": "3.84852217", + "min_size": "1.44358471", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1883,7 +1775,7 @@ { "asset": "XEL", "currency": "BTC", - "min_size": "7.51653638", + "min_size": "3.67647059", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1892,7 +1784,7 @@ { "asset": "MCO", "currency": "BTC", - "min_size": "0.34103620", + "min_size": "0.21694798", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1901,7 +1793,7 @@ { "asset": "MCO", "currency": "ETH", - "min_size": "0.33333311", + "min_size": "0.37572995", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1910,7 +1802,7 @@ { "asset": "ADT", "currency": "BTC", - "min_size": "102.88065844", + "min_size": "23.21262767", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1919,7 +1811,7 @@ { "asset": "ADT", "currency": "ETH", - "min_size": "99.74067425", + "min_size": "40.36815760", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1928,7 +1820,7 @@ { "asset": "FUN", "currency": "BTC", - "min_size": "120.77294686", + "min_size": "24.53385672", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1937,7 +1829,7 @@ { "asset": "FUN", "currency": "ETH", - "min_size": "116.22501162", + "min_size": "43.47826087", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1946,7 +1838,7 @@ { "asset": "PAY", "currency": "BTC", - "min_size": "1.14395534", + "min_size": "0.95858896", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1955,34 +1847,16 @@ { "asset": "PAY", "currency": "ETH", - "min_size": "1.10861795", + "min_size": "1.69252850", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/PAY" }, - { - "asset": "MTL", - "currency": "BTC", - "min_size": "0.44288549", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "BTC/MTL" - }, - { - "asset": "MTL", - "currency": "ETH", - "min_size": "0.42738513", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/MTL" - }, { "asset": "STORJ", "currency": "BTC", - "min_size": "2.97796307", + "min_size": "1.59134309", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -1991,7 +1865,7 @@ { "asset": "STORJ", "currency": "ETH", - "min_size": "2.83649319", + "min_size": "2.83027946", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2000,7 +1874,7 @@ { "asset": "ADX", "currency": "BTC", - "min_size": "1.81080690", + "min_size": "1.19041950", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2009,7 +1883,7 @@ { "asset": "ADX", "currency": "ETH", - "min_size": "1.75438596", + "min_size": "2.08408882", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2018,7 +1892,7 @@ { "asset": "DASH", "currency": "ETH", - "min_size": "0.00416723", + "min_size": "0.00582592", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2027,7 +1901,7 @@ { "asset": "SC", "currency": "ETH", - "min_size": "442.47787611", + "min_size": "90.18759019", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2036,7 +1910,7 @@ { "asset": "ZEC", "currency": "ETH", - "min_size": "0.00617284", + "min_size": "0.00876737", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2045,7 +1919,7 @@ { "asset": "ZEC", "currency": "USDT", - "min_size": "0.01004282", + "min_size": "0.00426071", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2054,7 +1928,7 @@ { "asset": "LTC", "currency": "USDT", - "min_size": "0.04358565", + "min_size": "0.01260504", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2063,7 +1937,7 @@ { "asset": "ETC", "currency": "USDT", - "min_size": "0.16853933", + "min_size": "0.08859256", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2072,7 +1946,7 @@ { "asset": "XRP", "currency": "USDT", - "min_size": "13.35149255", + "min_size": "1.48148155", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2081,7 +1955,7 @@ { "asset": "OMG", "currency": "BTC", - "min_size": "0.23364486", + "min_size": "0.15413355", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2090,7 +1964,7 @@ { "asset": "OMG", "currency": "ETH", - "min_size": "0.22823984", + "min_size": "0.26941049", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2099,7 +1973,7 @@ { "asset": "CVC", "currency": "BTC", - "min_size": "6.59630607", + "min_size": "3.56938892", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2108,7 +1982,7 @@ { "asset": "CVC", "currency": "ETH", - "min_size": "6.41009205", + "min_size": "6.21890547", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2117,7 +1991,7 @@ { "asset": "PART", "currency": "BTC", - "min_size": "0.22349365", + "min_size": "0.13020833", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2126,7 +2000,7 @@ { "asset": "QTUM", "currency": "BTC", - "min_size": "0.14037925", + "min_size": "0.06973656", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2135,7 +2009,7 @@ { "asset": "QTUM", "currency": "ETH", - "min_size": "0.13531800", + "min_size": "0.12509535", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2144,7 +2018,7 @@ { "asset": "XMR", "currency": "ETH", - "min_size": "0.01415023", + "min_size": "0.01638270", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2153,7 +2027,7 @@ { "asset": "XEM", "currency": "ETH", - "min_size": "9.53270672", + "min_size": "4.50284129", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2162,7 +2036,7 @@ { "asset": "XLM", "currency": "ETH", - "min_size": "50.13033888", + "min_size": "9.34579439", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2171,7 +2045,7 @@ { "asset": "NEO", "currency": "ETH", - "min_size": "0.04385968", + "min_size": "0.04986485", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2180,7 +2054,7 @@ { "asset": "XMR", "currency": "USDT", - "min_size": "0.02290076", + "min_size": "0.00797128", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2189,7 +2063,7 @@ { "asset": "DASH", "currency": "USDT", - "min_size": "0.00677201", + "min_size": "0.00289665", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2198,7 +2072,7 @@ { "asset": "BCC", "currency": "ETH", - "min_size": "0.00158378", + "min_size": "0.00239808", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2207,7 +2081,7 @@ { "asset": "BCC", "currency": "USDT", - "min_size": "0.00254734", + "min_size": "0.00118336", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2216,7 +2090,7 @@ { "asset": "BCC", "currency": "BTC", - "min_size": "0.00161862", + "min_size": "0.00137514", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2225,7 +2099,7 @@ { "asset": "DNT", "currency": "BTC", - "min_size": "46.72897196", + "min_size": "13.57957632", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2234,7 +2108,7 @@ { "asset": "DNT", "currency": "ETH", - "min_size": "43.90586582", + "min_size": "24.29661305", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2243,7 +2117,7 @@ { "asset": "NEO", "currency": "USDT", - "min_size": "0.07125891", + "min_size": "0.02469008", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2252,7 +2126,7 @@ { "asset": "WAVES", "currency": "ETH", - "min_size": "0.34251619", + "min_size": "0.53575351", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2261,7 +2135,7 @@ { "asset": "STRAT", "currency": "ETH", - "min_size": "0.53191489", + "min_size": "0.32154341", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2270,7 +2144,7 @@ { "asset": "DGB", "currency": "ETH", - "min_size": "209.90764064", + "min_size": "59.54507562", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2279,25 +2153,16 @@ { "asset": "FCT", "currency": "ETH", - "min_size": "0.09803922", + "min_size": "0.10168726", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/FCT" }, - { - "asset": "BTS", - "currency": "ETH", - "min_size": "32.95544424", - "min_total": "0.0005", - "max_size": "1000000", - "increment": "0.00000001", - "label": "ETH/BTS" - }, { "asset": "OMG", "currency": "USDT", - "min_size": "0.36585366", + "min_size": "0.13303769", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2306,7 +2171,7 @@ { "asset": "ADA", "currency": "BTC", - "min_size": "74.40476190", + "min_size": "4.67027835", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2315,7 +2180,7 @@ { "asset": "MANA", "currency": "BTC", - "min_size": "144.50867052", + "min_size": "18.45018450", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2324,7 +2189,7 @@ { "asset": "MANA", "currency": "ETH", - "min_size": "139.27576602", + "min_size": "32.24974200", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2333,7 +2198,7 @@ { "asset": "SALT", "currency": "BTC", - "min_size": "0.49701789", + "min_size": "0.27155023", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2342,7 +2207,7 @@ { "asset": "SALT", "currency": "ETH", - "min_size": "0.47976035", + "min_size": "0.48713335", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2351,7 +2216,7 @@ { "asset": "TIX", "currency": "BTC", - "min_size": "11.71508903", + "min_size": "2.47524752", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2360,7 +2225,7 @@ { "asset": "TIX", "currency": "ETH", - "min_size": "11.35873146", + "min_size": "4.43655723", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2369,7 +2234,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "19.70055162", + "min_size": "8.43454791", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2378,7 +2243,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "18.85369532", + "min_size": "14.77759716", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2387,7 +2252,7 @@ { "asset": "VIB", "currency": "BTC", - "min_size": "15.74307305", + "min_size": "6.18505690", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2396,7 +2261,7 @@ { "asset": "VIB", "currency": "ETH", - "min_size": "15.16622179", + "min_size": "11.48052902", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2405,7 +2270,7 @@ { "asset": "MER", "currency": "BTC", - "min_size": "13.91207568", + "min_size": "4.97314502", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2414,7 +2279,7 @@ { "asset": "POWR", "currency": "BTC", - "min_size": "5.95805529", + "min_size": "2.24215247", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2423,7 +2288,7 @@ { "asset": "POWR", "currency": "ETH", - "min_size": "5.64385046", + "min_size": "3.94604961", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2432,7 +2297,7 @@ { "asset": "BTG", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "0.01571140", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2441,7 +2306,7 @@ { "asset": "BTG", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "0.02800775", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", @@ -2450,10 +2315,82 @@ { "asset": "BTG", "currency": "USDT", - "min_size": "0.00000001", + "min_size": "0.01355320", "min_total": "0.0005", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BTG" + }, + { + "asset": "ADA", + "currency": "ETH", + "min_size": "8.26446281", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "ETH/ADA" + }, + { + "asset": "ENG", + "currency": "BTC", + "min_size": "0.51665702", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "BTC/ENG" + }, + { + "asset": "ENG", + "currency": "ETH", + "min_size": "0.90408066", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "ETH/ENG" + }, + { + "asset": "ADA", + "currency": "USDT", + "min_size": "4.00000565", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "USDT/ADA" + }, + { + "asset": "XVG", + "currency": "USDT", + "min_size": "18.30313022", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "USDT/XVG" + }, + { + "asset": "NXT", + "currency": "USDT", + "min_size": "6.68571442", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "USDT/NXT" + }, + { + "asset": "UKG", + "currency": "BTC", + "min_size": "2.56068831", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "BTC/UKG" + }, + { + "asset": "UKG", + "currency": "ETH", + "min_size": "4.24138575", + "min_total": "0.0005", + "max_size": "1000000", + "increment": "0.00000001", + "label": "ETH/UKG" } ] \ No newline at end of file diff --git a/extensions/exchanges/wexnz/products.json b/extensions/exchanges/wexnz/products.json index d41b5a7a13..df33c5e9f1 100644 --- a/extensions/exchanges/wexnz/products.json +++ b/extensions/exchanges/wexnz/products.json @@ -3,7 +3,7 @@ "asset": "BTC", "currency": "USD", "min_size": "0.001", - "max_size": "50000", + "max_size": "500000", "increment": "0.0001", "label": "BTC/USD" }, @@ -11,7 +11,7 @@ "asset": "BTC", "currency": "RUR", "min_size": "0.001", - "max_size": "3000000", + "max_size": "30000000", "increment": "0.0001", "label": "BTC/RUR" }, @@ -19,7 +19,7 @@ "asset": "BTC", "currency": "EUR", "min_size": "0.001", - "max_size": "50000", + "max_size": "500000", "increment": "0.0001", "label": "BTC/EUR" }, @@ -34,8 +34,8 @@ { "asset": "LTC", "currency": "USD", - "min_size": "0.1", - "max_size": "1000", + "min_size": "0.01", + "max_size": "10000", "increment": "0.0001", "label": "LTC/USD" }, @@ -43,7 +43,7 @@ "asset": "LTC", "currency": "RUR", "min_size": "0.01", - "max_size": "100000", + "max_size": "1000000", "increment": "0.0001", "label": "LTC/RUR" }, @@ -51,7 +51,7 @@ "asset": "LTC", "currency": "EUR", "min_size": "0.01", - "max_size": "1000", + "max_size": "10000", "increment": "0.0001", "label": "LTC/EUR" }, @@ -67,7 +67,7 @@ "asset": "NMC", "currency": "USD", "min_size": "0.1", - "max_size": "100", + "max_size": "1000", "increment": "0.0001", "label": "NMC/USD" }, @@ -123,7 +123,7 @@ "asset": "PPC", "currency": "USD", "min_size": "0.1", - "max_size": "100", + "max_size": "1000", "increment": "0.0001", "label": "PPC/USD" }, @@ -139,7 +139,7 @@ "asset": "DSH", "currency": "USD", "min_size": "0.01", - "max_size": "5000", + "max_size": "50000", "increment": "0.0001", "label": "DSH/USD" }, @@ -147,7 +147,7 @@ "asset": "DSH", "currency": "RUR", "min_size": "0.01", - "max_size": "300000", + "max_size": "3000000", "increment": "0.0001", "label": "DSH/RUR" }, @@ -155,7 +155,7 @@ "asset": "DSH", "currency": "EUR", "min_size": "0.01", - "max_size": "5000", + "max_size": "50000", "increment": "0.0001", "label": "DSH/EUR" }, @@ -163,7 +163,7 @@ "asset": "DSH", "currency": "LTC", "min_size": "0.01", - "max_size": "600", + "max_size": "1000", "increment": "0.0001", "label": "DSH/LTC" }, @@ -171,10 +171,18 @@ "asset": "DSH", "currency": "ETH", "min_size": "0.01", - "max_size": "600", + "max_size": "1000", "increment": "0.0001", "label": "DSH/ETH" }, + { + "asset": "DSH", + "currency": "ZEC", + "min_size": "0.01", + "max_size": "1000", + "increment": "0.0001", + "label": "DSH/ZEC" + }, { "asset": "ETH", "currency": "BTC", @@ -187,7 +195,7 @@ "asset": "ETH", "currency": "USD", "min_size": "0.01", - "max_size": "5000", + "max_size": "50000", "increment": "0.0001", "label": "ETH/USD" }, @@ -195,7 +203,7 @@ "asset": "ETH", "currency": "EUR", "min_size": "0.01", - "max_size": "5000", + "max_size": "50000", "increment": "0.0001", "label": "ETH/EUR" }, @@ -211,15 +219,23 @@ "asset": "ETH", "currency": "RUR", "min_size": "0.01", - "max_size": "300000", + "max_size": "3000000", "increment": "0.0001", "label": "ETH/RUR" }, + { + "asset": "ETH", + "currency": "ZEC", + "min_size": "0.01", + "max_size": "1000", + "increment": "0.0001", + "label": "ETH/ZEC" + }, { "asset": "BCH", "currency": "USD", "min_size": "0.001", - "max_size": "10000", + "max_size": "100000", "increment": "0.0001", "label": "BCH/USD" }, @@ -235,7 +251,7 @@ "asset": "BCH", "currency": "RUR", "min_size": "0.01", - "max_size": "600000", + "max_size": "6000000", "increment": "0.0001", "label": "BCH/RUR" }, @@ -243,7 +259,7 @@ "asset": "BCH", "currency": "EUR", "min_size": "0.01", - "max_size": "10000", + "max_size": "100000", "increment": "0.0001", "label": "BCH/EUR" }, @@ -271,6 +287,14 @@ "increment": "0.0001", "label": "BCH/DSH" }, + { + "asset": "BCH", + "currency": "ZEC", + "min_size": "0.01", + "max_size": "1000", + "increment": "0.0001", + "label": "BCH/ZEC" + }, { "asset": "ZEC", "currency": "BTC", @@ -283,10 +307,18 @@ "asset": "ZEC", "currency": "USD", "min_size": "0.01", - "max_size": "3000", + "max_size": "30000", "increment": "0.0001", "label": "ZEC/USD" }, + { + "asset": "ZEC", + "currency": "LTC", + "min_size": "0.01", + "max_size": "1000", + "increment": "0.0001", + "label": "ZEC/LTC" + }, { "asset": "USDET", "currency": "USD", From bcf8d4a458abb247e38238c7afa54871269d69f2 Mon Sep 17 00:00:00 2001 From: firepol <1702718+firepol@users.noreply.github.com> Date: Mon, 15 Jan 2018 14:22:29 +0100 Subject: [PATCH 039/236] Fix output location for the HTML dump (#1132) Trade results were saved in the simulations/ folder. To avoid confusion, paper results are prefixed with "paper" (& still saved in simulations/). --- .gitignore | 1 + commands/trade.js | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a18b7430d3..3bdb77862f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ conf_* !conf-sample.js sim_result* trade_result* +paper_result* *_test backtesting_* generation_data_* diff --git a/commands/trade.js b/commands/trade.js index 818e5a7d96..305d9c2d87 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -219,16 +219,16 @@ module.exports = function container (get, set, clear) { .replace(/\{\{symbol\}\}/g, so.selector.normalized + ' - zenbot ' + require('../package.json').version) if (so.filename !== 'none') { var out_target - + var out_target_prefix = so.paper ? 'simulations/paper_result_' : 'stats/trade_result_' if(dump){ var dt = new Date().toISOString(); //ymd var today = dt.slice(2, 4) + dt.slice(5, 7) + dt.slice(8, 10); - out_target = so.filename || 'simulations/trade_result_' + so.selector.normalized +'_' + today + '_UTC.html' + out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + today + '_UTC.html' fs.writeFileSync(out_target, out) }else - out_target = so.filename || 'simulations/trade_result_' + so.selector.normalized +'_' + new Date().toISOString().replace(/T/, '_').replace(/\..+/, '').replace(/-/g, '').replace(/:/g, '').replace(/20/, '') + '_UTC.html' + out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + new Date().toISOString().replace(/T/, '_').replace(/\..+/, '').replace(/-/g, '').replace(/:/g, '').replace(/20/, '') + '_UTC.html' fs.writeFileSync(out_target, out) console.log('\nwrote'.grey, out_target) From a656e95683153dd9e0254ddb69dea641c8869cd6 Mon Sep 17 00:00:00 2001 From: firepol <1702718+firepol@users.noreply.github.com> Date: Tue, 16 Jan 2018 09:55:40 +0100 Subject: [PATCH 040/236] Update bitstamp products (add BCH & fix min_sizes) (#1147) Add bitcoin cash & fix the minimums (5 USD/EUR or 0.001 BTC) See https://www.bitstamp.net/api/v2/trading-pairs-info/ --- extensions/exchanges/bitstamp/products.json | 47 ++++++++++++++++----- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/extensions/exchanges/bitstamp/products.json b/extensions/exchanges/bitstamp/products.json index ec83ed9fcf..6c3c5c8ac7 100644 --- a/extensions/exchanges/bitstamp/products.json +++ b/extensions/exchanges/bitstamp/products.json @@ -3,7 +3,7 @@ "id": "BTCUSD", "asset": "BTC", "currency": "USD", - "min_size": "0.01", + "min_size": "5", "max_size": "10000", "increment": "0.01", "label": "BTC/USD" @@ -12,7 +12,7 @@ "id": "BTCEUR", "asset": "BTC", "currency": "EUR", - "min_size": "0.01", + "min_size": "5", "max_size": "10000", "increment": "0.01", "label": "BTC/EUR" @@ -21,7 +21,7 @@ "id": "EURUSD", "asset": "EUR", "currency": "USD", - "min_size": "0.01", + "min_size": "5", "max_size": "10000", "increment": "0.01", "label": "EUR/USD" @@ -30,7 +30,7 @@ "id": "LTCUSD", "asset": "LTC", "currency": "USD", - "min_size": "0.01", + "min_size": "5", "max_size": "1000000", "increment": "0.01", "label": "LTC/USD" @@ -39,7 +39,7 @@ "id": "LTCEUR", "asset": "LTC", "currency": "EUR", - "min_size": "0.01", + "min_size": "5", "max_size": "1000000", "increment": "0.01", "label": "LTC/EUR" @@ -48,7 +48,7 @@ "id": "LTCBTC", "asset": "LTC", "currency": "BTC", - "min_size": "0.01", + "min_size": "0.001", "max_size": "1000000", "increment": "0.00001", "label": "LTC/BTC" @@ -75,7 +75,7 @@ "id": "XRPBTC", "asset": "XRP", "currency": "BTC", - "min_size": "0.01", + "min_size": "0.001", "max_size": "1000000", "increment": "0.00001", "label": "XRP/BTC" @@ -84,7 +84,7 @@ "id": "ETHUSD", "asset": "ETH", "currency": "USD", - "min_size": "0.01", + "min_size": "5", "max_size": "1000000", "increment": "0.01", "label": "ETH/USD" @@ -93,7 +93,7 @@ "id": "ETHEUR", "asset": "ETH", "currency": "EUR", - "min_size": "0.01", + "min_size": "5", "max_size": "1000000", "increment": "0.01", "label": "ETH/EUR" @@ -102,9 +102,36 @@ "id": "ETHBTC", "asset": "ETH", "currency": "BTC", - "min_size": "0.01", + "min_size": "0.001", "max_size": "1000000", "increment": "0.00001", "label": "ETH/BTC" + }, + { + "id": "BCHUSD", + "asset": "BCH", + "currency": "USD", + "min_size": "5", + "max_size": "10000", + "increment": "0.01", + "label": "BCH/USD" + }, + { + "id": "BCHEUR", + "asset": "BCH", + "currency": "EUR", + "min_size": "5", + "max_size": "10000", + "increment": "0.01", + "label": "BCH/EUR" + }, + { + "id": "BCHBTC", + "asset": "BCH", + "currency": "EUR", + "min_size": "0.001", + "max_size": "1000000", + "increment": "0.00001", + "label": "BCH/BTC" } ] From c173642e545f0a31e4b54fe1eb3549d6a2220ac1 Mon Sep 17 00:00:00 2001 From: defkev Date: Tue, 16 Jan 2018 19:03:06 +0100 Subject: [PATCH 041/236] Improve truthy & falsey handling of options which could be set to 0 (#1143) --- lib/engine.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index 4bfafa8894..d69b406045 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -460,9 +460,9 @@ module.exports = function container (get, set, clear) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { size = s.product.max_size } - if (s.buy_order && so.max_slippage_pct) { + if (s.buy_order && so.max_slippage_pct != null) { var slippage = n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).multiply(100).value() - if (so.max_slippage_pct && slippage > so.max_slippage_pct) { + if (so.max_slippage_pct != null && slippage > so.max_slippage_pct) { var err = new Error('\nslippage protection') err.desc = 'refusing to buy at ' + fc(price) + ', slippage of ' + pct(slippage / 100) return cb(err) @@ -495,13 +495,13 @@ module.exports = function container (get, set, clear) { size = s.product.max_size } var sell_loss = s.last_buy_price ? (Number(price) - s.last_buy_price) / s.last_buy_price * -100 : null - if (so.max_sell_loss_pct && sell_loss > so.max_sell_loss_pct) { + if (so.max_sell_loss_pct != null && sell_loss > so.max_sell_loss_pct) { var err = new Error('\nloss protection') err.desc = 'refusing to sell at ' + fc(price) + ', sell loss of ' + pct(sell_loss / 100) return cb(err) } else { - if (s.sell_order && so.max_slippage_pct) { + if (s.sell_order && so.max_slippage_pct != null) { var slippage = n(s.sell_order.orig_price).subtract(price).divide(price).multiply(100).value() if (slippage > so.max_slippage_pct) { var err = new Error('\nslippage protection') From 65d8e64ecf4f821ab171694c7cb1661a235f56be Mon Sep 17 00:00:00 2001 From: Jay Nagpaul Date: Wed, 17 Jan 2018 05:05:45 -0500 Subject: [PATCH 042/236] Add blog post to Ubuntu 16.04 Step-By-Step (#1153) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7afbaaa20b..e395c0b295 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,9 @@ npm link ``` ### Ubuntu 16.04 Step-By-Step -https://youtu.be/BEhU55W9pBI +[Video](https://youtu.be/BEhU55W9pBI) +[Blog Post](https://jaynagpaul.com/algorithmic-crypto-trading?utm_source=zenbot) + ``` sudo apt-get update sudo apt-get upgrade -y From 80b6f7d951b931307fdbcbc1affd1652cd39c082 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 17 Jan 2018 10:38:31 +0000 Subject: [PATCH 043/236] Exchanges: update-products 194 --- extensions/exchanges/gdax/products.json | 74 ++++++++++++------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/extensions/exchanges/gdax/products.json b/extensions/exchanges/gdax/products.json index 36ded5fea8..0f943e7218 100644 --- a/extensions/exchanges/gdax/products.json +++ b/extensions/exchanges/gdax/products.json @@ -2,81 +2,81 @@ { "asset": "BCH", "currency": "USD", - "min_size": "0.0001", - "max_size": "250", + "min_size": "0.01", + "max_size": "350", "increment": "0.01", "label": "BCH/USD" }, { - "asset": "LTC", + "asset": "BTC", "currency": "EUR", - "min_size": "0.01", - "max_size": "1000000", + "min_size": "0.001", + "max_size": "50", "increment": "0.01", - "label": "LTC/EUR" + "label": "BTC/EUR" }, { - "asset": "LTC", + "asset": "BTC", + "currency": "GBP", + "min_size": "0.001", + "max_size": "20", + "increment": "0.01", + "label": "BTC/GBP" + }, + { + "asset": "BTC", "currency": "USD", - "min_size": "0.01", - "max_size": "1000000", + "min_size": "0.001", + "max_size": "70", "increment": "0.01", - "label": "LTC/USD" + "label": "BTC/USD" }, { - "asset": "LTC", + "asset": "ETH", "currency": "BTC", "min_size": "0.01", - "max_size": "1000000", + "max_size": "600", "increment": "0.00001", - "label": "LTC/BTC" + "label": "ETH/BTC" }, { "asset": "ETH", "currency": "EUR", - "min_size": "0.001", - "max_size": "5000", + "min_size": "0.01", + "max_size": "400", "increment": "0.01", "label": "ETH/EUR" }, { "asset": "ETH", "currency": "USD", - "min_size": "0.001", - "max_size": "5000", + "min_size": "0.01", + "max_size": "700", "increment": "0.01", "label": "ETH/USD" }, { - "asset": "ETH", + "asset": "LTC", "currency": "BTC", - "min_size": "0.001", - "max_size": "5000", + "min_size": "0.1", + "max_size": "2000", "increment": "0.00001", - "label": "ETH/BTC" - }, - { - "asset": "BTC", - "currency": "GBP", - "min_size": "0.0001", - "max_size": "250", - "increment": "0.01", - "label": "BTC/GBP" + "label": "LTC/BTC" }, { - "asset": "BTC", + "asset": "LTC", "currency": "EUR", - "min_size": "0.0001", - "max_size": "250", + "min_size": "0.1", + "max_size": "1000", "increment": "0.01", - "label": "BTC/EUR" + "label": "LTC/EUR" }, { - "asset": "BTC", + "asset": "LTC", "currency": "USD", - "min_size": "0.0001", - "max_size": "250", + "min_size": "0.1", + "max_size": "4000", "increment": "0.01", - "label": "BTC/USD" + "label": "LTC/USD" } ] \ No newline at end of file From 4e9838197d6f322009ecca3e363a97d7dcd462e3 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 17 Jan 2018 11:47:17 +0100 Subject: [PATCH 044/236] =?UTF-8?q?Update=20dependencies=20to=20enable=20G?= =?UTF-8?q?reenkeeper=20=F0=9F=8C=B4=20(#1157)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update dependencies * docs(readme): add Greenkeeper badge * Update README.md * Include package-lock updater --- .travis.yml | 3 +++ README.md | 2 +- package.json | 18 +++++++++--------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index fa2e0f9821..bcf8a1d40a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,9 @@ node_js: - '9' before_install: - npm install -g node-gyp + - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install -g greenkeeper-lockfile@1; fi +before_script: if [ "$TRAVIS_NODE_VERSION" = "9" ]; then greenkeeper-lockfile-update; fi +after_script: if [ "$TRAVIS_NODE_VERSION" = "9" ]; then greenkeeper-lockfile-upload; fi after_success: - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then /bin/sh scripts/cron.sh; fi env: diff --git a/README.md b/README.md index e395c0b295..cd6103672b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > “To follow the path, look to the master, follow the master, walk with the master, see through the master, become the master.” > – Zen Proverb -# Zenbot [![Build/Test Status](https://travis-ci.org/DeviaVir/zenbot.svg?branch=master)](https://travis-ci.org/DeviaVir/zenbot) +# Zenbot [![Build/Test Status](https://travis-ci.org/DeviaVir/zenbot.svg?branch=master)](https://travis-ci.org/DeviaVir/zenbot) [![Greenkeeper badge](https://badges.greenkeeper.io/DeviaVir/zenbot.svg)](https://greenkeeper.io/) ## Current Status diff --git a/package.json b/package.json index a45777548c..479cd7e149 100644 --- a/package.json +++ b/package.json @@ -51,25 +51,25 @@ "ip": "~1.1.5", "jasmine": "^2.8.0", "jquery": "^3.2.1", - "kraken-api": "^0.1.7", + "kraken-api": "^1.0.0", "mathjs": "^3.17.0", "micro-request": "^666.0.10", - "mime": "^1.4.0", + "mime": "^2.2.0", "minimist": "^1.2.0", "moment": "^2.18.1", - "mongodb": "^2.2.31", + "mongodb": "^3.0.1", "node-prowl": "^0.1.7", "node-sass": "^4.7.2", - "node-telegram-bot-api": "^0.29.0", - "node.bittrex.api": "^0.2.5", + "node-telegram-bot-api": "^0.30.0", + "node.bittrex.api": "^1.0.0", "number-abbreviate": "^2.0.0", "numbro": "highvelocityspace/numbro", "path": "^0.12.7", - "poloniex.js": "0.0.7", + "poloniex.js": "0.0.8", "popper.js": "^1.12.9", "postcss-loader": "^2.0.9", "progress": "^2.0.0", - "pushbullet": "2.0.0", + "pushbullet": "2.1.0", "pusher-js": "^4.1.0", "quadrigacx": "0.0.7", "random-port": "^0.1.0", @@ -91,7 +91,7 @@ "waypoints": "^4.0.1", "webpack": "^3.10.0", "wexnz": "^0.1.3", - "ws": "^3.2.0", + "ws": "^4.0.0", "zero-fill": "^2.2.3" }, "devDependencies": { @@ -100,7 +100,7 @@ "json2csv": "^3.11.5", "round-precision": "^1.0.0", "run-parallel-limit": "^1.0.3", - "shelljs": "^0.7.8", + "shelljs": "^0.8.0", "yargs": "^10.0.3" }, "engines": { From 59aa620af4c61115dba4370ccdc30e635cf6dcf4 Mon Sep 17 00:00:00 2001 From: kernelsndrs Date: Wed, 17 Jan 2018 12:36:46 -0500 Subject: [PATCH 045/236] change mongodb creation (#1162) --- boot.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/boot.js b/boot.js index 63973a008f..05b25f752c 100644 --- a/boot.js +++ b/boot.js @@ -39,7 +39,7 @@ module.exports = function (cb) { } var u = 'mongodb://' + authStr + c.mongo.host + ':' + c.mongo.port + '/' + c.mongo.db + '?' + (c.mongo.replicaSet ? '&replicaSet=' + c.mongo.replicaSet : '' ) + (authMechanism ? '&authMechanism=' + authMechanism : '' ) - require('mongodb').MongoClient.connect(u, function (err, db) { + require('mongodb').MongoClient.connect(u, function (err, client) { if (err) { zenbot.set('zenbot:db.mongo', null) console.error('WARNING: MongoDB Connection Error: ', err) @@ -47,6 +47,7 @@ module.exports = function (cb) { console.error('Attempted authentication string: ' + u); return withMongo() } + var db = client.db(c.mongo.db) zenbot.set('zenbot:db.mongo', db) withMongo() }) @@ -80,4 +81,4 @@ module.exports = function (cb) { return conf } -} \ No newline at end of file +} From 61f0e98b26d9595cd1c4178b6e502a650c7fd021 Mon Sep 17 00:00:00 2001 From: Shawn8901 Date: Wed, 17 Jan 2018 22:20:02 +0100 Subject: [PATCH 046/236] Added Momentum Indicator and Strategy (#1163) * Added Momentum Indicator and Strategy * Fixed indent --- extensions/strategies/momentum/_codemap.js | 6 +++ extensions/strategies/momentum/strategy.js | 52 ++++++++++++++++++++++ lib/_codemap.js | 3 +- lib/momentum.js | 9 ++++ 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 extensions/strategies/momentum/_codemap.js create mode 100644 extensions/strategies/momentum/strategy.js create mode 100644 lib/momentum.js diff --git a/extensions/strategies/momentum/_codemap.js b/extensions/strategies/momentum/_codemap.js new file mode 100644 index 0000000000..9e98533783 --- /dev/null +++ b/extensions/strategies/momentum/_codemap.js @@ -0,0 +1,6 @@ +module.exports = { + _ns: 'zenbot', + + 'strategies.momentum': require('./strategy'), + 'strategies.list[]': '#strategies.momentum' +} diff --git a/extensions/strategies/momentum/strategy.js b/extensions/strategies/momentum/strategy.js new file mode 100644 index 0000000000..2a27777b68 --- /dev/null +++ b/extensions/strategies/momentum/strategy.js @@ -0,0 +1,52 @@ +let z = require('zero-fill') + , n = require('numbro') + +module.exports = function container(get, set, clear) { + return { + name: 'Momentum', + description: 'MOM = Close(Period) - Close(Length)', + + getOptions: function () { + this.option('momentum_size', 'number of periods to look back for momentum', Number, 5) + }, + + calculate: function (s) { + if (s.in_preroll) { return } + get('lib.momentum')(s, 'mom0', s.options.momentum_size) + get('lib.momentum')(s, 'mom1', s.options.momentum_size) + }, + + onPeriod: function (s, cb) { + if (s.in_preroll) { + cb() + return + } + + if (s.period.mom0 > 0 && s.period.mom1 > 0) { + s.signal = 'buy' + } + if (s.period.mom0 < 0 && s.period.mom1 < 0) { + s.signal = 'sell' + } + cb() + }, + + onReport: function (s) { + var cols = [] + + if (s.period.mom0 != null) { + var color = s.period.mom0 < 0 ? 'red' : s.period.mom0 > 0 ? 'green' : 'grey' + cols.push(z(5, n(s.period.mom0).format('000'), ' ')[color]) + } else { + cols.push(' '.repeat(5)) + } + if (s.period.mom1 != null) { + var color = s.period.mom1 < 0 ? 'red' : s.period.mom1 > 0 ? 'green' : 'grey' + cols.push(z(5, n(s.period.mom1).format('000'), ' ')[color]) + } else { + cols.push(' '.repeat(5)) + } + return cols + } + } +} diff --git a/lib/_codemap.js b/lib/_codemap.js index a7dd8bc6ee..5a12baf75f 100644 --- a/lib/_codemap.js +++ b/lib/_codemap.js @@ -23,5 +23,6 @@ module.exports = { 'slow_stochastic': require('./slow_stochastic'), 'collection-service': require('./services/collection-service'), 'cmf': require('./cmf'), - 'bollinger': require('./bollinger') + 'bollinger': require('./bollinger'), + 'momentum': require('./momentum') } diff --git a/lib/momentum.js b/lib/momentum.js new file mode 100644 index 0000000000..9f96daf002 --- /dev/null +++ b/lib/momentum.js @@ -0,0 +1,9 @@ +module.exports = function container(get, set, clear) { + return function momentum(s, key, length) { + if (s.period == null || s.lookback == null || s.lookback.length < length) { + s.period[key] = 0 + } else { + s.period[key] = s.period.close - s.lookback[length - 1].close + } + } +} From 0da2793a651c3e71bd46ce90693ebfa748383934 Mon Sep 17 00:00:00 2001 From: Chase Date: Wed, 17 Jan 2018 22:55:13 +0100 Subject: [PATCH 047/236] Strategies: introducing a few more strats (#1166) * Bollinger Band Trend * WTO indicator/strat. Updated engine.js --- conf-sample.js | 4 - .../strategies/trend_bollinger/_codemap.js | 6 + .../strategies/trend_bollinger/strategy.js | 89 +++++++++ extensions/strategies/wavetrend/_codemap.js | 6 + extensions/strategies/wavetrend/strategy.js | 172 ++++++++++++++++++ lib/_codemap.js | 1 + lib/engine.js | 134 +++++++------- lib/wto.js | 40 ++++ 8 files changed, 381 insertions(+), 71 deletions(-) create mode 100644 extensions/strategies/trend_bollinger/_codemap.js create mode 100644 extensions/strategies/trend_bollinger/strategy.js create mode 100644 extensions/strategies/wavetrend/_codemap.js create mode 100644 extensions/strategies/wavetrend/strategy.js create mode 100644 lib/wto.js diff --git a/conf-sample.js b/conf-sample.js index 3cdf55f150..638a5a30eb 100644 --- a/conf-sample.js +++ b/conf-sample.js @@ -159,10 +159,6 @@ c.balance_snapshot_period = '15m' c.avg_slippage_pct = 0.045 // time to leave an order open, default to 1 day (this feature is not supported on all exchanges, currently: GDAX) c.cancel_after = 'day' -// bollinger period size -c.bollinger_size = 20 -// bollinger times of standard deviation between the upper band and the moving averages -c.bollinger_time = 2 // Notifiers: c.notifiers = {} diff --git a/extensions/strategies/trend_bollinger/_codemap.js b/extensions/strategies/trend_bollinger/_codemap.js new file mode 100644 index 0000000000..2ce7184998 --- /dev/null +++ b/extensions/strategies/trend_bollinger/_codemap.js @@ -0,0 +1,6 @@ +module.exports = { + _ns: 'zenbot', + + 'strategies.trend_bollinger': require('./strategy'), + 'strategies.list[]': '#strategies.trend_bollinger' +} diff --git a/extensions/strategies/trend_bollinger/strategy.js b/extensions/strategies/trend_bollinger/strategy.js new file mode 100644 index 0000000000..02ddb92605 --- /dev/null +++ b/extensions/strategies/trend_bollinger/strategy.js @@ -0,0 +1,89 @@ +var z = require('zero-fill') + , n = require('numbro') + +module.exports = function container (get, set, clear) { + return { + name: 'trend_bollinger', + description: 'Buy when (Signal ≤ Lower Bollinger Band && trend up) and sell when (Signal ≥ Upper Bollinger Band && trend down).', + + getOptions: function () { + this.option('period', 'period length, same as --period_length', String, '1h') + this.option('period_length', 'period length, same as --period', String, '1h') + this.option('min_periods', 'min. number of history periods', Number, 52) + this.option('bollinger_size', 'period size', Number, 20) + this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2) + this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0) + this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0) + }, + + calculate: function (s) { + // calculate Bollinger Bands + get('lib.bollinger')(s, 'bollinger', s.options.bollinger_size) + }, + + onPeriod: function (s, cb) { + if (!s.in_preroll && typeof s.period.oversold_rsi === 'number') { + if (s.oversold) { + s.oversold = false + s.trend = 'oversold' + s.signal = 'buy' + s.cancel_down = true + return cb() + } + } + + if (s.period.bollinger) { + if (s.period.bollinger.upper && s.period.bollinger.lower) { + s.signal = null // hold + let upperBound = s.period.bollinger.upper[s.period.bollinger.upper.length-1] + let lowerBound = s.period.bollinger.lower[s.period.bollinger.lower.length-1] + if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) { + s.last_hit_bollinger = 'upper' + } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) { + s.last_hit_bollinger = 'lower' + } else { + if (s.last_hit_bollinger === 'upper' && s.period.close < s.last_hit_close) { + s.trend = 'down' + } else if (s.last_hit_bollinger === 'lower' && s.period.close > s.last_hit_close) { + s.trend = 'up' + } + s.last_hit_bollinger = 'middle' + } + s.last_hit_close = s.period.close + + if (s.trend === 'down') { + s.signal = 'sell' + s.trend = null + } else if (s.trend === 'up') { + s.signal = 'buy' + s.trend = null + } + } + } + cb() + }, + + onReport: function (s) { + var cols = [] + if (s.period.bollinger) { + if (s.period.bollinger.upper && s.period.bollinger.lower) { + let upperBound = s.period.bollinger.upper[s.period.bollinger.upper.length-1] + let lowerBound = s.period.bollinger.lower[s.period.bollinger.lower.length-1] + var color = 'grey' + if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) { + color = 'green' + } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) { + color = 'red' + } + cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color]) + cols.push(z(8, n(lowerBound).format('00'), ' ').cyan) + cols.push(z(8, n(upperBound).format('00'), ' ').cyan) + } + } + else { + cols.push(' ') + } + return cols + } + } +} diff --git a/extensions/strategies/wavetrend/_codemap.js b/extensions/strategies/wavetrend/_codemap.js new file mode 100644 index 0000000000..955eec71db --- /dev/null +++ b/extensions/strategies/wavetrend/_codemap.js @@ -0,0 +1,6 @@ +module.exports = { + _ns: 'zenbot', + + 'strategies.wavetrend': require('./strategy'), + 'strategies.list[]': '#strategies.wavetrend' +} diff --git a/extensions/strategies/wavetrend/strategy.js b/extensions/strategies/wavetrend/strategy.js new file mode 100644 index 0000000000..1daff3daa5 --- /dev/null +++ b/extensions/strategies/wavetrend/strategy.js @@ -0,0 +1,172 @@ +var z = require('zero-fill') + , n = require('numbro') + +module.exports = function container (get, set, clear) { + return { + name: 'wavetrend', + description: 'Buy when (Signal < Oversold) and sell when (Signal > Overbought).', + + getOptions: function () { + this.option('period', 'period length, same as --period_length', String, '1h') + this.option('period_length', 'period length, same as --period', String, '1h') + this.option('min_periods', 'min. number of history periods', Number, 21) + this.option('wavetrend_channel_length', 'wavetrend channel length', Number, 10) + this.option('wavetrend_average_length', 'wavetrend average length', Number, 21) + this.option('wavetrend_overbought_1', 'wavetrend overbought limit 1', Number, 60) + this.option('wavetrend_overbought_2', 'wavetrend overbought limit 2', Number, 53) + this.option('wavetrend_oversold_1', 'wavetrend oversold limit 1', Number, -60) + this.option('wavetrend_oversold_2', 'wavetrend oversold limit 2', Number, -53) + this.option('wavetrend_trends', 'act on trends instead of limits', Boolean, false) + }, + + calculate: function (s) { + // calculate Wavetrend and EMA + get('lib.wto')(s, 'wto', s.options.wavetrend_channel_length) + get('lib.ema')(s, 'ema', s.options.wavetrend_channel_length) + }, + + onPeriod: function (s, cb) { + if (s.period.wto) { + s.signal = null // hold + let prev_wto = s.lookback[0].wto + let wto = s.period.wto + let prev_hcl3 = s.lookback[0].hcl3 + let hcl3 = s.period.hcl3 + let prev_ema = s.lookback[0].ema + let ema = s.period.ema + + if (!s.sell_signal_close) + s.sell_signal_close = 0 + if (!s.buy_signal_close) + s.buy_signal_close = 0 + if (!s.sell_pct_orig) + s.sell_pct_orig = s.sell_pct + if (!s.buy_pct_orig) + s.buy_pct_orig = s.sell_pct + + s.options.wavetrend_trends = (s.options.wavetrend_trends === 'true' || s.options.wavetrend_trends === true) + + if (s.options.wavetrend_trends === true) { + if (wto > prev_wto) { + if (s.trend === 'down' && s.buy_signal_close < s.period.close) { + //console.log('\n') + //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.buy_signal_close) + //console.log('trend reversal, we should sell') + s.signal = 'sell' + s.sell_signal_close = s.period.close + } + s.trend = 'up' + } + if (wto < prev_wto) { + if (s.trend === 'up' && s.sell_signal_close > s.period.close) { + //console.log('\n') + //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.sell_signal_close) + //console.log('trend reversal, we should buy') + s.signal = 'buy' + s.buy_signal_close = s.period.close + } + s.trend = 'down' + } + } + if (s.options.wavetrend_trends === false) { + if ((wto < s.options.wavetrend_overbought_2) && (prev_wto < s.options.wavetrend_overbought_2)) { + s.sell_pct = 99 + //console.log('\n') + //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema) + //console.log('trend reversal, we should sell') + if (prev_wto > wto && prev_hcl3 > hcl3 && prev_ema > ema) { + if (s.trend === 'down' && s.buy_signal_close < s.period.close) { + s.signal = 'sell' + s.sell_signal_close = s.period.close + } + s.trend = 'up' + } + } + else if ((wto > s.options.wavetrend_oversold_2) && (prev_wto > s.options.wavetrend_oversold_2)) { + s.buy_pct = 99 + //console.log('\n') + //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema) + //console.log('trend reversal, we should buy') + if (prev_wto < wto && prev_hcl3 < hcl3 && prev_ema < ema) { + if (s.trend === 'up' && s.sell_signal_close > s.period.close) { + s.signal = 'buy' + s.buy_signal_close = s.period.close + } + s.trend = 'down' + } + } + else if ((wto < s.options.wavetrend_overbought_1) && (prev_wto < s.options.wavetrend_overbought_1)) { + s.sell_pct = 5 + //console.log('\n') + //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema) + //console.log('trend reversal, we should sell') + if (prev_wto > wto && prev_hcl3 > hcl3 && prev_ema > ema) { + if (s.trend === 'down' && s.buy_signal_close < s.period.close) { + s.signal = 'sell' + s.sell_signal_close = s.period.close + } + s.trend = 'up' + } + } + else if ((wto > s.options.wavetrend_oversold_1) && (prev_wto > s.options.wavetrend_oversold_1)) { + s.buy_pct = 5 + //console.log('\n') + //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema) + //console.log('trend reversal, we should buy') + if (prev_wto < wto && prev_hcl3 < hcl3 && prev_ema < ema) { + if (s.trend === 'up' && s.sell_signal_close > s.period.close) { + s.signal = 'buy' + s.buy_signal_close = s.period.close + } + s.trend = 'down' + } + } + else { + s.sell_pct = 1 + s.buy_pct = 1 + if (wto > prev_wto) { + if (s.trend === 'down' && s.buy_signal_close < s.period.close) { + //console.log('\n') + //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.buy_signal_close) + //console.log('trend reversal, we should sell') + s.signal = 'sell' + s.sell_signal_close = s.period.close + } + s.trend = 'up' + } + if (wto < prev_wto) { + if (s.trend === 'up' && s.sell_signal_close > s.period.close) { + //console.log('\n') + //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.sell_signal_close) + //console.log('trend reversal, we should buy') + s.signal = 'buy' + s.buy_signal_close = s.period.close + } + s.trend = 'down' + } + } + } + } + cb() + }, + + onReport: function (s) { + var cols = [] + if (s.period.wto) { + var color = 'grey' + if (s.period.hcl3 > s.lookback[0].hcl3) { + color = 'green' + } else if (s.period.hcl3 < s.lookback[0].hcl3) { + color = 'red' + } + cols.push(z(8, n(s.period.hcl3).format('+00.0000'), ' ')[color]) + cols.push(z(8, n(s.period.wto).format('00'), ' ').cyan) + cols.push(z(8, n(s.lookback[0].wto).format('00'), ' ').cyan) + } + else { + cols.push(' ') + } + return cols + } + } +} diff --git a/lib/_codemap.js b/lib/_codemap.js index 5a12baf75f..a8966cadea 100644 --- a/lib/_codemap.js +++ b/lib/_codemap.js @@ -24,5 +24,6 @@ module.exports = { 'collection-service': require('./services/collection-service'), 'cmf': require('./cmf'), 'bollinger': require('./bollinger'), + 'wto': require('./wto'), 'momentum': require('./momentum') } diff --git a/lib/engine.js b/lib/engine.js index d69b406045..450bc4eefb 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -var tb = require('timebucket') +let tb = require('timebucket') , moment = require('moment') , z = require('zero-fill') , n = require('numbro') @@ -7,25 +7,25 @@ var tb = require('timebucket') , abbreviate = require('number-abbreviate') , readline = require('readline') -var nice_errors = new RegExp(/(slippage protection|loss protection)/) +let nice_errors = new RegExp(/(slippage protection|loss protection)/) module.exports = function container (get, set, clear) { - var c = get('conf') - var notify = get('lib.notify') + let c = get('conf') + let notify = get('lib.notify') return function (s) { - var so = s.options + let so = s.options s.exchange = get('exchanges.' + so.selector.exchange_id) s.product_id = so.selector.product_id s.asset = so.selector.asset s.currency = so.selector.currency s.asset_capital = 0 - + if (typeof so.period_length == 'undefined') so.period_length = so.period else so.period = so.period_length - - var products = s.exchange.getProducts() + + let products = s.exchange.getProducts() products.forEach(function (product) { if (product.asset === s.asset && product.currency === s.currency) { s.product = product @@ -47,7 +47,7 @@ module.exports = function container (get, set, clear) { function memDump () { if (!so.debug) return - var s_copy = JSON.parse(JSON.stringify(s)) + let s_copy = JSON.parse(JSON.stringify(s)) delete s_copy.options.mongo delete s_copy.lookback get('exchanges.list').forEach(function (x) { @@ -64,8 +64,8 @@ module.exports = function container (get, set, clear) { } } - var asset_col_width = 0 - var currency_col_width = 0 + let asset_col_width = 0 + let currency_col_width = 0 s.lookback = [] s.day_count = 1 s.my_trades = [] @@ -97,10 +97,10 @@ module.exports = function container (get, set, clear) { return !s.currency.match(/^BTC|ETH|XMR|USDT$/) } - var max_fc_width = 0 + let max_fc_width = 0 function fc (amt, omit_currency, color_trick, do_pad) { - var str - var fstr + let str + let fstr amt > 999 ? fstr = '0.00' : amt > 99 ? fstr = '0.000' : amt > 9 ? fstr = '0.0000' : @@ -127,7 +127,7 @@ module.exports = function container (get, set, clear) { } function initBuffer (trade) { - var d = tb(trade.time).resize(so.period_length) + let d = tb(trade.time).resize(so.period_length) s.period = { period_id: d.toString(), size: so.period_length, @@ -152,9 +152,9 @@ module.exports = function container (get, set, clear) { } function executeStop (do_sell_stop) { - var stop_signal + let stop_signal if (s.my_trades.length) { - var last_trade = s.my_trades[s.my_trades.length - 1] + let last_trade = s.my_trades[s.my_trades.length - 1] s.last_trade_worth = last_trade.type === 'buy' ? (s.period.close - last_trade.price) / last_trade.price : (last_trade.price - s.period.close) / last_trade.price if (!s.acted_on_stop) { if (last_trade.type === 'buy') { @@ -195,14 +195,14 @@ module.exports = function container (get, set, clear) { s.balance = balance s.exchange.getQuote({product_id: s.product_id}, function (err, quote) { if (err) return cb(err) - + if (!s.start_capital) { s.start_price = n(quote.ask).value() s.start_capital = n(s.balance.currency).add(n(s.balance.asset).multiply(quote.ask)).value() pushMessage('Balance ' + s.exchange.name.toUpperCase(), 'sync balance ' + s.start_capital + ' ' + s.currency + '\n') } - + s.asset_capital = n(s.balance.asset).multiply(quote.ask).value() cb() }) @@ -221,7 +221,7 @@ module.exports = function container (get, set, clear) { cancel_after: so.cancel_after || 'day' } } - var order = s[type + '_order'] + let order = s[type + '_order'] order.price = opts.price order.size = opts.size if (so.mode !== 'live') { @@ -233,7 +233,7 @@ module.exports = function container (get, set, clear) { order.product_id = s.product_id order.post_only = c.post_only msg('placing ' + type + ' order...') - var order_copy = JSON.parse(JSON.stringify(order)) + let order_copy = JSON.parse(JSON.stringify(order)) s.exchange[type](order_copy, function (err, api_order) { if (err) return cb(err) s.api_order = api_order @@ -253,7 +253,7 @@ module.exports = function container (get, set, clear) { msg('invalid price for ' + type + ', aborting') return cb(null, false) } - var err = new Error('\norder rejected') + err = new Error('\norder rejected') err.order = api_order return cb(err) } @@ -268,7 +268,7 @@ module.exports = function container (get, set, clear) { //console.log('\ncreated ' + order.status + ' ' + type + ' order: ' + fa(order.size) + ' at ' + fc(order.price) + ' (total ' + fc(n(order.price).multiply(order.size)) + ')\n') function cancelOrder (do_reorder) { msg('cancelling order') - s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function (err) { + s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function () { function checkHold () { s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) { if (api_order) { @@ -278,7 +278,7 @@ module.exports = function container (get, set, clear) { } } syncBalance(function () { - var on_hold + let on_hold if (type === 'buy') on_hold = n(s.balance.currency).subtract(s.balance.currency_hold || 0).value() < n(order.price).multiply(order.remaining_size).value() else on_hold = n(s.balance.asset).subtract(s.balance.asset_hold || 0).value() < n(order.remaining_size).value() if (on_hold) { @@ -315,7 +315,7 @@ module.exports = function container (get, set, clear) { cb(null, order) }) } - if (order.status === 'rejected' && (order.reject_reason === 'post only' || api_order.reject_reason === 'post only')) { + if (order.status === 'rejected' && (order.reject_reason === 'post only' || api_order.reject_reason === 'post only')) { msg('post-only ' + type + ' failed, re-ordering') return cb(null, null) } @@ -329,7 +329,7 @@ module.exports = function container (get, set, clear) { err.desc = 'could not execute ' + type + ': error fetching quote' return cb(err) } - var marked_price + let marked_price if (type === 'buy') { marked_price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format((so.currency_increment !== null) ? so.currency_increment : s.product.increment, Math.floor) if (n(order.price).value() < marked_price) { @@ -391,7 +391,7 @@ module.exports = function container (get, set, clear) { // 8. if not filled after timer, repeat process // 9. if filled, record order stats function executeSignal (signal, _cb, size, is_reorder, is_taker) { - var size, price + let price delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order'] s.last_signal = signal if (!is_reorder && s[signal + '_order']) { @@ -401,7 +401,7 @@ module.exports = function container (get, set, clear) { return } s.acted_on_trend = true - var cb = function (err, order) { + let cb = function (err, order) { if (!order) { if (signal === 'buy') delete s.buy_order else delete s.sell_order @@ -436,14 +436,14 @@ module.exports = function container (get, set, clear) { price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format(s.product.increment, Math.floor) if (!size) { if (so.mode === 'live' || so.mode === 'paper') { - var buy_pct = so.buy_pct + let buy_pct = so.buy_pct if(so.buy_max_amt){ // account for held assets as buy_max - var adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() - var buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() + let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() + let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() buy_pct = buy_max_as_pct }else{ // account for held assets as % - var held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() - var to_buy_pct = n(so.buy_pct).subtract(held_pct).value() + let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() + let to_buy_pct = n(so.buy_pct).subtract(held_pct).value() buy_pct = to_buy_pct } if (so.order_type === 'maker') { @@ -461,9 +461,9 @@ module.exports = function container (get, set, clear) { size = s.product.max_size } if (s.buy_order && so.max_slippage_pct != null) { - var slippage = n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).multiply(100).value() + let slippage = n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).multiply(100).value() if (so.max_slippage_pct != null && slippage > so.max_slippage_pct) { - var err = new Error('\nslippage protection') + let err = new Error('\nslippage protection') err.desc = 'refusing to buy at ' + fc(price) + ', slippage of ' + pct(slippage / 100) return cb(err) } @@ -494,17 +494,17 @@ module.exports = function container (get, set, clear) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { size = s.product.max_size } - var sell_loss = s.last_buy_price ? (Number(price) - s.last_buy_price) / s.last_buy_price * -100 : null + let sell_loss = s.last_buy_price ? (Number(price) - s.last_buy_price) / s.last_buy_price * -100 : null if (so.max_sell_loss_pct != null && sell_loss > so.max_sell_loss_pct) { - var err = new Error('\nloss protection') + let err = new Error('\nloss protection') err.desc = 'refusing to sell at ' + fc(price) + ', sell loss of ' + pct(sell_loss / 100) return cb(err) } else { if (s.sell_order && so.max_slippage_pct != null) { - var slippage = n(s.sell_order.orig_price).subtract(price).divide(price).multiply(100).value() + let slippage = n(s.sell_order.orig_price).subtract(price).divide(price).multiply(100).value() if (slippage > so.max_slippage_pct) { - var err = new Error('\nslippage protection') + let err = new Error('\nslippage protection') err.desc = 'refusing to sell at ' + fc(price) + ', slippage of ' + pct(slippage / 100) return cb(err) } @@ -553,7 +553,7 @@ module.exports = function container (get, set, clear) { } // order timed out and needs adjusting msg(signal + ' order timed out, adjusting price') - var remaining_size = s[signal + '_order'] ? s[signal + '_order'].remaining_size : size + let remaining_size = s[signal + '_order'] ? s[signal + '_order'].remaining_size : size if (remaining_size !== size) { msg('remaining size: ' + remaining_size) } @@ -565,7 +565,7 @@ module.exports = function container (get, set, clear) { } function executeOrder (trade) { - var price, fee = 0 + let price, fee = 0 if (!so.order_type) { so.order_type = 'maker' } @@ -575,16 +575,16 @@ module.exports = function container (get, set, clear) { price = s.buy_order.price if (so.mode !== 'live') { s.balance.asset = n(s.balance.asset).add(s.buy_order.size).format('0.00000000') - var total = n(price).multiply(s.buy_order.size) + let total = n(price).multiply(s.buy_order.size) s.balance.currency = n(s.balance.currency).subtract(total).format('0.00000000') if (so.order_type === 'maker') { + price = n(s.buy_order.price).add(n(s.buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.makerFee) { fee = n(s.buy_order.size).multiply(s.exchange.makerFee / 100).value() s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') } } if (so.order_type === 'taker') { - price = n(s.buy_order.price).add(n(s.buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.takerFee) { fee = n(s.buy_order.size).multiply(s.exchange.takerFee / 100).value() s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') @@ -592,7 +592,7 @@ module.exports = function container (get, set, clear) { } } s.action = 'bought' - var my_trade = { + let my_trade = { order_id: trade.order_id, time: trade.time, execution_time: trade.time - s.buy_order.orig_time, @@ -606,7 +606,7 @@ module.exports = function container (get, set, clear) { } s.my_trades.push(my_trade) if (so.stats) { - order_complete = '\nbuy order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.buy_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' + let order_complete = '\nbuy order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.buy_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' console.log((order_complete).cyan) pushMessage('Buy ' + s.exchange.name.toUpperCase(), order_complete) } @@ -626,16 +626,16 @@ module.exports = function container (get, set, clear) { price = s.sell_order.price if (so.mode !== 'live') { s.balance.asset = n(s.balance.asset).subtract(s.sell_order.size).value() - var total = n(price).multiply(s.sell_order.size) + let total = n(price).multiply(s.sell_order.size) s.balance.currency = n(s.balance.currency).add(total).value() if (so.order_type === 'maker') { + price = n(s.sell_order.price).subtract(n(s.sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.makerFee) { fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') } } if (so.order_type === 'taker') { - price = n(s.sell_order.price).subtract(n(s.sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.takerFee) { fee = n(s.sell_order.size).multiply(s.exchange.takerFee / 100).multiply(price).value() s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') @@ -643,7 +643,7 @@ module.exports = function container (get, set, clear) { } } s.action = 'sold' - var my_trade = { + let my_trade = { order_id: trade.order_id, time: trade.time, execution_time: trade.time - s.sell_order.orig_time, @@ -656,7 +656,7 @@ module.exports = function container (get, set, clear) { } s.my_trades.push(my_trade) if (so.stats) { - order_complete = '\nsell order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.sell_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' + let order_complete = '\nsell order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.sell_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' console.log((order_complete).cyan) pushMessage('Sell ' + s.exchange.name.toUpperCase(), order_complete) } @@ -707,22 +707,22 @@ module.exports = function container (get, set, clear) { process.stdout.write(moment(is_progress ? s.period.close_time : tb(s.period.time).resize(so.period_length).add(1).toMilliseconds()).format('YYYY-MM-DD HH:mm:ss')[is_progress && !blink_off ? 'bgBlue' : 'grey']) process.stdout.write(' ' + fc(s.period.close, true, true, true) + ' ' + s.product_id.grey) if (s.lookback[0]) { - var diff = (s.period.close - s.lookback[0].close) / s.lookback[0].close + let diff = (s.period.close - s.lookback[0].close) / s.lookback[0].close process.stdout.write(z(8, pct(diff), ' ')[diff >= 0 ? 'green' : 'red']) } else { process.stdout.write(z(9, '', ' ')) } - var volume_display = s.period.volume > 99999 ? abbreviate(s.period.volume, 2) : n(s.period.volume).format('0') + let volume_display = s.period.volume > 99999 ? abbreviate(s.period.volume, 2) : n(s.period.volume).format('0') volume_display = z(8, volume_display, ' ') if (volume_display.indexOf('.') === -1) volume_display = ' ' + volume_display process.stdout.write(volume_display[is_progress && blink_off ? 'cyan' : 'grey']) get('lib.rsi')(s, 'rsi', so.rsi_periods) if (typeof s.period.rsi === 'number') { - var half = 5 - var bar = '' - var stars = 0 - var rsi = s.period.rsi.toString() + let half = 5 + let bar = '' + let stars = 0 + let rsi = s.period.rsi.toString() if (s.period.rsi >= 50) { stars = Math.min(Math.round(((s.period.rsi - 50) / 50) * half) + 1, half) bar += ' '.repeat(half - (rsi < 100 ? 3 : 4)) @@ -744,7 +744,7 @@ module.exports = function container (get, set, clear) { process.stdout.write(' '.repeat(11)) } if (s.strategy.onReport) { - var cols = s.strategy.onReport.call(s.ctx, s) + let cols = s.strategy.onReport.call(s.ctx, s) cols.forEach(function (col) { process.stdout.write(col) }) @@ -767,20 +767,20 @@ module.exports = function container (get, set, clear) { else { process.stdout.write(z(9, '', ' ')) } - var orig_capital = s.orig_capital || s.start_capital - var orig_price = s.orig_price || s.start_price + let orig_capital = s.orig_capital || s.start_capital + let orig_price = s.orig_price || s.start_price if (orig_capital) { - var asset_col = n(s.balance.asset).format(s.asset === 'BTC' ? '0.00000' : '0.00000000') + ' ' + s.asset + let asset_col = n(s.balance.asset).format(s.asset === 'BTC' ? '0.00000' : '0.00000000') + ' ' + s.asset asset_col_width = Math.max(asset_col.length + 1, asset_col_width) process.stdout.write(z(asset_col_width, asset_col, ' ').white) - var currency_col = n(s.balance.currency).format(isFiat() ? '0.00' : '0.00000000') + ' ' + s.currency + let currency_col = n(s.balance.currency).format(isFiat() ? '0.00' : '0.00000000') + ' ' + s.currency currency_col_width = Math.max(currency_col.length + 1, currency_col_width) process.stdout.write(z(currency_col_width, currency_col, ' ').yellow) - var consolidated = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).value() - var profit = (consolidated - orig_capital) / orig_capital + let consolidated = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).value() + let profit = (consolidated - orig_capital) / orig_capital process.stdout.write(z(8, pct(profit), ' ')[profit >= 0 ? 'green' : 'red']) - var buy_hold = s.period.close * (orig_capital / orig_price) - var over_buy_hold_pct = (consolidated - buy_hold) / buy_hold + let buy_hold = s.period.close * (orig_capital / orig_price) + let over_buy_hold_pct = (consolidated - buy_hold) / buy_hold process.stdout.write(z(8, pct(over_buy_hold_pct), ' ')[over_buy_hold_pct >= 0 ? 'green' : 'red']) } if (!is_progress) { @@ -811,13 +811,13 @@ module.exports = function container (get, set, clear) { if (a.time > b.time) return 1 return 0 }) - var tasks = trades.map(function (trade) { + let tasks = trades.map(function (trade) { return function (done) { if (s.period && trade.time < s.period.time) { return done() } - var period_id = tb(trade.time).resize(so.period_length).toString() - var day = tb(trade.time).resize('1d') + let period_id = tb(trade.time).resize(so.period_length).toString() + let day = tb(trade.time).resize('1d') if (s.last_day && s.last_day.toString() && day.toString() !== s.last_day.toString()) { s.day_count++ } diff --git a/lib/wto.js b/lib/wto.js new file mode 100644 index 0000000000..58afafc25a --- /dev/null +++ b/lib/wto.js @@ -0,0 +1,40 @@ +module.exports = function container (get, set, clear) { + return function wto (s, key, length, source_key) { + if (!source_key) source_key = 'close' + + let ema = function(x, y, p) { + let alpha = (2 / (y + 1) ) + let ema = (x - p) * alpha + p + return ema + } + + if (!s.period['wto_d']) s.period['wto_d'] = 0 + if (!s.period['wto_esa']) s.period['wto_esa'] = 0 + if (!s.period[key]) s.period[key] = 0 + + if (s.lookback.length >= length) { + let ap = (s.period['close'] + s.period['high'] + s.period['low']) / 3 + s.period['hcl3'] = ap + + var prev_esa = s.lookback[0]['wto_esa'] + if (typeof prev_esa !== 'undefined' && ! isNaN(prev_esa)) { + let esa = ema(ap, length, prev_esa) + s.period['wto_esa'] = esa + + var prev_d = s.lookback[0]['wto_d'] + if (typeof prev_d !== 'undefined' && ! isNaN(prev_d)) { + let d = ema(Math.abs(ap - esa), length, prev_d) + s.period['wto_d'] = d + + let ci = (ap - esa) / (0.015 * d) + + var prev_tci = s.lookback[0][key] + if (typeof prev_tci !== 'undefined' && ! isNaN(prev_tci)) { + let tci = ema(ci, s.options.wavetrend_average_length, prev_tci) + s.period[key] = tci + } + } + } + } + } +} From 927f519e6ab2205e20b6efaf09e3862d05f0ef6a Mon Sep 17 00:00:00 2001 From: Chase Date: Thu, 18 Jan 2018 01:25:21 +0100 Subject: [PATCH 048/236] Momentum: fix strat name (#1167) --- commands/sim.js | 8 +- extensions/strategies/momentum/strategy.js | 8 +- lib/momentum.js | 12 +- package-lock.json | 2388 +++++++++++++------- 4 files changed, 1637 insertions(+), 779 deletions(-) diff --git a/commands/sim.js b/commands/sim.js index 24ce6c620c..2f96ed0fab 100644 --- a/commands/sim.js +++ b/commands/sim.js @@ -50,13 +50,13 @@ module.exports = function container (get, set, clear) { }) if (so.start) { - so.start = moment(so.start, "YYYYMMDDhhmm").valueOf() + so.start = moment(so.start, 'YYYYMMDDhhmm').valueOf() if (so.days && !so.end) { so.end = tb(so.start).resize('1d').add(so.days).toMilliseconds() } } if (so.end) { - so.end = moment(so.end, "YYYYMMDDhhmm").valueOf() + so.end = moment(so.end, 'YYYYMMDDhhmm').valueOf() if (so.days && !so.start) { so.start = tb(so.end).resize('1d').subtract(so.days).toMilliseconds() } @@ -66,7 +66,7 @@ module.exports = function container (get, set, clear) { so.start = d.subtract(so.days).toMilliseconds() } so.days = moment(so.end).diff(moment(so.start), 'days') - + so.stats = !!cmd.enable_stats so.show_options = !cmd.disable_options so.verbose = !!cmd.verbose @@ -219,7 +219,7 @@ module.exports = function container (get, set, clear) { } engine.update(trades, function (err) { if (err) throw err - if (reversing) { + if (reversing) { cursor = trades[trades.length - 1].orig_time } else { diff --git a/extensions/strategies/momentum/strategy.js b/extensions/strategies/momentum/strategy.js index 2a27777b68..c9f3427a6a 100644 --- a/extensions/strategies/momentum/strategy.js +++ b/extensions/strategies/momentum/strategy.js @@ -3,7 +3,7 @@ let z = require('zero-fill') module.exports = function container(get, set, clear) { return { - name: 'Momentum', + name: 'momentum', description: 'MOM = Close(Period) - Close(Length)', getOptions: function () { @@ -32,16 +32,16 @@ module.exports = function container(get, set, clear) { }, onReport: function (s) { - var cols = [] + let cols = [], color if (s.period.mom0 != null) { - var color = s.period.mom0 < 0 ? 'red' : s.period.mom0 > 0 ? 'green' : 'grey' + color = s.period.mom0 < 0 ? 'red' : s.period.mom0 > 0 ? 'green' : 'grey' cols.push(z(5, n(s.period.mom0).format('000'), ' ')[color]) } else { cols.push(' '.repeat(5)) } if (s.period.mom1 != null) { - var color = s.period.mom1 < 0 ? 'red' : s.period.mom1 > 0 ? 'green' : 'grey' + color = s.period.mom1 < 0 ? 'red' : s.period.mom1 > 0 ? 'green' : 'grey' cols.push(z(5, n(s.period.mom1).format('000'), ' ')[color]) } else { cols.push(' '.repeat(5)) diff --git a/lib/momentum.js b/lib/momentum.js index 9f96daf002..0555b6744e 100644 --- a/lib/momentum.js +++ b/lib/momentum.js @@ -1,9 +1,9 @@ module.exports = function container(get, set, clear) { - return function momentum(s, key, length) { - if (s.period == null || s.lookback == null || s.lookback.length < length) { - s.period[key] = 0 - } else { - s.period[key] = s.period.close - s.lookback[length - 1].close - } + return function momentum(s, key, length) { + if (s.period == null || s.lookback == null || s.lookback.length < length) { + s.period[key] = 0 + } else { + s.period[key] = s.period.close - s.lookback[length - 1].close } + } } diff --git a/package-lock.json b/package-lock.json index e4743a0d5d..6b568e6980 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,15 +68,6 @@ "ltx": "2.7.1" } }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1049,6 +1040,23 @@ "request": "2.76.0", "request-promise": "4.2.2", "ws": "3.3.3" + }, + "dependencies": { + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + } } }, "bitstamp": { @@ -1249,11 +1257,6 @@ "isarray": "1.0.0" } }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -1529,10 +1532,25 @@ "safe-buffer": "5.1.1" } }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } } } }, @@ -1699,6 +1717,14 @@ "shallow-clone": "0.1.2" } }, + "cloudscraper": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cloudscraper/-/cloudscraper-1.4.1.tgz", + "integrity": "sha1-8rRDHzFyhtgZsTVyZso0Y7ES68o=", + "requires": { + "request": "2.76.0" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2151,6 +2177,14 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-9.0.1.tgz", "integrity": "sha512-2h0iKbJwnImBk4TGk7CG1xadoA0g3LDPlQhQzbZ221zvG0p2YVUedbKIPsOZXKZGx6YmZMJKYOalpCMxSdDqTQ==" }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "1.0.0" + } + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2260,10 +2294,10 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "ecc-jsbn": { "version": "0.1.1", @@ -2330,9 +2364,9 @@ } }, "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } @@ -2418,11 +2452,6 @@ "event-emitter": "0.3.5" } }, - "es6-promise": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", - "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" - }, "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", @@ -2688,20 +2717,6 @@ "es5-ext": "0.10.37" } }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", - "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" - } - }, "eventemitter3": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", @@ -3087,11 +3102,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3109,12 +3119,14 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "optional": true, "requires": { "co": "4.6.0", @@ -3123,16 +3135,19 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -3141,36 +3156,43 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -3178,21 +3200,24 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -3200,51 +3225,61 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3252,14 +3287,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "optional": true, "requires": { "ms": "2.0.0" @@ -3267,26 +3304,31 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -3294,21 +3336,25 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "optional": true, "requires": { "asynckit": "0.4.0", @@ -3318,11 +3364,13 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -3332,7 +3380,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "optional": true, "requires": { "fstream": "1.0.11", @@ -3342,7 +3391,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.1.1", @@ -3357,7 +3407,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3365,14 +3416,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3384,16 +3437,19 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "optional": true, "requires": { "ajv": "4.11.8", @@ -3402,12 +3458,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -3417,11 +3475,13 @@ }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "optional": true, "requires": { "assert-plus": "0.2.0", @@ -3431,7 +3491,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3439,37 +3500,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -3477,17 +3545,20 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "optional": true, "requires": { "jsonify": "0.0.0" @@ -3495,17 +3566,20 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "optional": true, "requires": { "assert-plus": "1.0.0", @@ -3516,48 +3590,56 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "optional": true, "requires": { "detect-libc": "1.0.2", @@ -3575,7 +3657,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.0", @@ -3584,7 +3667,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -3595,38 +3679,45 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -3635,30 +3726,36 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, "requires": { "deep-extend": "0.4.2", @@ -3669,14 +3766,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -3689,7 +3788,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -3718,40 +3818,47 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "optional": true, "requires": { "asn1": "0.2.3", @@ -3767,14 +3874,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3783,31 +3892,36 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -3816,7 +3930,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "optional": true, "requires": { "debug": "2.6.8", @@ -3831,7 +3946,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "optional": true, "requires": { "punycode": "1.4.1" @@ -3839,7 +3955,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -3847,26 +3964,31 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "optional": true, "requires": { "extsprintf": "1.0.2" @@ -3874,7 +3996,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -3882,7 +4005,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, @@ -4192,6 +4316,27 @@ "minimatch": "3.0.4" } }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -4232,6 +4377,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, + "has-symbol-support-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", + "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "1.4.1" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -4747,6 +4905,11 @@ "kind-of": "3.2.2" } }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -4819,6 +4982,11 @@ "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", "dev": true }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -4872,6 +5040,15 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", @@ -4995,16 +5172,16 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, + "jsonic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/jsonic/-/jsonic-0.3.0.tgz", + "integrity": "sha1-tUXalfVDkuWLPdoF9fLjd6bJ0b8=" + }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -5037,12 +5214,19 @@ } }, "kraken-api": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/kraken-api/-/kraken-api-0.1.7.tgz", - "integrity": "sha1-t1JDXmkXunHZ5zSl/tP6WWFiLeg=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/kraken-api/-/kraken-api-1.0.0.tgz", + "integrity": "sha512-JAfLh9Laks+2KZTM/WW+bpy+iZfImUok0aeLBOb0ehwTEGvcBWWAXlmkthhJXfUTSoOIHuoqqToC94+iBeBBAg==", "requires": { - "querystring": "0.2.0", - "request": "2.76.0" + "got": "7.1.0", + "qs": "6.5.1" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } } }, "lazy-cache": { @@ -5260,6 +5444,11 @@ "signal-exit": "3.0.2" } }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + }, "lru-cache": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", @@ -5300,11 +5489,6 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" - }, "math-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/math-array/-/math-array-1.1.2.tgz", @@ -5422,9 +5606,9 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", + "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" }, "mime-db": { "version": "1.30.0", @@ -5444,6 +5628,11 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -5504,35 +5693,17 @@ "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" }, "mongodb": { - "version": "2.2.34", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz", - "integrity": "sha1-o09Zu+thdUrsQy3nLD/iFSakTBo=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.1.tgz", + "integrity": "sha1-J47oAGJX7CJ5hZSmJZVGgl1t4bI=", "requires": { - "es6-promise": "3.2.1", - "mongodb-core": "2.1.18", - "readable-stream": "2.2.7" - }, - "dependencies": { - "readable-stream": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - } + "mongodb-core": "3.0.1" } }, "mongodb-core": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", - "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.1.tgz", + "integrity": "sha1-/23Dbulv9ZaVPYCmhA1nMbyS7+0=", "requires": { "bson": "1.0.4", "require_optional": "1.0.1" @@ -5579,6 +5750,11 @@ "is-stream": "1.1.0" } }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + }, "node-gyp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", @@ -5719,27 +5895,176 @@ } }, "node-telegram-bot-api": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.29.0.tgz", - "integrity": "sha512-WZBp5ccr0zMLRNtZ3avrevGpj05mrN59lDmxgpltls0bl3W/wqyNalNGKatTZEJ1cY0pctgd9FqKyCzWr36HcQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.30.0.tgz", + "integrity": "sha512-+EeM+fe3Xt81KIPqN3L6s6eK+FK4QaqyDcwCwkY/jqsleERXwwjGlVbf4lJCOZ0uJuF5PfqTmvVNtua7AZfBXg==", "requires": { "array.prototype.findindex": "2.0.2", "bl": "1.2.1", "bluebird": "3.5.1", - "debug": "2.6.9", + "debug": "3.1.0", "depd": "1.1.1", - "eventemitter3": "2.0.3", + "eventemitter3": "3.0.0", "file-type": "3.9.0", "mime": "1.6.0", - "pump": "1.0.3", - "request": "2.76.0", + "pump": "2.0.0", + "request": "2.83.0", "request-promise": "4.2.2" }, "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, "eventemitter3": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", - "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.0.tgz", + "integrity": "sha512-62TxCtz4m2LRaOERVEvLJJ4A6rsg8lC9Xm+FLg2y/1fB/v4ZZ9JCOn+/Ppl5KkH6sRih6bhix724PVanmXYZJQ==" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "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", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } } } }, @@ -5789,13 +6114,15 @@ "integrity": "sha1-kazkOsJrE4hhsr5HjfnfGdYdxcM=" }, "node.bittrex.api": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/node.bittrex.api/-/node.bittrex.api-0.2.5.tgz", - "integrity": "sha1-rtkKEr/U9kgYQbScXA+e7MC5RtE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node.bittrex.api/-/node.bittrex.api-1.0.0.tgz", + "integrity": "sha1-hN/4wIMWAW1BB6zazZVbsI/74/c=", "requires": { - "JSONStream": "1.3.2", - "event-stream": "3.3.4", - "request": "2.76.0" + "cloudscraper": "1.4.1", + "jsonic": "0.3.0", + "object-assign": "4.1.1", + "request": "2.76.0", + "signalr-client": "0.0.17" } }, "nonce": { @@ -5876,29 +6203,34 @@ "dependencies": { "ansi-align": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "2.1.1" } }, "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { "color-convert": "1.9.0" } }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "boxen": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.2.tgz", + "integrity": "sha1-Px1AMsMP/qnUsCwyLq8up0HcvOU=", "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", @@ -5911,7 +6243,8 @@ }, "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -5919,23 +6252,28 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "builtins": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "capture-stack-trace": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" }, "chalk": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", @@ -5944,11 +6282,13 @@ }, "cli-boxes": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1", @@ -5957,18 +6297,21 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -5977,7 +6320,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } @@ -5986,26 +6330,31 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "1.9.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "bundled": true + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "3.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", "requires": { "dot-prop": "4.2.0", "graceful-fs": "4.1.11", @@ -6017,14 +6366,16 @@ }, "create-error-class": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "1.0.0" } }, "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", @@ -6033,45 +6384,54 @@ }, "crypto-random-string": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, "decamelize": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "dot-prop": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "requires": { "is-obj": "1.0.1" } }, "dotenv": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" }, "duplexer3": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6084,26 +6444,31 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "2.0.0" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6115,14 +6480,16 @@ }, "global-dirs": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz", + "integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=", "requires": { "ini": "1.3.4" } }, "got": { "version": "6.7.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "3.0.2", "duplexer3": "0.1.4", @@ -6139,27 +6506,33 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "has-flag": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "hosted-git-info": { "version": "2.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "import-lazy": { "version": "2.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6167,34 +6540,41 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, "invert-kv": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { "builtin-modules": "1.1.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-installed-globally": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "0.1.0", "is-path-inside": "1.0.0" @@ -6202,52 +6582,62 @@ }, "is-npm": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-obj": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-path-inside": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "requires": { "path-is-inside": "1.0.2" } }, "is-redirect": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-retry-allowed": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "isexe": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "latest-version": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "requires": { "package-json": "4.0.1" } }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "1.0.0" } }, "libnpx": { "version": "9.7.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-9.7.1.tgz", + "integrity": "sha512-OktT775uhfL93SoUfERj4ilM3D7c0hyUyALX9oJ2D/yO4Msm5hbkOKHcrOVHXRcEX9ytstviYQAEygFIiDj2bQ==", "requires": { "dotenv": "4.0.0", "npm-package-arg": "5.1.2", @@ -6261,7 +6651,8 @@ }, "load-json-file": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -6271,7 +6662,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -6279,11 +6671,13 @@ }, "lowercase-keys": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6291,36 +6685,42 @@ }, "make-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", "requires": { "pify": "2.3.0" } }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "1.1.0" } }, "mimic-fn": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" } }, "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -6330,7 +6730,8 @@ }, "npm": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm/-/npm-5.1.0.tgz", + "integrity": "sha512-pt5ClxEmY/dLpb60SmGQQBKi3nB6Ljx1FXmpoCUdAULlGqGVn2uCyXxPCWFbcuHGthT7qGiaGa1wOfs/UjGYMw==", "requires": { "JSONStream": "1.3.1", "abbrev": "1.1.0", @@ -6432,7 +6833,8 @@ "dependencies": { "JSONStream": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", "requires": { "jsonparse": "1.3.1", "through": "2.3.8" @@ -6440,45 +6842,55 @@ "dependencies": { "jsonparse": { "version": "1.3.1", - "bundled": true + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "through": { "version": "2.3.8", - "bundled": true + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" } } }, "abbrev": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" }, "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansicolors": { "version": "0.3.2", - "bundled": true + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, "ansistyles": { "version": "0.1.3", - "bundled": true + "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", + "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" }, "aproba": { "version": "1.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==" }, "archy": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "bluebird": { "version": "3.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" }, "cacache": { "version": "9.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/cacache/-/cacache-9.2.9.tgz", + "integrity": "sha512-ghg1j5OyTJ6qsrqU++dN23QiTDxb5AZCFGsF3oB+v9v/gY+F4X8L/0gdQMEjd+8Ot3D29M2etX5PKozHRn2JQw==", "requires": { "bluebird": "3.5.0", "chownr": "1.0.1", @@ -6497,7 +6909,8 @@ "dependencies": { "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6505,31 +6918,37 @@ "dependencies": { "pseudomap": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "yallist": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, "y18n": { "version": "3.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" } } }, "call-limit": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", + "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=" }, "chownr": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "cmd-shim": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", + "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "requires": { "graceful-fs": "4.1.11", "mkdirp": "0.5.1" @@ -6537,7 +6956,8 @@ }, "columnify": { "version": "1.5.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "requires": { "strip-ansi": "3.0.1", "wcwidth": "1.0.1" @@ -6545,34 +6965,39 @@ "dependencies": { "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "wcwidth": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "1.0.3" }, "dependencies": { "defaults": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "1.0.2" }, "dependencies": { "clone": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" } } } @@ -6582,7 +7007,8 @@ }, "config-chain": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", + "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "requires": { "ini": "1.3.4", "proto-list": "1.2.4" @@ -6590,21 +7016,25 @@ "dependencies": { "proto-list": { "version": "1.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" } } }, "debuglog": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" }, "detect-indent": { "version": "5.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" }, "dezalgo": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "requires": { "asap": "2.0.5", "wrappy": "1.0.2" @@ -6612,17 +7042,20 @@ "dependencies": { "asap": { "version": "2.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", + "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=" } } }, "editor": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", + "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" }, "fs-vacuum": { "version": "1.2.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", + "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "requires": { "graceful-fs": "4.1.11", "path-is-inside": "1.0.2", @@ -6631,7 +7064,8 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { "graceful-fs": "4.1.11", "iferr": "0.1.5", @@ -6641,7 +7075,8 @@ }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -6651,7 +7086,8 @@ }, "fstream-npm": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.2.1.tgz", + "integrity": "sha512-iBHpm/LmD1qw0TlHMAqVd9rwdU6M+EHRUnPkXpRi5G/Hf0FIFH+oZFryodAU2MFNfGRh/CzhUFlMKV3pdeOTDw==", "requires": { "fstream-ignore": "1.0.5", "inherits": "2.0.3" @@ -6659,7 +7095,8 @@ "dependencies": { "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "requires": { "fstream": "1.0.11", "inherits": "2.0.3", @@ -6668,14 +7105,16 @@ "dependencies": { "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6683,11 +7122,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -6699,7 +7140,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6711,18 +7153,21 @@ "dependencies": { "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6730,11 +7175,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -6742,33 +7189,40 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" } } }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "has-unicode": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hosted-git-info": { "version": "2.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "iferr": { "version": "0.1.5", - "bundled": true + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6776,15 +7230,18 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, "init-package-json": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.1.tgz", + "integrity": "sha1-zYc6FneWvvuZYSsodioLY5P9j2o=", "requires": { "glob": "7.1.2", "npm-package-arg": "5.1.2", @@ -6798,7 +7255,8 @@ "dependencies": { "promzard": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { "read": "1.0.7" } @@ -6807,19 +7265,23 @@ }, "lazy-property": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", + "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=" }, "lockfile": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz", + "integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=" }, "lodash._baseindexof": { "version": "3.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", + "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=" }, "lodash._baseuniq": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "requires": { "lodash._createset": "4.0.3", "lodash._root": "3.0.1" @@ -6827,56 +7289,68 @@ "dependencies": { "lodash._createset": { "version": "4.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" }, "lodash._root": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" } } }, "lodash._bindcallback": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" }, "lodash._cacheindexof": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", + "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=" }, "lodash._createcache": { "version": "3.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", + "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "requires": { "lodash._getnative": "3.9.1" } }, "lodash._getnative": { "version": "3.9.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" }, "lodash.clonedeep": { "version": "4.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, "lodash.restparam": { "version": "3.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" }, "lodash.union": { "version": "4.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, "lodash.uniq": { "version": "4.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "lodash.without": { "version": "4.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", + "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=" }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6884,17 +7358,20 @@ "dependencies": { "pseudomap": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "yallist": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, "mississippi": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz", + "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=", "requires": { "concat-stream": "1.6.0", "duplexify": "3.5.0", @@ -6910,7 +7387,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.2", @@ -6919,13 +7397,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "duplexify": { "version": "3.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", + "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", "requires": { "end-of-stream": "1.0.0", "inherits": "2.0.3", @@ -6935,14 +7415,16 @@ "dependencies": { "end-of-stream": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", + "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", "requires": { "once": "1.3.3" }, "dependencies": { "once": { "version": "1.3.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "requires": { "wrappy": "1.0.2" } @@ -6951,20 +7433,23 @@ }, "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "end-of-stream": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "requires": { "once": "1.4.0" } }, "flush-write-stream": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.2" @@ -6972,7 +7457,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.2" @@ -6980,7 +7466,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", @@ -6989,13 +7476,15 @@ "dependencies": { "cyclist": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" } } }, "pump": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", "requires": { "end-of-stream": "1.4.0", "once": "1.4.0" @@ -7003,7 +7492,8 @@ }, "pumpify": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz", + "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=", "requires": { "duplexify": "3.5.0", "inherits": "2.0.3", @@ -7012,7 +7502,8 @@ }, "stream-each": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.0.tgz", + "integrity": "sha1-HpXUdXP1gNgU3A/4zQ9m8c5TyZE=", "requires": { "end-of-stream": "1.4.0", "stream-shift": "1.0.0" @@ -7020,13 +7511,15 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "2.3.2", "xtend": "4.0.1" @@ -7034,7 +7527,8 @@ "dependencies": { "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -7042,20 +7536,23 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, "move-concurrently": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "1.1.2", "copy-concurrently": "1.0.3", @@ -7067,7 +7564,8 @@ "dependencies": { "copy-concurrently": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.3.tgz", + "integrity": "sha1-Rft4ZiSaHKiJqlcI5svSc+dbslA=", "requires": { "aproba": "1.1.2", "fs-write-stream-atomic": "1.0.10", @@ -7079,7 +7577,8 @@ }, "run-queue": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "1.1.2" } @@ -7088,7 +7587,8 @@ }, "node-gyp": { "version": "3.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "requires": { "fstream": "1.0.11", "glob": "7.1.2", @@ -7107,14 +7607,16 @@ "dependencies": { "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -7122,11 +7624,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -7134,7 +7638,8 @@ }, "nopt": { "version": "3.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { "abbrev": "1.1.0" } @@ -7143,7 +7648,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { "abbrev": "1.1.0", "osenv": "0.1.4" @@ -7151,7 +7657,8 @@ }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -7161,14 +7668,16 @@ "dependencies": { "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { "builtin-modules": "1.1.1" }, "dependencies": { "builtin-modules": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" } } } @@ -7176,18 +7685,21 @@ }, "npm-cache-filename": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", + "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=" }, "npm-install-checks": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", + "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "requires": { "semver": "5.3.0" } }, "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.4", @@ -7197,7 +7709,8 @@ }, "npm-registry-client": { "version": "8.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.4.0.tgz", + "integrity": "sha512-PVNfqq0lyRdFnE//nDmn3CC9uqTsr8Bya9KPLIevlXMfkP0m4RpCVyFFk0W1Gfx436kKwyhLA6J+lV+rgR81gQ==", "requires": { "concat-stream": "1.6.0", "graceful-fs": "4.1.11", @@ -7214,7 +7727,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.2", @@ -7223,7 +7737,8 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } } @@ -7231,11 +7746,13 @@ }, "npm-user-validate": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", + "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=" }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -7245,7 +7762,8 @@ "dependencies": { "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", "readable-stream": "2.3.2" @@ -7253,17 +7771,20 @@ "dependencies": { "delegates": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" } } }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "1.1.2", "console-control-strings": "1.1.0", @@ -7277,15 +7798,18 @@ "dependencies": { "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -7294,18 +7818,21 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } } @@ -7313,20 +7840,23 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "1.0.2" } @@ -7335,24 +7865,28 @@ }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "opener": { "version": "1.4.3", - "bundled": true + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -7360,17 +7894,20 @@ "dependencies": { "os-homedir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" } } }, "pacote": { "version": "2.7.38", - "bundled": true, + "resolved": "https://registry.npmjs.org/pacote/-/pacote-2.7.38.tgz", + "integrity": "sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==", "requires": { "bluebird": "3.5.0", "cacache": "9.2.9", @@ -7397,7 +7934,8 @@ "dependencies": { "make-fetch-happen": { "version": "2.4.13", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.4.13.tgz", + "integrity": "sha512-73CsTlMRSLdGr7VvOE8iYl/ejOSIxyfRYg7jZhepGGEqIlgdq6FLe2DEAI5bo813Jdg5fS/Ku62SRQ/UpT6NJA==", "requires": { "agentkeepalive": "3.3.0", "cacache": "9.2.9", @@ -7414,21 +7952,24 @@ "dependencies": { "agentkeepalive": { "version": "3.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz", + "integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==", "requires": { "humanize-ms": "1.2.1" }, "dependencies": { "humanize-ms": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -7436,11 +7977,13 @@ }, "http-cache-semantics": { "version": "3.7.3", - "bundled": true + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.7.3.tgz", + "integrity": "sha1-LzXFMuzSnx5UE7mvgztySjxvf3I=" }, "http-proxy-agent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz", + "integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=", "requires": { "agent-base": "4.1.0", "debug": "2.6.8" @@ -7448,21 +7991,24 @@ "dependencies": { "agent-base": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.0.tgz", + "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.1.1" }, "dependencies": { "es6-promise": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" } } } @@ -7470,14 +8016,16 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -7485,7 +8033,8 @@ }, "https-proxy-agent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.0.0.tgz", + "integrity": "sha1-/6pLb69YasNAwYoUBDHna31/KUQ=", "requires": { "agent-base": "4.1.0", "debug": "2.6.8" @@ -7493,21 +8042,24 @@ "dependencies": { "agent-base": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.0.tgz", + "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.1.1" }, "dependencies": { "es6-promise": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" } } } @@ -7515,14 +8067,16 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -7530,7 +8084,8 @@ }, "node-fetch-npm": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.1.tgz", + "integrity": "sha512-W3onhopST5tqpX0/MGSL47pDQLLKobNR83AvkiOWQKaw54h+uYUfzeLAxCiyhWlUOiuI+GIb4O9ojLaAFlhCCA==", "requires": { "encoding": "0.1.12", "json-parse-helpfulerror": "1.0.3", @@ -7539,27 +8094,31 @@ "dependencies": { "encoding": { "version": "0.1.12", - "bundled": true, + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "0.4.18" }, "dependencies": { "iconv-lite": { "version": "0.4.18", - "bundled": true + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" } } }, "json-parse-helpfulerror": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "requires": { "jju": "1.3.0" }, "dependencies": { "jju": { "version": "1.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", + "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=" } } } @@ -7567,7 +8126,8 @@ }, "socks-proxy-agent": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.0.tgz", + "integrity": "sha512-YJcT+SNNBgFoK/NpO20PChz0VnBOhkjG3X10BwlrYujd0NZlSsH1jbxSQ1S0njt3sOvzwQ2PvGqqUIvP4rNk/w==", "requires": { "agent-base": "4.1.0", "socks": "1.1.10" @@ -7575,21 +8135,24 @@ "dependencies": { "agent-base": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.0.tgz", + "integrity": "sha1-IOF0Ac1Js8B2v1akvGxbQ2/6jVU=", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.1.1" }, "dependencies": { "es6-promise": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" } } } @@ -7597,7 +8160,8 @@ }, "socks": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { "ip": "1.1.5", "smart-buffer": "1.1.15" @@ -7605,11 +8169,13 @@ "dependencies": { "ip": { "version": "1.1.5", - "bundled": true + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "smart-buffer": { "version": "1.1.15", - "bundled": true + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" } } } @@ -7619,14 +8185,16 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -7634,11 +8202,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -7646,7 +8216,8 @@ }, "npm-pick-manifest": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz", + "integrity": "sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==", "requires": { "npm-package-arg": "5.1.2", "semver": "5.3.0" @@ -7654,7 +8225,8 @@ }, "promise-retry": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "1.1.2", "retry": "0.10.1" @@ -7662,26 +8234,30 @@ "dependencies": { "err-code": { "version": "1.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" } } }, "protoduck": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-4.0.0.tgz", + "integrity": "sha1-/kh02MeRM2bP2erRJFOiLNNlf44=", "requires": { "genfun": "4.0.1" }, "dependencies": { "genfun": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", + "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" } } }, "tar-fs": { "version": "1.15.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.15.3.tgz", + "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=", "requires": { "chownr": "1.0.1", "mkdirp": "0.5.1", @@ -7691,7 +8267,8 @@ "dependencies": { "pump": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", "requires": { "end-of-stream": "1.4.0", "once": "1.4.0" @@ -7699,7 +8276,8 @@ "dependencies": { "end-of-stream": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "requires": { "once": "1.4.0" } @@ -7710,7 +8288,8 @@ }, "tar-stream": { "version": "1.5.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", "requires": { "bl": "1.2.1", "end-of-stream": "1.4.0", @@ -7720,21 +8299,24 @@ "dependencies": { "bl": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "requires": { "readable-stream": "2.3.2" } }, "end-of-stream": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "requires": { "once": "1.4.0" } }, "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -7742,35 +8324,41 @@ }, "path-is-inside": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "promise-inflight": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "read": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "0.0.7" }, "dependencies": { "mute-stream": { "version": "0.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" } } }, "read-cmd-shim": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", + "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "requires": { "graceful-fs": "4.1.11" } }, "read-installed": { "version": "4.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "requires": { "debuglog": "1.0.1", "graceful-fs": "4.1.11", @@ -7783,13 +8371,15 @@ "dependencies": { "util-extend": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" } } }, "read-package-json": { "version": "2.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.9.tgz", + "integrity": "sha512-vuV8p921IgyelL4UOKv3FsRuRZSaRn30HanLAOKargsr8TbBEq+I3MgloSRXYuKhNdYP1wlEGilMWAIayA2RFg==", "requires": { "glob": "7.1.2", "graceful-fs": "4.1.11", @@ -7799,14 +8389,16 @@ "dependencies": { "json-parse-helpfulerror": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "requires": { "jju": "1.3.0" }, "dependencies": { "jju": { "version": "1.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", + "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=" } } } @@ -7814,7 +8406,8 @@ }, "read-package-tree": { "version": "5.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.6.tgz", + "integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==", "requires": { "debuglog": "1.0.1", "dezalgo": "1.0.3", @@ -7825,7 +8418,8 @@ }, "readable-stream": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", + "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -7838,32 +8432,38 @@ "dependencies": { "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "string_decoder": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { "safe-buffer": "5.1.1" } }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" } } }, "readdir-scoped-modules": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "requires": { "debuglog": "1.0.1", "dezalgo": "1.0.3", @@ -7873,7 +8473,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", @@ -7901,40 +8502,48 @@ "dependencies": { "aws-sign2": { "version": "0.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" }, "aws4": { "version": "1.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "caseless": { "version": "0.12.0", - "bundled": true + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" }, "dependencies": { "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" } } }, "extend": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "forever-agent": { "version": "0.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", @@ -7943,13 +8552,15 @@ "dependencies": { "asynckit": { "version": "0.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" } } }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "requires": { "ajv": "4.11.8", "har-schema": "1.0.5" @@ -7957,7 +8568,8 @@ "dependencies": { "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { "co": "4.6.0", "json-stable-stringify": "1.0.1" @@ -7965,18 +8577,21 @@ "dependencies": { "co": { "version": "4.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { "jsonify": "0.0.0" }, "dependencies": { "jsonify": { "version": "0.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" } } } @@ -7984,13 +8599,15 @@ }, "har-schema": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" } } }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -8000,25 +8617,29 @@ "dependencies": { "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { "hoek": "2.16.3" } }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { "boom": "2.10.1" } }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { "hoek": "2.16.3" } @@ -8027,7 +8648,8 @@ }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.0", @@ -8036,11 +8658,13 @@ "dependencies": { "assert-plus": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.0.2", @@ -8050,19 +8674,23 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "json-schema": { "version": "0.2.3", - "bundled": true + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "requires": { "extsprintf": "1.0.2" } @@ -8071,7 +8699,8 @@ }, "sshpk": { "version": "1.13.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -8085,15 +8714,18 @@ "dependencies": { "asn1": { "version": "0.2.3", - "bundled": true + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "assert-plus": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -8101,14 +8733,16 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "1.0.0" } }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -8116,19 +8750,22 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "1.0.0" } }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true } } @@ -8137,61 +8774,73 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "isstream": { "version": "0.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { "mime-db": "1.27.0" }, "dependencies": { "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" } } }, "oauth-sign": { "version": "0.8.2", - "bundled": true + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "performance-now": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, "qs": { "version": "6.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" }, "stringstream": { "version": "0.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "requires": { "punycode": "1.4.1" }, "dependencies": { "punycode": { "version": "1.4.1", - "bundled": true + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "5.1.1" } @@ -8200,26 +8849,31 @@ }, "retry": { "version": "0.10.1", - "bundled": true + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "semver": { "version": "5.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" }, "sha": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", + "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "requires": { "graceful-fs": "4.1.11", "readable-stream": "2.3.2" @@ -8227,15 +8881,18 @@ }, "slide": { "version": "1.1.6", - "bundled": true + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "sorted-object": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", + "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=" }, "sorted-union-stream": { "version": "2.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", + "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "requires": { "from2": "1.3.0", "stream-iterate": "1.2.0" @@ -8243,7 +8900,8 @@ "dependencies": { "from2": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", + "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "requires": { "inherits": "2.0.3", "readable-stream": "1.1.14" @@ -8251,7 +8909,8 @@ "dependencies": { "readable-stream": { "version": "1.1.14", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -8261,15 +8920,18 @@ "dependencies": { "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "isarray": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "string_decoder": { "version": "0.10.31", - "bundled": true + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } } @@ -8277,7 +8939,8 @@ }, "stream-iterate": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", + "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "requires": { "readable-stream": "2.3.2", "stream-shift": "1.0.0" @@ -8285,7 +8948,8 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } } @@ -8293,27 +8957,31 @@ }, "ssri": { "version": "4.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz", + "integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==", "requires": { "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" } } }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -8322,7 +8990,8 @@ "dependencies": { "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "2.0.3" } @@ -8331,26 +9000,31 @@ }, "text-table": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "uid-number": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" }, "umask": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" }, "unique-filename": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "requires": { "unique-slug": "2.0.0" }, "dependencies": { "unique-slug": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "requires": { "imurmurhash": "0.1.4" } @@ -8359,11 +9033,13 @@ }, "unpipe": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.2.0.tgz", + "integrity": "sha1-G1g3z5DAc22IYncytmHBOPht5y8=", "requires": { "boxen": "1.1.0", "chalk": "1.1.3", @@ -8377,7 +9053,8 @@ "dependencies": { "boxen": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.1.0.tgz", + "integrity": "sha1-sbad1SIwXoB6md7ud329blFnsQI=", "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", @@ -8390,22 +9067,26 @@ "dependencies": { "ansi-align": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "2.1.0" } }, "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cli-boxes": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "string-width": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -8413,11 +9094,13 @@ "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } @@ -8426,14 +9109,16 @@ }, "term-size": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/term-size/-/term-size-0.1.1.tgz", + "integrity": "sha1-hzYLljlsq1dgljcUzaDQy+7K2co=", "requires": { "execa": "0.4.0" }, "dependencies": { "execa": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.4.0.tgz", + "integrity": "sha1-TrZGejaglfq7KXD/nV4/t7zm68M=", "requires": { "cross-spawn-async": "2.2.5", "is-stream": "1.1.0", @@ -8445,7 +9130,8 @@ "dependencies": { "cross-spawn-async": { "version": "2.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", + "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", "requires": { "lru-cache": "4.1.1", "which": "1.2.14" @@ -8453,26 +9139,31 @@ }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "npm-run-path": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz", + "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=", "requires": { "path-key": "1.0.0" } }, "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "path-key": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz", + "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=" }, "strip-eof": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" } } } @@ -8480,14 +9171,16 @@ }, "widest-line": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", "requires": { "string-width": "1.0.2" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -8496,31 +9189,36 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } } @@ -8532,7 +9230,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -8543,47 +9242,55 @@ "dependencies": { "ansi-styles": { "version": "2.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "supports-color": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "configstore": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.0.tgz", + "integrity": "sha1-Rd+QcHPibfoc9LLVL1tgVF6qEdE=", "requires": { "dot-prop": "4.1.1", "graceful-fs": "4.1.11", @@ -8595,40 +9302,46 @@ "dependencies": { "dot-prop": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.1.1.tgz", + "integrity": "sha1-qEk/C3te7sglJbXHWH+n3nyoWcE=", "requires": { "is-obj": "1.0.1" }, "dependencies": { "is-obj": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" } } }, "make-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", "requires": { "pify": "2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, "unique-string": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "requires": { "crypto-random-string": "1.0.0" }, "dependencies": { "crypto-random-string": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" } } } @@ -8636,22 +9349,26 @@ }, "import-lazy": { "version": "2.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "is-npm": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "latest-version": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "requires": { "package-json": "4.0.1" }, "dependencies": { "package-json": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "requires": { "got": "6.7.1", "registry-auth-token": "3.3.1", @@ -8661,7 +9378,8 @@ "dependencies": { "got": { "version": "6.7.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "3.0.2", "duplexer3": "0.1.4", @@ -8678,59 +9396,71 @@ "dependencies": { "create-error-class": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "1.0.0" }, "dependencies": { "capture-stack-trace": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" } } }, "duplexer3": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "is-redirect": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-retry-allowed": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "lowercase-keys": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "timed-out": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "unzip-response": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "url-parse-lax": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "1.0.4" }, "dependencies": { "prepend-http": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" } } } @@ -8738,7 +9468,8 @@ }, "registry-auth-token": { "version": "3.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", "requires": { "rc": "1.2.1", "safe-buffer": "5.1.1" @@ -8746,7 +9477,8 @@ "dependencies": { "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.4", @@ -8756,15 +9488,18 @@ "dependencies": { "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } } @@ -8772,14 +9507,16 @@ }, "registry-url": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { "rc": "1.2.1" }, "dependencies": { "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.4", @@ -8789,15 +9526,18 @@ "dependencies": { "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } } @@ -8809,24 +9549,28 @@ }, "semver-diff": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { "semver": "5.3.0" } }, "xdg-basedir": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" } } }, "uuid": { "version": "3.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" @@ -8834,52 +9578,60 @@ "dependencies": { "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { "spdx-license-ids": "1.2.2" }, "dependencies": { "spdx-license-ids": { "version": "1.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" } } }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" } } }, "validate-npm-package-name": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "1.0.3" }, "dependencies": { "builtins": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" } } }, "which": { "version": "1.2.14", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "requires": { "isexe": "2.0.0" }, "dependencies": { "isexe": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" } } }, "worker-farm": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.3.1.tgz", + "integrity": "sha1-QzMRK7SbF6oFC4eJXKayys9A5f8=", "requires": { "errno": "0.1.4", "xtend": "4.0.1" @@ -8887,30 +9639,35 @@ "dependencies": { "errno": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "requires": { "prr": "0.0.0" }, "dependencies": { "prr": { "version": "0.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" } } }, "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz", + "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8921,7 +9678,8 @@ }, "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.4", @@ -8931,29 +9689,34 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -8962,11 +9725,13 @@ }, "os-tmpdir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -8974,22 +9739,26 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "1.1.0" } }, "package-json": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "requires": { "got": "6.7.1", "registry-auth-token": "3.3.1", @@ -8999,49 +9768,59 @@ }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "1.3.1" } }, "path-exists": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-type": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" } }, "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "prepend-http": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "pseudomap": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "rc": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.4", @@ -9051,7 +9830,8 @@ }, "read-pkg": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { "load-json-file": "2.0.0", "normalize-package-data": "2.4.0", @@ -9060,7 +9840,8 @@ }, "read-pkg-up": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" @@ -9068,7 +9849,8 @@ }, "registry-auth-token": { "version": "3.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", "requires": { "rc": "1.2.2", "safe-buffer": "5.1.1" @@ -9076,78 +9858,93 @@ }, "registry-url": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { "rc": "1.2.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "semver": { "version": "5.4.1", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "semver-diff": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { "semver": "5.4.1" } }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" }, "spdx-license-ids": { "version": "1.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -9155,55 +9952,65 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } }, "strip-bom": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-eof": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "4.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { "has-flag": "2.0.0" } }, "term-size": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "0.7.0" } }, "timed-out": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "unique-string": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "requires": { "crypto-random-string": "1.0.0" } }, "unzip-response": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "update-notifier": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", "requires": { "boxen": "1.2.2", "chalk": "2.2.0", @@ -9218,14 +10025,16 @@ }, "url-parse-lax": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "1.0.4" } }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" @@ -9233,43 +10042,50 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "1.0.3" } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "widest-line": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", "requires": { "string-width": "1.0.2" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -9278,7 +10094,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } @@ -9287,7 +10104,8 @@ }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -9295,18 +10113,21 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -9315,7 +10136,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } @@ -9324,11 +10146,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -9337,19 +10161,23 @@ }, "xdg-basedir": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" }, "y18n": { "version": "3.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "8.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { "camelcase": "4.1.0", "cliui": "3.2.0", @@ -9368,7 +10196,8 @@ }, "yargs-parser": { "version": "7.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { "camelcase": "4.1.0" } @@ -9524,6 +10353,11 @@ "os-tmpdir": "1.0.2" } }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -9545,6 +10379,14 @@ "p-limit": "1.2.0" } }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -9658,14 +10500,6 @@ } } }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "2.3.8" - } - }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", @@ -9721,9 +10555,9 @@ "dev": true }, "poloniex.js": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.7.tgz", - "integrity": "sha1-B0crcBZtztjjaI0eqI7+3ZBrKeU=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.8.tgz", + "integrity": "sha512-Rrv2dTaW4PeAaVBNvSiqCx8eSAMhgH66Ffd3kACEIX1Wj3EeoagR3dSpAU9IzmXfAZxXu0/3Fb4jXi8F/c8rDA==", "requires": { "nonce": "1.0.4", "request": "2.33.0" @@ -10612,11 +11446,11 @@ } }, "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.0.tgz", + "integrity": "sha512-6MYypjOvtiXhBSTOD0Zs5eNjCGfnqi5mPsCsW+dgKTxrZzQMZQNpBo3XRkLx7id753f3EeyHLBqzqqUymIolgw==", "requires": { - "end-of-stream": "1.4.0", + "end-of-stream": "1.4.1", "once": "1.4.0" } }, @@ -10626,12 +11460,13 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "pushbullet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pushbullet/-/pushbullet-2.0.0.tgz", - "integrity": "sha1-QvQjTm3RT/jyytFokDgbRloqIS8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pushbullet/-/pushbullet-2.1.0.tgz", + "integrity": "sha512-kRuNGNIVVgZCNCL+27C7PDT/AYOluykgIr2azwDHY4Ne7EM1za/bM2tPOecNQPRCDr0Ix/1+F75HyijSV3aEQA==", "requires": { "clone": "2.1.1", "mime": "1.6.0", + "node-forge": "0.7.1", "request": "2.83.0", "websocket": "1.0.25" }, @@ -10727,6 +11562,11 @@ "sshpk": "1.13.1" } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", @@ -11591,9 +12431,9 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz", + "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==", "dev": true, "requires": { "glob": "7.1.2", @@ -11611,6 +12451,14 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "signalr-client": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/signalr-client/-/signalr-client-0.0.17.tgz", + "integrity": "sha1-pSF383ziSOzIcibdEDxB/3DIKbE=", + "requires": { + "websocket": "1.0.25" + } + }, "simple-xmpp": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/simple-xmpp/-/simple-xmpp-1.3.0.tgz", @@ -11723,14 +12571,6 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "requires": { - "through": "2.3.8" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -11798,14 +12638,6 @@ "readable-stream": "2.3.3" } }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "0.1.1" - } - }, "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", @@ -11997,7 +12829,7 @@ "nan": "2.8.0", "node-gyp": "3.6.2", "npx": "9.7.1", - "source-map-support": "0.5.0", + "source-map-support": "0.5.1", "ts-node": "3.3.0", "tslint": "5.8.0", "typescript": "2.6.2" @@ -12009,9 +12841,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.1.tgz", + "integrity": "sha512-EZNecLNrsdRk9fcdOcjjy+Z/id7cr68sdmsYtR1gA45oQ81Ccea0UvM7DdSRblO0Ie5zWX31bvJTC7Y3QZVujg==", "requires": { "source-map": "0.6.1" } @@ -12042,7 +12874,8 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "timebucket": { "version": "0.4.0", @@ -12052,6 +12885,11 @@ "moment": "2.20.1" } }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", @@ -12438,8 +13276,28 @@ "loader-utils": "1.1.0", "mime": "1.6.0", "schema-utils": "0.3.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", @@ -12835,9 +13693,9 @@ } }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.0.0.tgz", + "integrity": "sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==", "requires": { "async-limiter": "1.0.0", "safe-buffer": "5.1.1", From c6e6796b4f09923b26fd46d042814bc9b4974e39 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 18 Jan 2018 10:33:29 +0000 Subject: [PATCH 049/236] Exchanges: update-products 212 --- extensions/exchanges/bitfinex/products.json | 22 ++++++++++----------- extensions/exchanges/gdax/products.json | 8 ++++++++ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index 0049100c1c..c780a3dc5b 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -58,7 +58,7 @@ { "asset": "RRT", "currency": "USD", - "min_size": "72.0", + "min_size": "80.0", "max_size": "100000.0", "increment": "0.000001", "label": "RRT/USD" @@ -66,7 +66,7 @@ { "asset": "RRT", "currency": "BTC", - "min_size": "72.0", + "min_size": "80.0", "max_size": "100000.0", "increment": "0.000000001", "label": "RRT/BTC" @@ -474,7 +474,7 @@ { "asset": "GNT", "currency": "USD", - "min_size": "14.0", + "min_size": "16.0", "max_size": "200000.0", "increment": "0.00001", "label": "GNT/USD" @@ -482,7 +482,7 @@ { "asset": "GNT", "currency": "BTC", - "min_size": "14.0", + "min_size": "16.0", "max_size": "200000.0", "increment": "0.00000001", "label": "GNT/BTC" @@ -490,7 +490,7 @@ { "asset": "GNT", "currency": "ETH", - "min_size": "14.0", + "min_size": "16.0", "max_size": "200000.0", "increment": "0.00000001", "label": "GNT/ETH" @@ -578,7 +578,7 @@ { "asset": "FUN", "currency": "USD", - "min_size": "76.0", + "min_size": "108.0", "max_size": "200000.0", "increment": "0.000001", "label": "FUN/USD" @@ -586,7 +586,7 @@ { "asset": "FUN", "currency": "BTC", - "min_size": "76.0", + "min_size": "108.0", "max_size": "200000.0", "increment": "0.000000001", "label": "FUN/BTC" @@ -594,7 +594,7 @@ { "asset": "FUN", "currency": "ETH", - "min_size": "76.0", + "min_size": "108.0", "max_size": "200000.0", "increment": "0.000000001", "label": "FUN/ETH" @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "70.0", + "min_size": "104.0", "max_size": "200000.0", "increment": "0.000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "70.0", + "min_size": "104.0", "max_size": "200000.0", "increment": "0.000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "70.0", + "min_size": "104.0", "max_size": "200000.0", "increment": "0.000000001", "label": "TNB/ETH" diff --git a/extensions/exchanges/gdax/products.json b/extensions/exchanges/gdax/products.json index 0f943e7218..a44c2e61f7 100644 --- a/extensions/exchanges/gdax/products.json +++ b/extensions/exchanges/gdax/products.json @@ -1,4 +1,12 @@ [ + { + "asset": "BCH", + "currency": "BTC", + "min_size": "0.01", + "max_size": "200", + "increment": "0.00001", + "label": "BCH/BTC" + }, { "asset": "BCH", "currency": "USD", From 57c54a19838ed0a1b4575e73c64b88933d720776 Mon Sep 17 00:00:00 2001 From: aquamanjl <35556329+aquamanjl@users.noreply.github.com> Date: Thu, 18 Jan 2018 06:04:31 -0500 Subject: [PATCH 050/236] Fix for RSI returning NaN values (#1168) * Fixed RSI indicator returning NaN value. Added test cases * Added test cases for RSI indicator --- lib/rsi.js | 11 +++-- test/lib/rsi.test.js | 110 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 test/lib/rsi.test.js diff --git a/lib/rsi.js b/lib/rsi.js index 22fb28549d..5e2ca519ef 100644 --- a/lib/rsi.js +++ b/lib/rsi.js @@ -27,8 +27,13 @@ module.exports = function container (get, set, clear) { var current_loss = s.lookback[0].close - s.period.close s.period[key + '_avg_loss'] = ((avg_loss * (length - 1)) + (current_loss > 0 ? current_loss : 0)) / length } - var rs = s.period[key + '_avg_gain'] / s.period[key + '_avg_loss'] - s.period[key] = Math.round(100 - (100 / (1 + rs))) + + if(s.period[key + '_avg_loss'] == 0) { + s.period[key] = 100 + } else { + var rs = s.period[key + '_avg_gain'] / s.period[key + '_avg_loss'] + s.period[key] = Math.round(100 - (100 / (1 + rs))) + } } } -} \ No newline at end of file +} diff --git a/test/lib/rsi.test.js b/test/lib/rsi.test.js new file mode 100644 index 0000000000..e7f79d9351 --- /dev/null +++ b/test/lib/rsi.test.js @@ -0,0 +1,110 @@ +var RSI = require('../../lib/rsi'); + +describe('RSI (Relative Strength Index)', function () { + + it('should calculate RSI with default period', function () { + (RSI())(normalData, 'rsi', 14) + + expect(normalData.period.rsi).toEqual(32) + }) + + it('should set RSI to 100 when there is no losses for the entire period', function() { + (RSI())(noLossData, 'rsi', 14) + + expect(noLossData.period.rsi).toEqual(100) + }) + + it('should set RSI to 0 when there is no gains for the entire period', function() { + (RSI())(noGainData, 'rsi', 14) + + expect(noGainData.period.rsi).toEqual(0) + }) + + it('should set RSI to 0 when there is no price change for the entire period', function() { + (RSI())(noPriceChangeData, 'rsi', 14) + + expect(noPriceChangeData.period.rsi).toEqual(100) + }) +}) + + +var normalData = { + lookback: [ + {close: 46.28}, + {close: 46.00}, + {close: 46.03}, + {close: 46.41}, + {close: 46.22}, + {close: 45.64}, + {close: 46.21}, + {close: 46.25}, + {close: 45.71}, + {close: 46.45}, + {close: 45.78}, + {close: 45.35}, + {close: 44.03}, + {close: 44.18}, + {close: 44.22}, + {close: 44.57}, + {close: 43.42}, + {close: 42.66}, + {close: 43.13} + ], + period: {} +}; + +var noLossData = { + lookback: [ + {close: 46.08}, + {close: 46.18}, + {close: 46.28}, + {close: 46.38}, + {close: 46.48}, + {close: 46.58}, + {close: 46.68}, + {close: 46.78}, + {close: 46.88}, + {close: 46.98}, + {close: 47.08}, + {close: 47.18}, + {close: 47.28}, + {close: 47.38}, + {close: 47.48}, + {close: 47.58}, + {close: 47.68}, + {close: 47.78}, + {close: 47.88} + ], + period: {} +}; + +var noGainData = { + lookback: noLossData.lookback.slice(0).reverse(), + period: {} +}; + +var noPriceChangeData = { + lookback: [ + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8}, + {close: 46.8} + ], + period: {} +}; + From f6bc7bfd4c04a5cb95dbc614f3a729af650ebaa2 Mon Sep 17 00:00:00 2001 From: defkev Date: Thu, 18 Jan 2018 23:17:31 +0100 Subject: [PATCH 051/236] Web UI: Replace tradingview.com widget with trade chart using our own data (#1171) Uses plotly.js (bundled) and the REST API to plot price, volume, OCHL (using lookback) as well as buy/sell signals. --- extensions/output/api.js | 2 +- lib/engine.js | 2 + package.json | 2 + templates/dashboard.ejs | 147 +++++++++++++++++++++++++++++++++------ webpack-src/js/plotly.js | 8 +++ webpack.config.js | 12 ++++ 6 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 webpack-src/js/plotly.js diff --git a/extensions/output/api.js b/extensions/output/api.js index b9edaf1199..97fbe33d80 100644 --- a/extensions/output/api.js +++ b/extensions/output/api.js @@ -34,7 +34,7 @@ module.exports = function container (get) { app.get('/', function (req, res) { let datas = objectWithoutKey(tradeObject, 'options'); - datas = objectWithoutKey(tradeObject, 'lookback'); + datas = objectWithoutKey(tradeObject); res.render('dashboard', datas); }); diff --git a/lib/engine.js b/lib/engine.js index 450bc4eefb..3c4a7f0c4e 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -69,6 +69,7 @@ module.exports = function container (get, set, clear) { s.lookback = [] s.day_count = 1 s.my_trades = [] + s.trades = [] s.vol_since_last_blink = 0 if (so.strategy) { s.strategy = get('strategies.' + so.strategy) @@ -149,6 +150,7 @@ module.exports = function container (get, set, clear) { s.period.close_time = trade.time s.strategy.calculate(s) s.vol_since_last_blink += trade.size + s.trades.push(trade) } function executeStop (do_sell_stop) { diff --git a/package.json b/package.json index 479cd7e149..6601ae3591 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "number-abbreviate": "^2.0.0", "numbro": "highvelocityspace/numbro", "path": "^0.12.7", + "plotly.js": "^1.32.0", "poloniex.js": "0.0.8", "popper.js": "^1.12.9", "postcss-loader": "^2.0.9", @@ -85,6 +86,7 @@ "style-loader": "^0.19.1", "talib": "drorgl/node-talib#b30dd674e5b11822ea93bb253001169f1bc99e15", "timebucket": "^0.4.0", + "transform-loader": "^0.2.4", "trend": "0.3.0", "url-loader": "^0.6.2", "uuid": "^3.1.0", diff --git a/templates/dashboard.ejs b/templates/dashboard.ejs index 17cd5c5b19..bfcc8ad446 100644 --- a/templates/dashboard.ejs +++ b/templates/dashboard.ejs @@ -147,27 +147,134 @@
-

<%= exchange.name.toUpperCase() %> <%= asset.toUpperCase() %>/<%= currency.toUpperCase() %> Live chart

-
- - - +

<%= exchange.name.toUpperCase() %> <%= asset.toUpperCase() %>/<%= currency.toUpperCase() %> Trade chart

+
- + +
diff --git a/webpack-src/js/plotly.js b/webpack-src/js/plotly.js new file mode 100644 index 0000000000..0167845919 --- /dev/null +++ b/webpack-src/js/plotly.js @@ -0,0 +1,8 @@ +var Plotly = require('plotly.js/lib/core'); + +Plotly.register([ + require('plotly.js/lib/bar'), + require('plotly.js/lib/ohlc') +]); + +module.exports = Plotly; \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 3d9350ba36..35d3000a13 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -7,6 +7,7 @@ const webpack = require('webpack'); module.exports = { entry: { app: './webpack-src/js/app.js', + plotly: './webpack-src/js/plotly.js' }, plugins: [ new webpack.ProvidePlugin({ @@ -60,6 +61,17 @@ module.exports = { options: '$' }] }, + { + test: /\.js$/, + use: 'transform-loader?plotly.js/tasks/util/compress_attributes.js', + }, + { + test: require.resolve('./webpack-src/js/plotly.js'), + use: [{ + loader: 'expose-loader', + options: 'Plotly' + }] + } ], }, } From 542d588a973ec4021a0e751050c2744743114cbf Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 19 Jan 2018 10:34:51 +0000 Subject: [PATCH 052/236] Exchanges: update-products 217 --- extensions/exchanges/bitfinex/products.json | 6 +- package-lock.json | 4006 ++++++++++++++++++- 2 files changed, 3934 insertions(+), 78 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index c780a3dc5b..faceb5a60c 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -530,7 +530,7 @@ { "asset": "BAT", "currency": "USD", - "min_size": "16.0", + "min_size": "18.0", "max_size": "200000.0", "increment": "0.00001", "label": "BAT/USD" @@ -538,7 +538,7 @@ { "asset": "BAT", "currency": "BTC", - "min_size": "16.0", + "min_size": "18.0", "max_size": "200000.0", "increment": "0.00000001", "label": "BAT/BTC" @@ -546,7 +546,7 @@ { "asset": "BAT", "currency": "ETH", - "min_size": "16.0", + "min_size": "18.0", "max_size": "200000.0", "increment": "0.00000001", "label": "BAT/ETH" diff --git a/package-lock.json b/package-lock.json index 6b568e6980..bcffcfc3b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,38 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "3d-view": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", + "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", + "requires": { + "matrix-camera-controller": "2.1.3", + "orbit-camera-controller": "4.0.0", + "turntable-camera-controller": "3.0.1" + } + }, + "3d-view-controls": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/3d-view-controls/-/3d-view-controls-2.2.0.tgz", + "integrity": "sha1-RK7JxEjCe+NLPdUR/5ICq2FQ3KU=", + "requires": { + "3d-view": "2.0.0", + "mouse-change": "1.4.0", + "mouse-event-offset": "3.0.2", + "mouse-wheel": "1.2.0", + "right-now": "1.0.0" + } + }, + "@plotly/d3-sankey": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.5.0.tgz", + "integrity": "sha1-si+up0LlglEzXuXZ+6JIdyYHgA8=", + "requires": { + "d3-array": "1.2.1", + "d3-collection": "1.0.4", + "d3-interpolate": "1.1.6" + } + }, "@slack/client": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.15.0.tgz", @@ -68,11 +100,31 @@ "ltx": "2.7.1" } }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" + }, + "a-big-triangle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", + "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", + "requires": { + "gl-buffer": "2.1.2", + "gl-vao": "1.3.0", + "weak-map": "1.0.5" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" + }, "accepts": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", @@ -106,7 +158,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, "requires": { "acorn": "3.3.0" }, @@ -114,11 +165,26 @@ "acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" } } }, + "acorn5-object-spread": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn5-object-spread/-/acorn5-object-spread-4.0.0.tgz", + "integrity": "sha1-1XWAge7ZcSGrC+R+Mcqu8qo5lpc=", + "requires": { + "acorn": "5.3.0" + } + }, + "add-line-numbers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz", + "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=", + "requires": { + "pad-left": "1.0.2" + } + }, "adjust-sourcemap-loader": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", @@ -161,6 +227,14 @@ } } }, + "affine-hull": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz", + "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=", + "requires": { + "robust-orientation": "1.1.3" + } + }, "agent-base": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", @@ -203,6 +277,29 @@ "repeat-string": "1.6.1" } }, + "almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha1-+FHGMROHV5lCdqou++jfowZszN0=" + }, + "alpha-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz", + "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=", + "requires": { + "circumradius": "1.0.0", + "delaunay-triangulate": "1.1.6" + } + }, + "alpha-shape": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz", + "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=", + "requires": { + "alpha-complex": "1.0.0", + "simplicial-complex-boundary": "1.0.1" + } + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -273,6 +370,11 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "array-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -283,6 +385,29 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "array-normalize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.3.tgz", + "integrity": "sha1-c/uDf0gW7BkVHTxejYU6RZDOAb0=", + "requires": { + "array-bounds": "1.0.1" + } + }, + "array-pack-2d": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/array-pack-2d/-/array-pack-2d-0.1.1.tgz", + "integrity": "sha1-vb3PL3+xm/uOBvvwHYvIxmS0aT0=", + "requires": { + "dtype": "1.0.0" + }, + "dependencies": { + "dtype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-1.0.0.tgz", + "integrity": "sha1-rjT/ooJnNxUgNYLWG73QqtPLo+c=" + } + } + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -378,6 +503,11 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=" }, + "atob-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz", + "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs=" + }, "autoprefixer": { "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", @@ -1001,6 +1131,14 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "barycentric": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz", + "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=", + "requires": { + "robust-linear-solve": "1.0.0" + } + }, "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", @@ -1015,6 +1153,16 @@ "tweetnacl": "0.14.5" } }, + "big-rat": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz", + "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=", + "requires": { + "bit-twiddle": "1.0.2", + "bn.js": "4.11.8", + "double-bits": "1.1.1" + } + }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -1025,11 +1173,21 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" }, + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" + }, "bintrees": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" }, + "bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=" + }, "bitfinex-api-node": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bitfinex-api-node/-/bitfinex-api-node-1.2.1.tgz", @@ -1059,6 +1217,14 @@ } } }, + "bitmap-sdf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.3.tgz", + "integrity": "sha512-ojYySSvWTx21cbgntR942zgEgqj38wHctN64vr4vYRFf3GKVmI23YlA94meWGkFslidwLwGCsMy2laJ3g/94Sg==", + "requires": { + "clamp": "1.0.1" + } + }, "bitstamp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bitstamp/-/bitstamp-1.0.5.tgz", @@ -1140,6 +1306,39 @@ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-beta.3.tgz", "integrity": "sha512-/Qe1Q2d1muLEZRX2iCteMQHZBBAm6ZIjJ9FcBYK/xLr05+HvDtBOVBN+Cz7mCNZuy0zr+y5artZHM05W7mIz6g==" }, + "bops": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", + "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", + "requires": { + "base64-js": "0.0.2", + "to-utf8": "0.0.1" + }, + "dependencies": { + "base64-js": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", + "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=" + } + } + }, + "boundary-cells": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.1.tgz", + "integrity": "sha1-6QWo0UGc9Hyza+Pb9SXbXiTeAEI=", + "requires": { + "tape": "4.8.0" + } + }, + "box-intersect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.1.tgz", + "integrity": "sha1-tyilnj8aPHPCJJM8JmC5J6oTeQI=", + "requires": { + "bit-twiddle": "1.0.2", + "typedarray-pool": "1.1.0" + } + }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", @@ -1159,6 +1358,38 @@ "repeat-element": "1.1.2" } }, + "brfs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.4.3.tgz", + "integrity": "sha1-22ddb16SPm3wh/ylhZyQkKrtMhY=", + "requires": { + "quote-stream": "1.0.2", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "2.0.3" + }, + "dependencies": { + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "1.2.0", + "through2": "2.0.3" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + } + } + }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", @@ -1247,6 +1478,62 @@ "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" }, + "buble": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.18.0.tgz", + "integrity": "sha512-U3NJxUiSz0H1EB54PEHAuBTxdXgQH4DaQkvkINFXf9kEKCDWSn67EgQfFKbkTzsok4xRrIPsoxWDl2czCHR65g==", + "requires": { + "acorn": "5.3.0", + "acorn-jsx": "3.0.1", + "acorn5-object-spread": "4.0.0", + "chalk": "2.3.0", + "magic-string": "0.22.4", + "minimist": "1.2.0", + "os-homedir": "1.0.2", + "vlq": "0.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "bubleify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bubleify/-/bubleify-1.1.0.tgz", + "integrity": "sha512-9FtUiQong0qiDuN/iOtDwqovyDXENTpcvQH9Szyc/wzALPt0tDdP1moIjJqeT5LMwLzvLkMHaL+RohWEeHY6XQ==", + "requires": { + "buble": "0.18.0" + } + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -1257,6 +1544,11 @@ "isarray": "1.0.0" } }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -1277,6 +1569,17 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "call-matcher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", + "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", + "requires": { + "core-js": "2.5.3", + "deep-equal": "1.0.1", + "espurify": "1.7.0", + "estraverse": "4.2.0" + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1338,6 +1641,14 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000789.tgz", "integrity": "sha1-Lj2TeyZxM/Y2Ne9/RB+sZjYPyIk=" }, + "canvas-fit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", + "integrity": "sha1-rhO+Zq3kL1vg5IfjRfzjCl5bXl8=", + "requires": { + "element-size": "1.1.1" + } + }, "caseless": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", @@ -1360,6 +1671,28 @@ } } }, + "cdt2d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz", + "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=", + "requires": { + "binary-search-bounds": "2.0.3", + "robust-in-sphere": "1.1.3", + "robust-orientation": "1.1.3" + }, + "dependencies": { + "binary-search-bounds": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz", + "integrity": "sha1-X/hhbW3SylOIvIWy1iZuK52lAtw=" + } + } + }, + "cell-orientation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz", + "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA=" + }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -1603,6 +1936,28 @@ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, + "circumcenter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz", + "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=", + "requires": { + "dup": "1.0.0", + "robust-linear-solve": "1.0.0" + } + }, + "circumradius": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", + "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", + "requires": { + "circumcenter": "1.0.0" + } + }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" + }, "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", @@ -1611,6 +1966,20 @@ "chalk": "1.1.3" } }, + "clean-pslg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz", + "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=", + "requires": { + "big-rat": "1.0.4", + "box-intersect": "1.0.1", + "nextafter": "1.0.0", + "rat-vec": "1.1.1", + "robust-segment-intersect": "1.0.1", + "union-find": "1.0.2", + "uniq": "1.0.1" + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1769,11 +2138,58 @@ "color-name": "1.1.3" } }, + "color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", + "requires": { + "clamp": "1.0.1" + } + }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "color-normalize": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.0.3.tgz", + "integrity": "sha512-bUyyoiyeJSm24u+y5ePwVssNg9zACjHKHUS0thYZEmCafrTg4RX1b43V6M141V2EdlaBoS5OV3VvyAXxdup+YA==", + "requires": { + "clamp": "1.0.1", + "color-rgba": "2.0.0", + "dtype": "2.0.0" + } + }, + "color-parse": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.5.tgz", + "integrity": "sha1-TIEPcugI5Pc7Y/cqzXjaU4pRVWQ=", + "requires": { + "color-name": "1.1.3", + "defined": "1.0.0", + "is-plain-obj": "1.1.0" + } + }, + "color-rgba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.0.0.tgz", + "integrity": "sha1-0BURTOPoQ2h5XJ1t3+9Vb5gXOcU=", + "requires": { + "clamp": "1.0.1", + "color-parse": "1.3.5", + "color-space": "1.15.0" + } + }, + "color-space": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.15.0.tgz", + "integrity": "sha1-JiP1TBGB4P5uHP8Nh+JOsQQPWw4=", + "requires": { + "husl": "5.0.3", + "mumath": "3.3.4" + } + }, "color-string": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", @@ -1782,6 +2198,14 @@ "color-name": "1.1.3" } }, + "colormap": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.0.tgz", + "integrity": "sha512-Mkk6mQUMbCleXEeStFm2xLwv5zbRakZMUFB1T1+iNEv58VKBByfPwYIjMQDwSRmXNM1gvo5y3WTYAhmdMn/rbg==", + "requires": { + "lerp": "1.0.3" + } + }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", @@ -1815,6 +2239,32 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, + "compare-angle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz", + "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=", + "requires": { + "robust-orientation": "1.1.3", + "robust-product": "1.0.0", + "robust-sum": "1.0.0", + "signum": "0.0.0", + "two-sum": "1.0.0" + } + }, + "compare-cell": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz", + "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo=" + }, + "compare-oriented-cell": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz", + "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=", + "requires": { + "cell-orientation": "1.0.1", + "compare-cell": "1.0.0" + } + }, "complex.js": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.4.tgz", @@ -1829,7 +2279,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, "requires": { "inherits": "2.0.3", "readable-stream": "2.3.3", @@ -1869,6 +2318,16 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, + "convex-hull": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz", + "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=", + "requires": { + "affine-hull": "1.0.0", + "incremental-convex-hull": "1.0.1", + "monotone-convex-hull-2d": "1.0.1" + } + }, "convnetjs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/convnetjs/-/convnetjs-0.3.0.tgz", @@ -1917,6 +2376,11 @@ "waypoints": "4.0.1" } }, + "country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=" + }, "create-ecdh": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", @@ -2059,6 +2523,11 @@ } } }, + "csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" + }, "cssesc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", @@ -2118,6 +2587,11 @@ "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", "optional": true }, + "cubic-hermite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", + "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -2126,6 +2600,41 @@ "array-find-index": "1.0.2" } }, + "cwise": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/cwise/-/cwise-1.0.10.tgz", + "integrity": "sha1-JO7mBy69/WuMb12tsXCQtkmxK+8=", + "requires": { + "cwise-compiler": "1.1.3", + "cwise-parser": "1.0.3", + "static-module": "1.5.0", + "uglify-js": "2.8.29" + } + }, + "cwise-compiler": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", + "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", + "requires": { + "uniq": "1.0.1" + } + }, + "cwise-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cwise-parser/-/cwise-parser-1.0.3.tgz", + "integrity": "sha1-jkk8F9VPl8sDCp6YVLyGyd+zVP4=", + "requires": { + "esprima": "1.2.5", + "uniq": "1.0.1" + }, + "dependencies": { + "esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=" + } + } + }, "cycle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", @@ -2139,14 +2648,68 @@ "es5-ext": "0.10.37" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { + "d3": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + }, + "d3-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz", + "integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw==" + }, + "d3-collection": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz", + "integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI=" + }, + "d3-color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.0.3.tgz", + "integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs=" + }, + "d3-dispatch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz", + "integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg=" + }, + "d3-force": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz", + "integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==", + "requires": { + "d3-collection": "1.0.4", + "d3-dispatch": "1.0.3", + "d3-quadtree": "1.0.3", + "d3-timer": "1.0.7" + } + }, + "d3-interpolate": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz", + "integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==", + "requires": { + "d3-color": "1.0.3" + } + }, + "d3-quadtree": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz", + "integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg=" + }, + "d3-timer": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz", + "integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -2185,11 +2748,15 @@ "mimic-response": "1.0.0" } }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "define-properties": { "version": "1.1.2", @@ -2228,6 +2795,15 @@ } } }, + "delaunay-triangulate": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz", + "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=", + "requires": { + "incremental-convex-hull": "1.0.1", + "uniq": "1.0.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2294,11 +2870,82 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" }, + "double-bits": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz", + "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY=" + }, + "draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha1-bxFtli3TFLmepTTW9Y3WbNvWk3k=", + "requires": { + "abs-svg-path": "0.1.1", + "normalize-svg-path": "0.1.0" + } + }, + "dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" + }, + "dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "requires": { + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "duplexify": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + } + }, + "earcut": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.1.3.tgz", + "integrity": "sha512-AxdCdWUk1zzK/NuZ7e1ljj6IGC+VAdC3Qb7QQDsXpfNrc5IM8tL9nNXUmEGE6jRHTfZ10zhzRhtDmWVsR5pd3A==" + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -2308,6 +2955,14 @@ "jsbn": "0.1.1" } }, + "edges-to-adjacency-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz", + "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=", + "requires": { + "uniq": "1.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2331,6 +2986,11 @@ "electron-releases": "2.1.0" } }, + "element-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", + "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=" + }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", @@ -2452,6 +3112,11 @@ "event-emitter": "0.3.5" } }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + }, "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", @@ -2494,6 +3159,43 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", + "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", + "requires": { + "esprima": "1.1.1", + "estraverse": "1.5.1", + "esutils": "1.0.0", + "source-map": "0.1.43" + }, + "dependencies": { + "esprima": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", + "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=" + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, "escope": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", @@ -2675,6 +3377,14 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" }, + "espurify": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", + "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", + "requires": { + "core-js": "2.5.3" + } + }, "esquery": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", @@ -2865,6 +3575,11 @@ "is-extglob": "1.0.0" } }, + "extract-frustum-planes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", + "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=" + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -2875,11 +3590,34 @@ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, + "falafel": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", + "requires": { + "acorn": "5.3.0", + "foreach": "2.0.5", + "isarray": "0.0.1", + "object-keys": "1.0.11" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, "fast-deep-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" }, + "fast-isnumeric": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.1.tgz", + "integrity": "sha1-V7gcB6PAnLnsO++cFhgYmS2JNkM=" + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -2888,8 +3626,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastparse": { "version": "1.1.1", @@ -2904,6 +3641,11 @@ "websocket-driver": "0.7.0" } }, + "feature-filter": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/feature-filter/-/feature-filter-2.2.0.tgz", + "integrity": "sha1-PMNWAV6WjDYq+99/8bt0Td9/wuA=" + }, "fetch-ponyfill": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", @@ -2972,6 +3714,15 @@ } } }, + "filtered-vector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", + "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", + "requires": { + "binary-search-bounds": "1.0.0", + "cubic-hermite": "1.0.0" + } + }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -3004,6 +3755,27 @@ "locate-path": "2.0.0" } }, + "findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", + "requires": { + "colors": "0.6.2", + "commander": "2.1.0" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + }, + "commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=" + } + } + }, "flat": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz", @@ -3030,6 +3802,16 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flatten-vertex-data": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.0.tgz", + "integrity": "sha1-1hyU8qZWTzAdZni3JhYWrwAEcIw=", + "requires": { + "array-pack-2d": "0.1.1", + "dtype": "2.0.0", + "is-typedarray": "1.0.0" + } + }, "follow-redirects": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", @@ -3048,6 +3830,23 @@ } } }, + "font-atlas-sdf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/font-atlas-sdf/-/font-atlas-sdf-1.3.3.tgz", + "integrity": "sha512-GxUpcdkdoHgC3UrpMuA7JmG1Ty/MY0BhfmV8r7ZSv3bkqBY5vmRIjcj7Pg8iqj20B03vlU6fUhdpyIgEo/Z35w==", + "requires": { + "optical-properties": "1.0.0", + "tiny-sdf": "1.0.2" + } + }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "requires": { + "is-function": "1.0.1" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3102,6 +3901,23 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "from2-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", + "integrity": "sha1-GCgrJ9CKJnyzAwzSuLSw8hKvdSo=", + "requires": { + "from2": "2.3.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4029,8 +4845,12 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gamma": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/gamma/-/gamma-0.1.0.tgz", + "integrity": "sha1-MxVkNAO/J5BsqAqzfDbs6UQO8zA=" }, "gauge": { "version": "2.7.4", @@ -4219,11 +5039,54 @@ "integrity": "sha1-oVdal8Gwcy7yYW53k8bfU1bzA4E=", "dev": true }, + "geojson-area": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/geojson-area/-/geojson-area-0.1.0.tgz", + "integrity": "sha1-1I2AcILPrfSnjfE0m+UPOL8YlK4=", + "requires": { + "wgs84": "0.0.0" + } + }, + "geojson-rewind": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/geojson-rewind/-/geojson-rewind-0.1.0.tgz", + "integrity": "sha1-VwIqBUsZZmDXVTVP5dJmhNkM0Bk=", + "requires": { + "concat-stream": "1.2.1", + "geojson-area": "0.1.0", + "minimist": "0.0.5" + }, + "dependencies": { + "concat-stream": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", + "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", + "requires": { + "bops": "0.0.6" + } + }, + "minimist": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", + "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=" + } + } + }, + "geojson-vt": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-2.4.0.tgz", + "integrity": "sha1-PBz0RJPzXrTSxwyV2mVQ3mYHLAU=" + }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, + "get-canvas-context": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", + "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=" + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -4249,53 +5112,1114 @@ } } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" + "gl-axes3d": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.2.5.tgz", + "integrity": "sha1-srQq+9gAJYWj5lQvzPh036phh2I=", + "requires": { + "bit-twiddle": "1.0.2", + "dup": "1.0.0", + "extract-frustum-planes": "1.0.0", + "gl-buffer": "2.1.2", + "gl-mat4": "1.1.4", + "gl-shader": "4.2.0", + "gl-state": "1.0.0", + "gl-vao": "1.3.0", + "gl-vec4": "1.0.1", + "glslify": "2.3.1", + "robust-orientation": "1.1.3", + "split-polygon": "1.0.0", + "vectorize-text": "3.0.2" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "gl-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", + "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "ndarray": "1.0.18", + "ndarray-ops": "1.2.2", + "typedarray-pool": "1.1.0" } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "requires": { - "is-glob": "2.0.1" - } + "gl-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz", + "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM=" }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "gl-contour2d": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gl-contour2d/-/gl-contour2d-1.1.3.tgz", + "integrity": "sha1-hidVZs6sG263bACtcpcieDXM02Q=", + "requires": { + "binary-search-bounds": "2.0.3", + "cdt2d": "1.0.0", + "clean-pslg": "1.1.2", + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "glslify": "4.0.0", + "iota-array": "1.0.0", + "ndarray": "1.0.18", + "surface-nets": "1.0.2" + }, + "dependencies": { + "binary-search-bounds": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz", + "integrity": "sha1-X/hhbW3SylOIvIWy1iZuK52lAtw=" + } + } }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, + "gl-error3d": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.6.tgz", + "integrity": "sha1-vgNGZ7YaKOgw7dNxpwmsHCJ6P9w=", "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "gl-vao": "1.3.0", + "glslify": "6.1.0" + }, + "dependencies": { + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "glslify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-6.1.0.tgz", + "integrity": "sha1-zf/P0qZXFyISjT0TNWwTbebOl0I=", + "requires": { + "bl": "1.2.1", + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "falafel": "2.1.0", + "from2": "2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glslify-bundle": "5.0.0", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "stack-trace": "0.0.9", + "static-eval": "1.1.1", + "tape": "4.8.0", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.0.0.tgz", + "integrity": "sha1-AlKtoe+d8wtmAAbguyH9EwtIbkI=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glsl-tokenizer": "2.1.2", + "murmurhash-js": "1.0.0", + "shallow-copy": "0.0.1" + } + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + }, + "static-eval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-1.1.1.tgz", + "integrity": "sha1-yoEwIQNUzxPZpyK8fpI3eEV7sZI=", + "requires": { + "escodegen": "1.9.0" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + } + } + }, + "gl-fbo": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz", + "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=", + "requires": { + "gl-texture2d": "2.1.0" + } + }, + "gl-format-compiler-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz", + "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=", + "requires": { + "add-line-numbers": "1.0.1", + "gl-constants": "1.0.0", + "glsl-shader-name": "1.0.0", + "sprintf-js": "1.0.3" + } + }, + "gl-heatmap2d": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.0.3.tgz", + "integrity": "sha1-acthUS4xGF6ovSbwJfXBrx8rChg=", + "requires": { + "binary-search-bounds": "2.0.3", + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "glslify": "4.0.0", + "iota-array": "1.0.0", + "typedarray-pool": "1.1.0" + }, + "dependencies": { + "binary-search-bounds": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz", + "integrity": "sha1-X/hhbW3SylOIvIWy1iZuK52lAtw=" + } + } + }, + "gl-line3d": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.1.0.tgz", + "integrity": "sha1-6K6Va4l/Ew+x1YeY+t90v5ohq5s=", + "requires": { + "binary-search-bounds": "1.0.0", + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "gl-texture2d": "2.1.0", + "gl-vao": "1.3.0", + "glsl-read-float": "1.1.0", + "glslify": "2.3.1", + "ndarray": "1.0.18" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-mat2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-mat2/-/gl-mat2-1.0.1.tgz", + "integrity": "sha1-FCUFcwpcL+Hp8l2ezj0NbMJxCjA=" + }, + "gl-mat3": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz", + "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI=" + }, + "gl-mat4": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.1.4.tgz", + "integrity": "sha1-HolbVYkuVqiWhnq9g30483oXgIY=" + }, + "gl-matrix": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-2.4.0.tgz", + "integrity": "sha1-IImxMwGinuyCLZ2Z3/wfeO6aPFA=" + }, + "gl-matrix-invert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-matrix-invert/-/gl-matrix-invert-1.0.0.tgz", + "integrity": "sha1-o2173jZUxFkKEn7nxo9uE/6oxj0=", + "requires": { + "gl-mat2": "1.0.1", + "gl-mat3": "1.0.0", + "gl-mat4": "1.1.4" + } + }, + "gl-mesh3d": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-1.3.0.tgz", + "integrity": "sha1-wYlohZKRxTiSOQQLUL+bPSZAYaY=", + "requires": { + "barycentric": "1.0.1", + "colormap": "2.3.0", + "gl-buffer": "2.1.2", + "gl-mat4": "1.1.4", + "gl-shader": "4.2.0", + "gl-texture2d": "2.1.0", + "gl-vao": "1.3.0", + "glsl-specular-cook-torrance": "2.0.1", + "glslify": "2.3.1", + "ndarray": "1.0.18", + "normals": "1.1.0", + "polytope-closest-point": "1.0.0", + "simplicial-complex-contour": "1.0.2", + "typedarray-pool": "1.1.0" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-plot2d": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.3.0.tgz", + "integrity": "sha512-rnjwbuxbXKUvUNQXCuicED6soUuaiXdd9cnylT7MpJZ1+2cGkjMpQ6KoW0J96NoEen0PjuiijyKRZP+ogSBhTg==", + "requires": { + "binary-search-bounds": "2.0.3", + "gl-buffer": "2.1.2", + "gl-select-static": "2.0.2", + "gl-shader": "4.2.1", + "glsl-inverse": "1.0.0", + "glslify": "2.3.1", + "text-cache": "4.1.0" + }, + "dependencies": { + "binary-search-bounds": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz", + "integrity": "sha1-X/hhbW3SylOIvIWy1iZuK52lAtw=" + }, + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "gl-shader": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.1.tgz", + "integrity": "sha1-vJuAjpKTxRtmjojeYVsMETcI3C8=", + "requires": { + "gl-format-compiler-error": "1.0.3", + "weakmap-shim": "1.1.1" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-plot3d": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-1.5.4.tgz", + "integrity": "sha1-vpwYaMgppH0KKrA8cNUor4aPnoY=", + "requires": { + "3d-view-controls": "2.2.0", + "a-big-triangle": "1.0.3", + "gl-axes3d": "1.2.5", + "gl-fbo": "2.0.5", + "gl-mat4": "1.1.4", + "gl-select-static": "2.0.2", + "gl-shader": "4.2.0", + "gl-spikes3d": "1.0.5", + "glslify": "2.3.1", + "is-mobile": "0.2.2", + "mouse-change": "1.4.0", + "ndarray": "1.0.18" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-pointcloud2d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.0.tgz", + "integrity": "sha1-QbrpluBJ4PHf2Pn44V/5A/xPv90=", + "requires": { + "gl-buffer": "2.1.2", + "gl-shader": "4.2.1", + "glslify": "2.3.1", + "typedarray-pool": "1.1.0" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "gl-shader": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.1.tgz", + "integrity": "sha1-vJuAjpKTxRtmjojeYVsMETcI3C8=", + "requires": { + "gl-format-compiler-error": "1.0.3", + "weakmap-shim": "1.1.1" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-quat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz", + "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=", + "requires": { + "gl-mat3": "1.0.0", + "gl-vec3": "1.0.3", + "gl-vec4": "1.0.1" + } + }, + "gl-scatter3d": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.0.10.tgz", + "integrity": "sha1-ScV/MxCMO1azWBVBkoqP7rLTfp4=", + "requires": { + "gl-buffer": "2.1.2", + "gl-mat4": "1.1.4", + "gl-shader": "4.2.0", + "gl-vao": "1.3.0", + "glslify": "2.3.1", + "typedarray-pool": "1.1.0", + "vectorize-text": "3.0.2" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-select-box": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.1.tgz", + "integrity": "sha1-DMjJBczif+jZGLsO4Th/WDj5Wek=", + "requires": { + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "glslify": "2.3.1" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-select-static": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.2.tgz", + "integrity": "sha1-8+GQHfAxgdUy55WFMjBnnUr1fuk=", + "requires": { + "bit-twiddle": "1.0.2", + "cwise": "1.0.10", + "gl-fbo": "2.0.5", + "ndarray": "1.0.18", + "typedarray-pool": "1.1.0" + } + }, + "gl-shader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.0.tgz", + "integrity": "sha1-KPd4E+/6DdXNqdqx8wHRsc2j6H4=", + "requires": { + "gl-format-compiler-error": "1.0.3", + "weakmap-shim": "1.1.1" + } + }, + "gl-spikes2d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.1.tgz", + "integrity": "sha1-ys2y09vNICuFNFLoUAqLB3lJzAM=" + }, + "gl-spikes3d": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.5.tgz", + "integrity": "sha1-aX6fLqdZe+Qauke9oRm5X0jKFX0=", + "requires": { + "gl-buffer": "2.1.2", + "gl-shader": "4.2.0", + "gl-vao": "1.3.0", + "glslify": "2.3.1" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-state": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", + "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", + "requires": { + "uniq": "1.0.1" + } + }, + "gl-surface3d": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.3.1.tgz", + "integrity": "sha1-z5wXdiTrUM87bNfMI6CIWEQ9qPk=", + "requires": { + "binary-search-bounds": "1.0.0", + "bit-twiddle": "1.0.2", + "colormap": "2.3.0", + "dup": "1.0.0", + "gl-buffer": "2.1.2", + "gl-mat4": "1.1.4", + "gl-shader": "4.2.0", + "gl-texture2d": "2.1.0", + "gl-vao": "1.3.0", + "glsl-specular-beckmann": "1.1.2", + "glslify": "2.3.1", + "ndarray": "1.0.18", + "ndarray-gradient": "1.0.0", + "ndarray-ops": "1.2.2", + "ndarray-pack": "1.2.1", + "ndarray-scratch": "1.2.0", + "surface-nets": "1.0.2", + "typedarray-pool": "1.1.0" + }, + "dependencies": { + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "1.0.34" + } + }, + "glslify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-2.3.1.tgz", + "integrity": "sha1-R6jOW/CGCVVqp+x2xqfTQwd23UY=", + "requires": { + "bl": "0.9.5", + "glsl-resolve": "0.0.1", + "glslify-bundle": "2.0.4", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-2.0.4.tgz", + "integrity": "sha1-eV3xGYGAeIYaoZiaDHXVnCDs/dY=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gl-texture2d": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz", + "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=", + "requires": { + "ndarray": "1.0.18", + "ndarray-ops": "1.2.2", + "typedarray-pool": "1.1.0" + } + }, + "gl-vao": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz", + "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM=" + }, + "gl-vec3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.0.3.tgz", + "integrity": "sha1-EQ/Yl9Byn2OYMHOBVn0JRJQb8is=" + }, + "gl-vec4": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz", + "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -4306,14 +6230,187 @@ } } }, - "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } + }, + "glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=", + "requires": { + "glsl-token-inject-block": "1.1.0", + "glsl-token-string": "1.0.1", + "glsl-tokenizer": "2.1.2" + } + }, + "glsl-inverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz", + "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY=" + }, + "glsl-read-float": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-read-float/-/glsl-read-float-1.1.0.tgz", + "integrity": "sha1-37CIsBYtz8xW/E7d0vhuGMrDLyY=" + }, + "glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=", + "requires": { + "resolve": "0.6.3", + "xtend": "2.2.0" + }, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" + }, + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=" + } + } + }, + "glsl-shader-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz", + "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=", + "requires": { + "atob-lite": "1.0.0", + "glsl-tokenizer": "2.1.2" + } + }, + "glsl-specular-beckmann": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz", + "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE=" + }, + "glsl-specular-cook-torrance": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz", + "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=", + "requires": { + "glsl-specular-beckmann": "1.1.2" + } + }, + "glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8=" + }, + "glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=", + "requires": { + "glsl-tokenizer": "2.1.2" + } + }, + "glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ=" + }, + "glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=", + "requires": { + "glsl-token-assignments": "2.0.2", + "glsl-token-depth": "1.1.2", + "glsl-token-properties": "1.0.1", + "glsl-token-scope": "1.1.2" + } + }, + "glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ=" + }, + "glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4=" + }, + "glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E=" + }, + "glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw=" + }, + "glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA=" + }, + "glsl-tokenizer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.2.tgz", + "integrity": "sha1-cgMHUi4DxXrzXABVGVDEpw7y37k=", + "requires": { + "through2": "0.6.5" + } + }, + "glslify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-4.0.0.tgz", + "integrity": "sha1-Tbz60TaVPzAVA/pKjgabIzahQjQ=", "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "minimatch": "3.0.4" + "bl": "1.2.1", + "glsl-resolve": "0.0.1", + "glslify-bundle": "4.0.1", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "static-module": "1.5.0", + "through2": "0.6.5", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-4.0.1.tgz", + "integrity": "sha1-ryzyBs15hRWRALM7XxRjqBt0TaE=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glsl-tokenizer": "2.1.2", + "murmurhash-js": "1.0.0", + "shallow-copy": "0.0.1" + } + }, + "glslify-deps": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.0.tgz", + "integrity": "sha1-CyI0yOqePT/X9rPLfwOuWea1Glk=", + "requires": { + "events": "1.1.1", + "findup": "0.1.5", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "2.1.2", + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "map-limit": "0.0.1", + "resolve": "1.5.0" } }, "got": { @@ -4342,6 +6439,11 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, + "grid-index": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.0.0.tgz", + "integrity": "sha1-rSxdVM5bNUN/r/HXCprrPR0mERA=" + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -4372,11 +6474,24 @@ "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=" + }, "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, + "has-hover": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", + "integrity": "sha1-PZdDeusZnGK4rAisvcU9O8UsF/c=", + "requires": { + "is-browser": "2.0.1" + } + }, "has-symbol-support-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", @@ -4514,6 +6629,11 @@ "extend": "3.0.1" } }, + "husl": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/husl/-/husl-5.0.3.tgz", + "integrity": "sha1-7icqr/G+vkDfNYjtAHtw3n5nl4g=" + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -4629,6 +6749,15 @@ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" }, + "incremental-convex-hull": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", + "integrity": "sha1-UUKMFMudmmFEv+abKFH7N3M0vh4=", + "requires": { + "robust-orientation": "1.1.3", + "simplicial-complex": "1.0.0" + } + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -4761,6 +6890,14 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, + "interval-tree-1d": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.3.tgz", + "integrity": "sha1-j9veArayx9verWNry+2OCHENhcE=", + "requires": { + "binary-search-bounds": "1.0.0" + } + }, "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", @@ -4774,6 +6911,16 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, + "invert-permutation": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-permutation/-/invert-permutation-1.0.0.tgz", + "integrity": "sha1-oKeAQurbNrwXVR54fv0UOa3VSTM=" + }, + "iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -4802,6 +6949,11 @@ "binary-extensions": "1.11.0" } }, + "is-browser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.0.1.tgz", + "integrity": "sha1-i/C695mpxi/Z3lvO5M8zl8PnUpo=" + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -4869,6 +7021,11 @@ "number-is-nan": "1.0.1" } }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -4877,6 +7034,11 @@ "is-extglob": "1.0.0" } }, + "is-iexplorer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", + "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=" + }, "is-integer": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", @@ -4886,6 +7048,11 @@ "is-finite": "1.0.2" } }, + "is-mobile": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-0.2.2.tgz", + "integrity": "sha1-Di4AbZntLCFVt2HfgPKjYZrirZ8=" + }, "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", @@ -5000,6 +7167,11 @@ "html-comment-regex": "1.1.1" } }, + "is-svg-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", + "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=" + }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", @@ -5182,6 +7354,15 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, + "jsonlint-lines-primitives": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/jsonlint-lines-primitives/-/jsonlint-lines-primitives-1.6.0.tgz", + "integrity": "sha1-u4n2DIubYS/ZE92qI2ZJuEDYZhE=", + "requires": { + "JSV": "4.0.2", + "nomnom": "1.8.1" + } + }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -5205,6 +7386,16 @@ } } }, + "kdbush": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-1.0.1.tgz", + "integrity": "sha1-PL0D6d6tnA9vZszblkUOXOzGQOA=" + }, + "kdgrass": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/kdgrass/-/kdgrass-1.0.1.tgz", + "integrity": "sha512-2sfleTaNfu4AQdL9Om42i7D+NnnIwTd+MJYkbCdyv1DvFtHkLLBc8ZwrM2nD1zp4AuSBzCfoDSWcba4c7iHodQ==" + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -5242,11 +7433,15 @@ "invert-kv": "1.0.0" } }, + "lerp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz", + "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24=" + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "1.1.2", "type-check": "0.3.2" @@ -5314,6 +7509,16 @@ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" }, + "lodash._baseisequal": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", + "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", + "requires": { + "lodash.isarray": "3.0.4", + "lodash.istypedarray": "3.0.6", + "lodash.keys": "3.1.2" + } + }, "lodash._bindcallback": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", @@ -5381,6 +7586,20 @@ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" }, + "lodash.isequal": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-3.0.4.tgz", + "integrity": "sha1-HDXrO27wzR/1F0Pj6jz3/f/ay2Q=", + "requires": { + "lodash._baseisequal": "3.0.7", + "lodash._bindcallback": "3.0.1" + } + }, + "lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=" + }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -5471,6 +7690,14 @@ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=" }, + "magic-string": { + "version": "0.22.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", + "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", + "requires": { + "vlq": "0.2.3" + } + }, "make-dir": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", @@ -5484,11 +7711,132 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.2.tgz", "integrity": "sha512-l9ra35l5VWLF24y75Tg8XgfGLX0ueRhph118WKM6H5denx4bB5QF59+4UAm9oJ2qsPQZas/CQUDdtDdfvYHBdQ==" }, + "map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", + "requires": { + "once": "1.3.3" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "requires": { + "wrappy": "1.0.2" + } + } + } + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "mapbox-gl": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-0.22.1.tgz", + "integrity": "sha1-kqllVH1MLyTCLLxIfu2khpTLYno=", + "requires": { + "csscolorparser": "1.0.3", + "earcut": "2.1.3", + "feature-filter": "2.2.0", + "geojson-rewind": "0.1.0", + "geojson-vt": "2.4.0", + "gl-matrix": "2.4.0", + "grid-index": "1.0.0", + "mapbox-gl-function": "1.3.0", + "mapbox-gl-shaders": "github:mapbox/mapbox-gl-shaders#de2ab007455aa2587c552694c68583f94c9f2747", + "mapbox-gl-style-spec": "github:mapbox/mapbox-gl-style-spec#83b1a3e5837d785af582efd5ed1a212f2df6a4ae", + "mapbox-gl-supported": "1.2.0", + "pbf": "1.3.7", + "pngjs": "2.3.1", + "point-geometry": "0.0.0", + "quickselect": "1.0.1", + "request": "2.76.0", + "resolve-url": "0.2.1", + "shelf-pack": "1.1.0", + "supercluster": "2.3.0", + "unassertify": "2.1.0", + "unitbezier": "0.0.0", + "vector-tile": "1.3.0", + "vt-pbf": "2.1.4", + "webworkify": "1.5.0", + "whoots-js": "2.1.0" + } + }, + "mapbox-gl-function": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mapbox-gl-function/-/mapbox-gl-function-1.3.0.tgz", + "integrity": "sha1-zuPZV1DBidReg6tBoKV/wqilCbw=" + }, + "mapbox-gl-shaders": { + "version": "github:mapbox/mapbox-gl-shaders#de2ab007455aa2587c552694c68583f94c9f2747", + "requires": { + "brfs": "1.4.3" + } + }, + "mapbox-gl-style-spec": { + "version": "github:mapbox/mapbox-gl-style-spec#83b1a3e5837d785af582efd5ed1a212f2df6a4ae", + "requires": { + "csscolorparser": "1.0.3", + "jsonlint-lines-primitives": "1.6.0", + "lodash.isequal": "3.0.4", + "minimist": "0.0.8", + "rw": "0.1.4", + "sort-object": "0.3.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mapbox-gl-supported": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mapbox-gl-supported/-/mapbox-gl-supported-1.2.0.tgz", + "integrity": "sha1-y9NN+JQgbK3amjPI2aRgnya7GYk=" + }, + "marching-simplex-table": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/marching-simplex-table/-/marching-simplex-table-1.0.0.tgz", + "integrity": "sha1-vBYlbg+Pm1WKqbKHL4gy2UM/Uuo=", + "requires": { + "convex-hull": "1.0.3" + } + }, + "mat4-decompose": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz", + "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=", + "requires": { + "gl-mat4": "1.1.4", + "gl-vec3": "1.0.3" + } + }, + "mat4-interpolate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz", + "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=", + "requires": { + "gl-mat4": "1.1.4", + "gl-vec3": "1.0.3", + "mat4-decompose": "1.0.4", + "mat4-recompose": "1.0.4", + "quat-slerp": "1.0.1" + } + }, + "mat4-recompose": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz", + "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=", + "requires": { + "gl-mat4": "1.1.4" + } + }, "math-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/math-array/-/math-array-1.1.2.tgz", @@ -5513,6 +7861,17 @@ "typed-function": "0.10.6" } }, + "matrix-camera-controller": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.3.tgz", + "integrity": "sha1-NeUmDMHNVQliunmfLY1OlLGjk3A=", + "requires": { + "binary-search-bounds": "1.0.0", + "gl-mat4": "1.1.4", + "gl-vec3": "1.0.3", + "mat4-interpolate": "1.0.4" + } + }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", @@ -5633,6 +7992,19 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" }, + "minify-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-1.1.0.tgz", + "integrity": "sha512-Y7bDc1y++oHPZBsz8GiS0E2M+O75OZXAKeHdG7eCcvXHS7fUKUSfUXK5iCKFtYZJaSTS+ircAnDUAhZKhHUjlA==", + "requires": { + "concat-stream": "1.6.0", + "convert-source-map": "1.5.1", + "duplexify": "3.5.3", + "from2-string": "1.1.0", + "uglify-es": "3.3.7", + "xtend": "4.0.1" + } + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -5709,6 +8081,49 @@ "require_optional": "1.0.1" } }, + "monotone-convex-hull-2d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", + "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=", + "requires": { + "robust-orientation": "1.1.3" + } + }, + "mouse-change": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", + "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=", + "requires": { + "mouse-event": "1.0.5" + } + }, + "mouse-event": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", + "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI=" + }, + "mouse-event-offset": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", + "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ=" + }, + "mouse-wheel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", + "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=", + "requires": { + "right-now": "1.0.0", + "signum": "1.0.0", + "to-px": "1.0.1" + }, + "dependencies": { + "signum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", + "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc=" + } + } + }, "moving-averages": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/moving-averages/-/moving-averages-4.0.5.tgz", @@ -5719,6 +8134,37 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "multi-stage-sourcemap": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", + "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", + "requires": { + "source-map": "0.1.43" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "mumath": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", + "integrity": "sha1-SNSg8P2MrU57Mglu6JsWGmPTC78=", + "requires": { + "almost-equal": "1.1.0" + } + }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -5736,11 +8182,111 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "ndarray": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.18.tgz", + "integrity": "sha1-tg06cyJOxVXQ+qeXEeUCRI/T95M=", + "requires": { + "iota-array": "1.0.0", + "is-buffer": "1.1.6" + } + }, + "ndarray-extract-contour": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-extract-contour/-/ndarray-extract-contour-1.0.1.tgz", + "integrity": "sha1-Cu4ROjozsia5DEiIz4d79HUTBeQ=", + "requires": { + "typedarray-pool": "1.1.0" + } + }, + "ndarray-fill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ndarray-fill/-/ndarray-fill-1.0.2.tgz", + "integrity": "sha1-owpg9xiODJWC/N1YiWrNy1IqHtY=", + "requires": { + "cwise": "1.0.10" + } + }, + "ndarray-gradient": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-gradient/-/ndarray-gradient-1.0.0.tgz", + "integrity": "sha1-t0kaUVxqZJ8ZpiMk//byf8jCU5M=", + "requires": { + "cwise-compiler": "1.1.3", + "dup": "1.0.0" + } + }, + "ndarray-homography": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-homography/-/ndarray-homography-1.0.0.tgz", + "integrity": "sha1-w1UW6oa8KGK06ASiNqJwcwn+KWs=", + "requires": { + "gl-matrix-invert": "1.0.0", + "ndarray-warp": "1.0.1" + } + }, + "ndarray-linear-interpolate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", + "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=" + }, + "ndarray-ops": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", + "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", + "requires": { + "cwise-compiler": "1.1.3" + } + }, + "ndarray-pack": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", + "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", + "requires": { + "cwise-compiler": "1.1.3", + "ndarray": "1.0.18" + } + }, + "ndarray-scratch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", + "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", + "requires": { + "ndarray": "1.0.18", + "ndarray-ops": "1.2.2", + "typedarray-pool": "1.1.0" + } + }, + "ndarray-sort": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-sort/-/ndarray-sort-1.0.1.tgz", + "integrity": "sha1-/qBbTLg0x/TgIWo1TzynUTAN/Wo=", + "requires": { + "typedarray-pool": "1.1.0" + } + }, + "ndarray-warp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-warp/-/ndarray-warp-1.0.1.tgz", + "integrity": "sha1-qKElqqu6C+v5O9bKg+ar1oIqNOA=", + "requires": { + "cwise": "1.0.10", + "ndarray-linear-interpolate": "1.0.0" + } + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "nextafter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz", + "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=", + "requires": { + "double-bits": "1.1.1" + } + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -6125,6 +8671,42 @@ "signalr-client": "0.0.17" } }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "requires": { + "chalk": "0.4.0", + "underscore": "1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "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=" + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" + } + } + }, "nonce": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nonce/-/nonce-1.0.4.tgz", @@ -6162,6 +8744,11 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, + "normalize-svg-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", + "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=" + }, "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", @@ -6173,6 +8760,11 @@ "sort-keys": "1.1.2" } }, + "normals": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz", + "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA=" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -10230,6 +12822,11 @@ "numbro": { "version": "github:highvelocityspace/numbro#65a801c05c40496e5701458c0d4e780060e9a742" }, + "numeric": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz", + "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao=" + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -10240,6 +12837,11 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-inspect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz", + "integrity": "sha512-OHHnLgLNXpM++GnJRyyhbr2bwl3pPVm4YvaraHrRvDt/N3r+s/gDVHciA7EJBTkijKXj61ssgSAikq1fb0IBRg==" + }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", @@ -10294,11 +12896,15 @@ "mimic-fn": "1.1.0" } }, + "optical-properties": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/optical-properties/-/optical-properties-1.0.0.tgz", + "integrity": "sha512-XnBQYbIIzDVr7U3L7d3xyAEqp1W+HTkqmw/G4L/Ae/+dq57bT1jqW2uDwV0wCUzO8gsTDIZhGQsGrMb17VSkEA==" + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "0.1.3", "fast-levenshtein": "2.0.6", @@ -10311,8 +12917,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, @@ -10321,6 +12926,15 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, + "orbit-camera-controller": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", + "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", + "requires": { + "filtered-vector": "1.2.4", + "gl-mat4": "1.1.4" + } + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -10392,6 +13006,14 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "pad-left": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz", + "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=", + "requires": { + "repeat-string": "1.6.1" + } + }, "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", @@ -10433,6 +13055,16 @@ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, + "parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" + }, + "parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" + }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -10500,6 +13132,15 @@ } } }, + "pbf": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-1.3.7.tgz", + "integrity": "sha1-Hj0Ee6PL6Ahq6FSiVQOrRTfUM10=", + "requires": { + "ieee754": "1.1.8", + "resolve-protobuf-schema": "2.0.0" + } + }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", @@ -10517,6 +13158,28 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "permutation-parity": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/permutation-parity/-/permutation-parity-1.0.0.tgz", + "integrity": "sha1-AXTVH8pwSxG5pLFSsj1Tf9xrXvQ=", + "requires": { + "typedarray-pool": "1.1.0" + } + }, + "permutation-rank": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/permutation-rank/-/permutation-rank-1.0.0.tgz", + "integrity": "sha1-n9mLvOzwj79ZlLXq3JSmLmeUg7U=", + "requires": { + "invert-permutation": "1.0.0", + "typedarray-pool": "1.1.0" + } + }, + "pick-by-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", + "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=" + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -10548,12 +13211,119 @@ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" }, + "planar-dual": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz", + "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=", + "requires": { + "compare-angle": "1.0.1", + "dup": "1.0.0" + } + }, + "planar-graph-to-polyline": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.5.tgz", + "integrity": "sha1-iCuGBRmbqIv9RkyVUzA1VsUrmIo=", + "requires": { + "edges-to-adjacency-list": "1.0.0", + "planar-dual": "1.0.2", + "point-in-big-polygon": "2.0.0", + "robust-orientation": "1.1.3", + "robust-sum": "1.0.0", + "two-product": "1.0.2", + "uniq": "1.0.1" + } + }, + "plotly.js": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.33.0.tgz", + "integrity": "sha1-auLQz9XcQcbgx9OzyqcDUArUZq8=", + "requires": { + "3d-view": "2.0.0", + "@plotly/d3-sankey": "0.5.0", + "alpha-shape": "1.0.0", + "bubleify": "1.1.0", + "canvas-fit": "1.5.0", + "color-normalize": "1.0.3", + "color-rgba": "2.0.0", + "convex-hull": "1.0.3", + "country-regex": "1.1.0", + "d3": "3.5.17", + "d3-force": "1.1.0", + "delaunay-triangulate": "1.1.6", + "es6-promise": "3.3.1", + "fast-isnumeric": "1.1.1", + "font-atlas-sdf": "1.3.3", + "gl-contour2d": "1.1.3", + "gl-error3d": "1.0.6", + "gl-heatmap2d": "1.0.3", + "gl-line3d": "1.1.0", + "gl-mat4": "1.1.4", + "gl-mesh3d": "1.3.0", + "gl-plot2d": "1.3.0", + "gl-plot3d": "1.5.4", + "gl-pointcloud2d": "1.0.0", + "gl-scatter3d": "1.0.10", + "gl-select-box": "1.0.1", + "gl-shader": "4.2.0", + "gl-spikes2d": "1.0.1", + "gl-surface3d": "1.3.1", + "has-hover": "1.0.1", + "kdgrass": "1.0.1", + "mapbox-gl": "0.22.1", + "matrix-camera-controller": "2.1.3", + "minify-stream": "1.1.0", + "mouse-change": "1.4.0", + "mouse-event-offset": "3.0.2", + "mouse-wheel": "1.2.0", + "ndarray": "1.0.18", + "ndarray-fill": "1.0.2", + "ndarray-homography": "1.0.0", + "ndarray-ops": "1.2.2", + "polybooljs": "1.2.0", + "regl": "1.3.1", + "regl-error2d": "2.0.4", + "regl-line2d": "2.1.1", + "regl-scatter2d": "2.1.9", + "right-now": "1.0.0", + "robust-orientation": "1.1.3", + "sane-topojson": "2.0.0", + "strongly-connected-components": "1.0.1", + "superscript-text": "1.0.0", + "svg-path-sdf": "1.1.1", + "tinycolor2": "1.4.1", + "topojson-client": "2.1.0", + "webgl-context": "2.2.0", + "world-calendars": "1.0.3" + } + }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, + "pngjs": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz", + "integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=" + }, + "point-geometry": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/point-geometry/-/point-geometry-0.0.0.tgz", + "integrity": "sha1-b8vK16gDtkGCR91uScKFPFhNr/c=" + }, + "point-in-big-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.0.tgz", + "integrity": "sha1-ObYT6mzxfWtD4Yj3fzTETGszulU=", + "requires": { + "binary-search-bounds": "1.0.0", + "interval-tree-1d": "1.0.3", + "robust-orientation": "1.1.3", + "slab-decomposition": "1.0.2" + } + }, "poloniex.js": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.8.tgz", @@ -10720,6 +13490,19 @@ } } }, + "polybooljs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", + "integrity": "sha1-tDkMLgedTCYtOyUExiiNlbp6R1g=" + }, + "polytope-closest-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz", + "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=", + "requires": { + "numeric": "1.2.6" + } + }, "popper.js": { "version": "1.12.9", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz", @@ -11381,8 +14164,7 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", @@ -11414,6 +14196,11 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" }, + "protocol-buffers-schema": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-2.2.0.tgz", + "integrity": "sha1-0pxs1z+2VZePtpiWkRgNuEQRn2E=" + }, "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", @@ -11651,6 +14438,14 @@ "request": "2.76.0" } }, + "quat-slerp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz", + "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=", + "requires": { + "gl-quat": "1.0.0" + } + }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", @@ -11670,6 +14465,70 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, + "quickselect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.0.1.tgz", + "integrity": "sha512-Jt30UQSzTbxf6L2bFTMabHtGtYUzQcvOY0a+s5brm8tzndV/XWifBIH9v5QKtH5gGCZ5RRDwRhdhGMDVHAEGNQ==" + }, + "quote-stream": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", + "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", + "requires": { + "minimist": "0.0.8", + "through2": "0.4.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "2.1.2" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "0.4.0" + } + } + } + }, "random-port": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/random-port/-/random-port-0.1.0.tgz", @@ -11734,6 +14593,14 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, + "rat-vec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz", + "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=", + "requires": { + "big-rat": "1.0.4" + } + }, "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", @@ -11865,6 +14732,16 @@ } } }, + "reduce-simplicial-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz", + "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=", + "requires": { + "cell-orientation": "1.0.1", + "compare-cell": "1.0.0", + "compare-oriented-cell": "1.0.1" + } + }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", @@ -11928,6 +14805,231 @@ } } }, + "regl": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regl/-/regl-1.3.1.tgz", + "integrity": "sha1-KZXmOnmExSDvLaD28QJ/cFEzgUA=" + }, + "regl-error2d": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.4.tgz", + "integrity": "sha512-EsK+KJ2OREwMyVQ5jRBcoHN3vWPM8RSKU6mHlAVZ4sh71XsbQh4ob+IQ200nHasvusWY6ensMZG+RwTbG5tvXQ==", + "requires": { + "array-bounds": "1.0.1", + "bubleify": "1.1.0", + "color-normalize": "1.0.3", + "flatten-vertex-data": "1.0.0", + "object-assign": "4.1.1", + "pick-by-alias": "1.2.0", + "to-float32": "1.0.0", + "update-diff": "1.1.0" + } + }, + "regl-line2d": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-2.1.1.tgz", + "integrity": "sha512-8oB/6rip2rRh0REsgURoAVSLgPTGB6Dl9Eib/LmKTh8yTCuc9Z+TZeFTZZwTGldDCh5Et5V0GxdAwgP0Z6D0zQ==", + "requires": { + "array-bounds": "1.0.1", + "array-normalize": "1.1.3", + "bubleify": "1.1.0", + "color-normalize": "1.0.3", + "earcut": "2.1.3", + "flatten-vertex-data": "1.0.0", + "glslify": "6.1.0", + "object-assign": "4.1.1", + "pick-by-alias": "1.2.0", + "to-float32": "1.0.0", + "update-diff": "1.1.0" + }, + "dependencies": { + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "glslify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-6.1.0.tgz", + "integrity": "sha1-zf/P0qZXFyISjT0TNWwTbebOl0I=", + "requires": { + "bl": "1.2.1", + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "falafel": "2.1.0", + "from2": "2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glslify-bundle": "5.0.0", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "stack-trace": "0.0.9", + "static-eval": "1.1.1", + "tape": "4.8.0", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.0.0.tgz", + "integrity": "sha1-AlKtoe+d8wtmAAbguyH9EwtIbkI=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glsl-tokenizer": "2.1.2", + "murmurhash-js": "1.0.0", + "shallow-copy": "0.0.1" + } + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + }, + "static-eval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-1.1.1.tgz", + "integrity": "sha1-yoEwIQNUzxPZpyK8fpI3eEV7sZI=", + "requires": { + "escodegen": "1.9.0" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + } + } + }, + "regl-scatter2d": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-2.1.9.tgz", + "integrity": "sha512-x2hMggtUQMAA4yQ759EjBij0fv4cF2+OEOsQTM1s+ObcUTJDfpbEa6KNTSqWGYpbCIgJcfVPxKl6o0TtnZ03tw==", + "requires": { + "binary-search-bounds": "2.0.3", + "bubleify": "1.1.0", + "clamp": "1.0.1", + "color-id": "1.1.0", + "color-normalize": "1.0.3", + "flatten-vertex-data": "1.0.0", + "glslify": "6.1.0", + "is-iexplorer": "1.0.0", + "object-assign": "4.1.1", + "pick-by-alias": "1.2.0", + "snap-points-2d": "3.2.0", + "to-float32": "1.0.0", + "update-diff": "1.1.0" + }, + "dependencies": { + "binary-search-bounds": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz", + "integrity": "sha1-X/hhbW3SylOIvIWy1iZuK52lAtw=" + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "glslify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-6.1.0.tgz", + "integrity": "sha1-zf/P0qZXFyISjT0TNWwTbebOl0I=", + "requires": { + "bl": "1.2.1", + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "falafel": "2.1.0", + "from2": "2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glslify-bundle": "5.0.0", + "glslify-deps": "1.3.0", + "minimist": "1.2.0", + "resolve": "1.5.0", + "stack-trace": "0.0.9", + "static-eval": "1.1.1", + "tape": "4.8.0", + "through2": "2.0.3", + "xtend": "4.0.1" + } + }, + "glslify-bundle": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.0.0.tgz", + "integrity": "sha1-AlKtoe+d8wtmAAbguyH9EwtIbkI=", + "requires": { + "glsl-inject-defines": "1.0.3", + "glsl-token-defines": "1.0.0", + "glsl-token-depth": "1.1.2", + "glsl-token-descope": "1.0.2", + "glsl-token-scope": "1.1.2", + "glsl-token-string": "1.0.1", + "glsl-token-whitespace-trim": "1.0.0", + "glsl-tokenizer": "2.1.2", + "murmurhash-js": "1.0.0", + "shallow-copy": "0.0.1" + } + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + }, + "static-eval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-1.1.1.tgz", + "integrity": "sha1-yoEwIQNUzxPZpyK8fpI3eEV7sZI=", + "requires": { + "escodegen": "1.9.0" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + } + } + }, "regression": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", @@ -12075,6 +15177,14 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, + "resolve-protobuf-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.0.0.tgz", + "integrity": "sha1-5nsGKmfwLRG9aIbnDv2niEB+D7Q=", + "requires": { + "protocol-buffers-schema": "2.2.0" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -12113,6 +15223,14 @@ "signal-exit": "3.0.2" } }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "2.3.8" + } + }, "retry": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz", @@ -12147,6 +15265,11 @@ "align-text": "0.1.4" } }, + "right-now": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", + "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=" + }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -12174,6 +15297,97 @@ } } }, + "robust-compress": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz", + "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs=" + }, + "robust-determinant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/robust-determinant/-/robust-determinant-1.1.0.tgz", + "integrity": "sha1-jsrnm3nKqz509t6+IjflORon6cc=", + "requires": { + "robust-compress": "1.0.0", + "robust-scale": "1.0.2", + "robust-sum": "1.0.0", + "two-product": "1.0.2" + } + }, + "robust-dot-product": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", + "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", + "requires": { + "robust-sum": "1.0.0", + "two-product": "1.0.2" + } + }, + "robust-in-sphere": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", + "integrity": "sha1-HFiD0WpOkjkpR27zSBmFe/Kpz3U=", + "requires": { + "robust-scale": "1.0.2", + "robust-subtract": "1.0.0", + "robust-sum": "1.0.0", + "two-product": "1.0.2" + } + }, + "robust-linear-solve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-linear-solve/-/robust-linear-solve-1.0.0.tgz", + "integrity": "sha1-DNasUEBpGm8qo81jEdcokFyjofE=", + "requires": { + "robust-determinant": "1.1.0" + } + }, + "robust-orientation": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz", + "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=", + "requires": { + "robust-scale": "1.0.2", + "robust-subtract": "1.0.0", + "robust-sum": "1.0.0", + "two-product": "1.0.2" + } + }, + "robust-product": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz", + "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=", + "requires": { + "robust-scale": "1.0.2", + "robust-sum": "1.0.0" + } + }, + "robust-scale": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", + "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=", + "requires": { + "two-product": "1.0.2", + "two-sum": "1.0.0" + } + }, + "robust-segment-intersect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz", + "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=", + "requires": { + "robust-orientation": "1.1.3" + } + }, + "robust-subtract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", + "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo=" + }, + "robust-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", + "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=" + }, "round-precision": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/round-precision/-/round-precision-1.0.0.tgz", @@ -12209,6 +15423,11 @@ "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz", "integrity": "sha1-iac93F51ye+KtjIMChYA1qQRebk=" }, + "rw": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/rw/-/rw-0.1.4.tgz", + "integrity": "sha1-SQPL2AJIrg7eaFv1j9I2p6mymj4=" + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -12237,6 +15456,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "sane-topojson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-2.0.0.tgz", + "integrity": "sha1-QOJXNqKMTM6qojP0W7hjc6J4W4Q=" + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -12417,6 +15641,11 @@ } } }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -12430,6 +15659,11 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, + "shelf-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shelf-pack/-/shelf-pack-1.1.0.tgz", + "integrity": "sha1-tGea/dAK1o39m70rWj6BkpOnTYI=" + }, "shelljs": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz", @@ -12459,6 +15693,11 @@ "websocket": "1.0.25" } }, + "signum": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz", + "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY=" + }, "simple-xmpp": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/simple-xmpp/-/simple-xmpp-1.3.0.tgz", @@ -12468,6 +15707,75 @@ "qbox": "0.1.7" } }, + "simplicial-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz", + "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=", + "requires": { + "bit-twiddle": "1.0.2", + "union-find": "1.0.2" + } + }, + "simplicial-complex-boundary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz", + "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=", + "requires": { + "boundary-cells": "2.0.1", + "reduce-simplicial-complex": "1.0.0" + } + }, + "simplicial-complex-contour": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/simplicial-complex-contour/-/simplicial-complex-contour-1.0.2.tgz", + "integrity": "sha1-iQqsrChDZTQBEFRc8mKaJuBL+dE=", + "requires": { + "marching-simplex-table": "1.0.0", + "ndarray": "1.0.18", + "ndarray-sort": "1.0.1", + "typedarray-pool": "1.1.0" + } + }, + "simplify-planar-graph": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz", + "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=", + "requires": { + "robust-orientation": "1.1.3", + "simplicial-complex": "0.3.3" + }, + "dependencies": { + "bit-twiddle": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz", + "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4=" + }, + "simplicial-complex": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz", + "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=", + "requires": { + "bit-twiddle": "0.0.2", + "union-find": "0.0.4" + } + }, + "union-find": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz", + "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY=" + } + } + }, + "slab-decomposition": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.2.tgz", + "integrity": "sha1-He1WdU1AixBznxRRA9/GGAf2UTQ=", + "requires": { + "binary-search-bounds": "1.0.0", + "functional-red-black-tree": "1.0.1", + "robust-orientation": "1.1.3" + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -12490,6 +15798,14 @@ } } }, + "snap-points-2d": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/snap-points-2d/-/snap-points-2d-3.2.0.tgz", + "integrity": "sha1-DhniKjoOlrziHN9cfx1+1blnRfA=", + "requires": { + "array-bounds": "1.0.1" + } + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -12498,6 +15814,16 @@ "hoek": "2.16.3" } }, + "sort-asc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", + "integrity": "sha1-q3md9h/HPqCVbHnEtTHtHp53J+k=" + }, + "sort-desc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", + "integrity": "sha1-GYuMDN6wlcRjNBhh45JdTuNZqe4=" + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -12506,6 +15832,15 @@ "is-plain-obj": "1.1.0" } }, + "sort-object": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", + "integrity": "sha1-mODRme3kDgfGGoRAPGHWw7KQ+eI=", + "requires": { + "sort-asc": "0.1.0", + "sort-desc": "0.1.1" + } + }, "sosa": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sosa/-/sosa-1.1.3.tgz", @@ -12571,6 +15906,15 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, + "split-polygon": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", + "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", + "requires": { + "robust-dot-product": "1.0.0", + "robust-sum": "1.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12603,6 +15947,104 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "static-eval": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", + "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", + "requires": { + "escodegen": "0.0.28" + }, + "dependencies": { + "escodegen": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", + "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", + "requires": { + "esprima": "1.0.4", + "estraverse": "1.3.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "estraverse": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", + "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=" + } + } + }, + "static-module": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.5.0.tgz", + "integrity": "sha1-J9qYg8QajNCSNvhC8MHrxu32PYY=", + "requires": { + "concat-stream": "1.6.0", + "duplexer2": "0.0.2", + "escodegen": "1.3.3", + "falafel": "2.1.0", + "has": "1.0.1", + "object-inspect": "0.4.0", + "quote-stream": "0.0.0", + "readable-stream": "1.0.34", + "shallow-copy": "0.0.1", + "static-eval": "0.2.4", + "through2": "0.4.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "object-inspect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", + "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "2.1.2" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "0.4.0" + } + } + } + }, "stats-lite": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/stats-lite/-/stats-lite-2.1.0.tgz", @@ -12650,6 +16092,11 @@ "xtend": "4.0.1" } }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -12665,6 +16112,16 @@ "strip-ansi": "3.0.1" } }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1" + } + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -12712,6 +16169,11 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, + "strongly-connected-components": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", + "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" + }, "style-loader": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", @@ -12721,11 +16183,72 @@ "schema-utils": "0.3.0" } }, + "supercluster": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-2.3.0.tgz", + "integrity": "sha1-h6tWCBu+qaHXJN9TUe6ejDry9Is=", + "requires": { + "kdbush": "1.0.1" + } + }, + "superscript-text": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", + "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=" + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, + "surface-nets": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/surface-nets/-/surface-nets-1.0.2.tgz", + "integrity": "sha1-5DPIy7qUpydMb0yZVStGG/H8eks=", + "requires": { + "ndarray-extract-contour": "1.0.1", + "triangulate-hypercube": "1.0.1", + "zero-crossings": "1.0.1" + } + }, + "svg-arc-to-cubic-bezier": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.0.0.tgz", + "integrity": "sha1-iFaaoYqLrWOEA7+taB97Wp8vZoU=" + }, + "svg-path-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.1.tgz", + "integrity": "sha1-v0WLeDcmv1NDG0Yz8nkvYHSNn3Q=", + "requires": { + "abs-svg-path": "0.1.1", + "is-svg-path": "1.0.2", + "normalize-svg-path": "1.0.1", + "parse-svg-path": "0.1.2" + }, + "dependencies": { + "normalize-svg-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.0.1.tgz", + "integrity": "sha1-b3Ka1rcLtMpO/y/ksQdInv4dVv4=", + "requires": { + "svg-arc-to-cubic-bezier": "3.0.0" + } + } + } + }, + "svg-path-sdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.1.tgz", + "integrity": "sha1-oqlHJb/mw8Gsn6UmYCc/P18JMuU=", + "requires": { + "bitmap-sdf": "1.0.3", + "draw-svg-path": "1.0.0", + "is-svg-path": "1.0.2", + "parse-svg-path": "0.1.2", + "svg-path-bounds": "1.0.1" + } + }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", @@ -12855,6 +16378,36 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" }, + "tape": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz", + "integrity": "sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA==", + "requires": { + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.2", + "function-bind": "1.1.1", + "glob": "7.1.2", + "has": "1.0.1", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.3.0", + "resolve": "1.4.0", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" + }, + "dependencies": { + "resolve": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "requires": { + "path-parse": "1.0.5" + } + } + } + }, "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", @@ -12865,6 +16418,14 @@ "inherits": "2.0.3" } }, + "text-cache": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.1.0.tgz", + "integrity": "sha1-fFgJDoWsCRD5dt9M/Izoqg6lh2Y=", + "requires": { + "vectorize-text": "3.0.2" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -12874,8 +16435,39 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } }, "timebucket": { "version": "0.4.0", @@ -12903,6 +16495,16 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" }, + "tiny-sdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-sdf/-/tiny-sdf-1.0.2.tgz", + "integrity": "sha1-KOdphcRMTlhMS2fY7N2bM6HKwow=" + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12922,6 +16524,32 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "to-float32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.0.tgz", + "integrity": "sha512-AtYAqiHS1q+IqVfZOExaRC72mUZuMZP7yU1xsR07y0SLLEvPf68R+xGfya3eY4CR7jxT/zQt3wM8w4mGq/mPXA==" + }, + "to-px": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", + "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=", + "requires": { + "parse-unit": "1.0.1" + } + }, + "to-utf8": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", + "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=" + }, + "topojson-client": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-2.1.0.tgz", + "integrity": "sha1-/59784mRGF4LQoTCsGroNPDqxsg=", + "requires": { + "commander": "2.12.2" + } + }, "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", @@ -12930,11 +16558,37 @@ "punycode": "1.4.1" } }, + "transform-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/transform-loader/-/transform-loader-0.2.4.tgz", + "integrity": "sha1-5ch4d7qW1R0/IlNoWHtG4ibRzsk=", + "requires": { + "loader-utils": "1.1.0" + } + }, "trend": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/trend/-/trend-0.3.0.tgz", "integrity": "sha1-MA6kPSYYydVrA/JJcwn4VY63i4k=" }, + "triangulate-hypercube": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/triangulate-hypercube/-/triangulate-hypercube-1.0.1.tgz", + "integrity": "sha1-2Acdsuv8/VHzCNC88qXEils20Tc=", + "requires": { + "gamma": "0.1.0", + "permutation-parity": "1.0.0", + "permutation-rank": "1.0.0" + } + }, + "triangulate-polyline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz", + "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=", + "requires": { + "cdt2d": "1.0.0" + } + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -13107,17 +16761,36 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" }, + "turntable-camera-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", + "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", + "requires": { + "filtered-vector": "1.2.4", + "gl-mat4": "1.1.4", + "gl-vec3": "1.0.3" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "two-product": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", + "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo=" + }, + "two-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", + "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q=" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "1.1.2" } @@ -13139,8 +16812,16 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.1.0.tgz", + "integrity": "sha1-0RT0hIAUifU+yrXoCIqiMET0mNk=", + "requires": { + "bit-twiddle": "1.0.2", + "dup": "1.0.0" + } }, "typedarray-to-buffer": { "version": "3.1.2", @@ -13155,6 +16836,27 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=" }, + "uglify-es": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.7.tgz", + "integrity": "sha512-fGMnE6SsDRsCjxm78C+lv7MuXsse/dtF7QuTUT43BYf4jlxPjd+XTnGB8YjaCQJ3sv2LT4zk0mwpp9+QJocU6g==", + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -13214,11 +16916,69 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, + "unassert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/unassert/-/unassert-1.5.1.tgz", + "integrity": "sha1-y8iOw4dBfFpeTALTzQe+mL11/3Y=", + "requires": { + "acorn": "4.0.13", + "call-matcher": "1.0.1", + "deep-equal": "1.0.1", + "espurify": "1.7.0", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "object-assign": "4.1.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } + } + }, + "unassertify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unassertify/-/unassertify-2.1.0.tgz", + "integrity": "sha512-CB3C3vbOwrZydRuGdU8H421r4/qhM8RLuEOo3G+wEFf7kDP4TR+7oDuj1yOik5pUzXMaJmzxICM7akupP1AlJw==", + "requires": { + "acorn": "5.3.0", + "convert-source-map": "1.5.1", + "escodegen": "1.9.0", + "multi-stage-sourcemap": "0.2.1", + "through": "2.3.8", + "unassert": "1.5.1" + }, + "dependencies": { + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, "underscore": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" }, + "union-find": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz", + "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg=" + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -13237,11 +16997,21 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, + "unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha1-M79/XXKExTUL/Fx/dw+6dUnFSl4=" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "update-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", + "integrity": "sha1-9RAYLYHugZ+4LDprIrYrve2ngI8=" + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -13350,6 +17120,28 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "vector-tile": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vector-tile/-/vector-tile-1.3.0.tgz", + "integrity": "sha1-BtUWqDsGPwTILvU5zxuxrr62lrQ=", + "requires": { + "point-geometry": "0.0.0" + } + }, + "vectorize-text": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.0.2.tgz", + "integrity": "sha1-BasWMOQJ83eWTiuSBbLVWakvYNg=", + "requires": { + "cdt2d": "1.0.0", + "clean-pslg": "1.1.2", + "ndarray": "1.0.18", + "planar-graph-to-polyline": "1.0.5", + "simplify-planar-graph": "2.0.1", + "surface-nets": "1.0.2", + "triangulate-polyline": "1.0.3" + } + }, "vendors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", @@ -13372,6 +17164,11 @@ } } }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -13380,6 +17177,16 @@ "indexof": "0.0.1" } }, + "vt-pbf": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-2.1.4.tgz", + "integrity": "sha1-td98P5cGFW4LmIGpncsFY1dAtSI=", + "requires": { + "pbf": "1.3.7", + "point-geometry": "0.0.0", + "vector-tile": "1.3.0" + } + }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", @@ -13395,6 +17202,24 @@ "resolved": "https://registry.npmjs.org/waypoints/-/waypoints-4.0.1.tgz", "integrity": "sha1-CZeaBXOBCylifLpDZqKEoGLsacg=" }, + "weak-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", + "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" + }, + "weakmap-shim": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", + "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k=" + }, + "webgl-context": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", + "integrity": "sha1-jzfXJXz23xzQpJ5qextyG5TMhqA=", + "requires": { + "get-canvas-context": "1.0.2" + } + }, "webpack": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", @@ -13603,11 +17428,21 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" }, + "webworkify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/webworkify/-/webworkify-1.5.0.tgz", + "integrity": "sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==" + }, "wexnz": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.3.tgz", "integrity": "sha512-/aOABXmapFoTvv7hLKtQlW2ueWXE43JvrrMK5G3tD62fRA/S7ZX4Tu+Lv5O/VhcRz9FisFrO9PD49bOA0mFang==" }, + "wgs84": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz", + "integrity": "sha1-NP3FVZF7blfPKigu0ENxDASc3HY=" + }, "whet.extend": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", @@ -13626,6 +17461,11 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, + "whoots-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/whoots-js/-/whoots-js-2.1.0.tgz", + "integrity": "sha1-vLIBw04OrzNfzOWuLPh0V5qZxIc=" + }, "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", @@ -13669,6 +17509,14 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" }, + "world-calendars": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", + "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", + "requires": { + "object-assign": "4.1.1" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -13847,6 +17695,14 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" }, + "zero-crossings": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/zero-crossings/-/zero-crossings-1.0.1.tgz", + "integrity": "sha1-xWK9MRNkPzRDokXRJAa4i2m5qf8=", + "requires": { + "cwise-compiler": "1.1.3" + } + }, "zero-fill": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/zero-fill/-/zero-fill-2.2.3.tgz", From 56e4d3f1b7921b2bc28d205dd747dc5f8431fde8 Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Sun, 21 Jan 2018 05:43:21 -0500 Subject: [PATCH 053/236] Code Reformat genetic_backtester (#1188) Format code to standards set in .eslintrc --- scripts/genetic_backtester/darwin.js | 423 ++++++++++++------------ scripts/genetic_backtester/phenotype.js | 74 ++--- 2 files changed, 249 insertions(+), 248 deletions(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index 3eda714e65..8e71c32eaf 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -7,39 +7,39 @@ * Example: ./darwin.js --selector="bitfinex.ETH-USD" --days="10" --currency_capital="5000" --use_strategies="all | macd,trend_ema,etc" --population="101" --population_data="simulations/generation_data_NUMBERS_gen_X.json" */ -let shell = require('shelljs'); -let parallel = require('run-parallel-limit'); -let json2csv = require('json2csv'); -let roundp = require('round-precision'); -let fs = require('fs'); -let GeneticAlgorithmCtor = require('geneticalgorithm'); -let StripAnsi = require('strip-ansi'); -let moment = require('moment'); +let shell = require('shelljs') +let parallel = require('run-parallel-limit') +let json2csv = require('json2csv') +let roundp = require('round-precision') +let fs = require('fs') +let GeneticAlgorithmCtor = require('geneticalgorithm') +let StripAnsi = require('strip-ansi') +let moment = require('moment') -let Phenotypes = require('./phenotype.js'); +let Phenotypes = require('./phenotype.js') -let VERSION = 'Zenbot 4 Genetic Backtester v0.2'; +let VERSION = 'Zenbot 4 Genetic Backtester v0.2' -let PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length; +let PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length -let TREND_EMA_MIN = 20; -let TREND_EMA_MAX = 20; +let TREND_EMA_MIN = 20 +let TREND_EMA_MAX = 20 -let OVERSOLD_RSI_MIN = 20; -let OVERSOLD_RSI_MAX = 35; +let OVERSOLD_RSI_MIN = 20 +let OVERSOLD_RSI_MAX = 35 -let OVERSOLD_RSI_PERIODS_MIN = 15; -let OVERSOLD_RSI_PERIODS_MAX = 25; +let OVERSOLD_RSI_PERIODS_MIN = 15 +let OVERSOLD_RSI_PERIODS_MAX = 25 -let NEUTRAL_RATE_MIN = 10; -let NEUTRAL_RATE_MAX = 10; +let NEUTRAL_RATE_MIN = 10 +let NEUTRAL_RATE_MAX = 10 -let NEUTRAL_RATE_AUTO = false; +let NEUTRAL_RATE_AUTO = false -let iterationCount = 0; +let iterationCount = 0 let runCommand = (taskStrategyName, phenotype, cb) => { - let commonArgs = `--strategy=${taskStrategyName} --period_length=${phenotype.period_length} --min_periods=${phenotype.min_periods} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct} --order_type=${phenotype.order_type} --sell_stop_pct=${phenotype.sell_stop_pct} --buy_stop_pct=${phenotype.buy_stop_pct} --profit_stop_enable_pct=${phenotype.profit_stop_enable_pct} --profit_stop_pct=${phenotype.profit_stop_pct}`; + let commonArgs = `--strategy=${taskStrategyName} --period_length=${phenotype.period_length} --min_periods=${phenotype.min_periods} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct} --order_type=${phenotype.order_type} --sell_stop_pct=${phenotype.sell_stop_pct} --buy_stop_pct=${phenotype.buy_stop_pct} --profit_stop_enable_pct=${phenotype.profit_stop_enable_pct} --profit_stop_pct=${phenotype.profit_stop_pct}` let strategyArgs = { bollinger: `--bollinger_size=${phenotype.bollinger_size} --bollinger_time=${phenotype.bollinger_time} --bollinger_upper_bound_pct=${phenotype.bollinger_upper_bound_pct} --bollinger_lower_bound_pct=${phenotype.bollinger_lower_bound_pct}`, crossover_vwap: `--emalen1=${phenotype.emalen1} --smalen1=${phenotype.smalen1} --smalen2=${phenotype.smalen2} --vwap_length=${phenotype.vwap_length} --vwap_max=${phenotype.vwap_max}`, @@ -56,104 +56,104 @@ let runCommand = (taskStrategyName, phenotype, cb) => { ta_macd: `--ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold} --overbought_rsi_periods=${phenotype.overbought_rsi_periods} --overbought_rsi=${phenotype.overbought_rsi}`, ta_ema: `--trend_ema=${phenotype.trend_ema} --oversold_rsi=${phenotype.oversold_rsi} --oversold_rsi_periods=${phenotype.oversold_rsi_periods} --neutral_rate=auto`, dema: `--ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold} --overbought_rsi_periods=${phenotype.overbought_rsi_periods} --overbought_rsi=${phenotype.overbought_rsi}` - }; - let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh'; - let command = `${zenbot_cmd} sim ${simArgs} ${commonArgs} ${strategyArgs[taskStrategyName]}`; - console.log(`[ ${iterationCount++}/${populationSize * selectedStrategies.length} ] ${command}`); + } + let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' + let command = `${zenbot_cmd} sim ${simArgs} ${commonArgs} ${strategyArgs[taskStrategyName]}` + console.log(`[ ${iterationCount++}/${populationSize * selectedStrategies.length} ] ${command}`) - phenotype['sim'] = {}; + phenotype['sim'] = {} shell.exec(command, { silent: true, async: true }, (code, stdout, stderr) => { if (code) { - console.error(command); - console.error(stderr); - return cb(null, null); + console.error(command) + console.error(stderr) + return cb(null, null) } - let result = null; + let result = null try { - result = processOutput(stdout); - phenotype['sim'] = result; - result['fitness'] = Phenotypes.fitness(phenotype); + result = processOutput(stdout) + phenotype['sim'] = result + result['fitness'] = Phenotypes.fitness(phenotype) } catch (err) { - console.log(`Bad output detected`, err.toString()); - console.log(stdout); + console.log('Bad output detected', err.toString()) + console.log(stdout) } - cb(null, result); - }); -}; + cb(null, result) + }) +} let runUpdate = (days, selector) => { - let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh'; - let command = `${zenbot_cmd} backfill --days=${days} ${selector}`; - console.log(`Backfilling (might take some time) ...`); - console.log(command); + let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' + let command = `${zenbot_cmd} backfill --days=${days} ${selector}` + console.log('Backfilling (might take some time) ...') + console.log(command) shell.exec(command, { silent: true, async: false - }); -}; + }) +} let processOutput = output => { - let jsonRegexp = /(\{[\s\S]*?\})\send balance/g; - let endBalRegexp = /end balance: (\d+\.\d+) \(/g; - let buyHoldRegexp = /buy hold: (\d+\.\d+) \(/g; - let vsBuyHoldRegexp = /vs. buy hold: (-?\d+\.\d+)%/g; - let wlRegexp = /win\/loss: (\d+)\/(\d+)/g; - let errRegexp = /error rate: (.*)%/g; - - let strippedOutput = StripAnsi(output); - let output2 = strippedOutput.substr(strippedOutput.length - 3500); - - let rawParams = jsonRegexp.exec(output2)[1]; - let params = JSON.parse(rawParams); - let endBalance = endBalRegexp.exec(output2)[1]; - let buyHold = buyHoldRegexp.exec(output2)[1]; - let vsBuyHold = vsBuyHoldRegexp.exec(output2)[1]; - let wlMatch = wlRegexp.exec(output2); - let errMatch = errRegexp.exec(output2); - let wins = wlMatch !== null ? parseInt(wlMatch[1]) : 0; - let losses = wlMatch !== null ? parseInt(wlMatch[2]) : 0; - let errorRate = errMatch !== null ? parseInt(errMatch[1]) : 0; - let days = parseInt(params.days); - let start = parseInt(params.start); - let end = parseInt(params.end); + let jsonRegexp = /(\{[\s\S]*?\})\send balance/g + let endBalRegexp = /end balance: (\d+\.\d+) \(/g + let buyHoldRegexp = /buy hold: (\d+\.\d+) \(/g + let vsBuyHoldRegexp = /vs. buy hold: (-?\d+\.\d+)%/g + let wlRegexp = /win\/loss: (\d+)\/(\d+)/g + let errRegexp = /error rate: (.*)%/g + + let strippedOutput = StripAnsi(output) + let output2 = strippedOutput.substr(strippedOutput.length - 3500) + + let rawParams = jsonRegexp.exec(output2)[1] + let params = JSON.parse(rawParams) + let endBalance = endBalRegexp.exec(output2)[1] + let buyHold = buyHoldRegexp.exec(output2)[1] + let vsBuyHold = vsBuyHoldRegexp.exec(output2)[1] + let wlMatch = wlRegexp.exec(output2) + let errMatch = errRegexp.exec(output2) + let wins = wlMatch !== null ? parseInt(wlMatch[1]) : 0 + let losses = wlMatch !== null ? parseInt(wlMatch[2]) : 0 + let errorRate = errMatch !== null ? parseInt(errMatch[1]) : 0 + let days = parseInt(params.days) + let start = parseInt(params.start) + let end = parseInt(params.end) let roi = roundp( ((endBalance - params.currency_capital) / params.currency_capital) * 100, 3 - ); - - let r = JSON.parse(rawParams.replace(/[\r\n]/g, '')); - delete r.asset_capital; - delete r.buy_pct; - delete r.currency_capital; - delete r.days; - delete r.mode; - delete r.order_adjust_time; - delete r.population; - delete r.population_data; - delete r.sell_pct; - delete r.start; - delete r.end; - delete r.stats; - delete r.use_strategies; - delete r.verbose; + ) + + let r = JSON.parse(rawParams.replace(/[\r\n]/g, '')) + delete r.asset_capital + delete r.buy_pct + delete r.currency_capital + delete r.days + delete r.mode + delete r.order_adjust_time + delete r.population + delete r.population_data + delete r.sell_pct + delete r.start + delete r.end + delete r.stats + delete r.use_strategies + delete r.verbose r.selector = r.selector.normalized if (start) { - r.start = moment(start).format("YYYYMMDDhhmm"); + r.start = moment(start).format('YYYYMMDDhhmm') } if (end) { - r.end = moment(end).format("YYYYMMDDhhmm"); + r.end = moment(end).format('YYYYMMDDhhmm') } if (!start && !end && params.days) { - r.days = params.days; + r.days = params.days } return { @@ -175,26 +175,26 @@ let processOutput = output => { selector: params.selector, strategy: params.strategy, frequency: roundp((wins + losses) / days, 3) - }; -}; + } +} let Range = (min, max) => { var r = { type: 'int', min: min, max: max - }; - return r; -}; + } + return r +} let Range0 = (min, max) => { var r = { type: 'int0', min: min, max: max - }; - return r; -}; + } + return r +} let RangeFactor = (min, max, factor) => { var r = { @@ -202,9 +202,9 @@ let RangeFactor = (min, max, factor) => { min: min, max: max, factor: factor - }; - return r; -}; + } + return r +} let RangeFloat = (min, max) => { @@ -212,9 +212,9 @@ let RangeFloat = (min, max) => { type: 'float', min: min, max: max - }; - return r; -}; + } + return r +} let RangePeriod = (min, max, period_length) => { var r = { @@ -222,23 +222,23 @@ let RangePeriod = (min, max, period_length) => { min: min, max: max, period_length: period_length - }; - return r; -}; + } + return r +} let RangeMakerTaker = () => { var r = { type: 'makertaker' - }; - return r; -}; + } + return r +} let RangeNeuralActivation = () => { var r = { type: 'sigmoidtanhrelu' - }; - return r; -}; + } + return r +} let strategies = { bollinger: { @@ -252,7 +252,7 @@ let strategies = { profit_stop_enable_pct: Range0(1, 20), profit_stop_pct: Range(1,20), - // -- strategy + // -- strategy bollinger_size: Range(1, 40), bollinger_time: RangeFloat(1,6), bollinger_upper_bound_pct: RangeFloat(-1, 30), @@ -533,204 +533,205 @@ let strategies = { overbought_rsi_periods: Range(1, 50), overbought_rsi: Range(20, 100) } -}; +} let allStrategyNames = () => { - let r = []; + let r = [] for (var k in strategies) { - r.push(k); + r.push(k) } - return r; -}; + return r +} -console.log(`\n--==${VERSION}==--`); -console.log(new Date().toUTCString() + `\n`); +console.log(`\n--==${VERSION}==--`) +console.log(new Date().toUTCString() + '\n') -let argv = require('yargs').argv; -let simArgs = (argv.selector) ? argv.selector : 'bitfinex.ETH-USD'; +let argv = require('yargs').argv +let simArgs = (argv.selector) ? argv.selector : 'bitfinex.ETH-USD' if (argv.days) { - simArgs += ` --days=${argv.days}`; + simArgs += ` --days=${argv.days}` } else { if (argv.start) { - simArgs += ` --start=${argv.start}`; + simArgs += ` --start=${argv.start}` } if (argv.end) { - simArgs += ` --end=${argv.end}`; + simArgs += ` --end=${argv.end}` } } if (argv.currency_capital) { - simArgs += ` --currency_capital=${argv.currency_capital}`; + simArgs += ` --currency_capital=${argv.currency_capital}` } if (argv.asset_capital) { - simArgs += ` --asset_capital=${argv.asset_capital}`; + simArgs += ` --asset_capital=${argv.asset_capital}` } if (argv.symmetrical) { - simArgs += ` --symmetrical=true`; + simArgs += ' --symmetrical=true' } -simArgs += ` --filename none`; +simArgs += ' --filename none' -let strategyName = (argv.use_strategies) ? argv.use_strategies : 'all'; -let populationFileName = (argv.population_data) ? argv.population_data : null; -let populationSize = (argv.population) ? argv.population : 100; +let strategyName = (argv.use_strategies) ? argv.use_strategies : 'all' +let populationFileName = (argv.population_data) ? argv.population_data : null +let populationSize = (argv.population) ? argv.population : 100 -console.log(`Backtesting strategy ${strategyName} ...`); -console.log(`Creating population of ${populationSize} ...\n`); +console.log(`Backtesting strategy ${strategyName} ...`) +console.log(`Creating population of ${populationSize} ...\n`) -let pools = {}; -let selectedStrategies = (strategyName === 'all') ? allStrategyNames() : strategyName.split(','); +let pools = {} +let selectedStrategies = (strategyName === 'all') ? allStrategyNames() : strategyName.split(',') -let importedPoolData = (populationFileName) ? JSON.parse(fs.readFileSync(populationFileName, 'utf8')) : null; +let importedPoolData = (populationFileName) ? JSON.parse(fs.readFileSync(populationFileName, 'utf8')) : null selectedStrategies.forEach(function(v) { - let strategyPool = pools[v] = {}; + let strategyPool = pools[v] = {} - let evolve = true; - let population = (importedPoolData && importedPoolData[v]) ? importedPoolData[v] : []; + let evolve = true + let population = (importedPoolData && importedPoolData[v]) ? importedPoolData[v] : [] for (var i = population.length; i < populationSize; ++i) { - population.push(Phenotypes.create(strategies[v])); - evolve = false; + population.push(Phenotypes.create(strategies[v])) + evolve = false } strategyPool['config'] = { mutationFunction: function(phenotype) { - return Phenotypes.mutation(phenotype, strategies[v]); + return Phenotypes.mutation(phenotype, strategies[v]) }, crossoverFunction: function(phenotypeA, phenotypeB) { - return Phenotypes.crossover(phenotypeA, phenotypeB, strategies[v]); + return Phenotypes.crossover(phenotypeA, phenotypeB, strategies[v]) }, fitnessFunction: Phenotypes.fitness, doesABeatBFunction: Phenotypes.competition, population: population, populationSize: populationSize - }; + } - strategyPool['pool'] = GeneticAlgorithmCtor(strategyPool.config); + strategyPool['pool'] = GeneticAlgorithmCtor(strategyPool.config) if (evolve) { - strategyPool['pool'].evolve(); + strategyPool['pool'].evolve() } -}); +}) var isUsefulKey = key => { - if(key == "filename" || key == "show_options" || key == "sim") return false; - return true; + if(key == 'filename' || key == 'show_options' || key == 'sim') return false + return true } var generateCommandParams = input => { - input = input.params.replace("module.exports =",""); - input = JSON.parse(input); + input = input.params.replace('module.exports =','') + input = JSON.parse(input) - var result = ""; - var keys = Object.keys(input); - for(i = 0;i < keys.length;i++){ - var key = keys[i]; + var result = '' + var keys = Object.keys(input) + for(let i = 0;i < keys.length;i++){ + var key = keys[i] if(isUsefulKey(key)){ // selector should be at start before keys - if(key == "selector"){ - result = input[key].normalized + result; + if(key == 'selector'){ + result = input[key].normalized + result } - else result += " --"+key+"="+input[key]; + else result += ' --'+key+'='+input[key] } } - return result; + return result } var saveGenerationData = function(csvFileName, jsonFileName, dataCSV, dataJSON, callback){ fs.writeFile(csvFileName, dataCSV, err => { - if (err) throw err; - console.log("> Finished writing generation csv to " + csvFileName); - callback(1); - }); + if (err) throw err + console.log('> Finished writing generation csv to ' + csvFileName) + callback(1) + }) fs.writeFile(jsonFileName, dataJSON, err => { - if (err) throw err; - console.log("> Finished writing generation json to " + jsonFileName); - callback(2); - }); + if (err) throw err + console.log('> Finished writing generation json to ' + jsonFileName) + callback(2) + }) } -let generationCount = 0; +let generationCount = 0 let simulateGeneration = () => { - console.log(`\n\n=== Simulating generation ${++generationCount} ===\n`); + console.log(`\n\n=== Simulating generation ${++generationCount} ===\n`) - let days = argv.days; + let days = argv.days if (!days) { if (argv.start) { - var start = moment(argv.start, "YYYYMMDDhhmm"); - days = Math.max(1, moment().diff(start, 'days')); + var start = moment(argv.start, 'YYYYMMDDhhmm') + days = Math.max(1, moment().diff(start, 'days')) } else { - var end = moment(argv.end, "YYYYMMDDhhmm"); - days = moment().diff(end, 'days') + 1; + var end = moment(argv.end, 'YYYYMMDDhhmm') + days = moment().diff(end, 'days') + 1 } } - runUpdate(days, argv.selector); + runUpdate(days, argv.selector) - iterationCount = 1; + iterationCount = 1 let tasks = selectedStrategies.map(v => pools[v]['pool'].population().map(phenotype => { return cb => { - runCommand(v, phenotype, cb); - }; - })).reduce((a, b) => a.concat(b)); + runCommand(v, phenotype, cb) + } + })).reduce((a, b) => a.concat(b)) parallel(tasks, PARALLEL_LIMIT, (err, results) => { - console.log("\n\Generation complete, saving results..."); + console.log('\nGeneration complete, saving results...') results = results.filter(function(r) { - return !!r; - }); + return !!r + }) - results.sort((a, b) => (a.fitness < b.fitness) ? 1 : ((b.fitness < a.fitness) ? -1 : 0)); + results.sort((a, b) => (a.fitness < b.fitness) ? 1 : ((b.fitness < a.fitness) ? -1 : 0)) - let fieldsGeneral = ['selector.normalized', 'fitness', 'vsBuyHold', 'wlRatio', 'frequency', 'strategy', 'order_type', 'endBalance', 'buyHold', 'wins', 'losses', 'period_length', 'min_periods', 'days', 'params']; - let fieldNamesGeneral = ['Selector', 'Fitness', 'VS Buy Hold (%)', 'Win/Loss Ratio', '# Trades/Day', 'Strategy', 'Order Type', 'Ending Balance ($)', 'Buy Hold ($)', '# Wins', '# Losses', 'Period', 'Min Periods', '# Days', 'Full Parameters']; + let fieldsGeneral = ['selector.normalized', 'fitness', 'vsBuyHold', 'wlRatio', 'frequency', 'strategy', 'order_type', 'endBalance', 'buyHold', 'wins', 'losses', 'period_length', 'min_periods', 'days', 'params'] + let fieldNamesGeneral = ['Selector', 'Fitness', 'VS Buy Hold (%)', 'Win/Loss Ratio', '# Trades/Day', 'Strategy', 'Order Type', 'Ending Balance ($)', 'Buy Hold ($)', '# Wins', '# Losses', 'Period', 'Min Periods', '# Days', 'Full Parameters'] let dataCSV = json2csv({ data: results, fields: fieldsGeneral, fieldNames: fieldNamesGeneral - }); + }) - let fileDate = Math.round(+new Date() / 1000); - let csvFileName = `simulations/backtesting_${fileDate}.csv`; + let fileDate = Math.round(+new Date() / 1000) + let csvFileName = `simulations/backtesting_${fileDate}.csv` - let poolData = {}; + let poolData = {} selectedStrategies.forEach(function(v) { - poolData[v] = pools[v]['pool'].population(); - }); + poolData[v] = pools[v]['pool'].population() + }) - let jsonFileName = `simulations/generation_data_${fileDate}_gen_${generationCount}.json`; - let dataJSON = JSON.stringify(poolData, null, 2); - var filesSaved = 0; + let jsonFileName = `simulations/generation_data_${fileDate}_gen_${generationCount}.json` + let dataJSON = JSON.stringify(poolData, null, 2) + var filesSaved = 0 saveGenerationData(csvFileName, jsonFileName, dataCSV, dataJSON, (id)=>{ - filesSaved++; + filesSaved++ if(filesSaved == 2){ - console.log(`\n\nGeneration's Best Results`); + console.log('\n\nGeneration\'s Best Results') selectedStrategies.forEach((v)=> { - let best = pools[v]['pool'].best(); + let best = pools[v]['pool'].best() + if(best.sim){ - console.log(`\t(${v}) Sim Fitness ${best.sim.fitness}, VS Buy and Hold: ${best.sim.vsBuyHold} End Balance: ${best.sim.endBalance}, Wins/Losses ${best.sim.wins}/${best.sim.losses}.`); + console.log(`\t(${v}) Sim Fitness ${best.sim.fitness}, VS Buy and Hold: ${best.sim.vsBuyHold} End Balance: ${best.sim.endBalance}, Wins/Losses ${best.sim.wins}/${best.sim.losses}.`) } else { - console.log(`\t(${v}) Result Fitness ${results[0].fitness}, VS Buy and Hold: ${results[0].vsBuyHold}, End Balance: ${results[0].endBalance}, Wins/Losses ${results[0].wins}/${results[0].losses}.`); + console.log(`\t(${v}) Result Fitness ${results[0].fitness}, VS Buy and Hold: ${results[0].vsBuyHold}, End Balance: ${results[0].endBalance}, Wins/Losses ${results[0].wins}/${results[0].losses}.`) } // prepare command snippet from top result for this strat - let prefix = './zenbot.sh sim '; - let bestCommand = generateCommandParams(results[0]); + let prefix = './zenbot.sh sim ' + let bestCommand = generateCommandParams(results[0]) - bestCommand = prefix + bestCommand; - bestCommand = bestCommand + ' --asset_capital=' + argv.asset_capital + ' --currency_capital=' + argv.currency_capital; + bestCommand = prefix + bestCommand + bestCommand = bestCommand + ' --asset_capital=' + argv.asset_capital + ' --currency_capital=' + argv.currency_capital - console.log(bestCommand + '\n'); + console.log(bestCommand + '\n') - let nextGen = pools[v]['pool'].evolve(); - }); + let nextGen = pools[v]['pool'].evolve() + }) - simulateGeneration(); + simulateGeneration() } - }); + }) - }); -}; + }) +} -simulateGeneration(); +simulateGeneration() diff --git a/scripts/genetic_backtester/phenotype.js b/scripts/genetic_backtester/phenotype.js index 2a663aaa4a..d54c9d46c5 100644 --- a/scripts/genetic_backtester/phenotype.js +++ b/scripts/genetic_backtester/phenotype.js @@ -4,78 +4,78 @@ * 07/01/2017 */ -let PROPERTY_MUTATION_CHANCE = 0.30; -let PROPERTY_CROSSOVER_CHANCE = 0.50; +let PROPERTY_MUTATION_CHANCE = 0.30 +let PROPERTY_CROSSOVER_CHANCE = 0.50 module.exports = { create: function(strategy) { - var r = {}; + var r = {} for (var k in strategy) { - var v = strategy[k]; + var v = strategy[k] if (v.type === 'int') { - r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min); + r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) } else if (v.type === 'int0') { - r[k] = 0; - if (Math.random() >= 0.5) { - r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min); - } + r[k] = 0 + if (Math.random() >= 0.5) { + r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) + } } else if (v.type === 'intfactor') { // possible 0 value by providing min 0 - if (v.min == 0 && Math.random() <= 0.5) r[k] = 0; - else r[k] = Math.round((Math.random() * (v.max - v.min + 1)/v.factor)*v.factor); + if (v.min == 0 && Math.random() <= 0.5) r[k] = 0 + else r[k] = Math.round((Math.random() * (v.max - v.min + 1)/v.factor)*v.factor) } else if (v.type === 'float') { - r[k] = (Math.random() * (v.max - v.min)) + v.min; + r[k] = (Math.random() * (v.max - v.min)) + v.min } else if (v.type === 'makertaker') { - r[k] = (Math.random() > 0.5) ? 'maker' : 'taker'; + r[k] = (Math.random() > 0.5) ? 'maker' : 'taker' } else if (v.type === 'sigmoidtanhrelu') { - var items = ['sigmoid', 'tanh', 'relu']; - var index = Math.floor(Math.random() * items.length); - r[k] = items[index]; + var items = ['sigmoid', 'tanh', 'relu'] + var index = Math.floor(Math.random() * items.length) + r[k] = items[index] } else if (v.type === 'period_length') { - var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min); - r[k] = s + v.period_length; + var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) + r[k] = s + v.period_length } } - return r; + return r }, mutation: function(oldPhenotype, strategy) { - var r = module.exports.create(strategy); + var r = module.exports.create(strategy) for (var k in oldPhenotype) { - if (k === 'sim') continue; + if (k === 'sim') continue - var v = oldPhenotype[k]; - r[k] = (Math.random() < PROPERTY_MUTATION_CHANCE) ? r[k] : oldPhenotype[k]; + var v = oldPhenotype[k] + r[k] = (Math.random() < PROPERTY_MUTATION_CHANCE) ? r[k] : v } - return r; + return r }, crossover: function(phenotypeA, phenotypeB, strategy) { - var p1 = {}; - var p2 = {}; + var p1 = {} + var p2 = {} for (var k in strategy) { - if (k === 'sim') continue; + if (k === 'sim') continue - p1[k] = Math.random() >= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k]; - p2[k] = Math.random() >= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k]; + p1[k] = Math.random() >= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k] + p2[k] = Math.random() >= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k] } - return [p1, p2]; + return [p1, p2] }, fitness: function(phenotype) { - if (typeof phenotype.sim === 'undefined') return 0; + if (typeof phenotype.sim === 'undefined') return 0 - var vsBuyHoldRate = (phenotype.sim.vsBuyHold / 50); + var vsBuyHoldRate = (phenotype.sim.vsBuyHold / 50) var wlRatio = phenotype.sim.wins - phenotype.sim.losses - var wlRatioRate = 1.0 / (1.0 + Math.pow(2.71828, wlRatio < 0 ? wlRatio:-(wlRatio))); - var rate = vsBuyHoldRate * (wlRatioRate); - return rate; + var wlRatioRate = 1.0 / (1.0 + Math.pow(2.71828, wlRatio < 0 ? wlRatio:-(wlRatio))) + var rate = vsBuyHoldRate * (wlRatioRate) + return rate }, competition: function(phenotypeA, phenotypeB) { // TODO: Refer to geneticalgorithm documentation on how to improve this with diverstiy - return module.exports.fitness(phenotypeA) >= module.exports.fitness(phenotypeB); + return module.exports.fitness(phenotypeA) >= module.exports.fitness(phenotypeB) } -}; +} From 3c9959dcfb4814a5a810a1f52ceef02ad723dc43 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Sun, 21 Jan 2018 06:07:22 -0500 Subject: [PATCH 054/236] Allow making some darwin values be sticky and not mutate by passing them on the command line (#1175) --- scripts/genetic_backtester/darwin.js | 69 +++++++++++----------------- 1 file changed, 26 insertions(+), 43 deletions(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index 8e71c32eaf..478c69d331 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -39,26 +39,21 @@ let NEUTRAL_RATE_AUTO = false let iterationCount = 0 let runCommand = (taskStrategyName, phenotype, cb) => { - let commonArgs = `--strategy=${taskStrategyName} --period_length=${phenotype.period_length} --min_periods=${phenotype.min_periods} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct} --order_type=${phenotype.order_type} --sell_stop_pct=${phenotype.sell_stop_pct} --buy_stop_pct=${phenotype.buy_stop_pct} --profit_stop_enable_pct=${phenotype.profit_stop_enable_pct} --profit_stop_pct=${phenotype.profit_stop_pct}` - let strategyArgs = { - bollinger: `--bollinger_size=${phenotype.bollinger_size} --bollinger_time=${phenotype.bollinger_time} --bollinger_upper_bound_pct=${phenotype.bollinger_upper_bound_pct} --bollinger_lower_bound_pct=${phenotype.bollinger_lower_bound_pct}`, - crossover_vwap: `--emalen1=${phenotype.emalen1} --smalen1=${phenotype.smalen1} --smalen2=${phenotype.smalen2} --vwap_length=${phenotype.vwap_length} --vwap_max=${phenotype.vwap_max}`, - trendline: `--lastpoints=${phenotype.lastpoints} --avgpoints=${phenotype.avgpoints} --lastpoints2=${phenotype.lastpoints2} --avgpoints2=${phenotype.avgpoints2} --markdown_buy_pct=${phenotype.markdown_buy_pct} --markup_sell_pct=${phenotype.markup_sell_pct}`, - cci_srsi: `--cci_periods=${phenotype.rsi_periods} --rsi_periods=${phenotype.srsi_periods} --srsi_periods=${phenotype.srsi_periods} --srsi_k=${phenotype.srsi_k} --srsi_d=${phenotype.srsi_d} --oversold_rsi=${phenotype.oversold_rsi} --overbought_rsi=${phenotype.overbought_rsi} --oversold_cci=${phenotype.oversold_cci} --overbought_cci=${phenotype.overbought_cci} --constant=${phenotype.constant}`, - srsi_macd: `--rsi_periods=${phenotype.rsi_periods} --srsi_periods=${phenotype.srsi_periods} --srsi_k=${phenotype.srsi_k} --srsi_d=${phenotype.srsi_d} --oversold_rsi=${phenotype.oversold_rsi} --overbought_rsi=${phenotype.overbought_rsi} --ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold}`, - macd: `--ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold} --overbought_rsi_periods=${phenotype.overbought_rsi_periods} --overbought_rsi=${phenotype.overbought_rsi}`, - neural: `--activation_1_type=${phenotype.activation_1_type} --neurons_1=${phenotype.neurons_1} --depth=${phenotype.depth} --momentum=${phenotype.momentum} --decay=${phenotype.decay} --min_predict=${phenotype.min_predict} --learns=${phenotype.learns}`, - rsi: `--rsi_periods=${phenotype.rsi_periods} --oversold_rsi=${phenotype.oversold_rsi} --overbought_rsi=${phenotype.overbought_rsi} --rsi_recover=${phenotype.rsi_recover} --rsi_drop=${phenotype.rsi_drop} --rsi_divisor=${phenotype.rsi_divisor}`, - sar: `--sar_af=${phenotype.sar_af} --sar_max_af=${phenotype.sar_max_af}`, - speed: `--baseline_periods=${phenotype.baseline_periods} --trigger_factor=${phenotype.trigger_factor}`, - trend_ema: `--trend_ema=${phenotype.trend_ema} --oversold_rsi=${phenotype.oversold_rsi} --oversold_rsi_periods=${phenotype.oversold_rsi_periods} --neutral_rate=auto`, - trust_distrust: `--sell_threshold=${phenotype.sell_threshold} --sell_threshold_max=${phenotype.sell_threshold_max} --sell_min=${phenotype.sell_min} --buy_threshold=${phenotype.buy_threshold} --buy_threshold_max=${phenotype.buy_threshold_max} --greed=${phenotype.greed}`, - ta_macd: `--ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold} --overbought_rsi_periods=${phenotype.overbought_rsi_periods} --overbought_rsi=${phenotype.overbought_rsi}`, - ta_ema: `--trend_ema=${phenotype.trend_ema} --oversold_rsi=${phenotype.oversold_rsi} --oversold_rsi_periods=${phenotype.oversold_rsi_periods} --neutral_rate=auto`, - dema: `--ema_short_period=${phenotype.ema_short_period} --ema_long_period=${phenotype.ema_long_period} --signal_period=${phenotype.signal_period} --up_trend_threshold=${phenotype.up_trend_threshold} --down_trend_threshold=${phenotype.down_trend_threshold} --overbought_rsi_periods=${phenotype.overbought_rsi_periods} --overbought_rsi=${phenotype.overbought_rsi}` - } + var cmdArgs = Object.assign({}, phenotype) + cmdArgs.strategy = taskStrategyName + Object.assign(cmdArgs, simArgs) + + var selector = cmdArgs.selector + delete cmdArgs.selector + delete cmdArgs.sim + let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' - let command = `${zenbot_cmd} sim ${simArgs} ${commonArgs} ${strategyArgs[taskStrategyName]}` + let command = `${zenbot_cmd} sim ${selector}` + + for (const [ key, value ] of Object.entries(cmdArgs)) { + command += ` --${key}=${value}` + } + console.log(`[ ${iterationCount++}/${populationSize * selectedStrategies.length} ] ${command}`) phenotype['sim'] = {} @@ -547,28 +542,16 @@ console.log(`\n--==${VERSION}==--`) console.log(new Date().toUTCString() + '\n') let argv = require('yargs').argv -let simArgs = (argv.selector) ? argv.selector : 'bitfinex.ETH-USD' -if (argv.days) { - simArgs += ` --days=${argv.days}` -} -else { - if (argv.start) { - simArgs += ` --start=${argv.start}` - } - if (argv.end) { - simArgs += ` --end=${argv.end}` - } -} -if (argv.currency_capital) { - simArgs += ` --currency_capital=${argv.currency_capital}` -} -if (argv.asset_capital) { - simArgs += ` --asset_capital=${argv.asset_capital}` -} -if (argv.symmetrical) { - simArgs += ' --symmetrical=true' -} -simArgs += ' --filename none' +let simArgs = Object.assign({}, argv) +if (!simArgs.selector) + simArgs.selector = 'bitfinex.ETH-USD' +if (!simArgs.filename) + simArgs.filename = 'none' +delete simArgs.use_strategies +delete simArgs.population_data +delete simArgs.population +delete simArgs['$0'] // This comes in to argv all by itself +delete simArgs['_'] // This comes in to argv all by itself let strategyName = (argv.use_strategies) ? argv.use_strategies : 'all' let populationFileName = (argv.population_data) ? argv.population_data : null @@ -626,8 +609,8 @@ var generateCommandParams = input => { var key = keys[i] if(isUsefulKey(key)){ // selector should be at start before keys - if(key == 'selector'){ - result = input[key].normalized + result + if(key == "selector"){ + result = input[key] + result } else result += ' --'+key+'='+input[key] From 4b7604f11b67de61a810deb73036002e677039fb Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Sun, 21 Jan 2018 12:20:39 +0100 Subject: [PATCH 055/236] Mini fixes to bollinger and genetic_backtester --- extensions/strategies/bollinger/strategy.js | 1 - scripts/genetic_backtester/darwin.js | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/extensions/strategies/bollinger/strategy.js b/extensions/strategies/bollinger/strategy.js index e0a1442f58..65b18cf89e 100644 --- a/extensions/strategies/bollinger/strategy.js +++ b/extensions/strategies/bollinger/strategy.js @@ -9,7 +9,6 @@ module.exports = function container (get, set, clear) { getOptions: function () { this.option('period', 'period length, same as --period_length', String, '1h') this.option('period_length', 'period length, same as --period', String, '1h') - this.option('min_periods', 'min. number of history periods', Number, 52) this.option('bollinger_size', 'period size', Number, 20) this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2) this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index 478c69d331..d2ccf8a58f 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -238,7 +238,6 @@ let RangeNeuralActivation = () => { let strategies = { bollinger: { period_length: RangePeriod(1, 60, 'm'), - min_periods: Range(1, 20), markdown_buy_pct: RangeFloat(-1, 5), markup_sell_pct: RangeFloat(-1, 5), order_type: RangeMakerTaker(), @@ -609,7 +608,7 @@ var generateCommandParams = input => { var key = keys[i] if(isUsefulKey(key)){ // selector should be at start before keys - if(key == "selector"){ + if(key == 'selector'){ result = input[key] + result } @@ -690,7 +689,7 @@ let simulateGeneration = () => { console.log('\n\nGeneration\'s Best Results') selectedStrategies.forEach((v)=> { let best = pools[v]['pool'].best() - + if(best.sim){ console.log(`\t(${v}) Sim Fitness ${best.sim.fitness}, VS Buy and Hold: ${best.sim.vsBuyHold} End Balance: ${best.sim.endBalance}, Wins/Losses ${best.sim.wins}/${best.sim.losses}.`) From 37cac62413dc8a4227a9902e4b69dfcbb7a48d2a Mon Sep 17 00:00:00 2001 From: aquamanjl <35556329+aquamanjl@users.noreply.github.com> Date: Mon, 22 Jan 2018 06:01:40 -0500 Subject: [PATCH 056/236] Fixed StochRSI calculations (#1196) * Fix SRSI calculation * Added test case for SRSI. Switched RSI and SRSI output to float and adjusted display accordingly * Oops, disabled all other tests by mistake * Fix test assertion --- .gitignore | 2 + extensions/strategies/srsi_macd/strategy.js | 3 +- lib/rsi.js | 4 +- lib/srsi.js | 85 +++++++++++++++------ test/lib/rsi.test.js | 2 +- test/lib/srsi.test.js | 37 +++++++++ 6 files changed, 107 insertions(+), 26 deletions(-) create mode 100644 test/lib/srsi.test.js diff --git a/.gitignore b/.gitignore index 3bdb77862f..5bad1c04e7 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,5 @@ temp.html logs .sync dist/* +.idea +*.iml diff --git a/extensions/strategies/srsi_macd/strategy.js b/extensions/strategies/srsi_macd/strategy.js index c184fcba42..11a646e8fc 100644 --- a/extensions/strategies/srsi_macd/strategy.js +++ b/extensions/strategies/srsi_macd/strategy.js @@ -67,7 +67,8 @@ module.exports = function container (get, set, clear) { color = 'red' } cols.push(z(8, n(s.period.macd_histogram).format('+00.0000'), ' ')[color]) - cols.push(z(8, n(s.period.srsi_K).format('000'), ' ').cyan) + cols.push(z(8, n(s.period.srsi_K).format('00.00'), ' ').cyan) + cols.push(z(8, n(s.period.srsi_D).format('00.00'), ' ').yellow) } else { cols.push(' ') diff --git a/lib/rsi.js b/lib/rsi.js index 5e2ca519ef..87ad80ec3f 100644 --- a/lib/rsi.js +++ b/lib/rsi.js @@ -1,3 +1,5 @@ +var mathjs = require('mathjs') + module.exports = function container (get, set, clear) { return function rsi (s, key, length) { if (s.lookback.length >= length) { @@ -32,7 +34,7 @@ module.exports = function container (get, set, clear) { s.period[key] = 100 } else { var rs = s.period[key + '_avg_gain'] / s.period[key + '_avg_loss'] - s.period[key] = Math.round(100 - (100 / (1 + rs))) + s.period[key] = mathjs.round(100 - (100 / (1 + rs)), 2) } } } diff --git a/lib/srsi.js b/lib/srsi.js index ba230c76c4..6fcd05d902 100644 --- a/lib/srsi.js +++ b/lib/srsi.js @@ -1,25 +1,64 @@ -module.exports = function container (get, set, clear) { - return function srsi (s, key, rsi_length, k, d) { - get('lib.rsi')(s, 'rsi', rsi_length) - let RSI = [] - let sum = 0 - if (typeof s.period.rsi !== 'undefined') - s.lookback.slice(0, k).forEach(function (period) { - if (period.rsi) - RSI.push(period.rsi) - }) - - let highestRSI = Math.max(...RSI) - let lowestRSI = Math.min(...RSI) - let stochK = ((s.period.rsi - lowestRSI) / (highestRSI - lowestRSI)) * 100 - - s.lookback.slice(0, d).forEach(period => { - if (period.srsi_K) - sum += period.srsi_K +var mathjs = require('mathjs'); + +module.exports = function container(get, set, clear) { + return function srsi(s, key, rsi_periods, k_periods, d_periods) { + let samplesRequiredForStochRSI = rsi_periods + k_periods + 1; + + if (s.lookback.length >= samplesRequiredForStochRSI - 1) { + let RSI = []; + + if (typeof s.period.rsi !== 'undefined') { + RSI.push(s.period.rsi); + } else { + get('lib.rsi')(s, 'rsi', rsi_periods); + RSI.push(s.period.rsi); + } + + s.lookback.slice(0, samplesRequiredForStochRSI - 1).forEach(function (period) { + if (period.rsi) { + RSI.push(period.rsi); + } }) - let stochD = sum / d - s.period[key + '_K'] = stochK - s.period[key + '_D'] = stochD - //console.log(s.lookback[0]) + + RSI.reverse(); + + if(RSI.length >= samplesRequiredForStochRSI) { + let stochRSI = []; + for(let i = 0; i < (k_periods + d_periods - 1); i++) { + let rsiForPeriod = RSI.slice(i, rsi_periods + i); + let highestRSI = Math.max(...rsiForPeriod); + let lowestRSI = Math.min(...rsiForPeriod); + if(highestRSI == lowestRSI) { + stochRSI.push(0); + } else { + stochRSI.push(((RSI[(rsi_periods - 1) + i] - lowestRSI) / (highestRSI - lowestRSI)) * 100); + } + } + + stochRSI.reverse(); + + let percentK = []; + for(let i = 0; i < k_periods; i++) { + let kData = stochRSI.slice(i, k_periods + i); + if(kData.length == k_periods) { + percentK.push(mathjs.mean(kData)); + } + } + + let percentD = []; + for(let i = 0; i < d_periods; i++) { + let dData = percentK.slice(i, d_periods + i); + if(dData.length == d_periods) { + percentD.push(mathjs.mean(dData)); + } + } + + s.period[key + '_K'] = percentK[0] == 0 ? 0 : mathjs.round(percentK[0], 2); + s.period[key + '_D'] = percentD[0] == 0 ? 0 : mathjs.round(percentD[0], 2); + + //console.log('lib.srsi: For RSI', RSI[RSI.length - 1], '-', '%K is', s.period[key + '_K'], ', %D is', s.period[key + '_D'], ', period info', s.period); + } + } } -} \ No newline at end of file +} + diff --git a/test/lib/rsi.test.js b/test/lib/rsi.test.js index e7f79d9351..8dd63bac2a 100644 --- a/test/lib/rsi.test.js +++ b/test/lib/rsi.test.js @@ -5,7 +5,7 @@ describe('RSI (Relative Strength Index)', function () { it('should calculate RSI with default period', function () { (RSI())(normalData, 'rsi', 14) - expect(normalData.period.rsi).toEqual(32) + expect(normalData.period.rsi).toEqual(32.26) }) it('should set RSI to 100 when there is no losses for the entire period', function() { diff --git a/test/lib/srsi.test.js b/test/lib/srsi.test.js new file mode 100644 index 0000000000..34720133d4 --- /dev/null +++ b/test/lib/srsi.test.js @@ -0,0 +1,37 @@ +var RSI = require('../../lib/rsi'); +var SRSI = require('../../lib/srsi')(RSI); + +describe('SRSI (StochRSI Oscillator)', function () { + + it('should calculate SRSI with default period', function () { + SRSI(data, 'srsi', 14, 3, 3); + + expect(data.period.srsi_K).toEqual(19.38); + expect(data.period.srsi_D).toEqual(23.18); + }) +}); + +var data = { + lookback: [ + {rsi: 64.38}, + {rsi: 66.71}, + {rsi: 70.29}, + {rsi: 66.49}, + {rsi: 71.47}, + {rsi: 76.17}, + {rsi: 83.66}, + {rsi: 81.85}, + {rsi: 82.55}, + {rsi: 82.89}, + {rsi: 78.60}, + {rsi: 64.78}, + {rsi: 64.77}, + {rsi: 70.05}, + {rsi: 68.76}, + {rsi: 69.53}, + {rsi: 70.15} + ].reverse(), + period: { + rsi: 65.61 + } +}; From 4b10b6c7357e584a117516e91c85052b1edb727b Mon Sep 17 00:00:00 2001 From: firepol <1702718+firepol@users.noreply.github.com> Date: Mon, 22 Jan 2018 12:03:25 +0100 Subject: [PATCH 057/236] Fix cexio update-products.sh (#1194) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the error `/usr/bin/env: ‘node\r’: No such file or directory` --- extensions/exchanges/cexio/update-products.sh | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/extensions/exchanges/cexio/update-products.sh b/extensions/exchanges/cexio/update-products.sh index a737821960..b91b75fbd9 100755 --- a/extensions/exchanges/cexio/update-products.sh +++ b/extensions/exchanges/cexio/update-products.sh @@ -1,21 +1,22 @@ -#!/usr/bin/env node -const ccxt = require('ccxt') -const path = require('path') -var client = new ccxt.cex() -client.fetchMarkets().then(result => { - var products = [] - result.forEach(function (product) { - products.push({ - asset: product.info.symbol1, - currency: product.info.symbol2, - min_size: product.info.minLotSize.toString(), - max_size: product.info.maxLotSize != null ? product.info.maxLotSize.toString() : product.info.maxLotSize, - increment: product.info.symbol1 === 'BTC' ? '0.01' : (product.info.symbol2 === 'BTC' ? '0.00000001' : '0.0001'), - label: product.id - }) - }) - var target = path.resolve(__dirname, 'products.json') - require('fs').writeFileSync(target, JSON.stringify(products, null, 2)) - console.log('wrote', target) - process.exit() -}) +#!/usr/bin/env node + +const ccxt = require('ccxt') +const path = require('path') +var client = new ccxt.cex() +client.fetchMarkets().then(result => { + var products = [] + result.forEach(function (product) { + products.push({ + asset: product.info.symbol1, + currency: product.info.symbol2, + min_size: product.info.minLotSize.toString(), + max_size: product.info.maxLotSize != null ? product.info.maxLotSize.toString() : product.info.maxLotSize, + increment: product.info.symbol1 === 'BTC' ? '0.01' : (product.info.symbol2 === 'BTC' ? '0.00000001' : '0.0001'), + label: product.id + }) + }) + var target = path.resolve(__dirname, 'products.json') + require('fs').writeFileSync(target, JSON.stringify(products, null, 2)) + console.log('wrote', target) + process.exit() +}) From c497913b8f04c682682cf7208fe5e883cf37787f Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Mon, 22 Jan 2018 06:04:41 -0500 Subject: [PATCH 058/236] Add strategies to genetic_backtester (#1191) * Add trend_bollinger * Add wavetrend strategy * Add StdDev * Add Momentum Strategy --- scripts/genetic_backtester/darwin.js | 71 +++++++++++++++++++++++++ scripts/genetic_backtester/phenotype.js | 2 + 2 files changed, 73 insertions(+) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index d2ccf8a58f..2abaecdf01 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -234,6 +234,12 @@ let RangeNeuralActivation = () => { } return r } +let RangeBoolean = () => { + var r = { + type: 'truefalse' + } + return r +} let strategies = { bollinger: { @@ -252,6 +258,22 @@ let strategies = { bollinger_upper_bound_pct: RangeFloat(-1, 30), bollinger_lower_bound_pct: RangeFloat(-1, 30) }, + trend_bollinger: { + period_length: RangePeriod(1, 60, 'm'), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // -- strategy + bollinger_size: Range(1, 40), + bollinger_time: RangeFloat(1,6), + bollinger_upper_bound_pct: RangeFloat(-1, 30), + bollinger_lower_bound_pct: RangeFloat(-1, 30) + }, crossover_vwap: { // -- common period_length: RangePeriod(1, 400, 'm'), @@ -526,6 +548,55 @@ let strategies = { down_trend_threshold: Range(0, 50), overbought_rsi_periods: Range(1, 50), overbought_rsi: Range(20, 100) + }, + wavetrend: { + // -- common + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 200), + markup_pct: RangeFloat(0, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // -- strategy + wavetrend_channel_length: Range(1,20), + wavetrend_average_length: Range(1,42), + wavetrend_overbought_1: Range(1, 100), + wavetrend_overbought_2: Range(1,100), + wavetrend_oversold_1: Range(-100,0), + wavetrend_oversold_2: Range(-100,0), + wavetrend_trends: RangeBoolean() + }, + stddev: { + // -- common + // reference in extensions is given in ms have not heard of an exchange that supports 500ms thru api so setting min at 1 second + period_length: RangePeriod(1, 7200, 's'), + min_periods: Range(1, 2500), + markup_pct: RangeFloat(0, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // -- strategy + trendtrades_1: Range(2, 20), + trendtrades_2: Range(4, 100) + }, + momentum: { + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 2500), + markup_pct: RangeFloat(0, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // -- strategy + momentum_size: Range(1,20) } } diff --git a/scripts/genetic_backtester/phenotype.js b/scripts/genetic_backtester/phenotype.js index d54c9d46c5..2a7d022b54 100644 --- a/scripts/genetic_backtester/phenotype.js +++ b/scripts/genetic_backtester/phenotype.js @@ -34,6 +34,8 @@ module.exports = { } else if (v.type === 'period_length') { var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) r[k] = s + v.period_length + } else if (v.type === 'truefalse') { + r[k] = (Math.random() > 0.5) ? true : false } } return r From f821d76cede501957ba515f3a3a1c142c3d2fa1b Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Mon, 22 Jan 2018 11:48:56 -0500 Subject: [PATCH 059/236] Bollinger High/Low enhancement (#1198) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add trend_bollinger * Add wavetrend strategy * Add StdDev * Add Momentum Strategy * Fixed StochRSI calculations (#1196) * Fix SRSI calculation * Added test case for SRSI. Switched RSI and SRSI output to float and adjusted display accordingly * Oops, disabled all other tests by mistake * Fix test assertion * Fix cexio update-products.sh (#1194) This fixes the error `/usr/bin/env: ‘node\r’: No such file or directory` * Enhance display of High/Low bollinger values Report is now able to display values less than 1. space limited to 7 characters per column so smallest value is 0.00001 --- extensions/strategies/bollinger/strategy.js | 4 ++-- extensions/strategies/trend_bollinger/strategy.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/strategies/bollinger/strategy.js b/extensions/strategies/bollinger/strategy.js index 65b18cf89e..d078ccebfa 100644 --- a/extensions/strategies/bollinger/strategy.js +++ b/extensions/strategies/bollinger/strategy.js @@ -50,8 +50,8 @@ module.exports = function container (get, set, clear) { color = 'red' } cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color]) - cols.push(z(8, n(lowerBound).format('00'), ' ').cyan) - cols.push(z(8, n(upperBound).format('00'), ' ').cyan) + cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan) + cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan) } } else { diff --git a/extensions/strategies/trend_bollinger/strategy.js b/extensions/strategies/trend_bollinger/strategy.js index 02ddb92605..a2784c930e 100644 --- a/extensions/strategies/trend_bollinger/strategy.js +++ b/extensions/strategies/trend_bollinger/strategy.js @@ -76,8 +76,8 @@ module.exports = function container (get, set, clear) { color = 'red' } cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color]) - cols.push(z(8, n(lowerBound).format('00'), ' ').cyan) - cols.push(z(8, n(upperBound).format('00'), ' ').cyan) + cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan) + cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan) } } else { From d600b3cd8ae53434646d479fdfef8a718e8bf756 Mon Sep 17 00:00:00 2001 From: Michael Harrison Date: Tue, 23 Jan 2018 03:22:27 -0600 Subject: [PATCH 060/236] Fix typo in README (#1202) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cd6103672b..1c0724a652 100644 --- a/README.md +++ b/README.md @@ -636,7 +636,7 @@ Trade when % change from last two 1m periods is higher than average. - Trade frequency is adjusted with a combination of `--period` and `--trend_ema`. For example, if you want more frequent trading, try `--period=5m` or `--trend_ema=15` or both. If you get too many ping-pong trades or losses from fees, try increasing `period` or `trend_ema` or increasing `neutral_rate`. - Sometimes it's tempting to tell the bot trade very often. Try to resist this urge, and go for quality over quantity, since each trade comes with a decent amount of slippage and whipsaw risk. -- `--oversold_rsi=` will try to buy when the price dives. This is one of the ways to get profit above buy/hold, but setting it too high might result in a loss of the price continues to fall. +- `--oversold_rsi=` will try to buy when the price dives. This is one of the ways to get profit above buy/hold, but setting it too high might result in a loss if the price continues to fall. - In a market with predictable price surges and corrections, `--profit_stop_enable_pct=10` will try to sell when the last buy hits 10% profit and then drops to 9% (the drop % is set with `--profit_stop_pct`). However in strong, long uptrends this option may end up causing a sell too early. - For Kraken and GDAX you may wish to use `--order_type="taker"`, this uses market orders instead of limit orders. You usually pay a higher fee, but you can be sure that your order is filled instantly. This means that the sim will more closely match your live trading. Please note that GDAX does not charge maker fees (limit orders), so you will need to choose between not paying fees and running the risk orders do not get filled on time, or paying somewhat high % of fees and making sure your orders are always filled on time. From 217bf163752be6631cc7adb6b449ada41bffa038 Mon Sep 17 00:00:00 2001 From: defkev Date: Tue, 23 Jan 2018 10:23:29 +0100 Subject: [PATCH 061/236] Update engine test to pass #1178 (#1204) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Can't fool Travis 🔨 --- test/lib/engine.test.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/lib/engine.test.js b/test/lib/engine.test.js index 4a3bd62bef..39404c5c46 100644 --- a/test/lib/engine.test.js +++ b/test/lib/engine.test.js @@ -239,7 +239,11 @@ function createEngine(currency_amount, buy_pct, buy_max_amt, order_type, held_as } var fake_return = { - "conf": {}, + "conf": { + output: { + api: {} + } + }, "exchanges.test_exchange" : { getProducts: function() { return [fake_product] }, getQuote: function(product, callback){ callback(null, { bid: fake_bid, ask: fake_ask}) }, From 65441a0aeb1fe2ebb3aa09ddba4d1fc82e6f0201 Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Tue, 23 Jan 2018 04:23:42 -0500 Subject: [PATCH 062/236] Adjustment to RSI display fix padding. No longer get skewed on RSIs of XX.X format forced to XX.XX (#1205) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add trend_bollinger * Add wavetrend strategy * Add StdDev * Add Momentum Strategy * Fixed StochRSI calculations (#1196) * Fix SRSI calculation * Added test case for SRSI. Switched RSI and SRSI output to float and adjusted display accordingly * Oops, disabled all other tests by mistake * Fix test assertion * Fix cexio update-products.sh (#1194) This fixes the error `/usr/bin/env: ‘node\r’: No such file or directory` * Adjust display for RSI being changed to float RSI formated correctly. --- lib/engine.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/engine.js b/lib/engine.js index 3c4a7f0c4e..7f540de7ad 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -724,7 +724,7 @@ module.exports = function container (get, set, clear) { let half = 5 let bar = '' let stars = 0 - let rsi = s.period.rsi.toString() + let rsi = n(s.period.rsi).format('00.00') if (s.period.rsi >= 50) { stars = Math.min(Math.round(((s.period.rsi - 50) / 50) * half) + 1, half) bar += ' '.repeat(half - (rsi < 100 ? 3 : 4)) From 2fc198963021e629739fc1a9f91140a8d379cd0a Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 23 Jan 2018 10:37:08 +0000 Subject: [PATCH 063/236] Exchanges: update-products 262 --- extensions/exchanges/binance/products.json | 27 +++++ extensions/exchanges/cexio/products.json | 130 ++++++++++----------- 2 files changed, 92 insertions(+), 65 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index ffb4be9561..92e40b901a 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -2185,5 +2185,32 @@ "max_size": "100000.00000000", "increment": "0.01000000", "label": "INS/ETH" + }, + { + "id": "PIVXBTC", + "asset": "PIVX", + "currency": "BTC", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "PIVX/BTC" + }, + { + "id": "PIVXETH", + "asset": "PIVX", + "currency": "ETH", + "min_size": "0.01000000", + "max_size": "100000.00000000", + "increment": "0.01000000", + "label": "PIVX/ETH" + }, + { + "id": "PIVXBNB", + "asset": "PIVX", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.01000000", + "label": "PIVX/BNB" } ] \ No newline at end of file diff --git a/extensions/exchanges/cexio/products.json b/extensions/exchanges/cexio/products.json index 7cce98b938..8dbed29d94 100644 --- a/extensions/exchanges/cexio/products.json +++ b/extensions/exchanges/cexio/products.json @@ -4,15 +4,15 @@ "currency": "USD", "min_size": "0.01", "max_size": "30", - "increment": "0.00000001", + "increment": "0.01", "label": "BTC/USD" }, { "asset": "ETH", "currency": "USD", - "min_size": "0.01", + "min_size": "0.1", "max_size": "1000", - "increment": "0.001", + "increment": "0.0001", "label": "ETH/USD" }, { @@ -20,23 +20,39 @@ "currency": "USD", "min_size": "0.01", "max_size": "30", - "increment": "0.00000001", + "increment": "0.0001", "label": "BCH/USD" }, + { + "asset": "BTG", + "currency": "USD", + "min_size": "0.01", + "max_size": null, + "increment": "0.0001", + "label": "BTG/USD" + }, { "asset": "DASH", "currency": "USD", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "DASH/USD" }, + { + "asset": "XRP", + "currency": "USD", + "min_size": "10", + "max_size": null, + "increment": "0.0001", + "label": "XRP/USD" + }, { "asset": "ZEC", "currency": "USD", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "ZEC/USD" }, { @@ -44,7 +60,7 @@ "currency": "EUR", "min_size": "0.01", "max_size": "30", - "increment": "0.00000001", + "increment": "0.01", "label": "BTC/EUR" }, { @@ -52,7 +68,7 @@ "currency": "EUR", "min_size": "0.1", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "ETH/EUR" }, { @@ -60,23 +76,39 @@ "currency": "EUR", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "BCH/EUR" }, + { + "asset": "BTG", + "currency": "EUR", + "min_size": "0.01", + "max_size": null, + "increment": "0.0001", + "label": "BTG/EUR" + }, { "asset": "DASH", "currency": "EUR", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "DASH/EUR" }, + { + "asset": "XRP", + "currency": "EUR", + "min_size": "10", + "max_size": null, + "increment": "0.0001", + "label": "XRP/EUR" + }, { "asset": "ZEC", "currency": "EUR", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "ZEC/EUR" }, { @@ -84,7 +116,7 @@ "currency": "GBP", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.01", "label": "BTC/GBP" }, { @@ -92,7 +124,7 @@ "currency": "GBP", "min_size": "0.1", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "ETH/GBP" }, { @@ -100,7 +132,7 @@ "currency": "GBP", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "BCH/GBP" }, { @@ -108,7 +140,7 @@ "currency": "GBP", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "DASH/GBP" }, { @@ -116,7 +148,7 @@ "currency": "GBP", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.0001", "label": "ZEC/GBP" }, { @@ -124,7 +156,7 @@ "currency": "RUB", "min_size": "0.01", "max_size": null, - "increment": "0.00000001", + "increment": "0.01", "label": "BTC/RUB" }, { @@ -144,75 +176,43 @@ "label": "BCH/BTC" }, { - "asset": "DASH", + "asset": "BTG", "currency": "BTC", "min_size": "0.01", "max_size": null, "increment": "0.00000001", - "label": "DASH/BTC" + "label": "BTG/BTC" }, { - "asset": "ZEC", + "asset": "DASH", "currency": "BTC", "min_size": "0.01", "max_size": null, "increment": "0.00000001", - "label": "ZEC/BTC" - }, - { - "asset": "GHS", - "currency": "BTC", - "min_size": "1", - "max_size": null, - "increment": "0.00000001", - "label": "GHS/BTC" - }, - { - "asset": "XRP", - "currency": "USD", - "min_size": "0.00000001", - "max_size": null, - "increment": "0.00000001", - "label": "XRP/USD" - }, - { - "asset": "XRP", - "currency": "EUR", - "min_size": "0.00000001", - "max_size": null, - "increment": "0.00000001", - "label": "XRP/USD" + "label": "DASH/BTC" }, { "asset": "XRP", - "currency": "GBP", - "min_size": "0.00000001", - "max_size": null, - "increment": "0.00000001", - "label": "XRP/USD" - }, - { - "asset": "BTG", - "currency": "USD", - "min_size": "0.00000001", + "currency": "BTC", + "min_size": "40", "max_size": null, "increment": "0.00000001", - "label": "XRP/USD" + "label": "XRP/BTC" }, { - "asset": "BTG", - "currency": "EUR", - "min_size": "0.00000001", + "asset": "ZEC", + "currency": "BTC", + "min_size": "0.01", "max_size": null, "increment": "0.00000001", - "label": "XRP/USD" + "label": "ZEC/BTC" }, { - "asset": "BTG", - "currency": "GBP", - "min_size": "0.00000001", + "asset": "GHS", + "currency": "BTC", + "min_size": "100", "max_size": null, "increment": "0.00000001", - "label": "XRP/USD" + "label": "GHS/BTC" } -] +] \ No newline at end of file From 7fbbcd4ade0651f1436ea8cabd5a4d5746c7a0ab Mon Sep 17 00:00:00 2001 From: defkev Date: Tue, 23 Jan 2018 17:47:31 +0100 Subject: [PATCH 064/236] Multiple API & Web UI improvements (#1178) * Multiple Web UI improvements * Add momentjs (mainly for date/time humanization) * More precise bot uptime (seconds, minutes, hours, days instead of just days) * Display trading chart in server time (for consistence with "My Trades" dates) * Reduce default trading chart range to 30 minutes (from 60) * Sort "My Trades" by date (descending) * Change "Executed Date" to "Execution Time" * Reduce memory util if API is off Populate objects used exclusively by the API only if the API is actually enabled. * Web UI: Add Total to My Trades Total = Size * Price * API: Populate stats on every new period Instead of having to manually "print statistical output" in the console to get them updated. * Web UI: Update Stats & Fix Chart * Color profits (last balance and buy hold) green/red based on win/loss * Use singular and plural for trade(s) and day(s) * Fix chart 1 hour range selector button * Web UI: Widgets * Rename "Asset / Currency" widget to "Capital" and move it up to Market row * Remove leading space from "Last Balance" widget * Limit "vs buy hold" to 10 digits * Add "Error Rate" widget including Win/Loss * Web UI: Format open order dates like complete Looks like i forgot something... * Web UI: Fix Market/Capital row layout on mobile * API: Always calculate fees Fixes #1193 * Profit & Fees * API: Add profit calculation (buy/sell, sell/buy) to my_trades, profit won't be calculated unless there was a previous opposide order (buy profit on previos sell, sell profit on previous buy) * Web UI: Add Fee and Profit column (Closes #1192) * Normalize number formating for consistence and to remove clutter --- commands/trade.js | 31 +++++---- extensions/output/api.js | 2 + lib/engine.js | 36 +++++++++-- templates/dashboard.ejs | 135 ++++++++++++++++++++++++--------------- 4 files changed, 132 insertions(+), 72 deletions(-) diff --git a/commands/trade.js b/commands/trade.js index 305d9c2d87..371dd5dc0d 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -138,9 +138,7 @@ module.exports = function container (get, set, clear) { } /* Implementing statistical Exit */ - function printTrade (quit, dump) { - console.log() - var output_lines = [] + function printTrade (quit, dump, statsonly = false) { var tmp_balance = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).format('0.00000000') if (quit) { if (s.my_trades.length) { @@ -156,12 +154,16 @@ module.exports = function container (get, set, clear) { s.lookback.unshift(s.period) } var profit = s.start_capital ? n(tmp_balance).subtract(s.start_capital).divide(s.start_capital) : n(0) - output_lines.push('last balance: ' + n(tmp_balance).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')') var buy_hold = s.start_price ? n(s.period.close).multiply(n(s.start_capital).divide(s.start_price)) : n(tmp_balance) var buy_hold_profit = s.start_capital ? n(buy_hold).subtract(s.start_capital).divide(s.start_capital) : n(0) - output_lines.push('buy hold: ' + buy_hold.format('0.00000000').yellow + ' (' + n(buy_hold_profit).format('0.00%') + ')') - output_lines.push('vs. buy hold: ' + n(tmp_balance).subtract(buy_hold).divide(buy_hold).format('0.00%').yellow) - output_lines.push(s.my_trades.length + ' trades over ' + s.day_count + ' days (avg ' + n(s.my_trades.length / s.day_count).format('0.00') + ' trades/day)') + if (!statsonly) { + console.log() + var output_lines = [] + output_lines.push('last balance: ' + n(tmp_balance).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')') + output_lines.push('buy hold: ' + buy_hold.format('0.00000000').yellow + ' (' + n(buy_hold_profit).format('0.00%') + ')') + output_lines.push('vs. buy hold: ' + n(tmp_balance).subtract(buy_hold).divide(buy_hold).format('0.00%').yellow) + output_lines.push(s.my_trades.length + ' trades over ' + s.day_count + ' days (avg ' + n(s.my_trades.length / s.day_count).format('0.00') + ' trades/day)') + } // Build stats for UI s.stats = { profit: profit.format('0.00%'), @@ -186,17 +188,21 @@ module.exports = function container (get, set, clear) { } }) if (s.my_trades.length && sells > 0) { - output_lines.push('win/loss: ' + (sells - losses) + '/' + losses) - output_lines.push('error rate: ' + (sells ? n(losses).divide(sells).format('0.00%') : '0.00%').yellow) + if (!statsonly) { + output_lines.push('win/loss: ' + (sells - losses) + '/' + losses) + output_lines.push('error rate: ' + (sells ? n(losses).divide(sells).format('0.00%') : '0.00%').yellow) + } //for API s.stats.win = (sells - losses) s.stats.losses = losses s.stats.error_rate = (sells ? n(losses).divide(sells).format('0.00%') : '0.00%') } - output_lines.forEach(function (line) { - console.log(line) - }) + if (!statsonly) { + output_lines.forEach(function (line) { + console.log(line) + }) + } if (quit || dump) { var html_output = output_lines.map(function (line) { return colors.stripColors(line) @@ -542,6 +548,7 @@ module.exports = function container (get, set, clear) { b.buy_hold = s.period.close * (session.orig_capital / session.orig_price) b.buy_hold_profit = (b.buy_hold - session.orig_capital) / session.orig_capital b.vs_buy_hold = (b.consolidated - b.buy_hold) / b.buy_hold + c.output.api.on && printTrade(false, false, true) if (so.mode === 'live') { balances.save(b, function (err) { if (err) { diff --git a/extensions/output/api.js b/extensions/output/api.js index 97fbe33d80..4624e19498 100644 --- a/extensions/output/api.js +++ b/extensions/output/api.js @@ -6,6 +6,7 @@ module.exports = function container (get) { let app = express() let random_port = require('random-port') let path = require('path') + let moment = require('moment'); let run = function(reporter, tradeObject) { if (!reporter.port || reporter.port === 0) { @@ -33,6 +34,7 @@ module.exports = function container (get) { app.use('/assets-zenbot', express.static(__dirname+'/../../assets')); app.get('/', function (req, res) { + app.locals.moment = moment; let datas = objectWithoutKey(tradeObject, 'options'); datas = objectWithoutKey(tradeObject); res.render('dashboard', datas); diff --git a/lib/engine.js b/lib/engine.js index 7f540de7ad..ee29902dd2 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -69,8 +69,12 @@ module.exports = function container (get, set, clear) { s.lookback = [] s.day_count = 1 s.my_trades = [] - s.trades = [] s.vol_since_last_blink = 0 + if (c.output.api.on) { + s.boot_time = (new Date).getTime() + s.tz_offset = new Date().getTimezoneOffset() + s.trades = [] + } if (so.strategy) { s.strategy = get('strategies.' + so.strategy) if (s.strategy.getOptions) { @@ -150,7 +154,7 @@ module.exports = function container (get, set, clear) { s.period.close_time = trade.time s.strategy.calculate(s) s.vol_since_last_blink += trade.size - s.trades.push(trade) + s.trades && s.trades.push(trade) } function executeStop (do_sell_stop) { @@ -575,6 +579,16 @@ module.exports = function container (get, set, clear) { if (s.buy_order) { if (so.mode === 'live' || trade.price <= Number(s.buy_order.price)) { price = s.buy_order.price + if (so.order_type === 'maker') { + if (s.exchange.makerFee) { + fee = n(s.buy_order.size).multiply(s.exchange.makerFee / 100).value() + } + } + if (so.order_type === 'taker') { + if (s.exchange.takerFee) { + fee = n(s.buy_order.size).multiply(s.exchange.takerFee / 100).value() + } + } if (so.mode !== 'live') { s.balance.asset = n(s.balance.asset).add(s.buy_order.size).format('0.00000000') let total = n(price).multiply(s.buy_order.size) @@ -582,13 +596,11 @@ module.exports = function container (get, set, clear) { if (so.order_type === 'maker') { price = n(s.buy_order.price).add(n(s.buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.makerFee) { - fee = n(s.buy_order.size).multiply(s.exchange.makerFee / 100).value() s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') } } if (so.order_type === 'taker') { if (s.exchange.takerFee) { - fee = n(s.buy_order.size).multiply(s.exchange.takerFee / 100).value() s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') } } @@ -604,6 +616,7 @@ module.exports = function container (get, set, clear) { fee: fee, price: price, order_type: so.order_type || 'taker', + profit: s.last_sell_price && (price - s.last_sell_price) / s.last_sell_price, cancel_after: so.cancel_after || 'day' } s.my_trades.push(my_trade) @@ -626,6 +639,16 @@ module.exports = function container (get, set, clear) { else if (s.sell_order) { if (so.mode === 'live' || trade.price >= s.sell_order.price) { price = s.sell_order.price + if (so.order_type === 'maker') { + if (s.exchange.makerFee) { + fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() + } + } + if (so.order_type === 'taker') { + if (s.exchange.takerFee) { + fee = n(s.sell_order.size).multiply(s.exchange.takerFee / 100).multiply(price).value() + } + } if (so.mode !== 'live') { s.balance.asset = n(s.balance.asset).subtract(s.sell_order.size).value() let total = n(price).multiply(s.sell_order.size) @@ -633,13 +656,11 @@ module.exports = function container (get, set, clear) { if (so.order_type === 'maker') { price = n(s.sell_order.price).subtract(n(s.sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (s.exchange.makerFee) { - fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') } } if (so.order_type === 'taker') { if (s.exchange.takerFee) { - fee = n(s.sell_order.size).multiply(s.exchange.takerFee / 100).multiply(price).value() s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') } } @@ -654,7 +675,8 @@ module.exports = function container (get, set, clear) { size: s.sell_order.orig_size, fee: fee, price: price, - order_type: so.order_type + order_type: so.order_type, + profit: s.last_buy_price && (price - s.last_buy_price) / s.last_buy_price } s.my_trades.push(my_trade) if (so.stats) { diff --git a/templates/dashboard.ejs b/templates/dashboard.ejs index bfcc8ad446..f4b01bdf1e 100644 --- a/templates/dashboard.ejs +++ b/templates/dashboard.ejs @@ -55,7 +55,7 @@
@@ -66,48 +66,62 @@
-
+

Current Market

- -
- -
+
+
  • Price
  • -
  • <%= period.close %> <%= asset.toUpperCase() %>
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(period.close) %> <%= asset.toUpperCase() %>
<% if (typeof quote != "undefined") { %> -
+
  • ASK
  • -
  • <%= quote.ask %> <%= asset.toUpperCase() %>
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(quote.ask) %> <%= asset.toUpperCase() %>
- -
+
  • BID
  • -
  • <%= quote.bid %> <%= asset.toUpperCase() %>
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(quote.bid) %> <%= asset.toUpperCase() %>
<% } %> - +
+
+
+
+
+

Captial

+
+
+
    +
  • Asset
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 8}).format(balance.asset) %> <%= asset.toUpperCase() %>
  • +
+
+
+
    +
  • Currency
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 8}).format(balance.currency) %> <%= currency.toUpperCase() %>
  • +
+
-
<% if (typeof stats != "undefined") { %>
-

Last balance ( <%= new Intl.NumberFormat("en-US", {style: "percent", minimumSignificantDigits:2}).format( (parseFloat(stats.profit)/100)-(parseFloat(stats.buy_hold_profit)/100) ) %> vs buy hold)

+

Last balance (<%= new Intl.NumberFormat("en-US", {style: "percent", minimumFractionDigits: 2, maximumFractionDigits: 2}).format((parseFloat(stats.profit)/100)-(parseFloat(stats.buy_hold_profit)/100) ) %> vs buy hold)

    -
  • <%= stats.tmp_balance %> <%= currency.toUpperCase() %>
  • -
  • <%= stats.profit %> of profit
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(stats.tmp_balance) %> <%= currency.toUpperCase() %>
  • +
  • <%= stats.profit %> of profit
@@ -115,8 +129,8 @@

Buy hold

    -
  • <%= stats.buy_hold %> <%= currency.toUpperCase() %>
  • -
  • <%= stats.buy_hold_profit %> of profit
  • +
  • <%= new Intl.NumberFormat("en-US", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(stats.buy_hold) %> <%= currency.toUpperCase() %>
  • +
  • <%= stats.buy_hold_profit %> of profit
@@ -125,20 +139,22 @@

Trades per day

  • <%= stats.trade_per_day %>
  • -
  • <%= my_trades.length %> trades over <%= day_count %> days
  • +
  • <%= my_trades.length %> trade<% if (my_trades.length != 1) { %>s<% } %> over <%= day_count %> day<% if (day_count != 1) { %>s<% } %>
- <% } %> -
-
-

Asset / Currency

-
    -
  • <%= balance.asset %> <%= asset.toUpperCase() %>
  • -
  • <%= balance.currency %> <%= currency.toUpperCase() %>
  • -
+ <% if (typeof stats.error_rate != "undefined") { %> +
+
+

Error Rate

+
    +
  • <%= stats.error_rate %>
  • +
  • Win/Loss: <%= stats.win %>/<%= stats.losses %>
  • +
+
-
+ <% } %> + <% } %>
@@ -153,11 +169,11 @@ - - + + + - + + + +
From c67b596561253090409b99e27994141f852e5731 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Mon, 19 Feb 2018 23:00:54 +0100 Subject: [PATCH 176/236] add new indicator for talib "WILLR - Williams' %R with rsi oversold", "ADOSC - Chaikin A/D Oscillator" with rsi oversold with support for all volume based indicator (#1357) --- lib/ta_volume.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/ta_willr.js | 56 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 lib/ta_volume.js create mode 100644 lib/ta_willr.js diff --git a/lib/ta_volume.js b/lib/ta_volume.js new file mode 100644 index 0000000000..4e17b21104 --- /dev/null +++ b/lib/ta_volume.js @@ -0,0 +1,62 @@ +// allows to use all talib Volume Indicator Functions: https://mrjbq7.github.io/ta-lib/func_groups/volume_indicators.html +// AD - Chaikin A/D Line +// ADOSC - Chaikin A/D Oscillator +// OBV - On Balance Volume + +var talib = require('talib') + +module.exports = function volume(s, min_periods, indicator, fastperiod, slowperiod) { + return new Promise(function(resolve, reject) { + // create object for talib. only close is used for now but rest might come in handy + if (!s.marketData) { + s.marketData = { open: [], close: [], high: [], low: [], volume: [] } + } + + if (s.lookback.length > s.marketData.close.length) { + for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { + s.marketData.high.push(s.lookback[i].high) + s.marketData.low.push(s.lookback[i].low) + s.marketData.close.push(s.lookback[i].close) + s.marketData.volume.push(s.lookback[i].volume) + } + } + + if (s.marketData.close.length < min_periods) { + resolve() + return + } + + let tmpHigh = s.marketData.high.slice() + tmpHigh.push(s.period.high) + + let tmpLow = s.marketData.low.slice() + tmpLow.push(s.period.low) + + let tmpClose = s.marketData.close.slice() + tmpClose.push(s.period.close) + + let tmpVolume = s.marketData.volume.slice() + tmpVolume.push(s.period.volume) + + talib.execute({ + name: indicator, + startIdx: 0, + endIdx: tmpHigh.length -1, + high: tmpHigh, + low: tmpLow, + close: tmpClose, + volume: tmpVolume, + inReal: tmpClose, + optInFastPeriod: fastperiod || 3, + optInSlowPeriod: slowperiod || 20 + }, function (err, result) { + if (err) { + reject(err, result) + return + } + + resolve(result.result.outReal[(result.nbElement - 1)]) + }) + }) +} + diff --git a/lib/ta_willr.js b/lib/ta_willr.js new file mode 100644 index 0000000000..e8a3bf6c51 --- /dev/null +++ b/lib/ta_willr.js @@ -0,0 +1,56 @@ +// tablib: WILLR - Williams' %R https://mrjbq7.github.io/ta-lib/func_groups/momentum_indicators.html + +var talib = require('talib') + +module.exports = function ppo(s, min_periods, timeperiod) { + return new Promise(function(resolve, reject) { + // create object for talib. only close is used for now but rest might come in handy + if (!s.marketData) { + s.marketData = { open: [], close: [], high: [], low: [], volume: [] } + } + + if (s.lookback.length > s.marketData.close.length) { + for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { + s.marketData.high.push(s.lookback[i].high) + s.marketData.low.push(s.lookback[i].low) + s.marketData.close.push(s.lookback[i].close) + s.marketData.volume.push(s.lookback[i].volume) + } + } + + if (s.marketData.close.length < min_periods) { + resolve() + return + } + + let tmpHigh = s.marketData.high.slice() + tmpHigh.push(s.period.high) + + let tmpLow = s.marketData.low.slice() + tmpLow.push(s.period.low) + + let tmpClose = s.marketData.close.slice() + tmpClose.push(s.period.close) + + let tmpVolume = s.marketData.volume.slice() + tmpVolume.push(s.period.volume) + + talib.execute({ + name: 'WILLR', + startIdx: 0, + endIdx: tmpHigh.length -1, + high: tmpHigh, + low: tmpLow, + close: tmpClose, + optInTimePeriod: timeperiod || 14, + }, function (err, result) { + if (err) { + console.log(err); + reject(err, result) + return + } + + resolve(result.result.outReal[(result.nbElement - 1)]) + }) + }) +} From 8bcd96900601f7e5ce17b2561e0aea5bc132e8ae Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Tue, 20 Feb 2018 19:11:44 +0100 Subject: [PATCH 177/236] move all tablib indicators to a promise and replace calculation usage in strategies as this function does not handle async behavior (#1383) --- extensions/strategies/ta_ema/strategy.js | 18 +++- extensions/strategies/ta_macd/strategy.js | 46 +++++----- lib/ta_ema.js | 94 ++++++++++--------- lib/ta_macd.js | 104 ++++++++++++---------- lib/ta_macd_ext.js | 3 +- lib/ta_ppo.js | 2 +- lib/ta_trix.js | 2 +- lib/ta_ultosc.js | 6 +- 8 files changed, 153 insertions(+), 122 deletions(-) diff --git a/extensions/strategies/ta_ema/strategy.js b/extensions/strategies/ta_ema/strategy.js index 92de028c2b..70c9d08148 100644 --- a/extensions/strategies/ta_ema/strategy.js +++ b/extensions/strategies/ta_ema/strategy.js @@ -19,7 +19,6 @@ module.exports = { }, calculate: function (s) { - ta_ema(s, 'trend_ema', s.options.trend_ema) if (s.options.oversold_rsi) { // sync RSI display with oversold RSI periods s.options.rsi_periods = s.options.oversold_rsi_periods @@ -29,9 +28,6 @@ module.exports = { if (s.options.mode !== 'sim' || s.options.verbose) console.log(('\noversold at ' + s.period.oversold_rsi + ' RSI, preparing to buy\n').cyan) } } - if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) { - s.period.trend_ema_rate = (s.period.trend_ema - s.lookback[0].trend_ema) / s.lookback[0].trend_ema * 100 - } if (s.options.neutral_rate === 'auto') { stddev(s, 'trend_ema_stddev', Math.floor(s.options.trend_ema / 2), 'trend_ema_rate') } @@ -50,6 +46,20 @@ module.exports = { return cb() } } + + // wait for promise to be resolved + // we add all maybe we need more indicators + Promise.all([ta_ema(s, s.options.trend_ema)]).then(result => { + if(result && result.outReal) { + s.period.trend_ema = result.outReal; + } + }); + + // calculate ema rate + if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) { + s.period.trend_ema_rate = (s.period.trend_ema - s.lookback[0].trend_ema) / s.lookback[0].trend_ema * 100 + } + if (typeof s.period.trend_ema_stddev === 'number') { if (s.period.trend_ema_rate > s.period.trend_ema_stddev) { if (s.trend !== 'up') { diff --git a/extensions/strategies/ta_macd/strategy.js b/extensions/strategies/ta_macd/strategy.js index 0262fe899b..9bc98520de 100644 --- a/extensions/strategies/ta_macd/strategy.js +++ b/extensions/strategies/ta_macd/strategy.js @@ -30,18 +30,6 @@ module.exports = { if (s.options.mode === 'sim' && s.options.verbose) console.log(('\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\n').cyan) } } - - // compture MACD - /*get('lib.ema')(s, 'ema_short', s.options.ema_short_period) - get('lib.ema')(s, 'ema_long', s.options.ema_long_period) - if (s.period.ema_short && s.period.ema_long) { - s.period.macd = (s.period.ema_short - s.period.ema_long) - get('lib.ema')(s, 'signal', s.options.signal_period, 'macd') - if (s.period.signal) { - s.period.macd_histogram = s.period.macd - s.period.signal - } - }*/ - ta_macd(s,'macd','macd_histogram','macd_signal',s.options.ema_long_period,s.options.ema_short_period,s.options.signal_period) }, onPeriod: function (s, cb) { @@ -54,16 +42,32 @@ module.exports = { } } - if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') { - if ((s.period.macd_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].macd_histogram - s.options.up_trend_threshold) <= 0) { - s.signal = 'buy' - } else if ((s.period.macd_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].macd_histogram + s.options.down_trend_threshold) >= 0) { - s.signal = 'sell' - } else { - s.signal = null // hold + ta_macd(s, s.options.ema_long_period, s.options.ema_short_period, s.options.signal_period).then(function(signal) { + if(!signal) { + cb() + return } - } - cb() + + s.period['macd'] = signal.macd + s.period['macd_histogram'] = signal.macd_histogram + s.period['macd_signal'] = signal.macd_signal + + if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') { + if ((s.period.macd_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].macd_histogram - s.options.up_trend_threshold) <= 0) { + s.signal = 'buy' + } else if ((s.period.macd_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].macd_histogram + s.options.down_trend_threshold) >= 0) { + s.signal = 'sell' + } else { + s.signal = null // hold + } + } + + cb() + }).catch(function(error) { + console.log(error) + cb() + }) + }, onReport: function (s) { diff --git a/lib/ta_ema.js b/lib/ta_ema.js index 2e6a48afd9..f33970234d 100644 --- a/lib/ta_ema.js +++ b/lib/ta_ema.js @@ -1,49 +1,59 @@ var talib = require('talib') -module.exports = function ta_ema (s, key, length) { - //create object for talib. only close is used for now but rest might come in handy - if (!s.marketData) { - s.marketData = { open: [], close: [], high: [], low: [], volume: [] } - } - if (s.lookback.length > s.marketData.close.length) { - for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { - //console.log('add data') - s.marketData.close.push(s.lookback[i].close) +module.exports = function ta_ema (s, length) { + return new Promise(function(resolve, reject) { + // create object for talib. only close is used for now but rest might come in handy + if (!s.marketData) { + s.marketData = { open: [], close: [], high: [], low: [], volume: [] } } - //dont calculate until we have enough data - if (s.marketData.close.length >= length) { - //fillup marketData for talib. - //this might need improvment for performance. - //for (var i = 0; i < length; i++) { - // s.marketData.close.push(s.lookback[i].close); - //} - //fillup marketData for talib. - var tmpMarket = JSON.parse(JSON.stringify(s.marketData.close)) - //add current period - tmpMarket.push(s.period.close) - //doublecheck length. - if (tmpMarket.length >= length) { - talib.execute({ - name: 'EMA', - startIdx: 0, - endIdx: tmpMarket.length -1, - inReal: tmpMarket, - optInTimePeriod: length - }, function (err, result) { - if (err) { - console.log(err) - return - } - //Result format: (note: outReal can have multiple items in the array) - // { - // begIndex: 8, - // nbElement: 1, - // result: { outReal: [ 1820.8621111111108 ] } - // } - s.period[key] = result.result.outReal[(result.nbElement - 1)] - }) + if (s.lookback.length > s.marketData.close.length) { + for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { + s.marketData.close.push(s.lookback[i].close) + } + + //dont calculate until we have enough data + if (s.marketData.close.length >= length) { + //fillup marketData for talib. + //this might need improvment for performance. + //for (var i = 0; i < length; i++) { + // s.marketData.close.push(s.lookback[i].close); + //} + //fillup marketData for talib. + let tmpMarket = s.marketData.close.slice() + + //add current period + tmpMarket.push(s.period.close) + + //doublecheck length. + if (tmpMarket.length >= length) { + talib.execute({ + name: 'EMA', + startIdx: 0, + endIdx: tmpMarket.length -1, + inReal: tmpMarket, + optInTimePeriod: length + }, function (err, result) { + if (err) { + console.log(err) + reject(err, result) + return + } + + //Result format: (note: outReal can have multiple items in the array) + // { + // begIndex: 8, + // nbElement: 1, + // result: { outReal: [ 1820.8621111111108 ] } + // } + resolve({ + 'outReal': result.result.outReal[(result.nbElement - 1)], + }) + }) + } + } else { + resolve() } } - } + }) } diff --git a/lib/ta_macd.js b/lib/ta_macd.js index b1949c942b..274080884c 100644 --- a/lib/ta_macd.js +++ b/lib/ta_macd.js @@ -1,55 +1,61 @@ var talib = require('talib') -module.exports = function macd (s, macd_key,hist_key,sig_key, slow_period,fast_period,signal_period) { - //check parameters - // if (fast_period > slow_period) { - // console.log('incorrect parameters MACD. (fast_period < slow_period || signal_period > fast_period)') - // return; - // } - //create object for talib. only close is used for now but rest might come in handy - if (!s.marketData) { - s.marketData = { open: [], close: [], high: [], low: [], volume: [] } - } - if (s.lookback.length > s.marketData.close.length) { - for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { - //console.log('add data') - s.marketData.close.push(s.lookback[i].close) - } - } - var periods_necessary = slow_period + signal_period - 1 - //dont calculate until we have enough data - if (s.marketData.close.length >= periods_necessary) { - //fillup marketData for talib. - var tmpMarket = JSON.parse(JSON.stringify(s.marketData.close)) - //add current period - tmpMarket.push(s.period.close) +module.exports = function macd (s, slow_period, fast_period, signal_period) { + return new Promise(function(resolve, reject) { + // check parameters + // if (fast_period > slow_period) { + // console.log('incorrect parameters MACD. (fast_period < slow_period || signal_period > fast_period)') + // return; + // } - talib.execute({ - name: 'MACD', - startIdx: 0, - endIdx: tmpMarket.length -1, - inReal: tmpMarket, - optInFastPeriod: fast_period, - optInSlowPeriod: slow_period, - optInSignalPeriod: signal_period - }, function (err, result) { - if (err) { - console.log(err) - return + //create object for talib. only close is used for now but rest might come in handy + if (!s.marketData) { + s.marketData = { open: [], close: [], high: [], low: [], volume: [] } + } + if (s.lookback.length > s.marketData.close.length) { + for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { + s.marketData.close.push(s.lookback[i].close) } - //Result format: (note: outReal can have multiple items in the array) - // { - // begIndex: 8, - // nbElement: 1, - // result: { outReal: [ 1820.8621111111108 ] } - // } - // console.log(JSON.stringify(marketData)) - // console.log(JSON.stringify(result.result)) - s.period[macd_key] = result.result.outMACD[(result.nbElement - 1)] - s.period[hist_key] = result.result.outMACDHist[(result.nbElement - 1)] - s.period[sig_key] = result.result.outMACDSignal[(result.nbElement - 1)] - }) + } - } -} + let periods_necessary = slow_period + signal_period - 1 + //dont calculate until we have enough data + if (s.marketData.close.length >= periods_necessary) { + // fillup marketData for talib. + let tmpMarket = s.marketData.close.slice() + + // add current period + tmpMarket.push(s.period.close) + + talib.execute({ + name: 'MACD', + startIdx: 0, + endIdx: tmpMarket.length - 1, + inReal: tmpMarket, + optInFastPeriod: fast_period, + optInSlowPeriod: slow_period, + optInSignalPeriod: signal_period + }, function (err, result) { + if (err) { + reject(err) + console.log(err) + return + } + //Result format: (note: outReal can have multiple items in the array) + // { + // begIndex: 8, + // nbElement: 1, + // result: { outReal: [ 1820.8621111111108 ] } + // } + resolve({ + 'macd': result.result.outMACD[(result.nbElement - 1)], + 'macd_histogram': result.result.outMACDHist[(result.nbElement - 1)], + 'macd_signal': result.result.outMACDSignal[(result.nbElement - 1)], + }) + }) + } else { + resolve() + } + }) +} diff --git a/lib/ta_macd_ext.js b/lib/ta_macd_ext.js index 9b9721afa1..cc1a3c30d7 100644 --- a/lib/ta_macd_ext.js +++ b/lib/ta_macd_ext.js @@ -18,7 +18,8 @@ module.exports = function ta_macd_ext (s, slow_period, fast_period, signal_perio if (s.marketData.close.length >= periods_necessary) { //fillup marketData for talib. - var tmpMarket = JSON.parse(JSON.stringify(s.marketData.close)) + var tmpMarket = s.marketData.close.slice() + //add current period tmpMarket.push(s.period.close) diff --git a/lib/ta_ppo.js b/lib/ta_ppo.js index 5ae6610858..0d1804cb93 100644 --- a/lib/ta_ppo.js +++ b/lib/ta_ppo.js @@ -21,7 +21,7 @@ module.exports = function ppo(s, slow_period, fast_period, signal_period, ma_typ return } - let tmpMarket = JSON.parse(JSON.stringify(s.marketData.close)) + let tmpMarket = s.marketData.close.slice() // add current period tmpMarket.push(s.period.close) diff --git a/lib/ta_trix.js b/lib/ta_trix.js index edf45eb1f1..e79ab5315d 100644 --- a/lib/ta_trix.js +++ b/lib/ta_trix.js @@ -18,7 +18,7 @@ module.exports = function trix(s, timeperiod) { return } - let tmpMarket = JSON.parse(JSON.stringify(s.marketData.close)) + let tmpMarket = s.marketData.close.slice() // add current period tmpMarket.push(s.period.close) diff --git a/lib/ta_ultosc.js b/lib/ta_ultosc.js index d85f7c32bb..afbf1b8ac3 100644 --- a/lib/ta_ultosc.js +++ b/lib/ta_ultosc.js @@ -20,13 +20,13 @@ module.exports = function ultosc(s, min_periods, timeperiod1, timeperiod2, timep return } - let tmpHigh = JSON.parse(JSON.stringify(s.marketData.high)) + let tmpHigh = s.marketData.high.slice() tmpHigh.push(s.period.high) - let tmpLow = JSON.parse(JSON.stringify(s.marketData.low)) + let tmpLow = s.marketData.low.slice() tmpLow.push(s.period.low) - let tmpClose = JSON.parse(JSON.stringify(s.marketData.close)) + let tmpClose = s.marketData.close.slice() tmpClose.push(s.period.close) talib.execute({ From ef775b9b0b51e75892edfbff3b6451549b64abc6 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 21 Feb 2018 10:54:18 +0100 Subject: [PATCH 178/236] fix(package): update imports-loader to version 0.8.0 (#1388) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 71a9bea76d..63a6d56793 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "har-validator": "^5.0.3", "husky": "^0.14.3", "idgen": "^2.0.2", - "imports-loader": "^0.7.1", + "imports-loader": "^0.8.0", "ip": "~1.1.5", "jasmine": "^2.8.0", "jquery": "^3.2.1", From 2ad29b14379dc61a10bd223aafaf820ad2c344cc Mon Sep 17 00:00:00 2001 From: defkev Date: Wed, 21 Feb 2018 10:55:15 +0100 Subject: [PATCH 179/236] CEXIO: Fix buy maker size calculation (#1385) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CEXIO: Fix buy maker size calculation Closes already closed #923 CEXIO (at least) always expects the taker fee will submitting a buy order which causes a ìnsufficient funds` error if buy_pct (+ makerFee) is greater than or equal to 100% - takerFee To workaround this "limitation" we will use the taker fee for the buy order size calculation. Note that this has no impact on the actual fee paid if the order gets filled, its just to get the order accepted. This is an exchange specific workaround, so if you suspect that other exchanges have the same "problem" try adding `makerBuy100Workaround: true` to the exchange object in exchange.js * CEXIO: Consider adjust_buy_max in workaround * Preserve maker as default --- extensions/exchanges/cexio/exchange.js | 1 + lib/engine.js | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/extensions/exchanges/cexio/exchange.js b/extensions/exchanges/cexio/exchange.js index 12ea975bb8..62af7aa1ed 100644 --- a/extensions/exchanges/cexio/exchange.js +++ b/extensions/exchanges/cexio/exchange.js @@ -66,6 +66,7 @@ module.exports = function cexio (conf) { makerFee: 0.16, takerFee: 0.25, dynamicFees: true, + makerBuy100Workaround: true, getProducts: function () { return require('./products.json') diff --git a/lib/engine.js b/lib/engine.js index 7e3eb4f9bf..5c35a47a8b 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -471,7 +471,11 @@ module.exports = function (s, conf) { let to_buy_pct = n(so.buy_pct).subtract(held_pct).value() buy_pct = to_buy_pct } - fee = so.order_type === 'maker' ? s.exchange.makerFee : s.exchange.takerFee + if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { + fee = s.exchange.makerFee + } else { + fee = s.exchange.takerFee + } trade_balance = n(s.balance.currency).divide(100).multiply(buy_pct) tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too @@ -480,7 +484,7 @@ module.exports = function (s, conf) { } else { size = n(trade_balance).subtract(expected_fee).divide(price).format('0.00000000') } - msg('preparing buy order over ' + fa(size) + ' which equals to ' + buy_pct + '% of our ' + fc(tradeable_balance) + ' tradeable balance with a expected fee of ' + fc(expected_fee)) + msg('preparing buy order over ' + fa(size) + ' of ' + fc(tradeable_balance) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + fc(expected_fee) + ' (' + fee + '%)') } else { size = n(s.balance.currency).multiply(so.buy_pct).divide(100).divide(price).format('0.00000000') } From c723edf1795f013eb1dd194061ea77ae4f87d1d6 Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Wed, 21 Feb 2018 04:56:20 -0500 Subject: [PATCH 180/236] Darwin Update: Add new strategies (#1391) Move trend_ema consts, to better matches definition of other strategies. Add new strategies ta_macd_ext ta_ppo ta_trix ta_ultosc default range values will need to be adjusted in later pulls. Currently they are set as a wide range, it will eventually find working values, but with adjustment it will find them quicker. --- scripts/genetic_backtester/darwin.js | 113 +++++++++++++++++++++--- scripts/genetic_backtester/phenotype.js | 14 ++- 2 files changed, 113 insertions(+), 14 deletions(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index b023af5d99..bff3ab0cba 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -31,14 +31,11 @@ let VERSION = 'Zenbot 4 Genetic Backtester v0.2.2' let PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length -let TREND_EMA_MIN = 20 -let TREND_EMA_MAX = 20 -let OVERSOLD_RSI_MIN = 20 -let OVERSOLD_RSI_MAX = 35 -let OVERSOLD_RSI_PERIODS_MIN = 15 -let OVERSOLD_RSI_PERIODS_MAX = 25 + + + let iterationCount = 0 @@ -582,12 +579,26 @@ function RangeNeuralActivation () { } return r } + +function RangeMaType () { + var r = { + type: 'maType' + } + return r +} + function RangeBoolean () { var r = { type: 'truefalse' } return r } +function RangeSignalType () { + var r ={ + type: 'uscSignalType' + } + return r +} const strategies = { bollinger: { @@ -835,9 +846,9 @@ const strategies = { profit_stop_pct: Range(1,20), // -- strategy - trend_ema: Range(TREND_EMA_MIN, TREND_EMA_MAX), - oversold_rsi_periods: Range(OVERSOLD_RSI_PERIODS_MIN, OVERSOLD_RSI_PERIODS_MAX), - oversold_rsi: Range(OVERSOLD_RSI_MIN, OVERSOLD_RSI_MAX) + trend_ema: Range(1, 40), + oversold_rsi_periods: Range(5, 50), + oversold_rsi: Range(20, 100) }, ta_macd: { // -- common @@ -861,6 +872,84 @@ const strategies = { overbought_rsi_periods: Range(1, 50), overbought_rsi: Range(20, 100) }, + ta_macd_ext:{ + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 104), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // have to be minimum 2 because talib will throw an "TA_BAD_PARAM" error + ema_short_period: Range(2, 20), + ema_long_period: Range(20, 100), + signal_period: Range(1, 20), + fast_ma_type: RangeMaType(), + slow_ma_type: RangeMaType(), + signal_ma_type: RangeMaType(), + default_ma_type: RangeMaType(), + // this.option('default_ma_type', 'set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type)', String, 'SMA') + up_trend_threshold: Range(0, 50), + down_trend_threshold: Range(0, 50), + overbought_rsi_periods: Range(1, 50), + overbought_rsi: Range(20, 100) + }, + ta_ppo: { + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 104), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + // have to be minimum 2 because talib will throw an "TA_BAD_PARAM" error + ema_short_period: Range(2, 20), + ema_long_period: Range(20, 100), + signal_period: Range(1, 20), + ma_type: RangeMaType(), + overbought_rsi_periods: Range(1, 50), + overbought_rsi: Range(20, 100) + }, + ta_trix: { + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 104), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + timeperiod: Range(1,60), + overbought_rsi_periods: Range(1, 50), + overbought_rsi: Range(20, 100) + }, + ta_ultosc: + { + period_length: RangePeriod(1, 120, 'm'), + min_periods: Range(1, 104), + markdown_buy_pct: RangeFloat(-1, 5), + markup_sell_pct: RangeFloat(-1, 5), + order_type: RangeMakerTaker(), + sell_stop_pct: Range0(1, 50), + buy_stop_pct: Range0(1, 50), + profit_stop_enable_pct: Range0(1, 20), + profit_stop_pct: Range(1,20), + + signal:RangeSignalType(), + timeperiod1:Range(1,50), + timeperiod2:Range(1,50), + timeperiod3:Range(1,50), + overbought_rsi_periods: Range(1, 50), + overbought_rsi: Range(20, 100) + }, trend_bollinger: { // -- common period_length: RangePeriod(1, 120, 'm'), @@ -891,9 +980,9 @@ const strategies = { profit_stop_pct: Range(1,20), // -- strategy - trend_ema: Range(TREND_EMA_MIN, TREND_EMA_MAX), - oversold_rsi_periods: Range(OVERSOLD_RSI_PERIODS_MIN, OVERSOLD_RSI_PERIODS_MAX), - oversold_rsi: Range(OVERSOLD_RSI_MIN, OVERSOLD_RSI_MAX) + trend_ema: Range(1, 40), + oversold_rsi_periods: Range(5, 50), + oversold_rsi: Range(20, 100) }, trendline: { // -- common diff --git a/scripts/genetic_backtester/phenotype.js b/scripts/genetic_backtester/phenotype.js index 77037701bb..be9dffc559 100644 --- a/scripts/genetic_backtester/phenotype.js +++ b/scripts/genetic_backtester/phenotype.js @@ -28,8 +28,8 @@ module.exports = { } else if (v.type === 'makertaker') { r[k] = (Math.random() > 0.5) ? 'maker' : 'taker' } else if (v.type === 'sigmoidtanhrelu') { - var items = ['sigmoid', 'tanh', 'relu'] - var index = Math.floor(Math.random() * items.length) + let items = ['sigmoid', 'tanh', 'relu'] + let index = Math.floor(Math.random() * items.length) r[k] = items[index] } else if (v.type === 'period_length') { var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) @@ -37,6 +37,16 @@ module.exports = { } else if (v.type === 'truefalse') { r[k] = (Math.random() > 0.5) ? true : false } + else if (v.type === 'maType') { + let items = ['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3'] + let index = Math.floor(Math.random() * items.length) + r[k] = items[index] + } else if (v.type === 'uscSignalType') { + let items = ['simple', 'low', 'trend'] + let index = Math.floor(Math.random() * items.length) + r[k] = items[index] + } + } return r }, From 71861dff6b39bb54d484296dab9af229197b0479 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 21 Feb 2018 10:49:47 +0000 Subject: [PATCH 181/236] Exchanges: update-products 616 --- package-lock.json | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index df6deba890..9366f1fcce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4719,12 +4719,19 @@ "dev": true }, "imports-loader": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.7.1.tgz", - "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.8.0.tgz", + "integrity": "sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==", "requires": { "loader-utils": "1.1.0", - "source-map": "0.5.7" + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "imurmurhash": { From 4df0370dbb3ee6ef3212b7076fb03606f25f3bae Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 21 Feb 2018 12:57:51 +0100 Subject: [PATCH 182/236] fix(package): update lint-staged to version 7.0.0 (#1394) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 63a6d56793..08ea011f42 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "jasmine": "^2.8.0", "jquery": "^3.2.1", "kraken-api": "^1.0.0", - "lint-staged": "^6.1.0", + "lint-staged": "^7.0.0", "lodash": "^4.17.4", "mathjs": "^3.17.0", "micro-request": "^666.0.10", From 7212bb6adab6ce6a9c9fc36c9d1dc03eda3ca970 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Wed, 21 Feb 2018 11:47:47 -0500 Subject: [PATCH 183/236] Implement sim exchange to make sim perform more like live (#1378) --- README.md | 8 +- commands/sim.js | 23 +- commands/trade.js | 34 +- extensions/exchanges/sim/exchange.js | 218 +++++++++ lib/engine.js | 641 ++++++++++++++------------- 5 files changed, 587 insertions(+), 337 deletions(-) create mode 100644 extensions/exchanges/sim/exchange.js diff --git a/README.md b/README.md index 27bce1197b..347f3737c9 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,8 @@ zenbot trade --help --poll_trades poll new trades at this interval in ms --currency_increment Currency increment, if different than the asset increment; e.g. 0.000001 --use_prev_trades load and use previous trades for stop-order triggers and loss protection + --exact_buy_orders instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all + --exact_sell_orders instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all --disable_stats disable printing order stats --reset_profit start new profit calculation from 0 --debug output detailed debug info @@ -506,7 +508,7 @@ ta_macd_ext --down_trend_threshold= threshold to trigger a sold signal (default: 0) --overbought_rsi_periods= number of periods for overbought RSI (default: 25) --overbought_rsi= sold when RSI exceeds this value (default: 70) - + ta_trix description: TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA with rsi oversold @@ -552,7 +554,7 @@ ta_ultosc --timeperiod3= talib ULTOSC timeperiod3 (default: 28) --overbought_rsi_periods= number of periods for overbought RSI (default: 25) --overbought_rsi= sold when RSI exceeds this value (default: 90) - + trendline description: Calculate a trendline and trade when trend is positive vs negative. @@ -580,7 +582,7 @@ trust_distrust --buy_threshold= buy when the bottom increased at least above this percentage (default: 2) --buy_threshold_max= wait for multiple buy signals before buying (kill whipsaw, 0 to disable) (default: 0) --greed= sell if we reach this much profit (0 to be greedy and either win or lose) (default: 0) - + wavetrend description: Buy when (Signal < Oversold) and sell when (Signal > Overbought). diff --git a/commands/sim.js b/commands/sim.js index 21464d374b..76a099d908 100644 --- a/commands/sim.js +++ b/commands/sim.js @@ -30,6 +30,7 @@ module.exports = function (program, conf) { .option('--markdown_buy_pct ', '% to mark down buy price', Number, conf.markdown_buy_pct) .option('--markup_sell_pct ', '% to mark up sell price', Number, conf.markup_sell_pct) .option('--order_adjust_time ', 'adjust bid/ask on this interval to keep orders competitive', Number, conf.order_adjust_time) + .option('--order_poll_time ', 'poll order status on this interval', Number, conf.order_poll_time) .option('--sell_stop_pct ', 'sell if price drops below this % of bought price', Number, conf.sell_stop_pct) .option('--buy_stop_pct ', 'buy if price surges above this % of sold price', Number, conf.buy_stop_pct) .option('--profit_stop_enable_pct ', 'enable trailing sell stop when reaching this % profit', Number, conf.profit_stop_enable_pct) @@ -39,6 +40,8 @@ module.exports = function (program, conf) { .option('--max_slippage_pct ', 'avoid selling at a slippage pct above this float', conf.max_slippage_pct) .option('--symmetrical', 'reverse time at the end of the graph, normalizing buy/hold to 0', conf.symmetrical) .option('--rsi_periods ', 'number of periods to calculate RSI at', Number, conf.rsi_periods) + .option('--exact_buy_orders', 'instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all') + .option('--exact_sell_orders', 'instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all') .option('--disable_options', 'disable printing of options') .option('--enable_stats', 'enable printing order stats') .option('--backtester_generation ','creates a json file in simulations with the generation number', Number, -1) @@ -48,11 +51,11 @@ module.exports = function (program, conf) { var s = { options: minimist(process.argv) } var so = s.options delete so._ - if (cmd.conf) { - var overrides = require(path.resolve(process.cwd(), cmd.conf)) - Object.keys(overrides).forEach(function (k) { - so[k] = overrides[k] - }) + if (cmd.conf) { + var overrides = require(path.resolve(process.cwd(), cmd.conf)) + Object.keys(overrides).forEach(function (k) { + so[k] = overrides[k] + }) } Object.keys(conf).forEach(function (k) { if (!_.isUndefined(cmd[k])) { @@ -80,9 +83,9 @@ module.exports = function (program, conf) { var d = tb('1d') so.start = d.subtract(so.days).toMilliseconds() } - + so.days = moment(so.end).diff(moment(so.start), 'days') - + so.stats = !!cmd.enable_stats so.show_options = !cmd.disable_options so.verbose = !!cmd.verbose @@ -110,10 +113,10 @@ module.exports = function (program, conf) { option_keys.forEach(function (k) { options[k] = so[k] }) - + let options_output = options options_output.simresults = {} - + if (s.my_trades.length) { s.my_trades.push({ price: s.period.close, @@ -276,7 +279,7 @@ module.exports = function (program, conf) { setImmediate(getNext) }) } - + getNext() }) } diff --git a/commands/trade.js b/commands/trade.js index 1e55edabfa..553e168db2 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -47,6 +47,8 @@ module.exports = function (program, conf) { .option('--poll_trades ', 'poll new trades at this interval in ms', Number, conf.poll_trades) .option('--currency_increment ', 'Currency increment, if different than the asset increment', String, null) .option('--keep_lookback_periods ', 'Keep this many lookback periods max. ', Number, conf.keep_lookback_periods) + .option('--exact_buy_orders', 'instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all') + .option('--exact_sell_orders', 'instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all') .option('--use_prev_trades', 'load and use previous trades for stop-order triggers and loss protection') .option('--disable_stats', 'disable printing order stats') .option('--reset_profit', 'start new profit calculation from 0') @@ -77,13 +79,13 @@ module.exports = function (program, conf) { so.debug = cmd.debug so.stats = !cmd.disable_stats so.mode = so.paper ? 'paper' : 'live' - + so.selector = objectifySelector(selector || conf.selector) s.exchange = require(`../extensions/exchanges/${so.selector.exchange_id}/exchange`)(conf) if (!s.exchange) { console.error('cannot trade ' + so.selector.normalized + ': exchange not implemented') process.exit(1) - + } var engine = engineFactory(s, conf) var collectionServiceInstance = collectionService(conf) @@ -111,7 +113,7 @@ module.exports = function (program, conf) { console.log(' ' + key + ' - ' + value) }) } - + function listOptions () { console.log() console.log(s.exchange.name.toUpperCase() + ' exchange active trading options:'.grey) @@ -146,7 +148,7 @@ module.exports = function (program, conf) { z(20, so.profit_stop_pct + '%', ' ') ].join('') + '\n') process.stdout.write('') - } + } /* Implementing statistical Exit */ function printTrade (quit, dump, statsonly = false) { @@ -239,14 +241,14 @@ module.exports = function (program, conf) { var out_target_prefix = so.paper ? 'simulations/paper_result_' : 'stats/trade_result_' if(dump){ var dt = new Date().toISOString() - + //ymd var today = dt.slice(2, 4) + dt.slice(5, 7) + dt.slice(8, 10) out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + today + '_UTC.html' fs.writeFileSync(out_target, out) }else out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + new Date().toISOString().replace(/T/, '_').replace(/\..+/, '').replace(/-/g, '').replace(/:/g, '').replace(/20/, '') + '_UTC.html' - + fs.writeFileSync(out_target, out) console.log('\nwrote'.grey, out_target) } @@ -254,7 +256,7 @@ module.exports = function (program, conf) { } } /* The end of printTrade */ - + /* Implementing statistical status dump every 10 secs */ var shouldSaveStats = false function toggleStats(){ @@ -264,7 +266,7 @@ module.exports = function (program, conf) { else console.log('Auto stats dump disabled') } - + function saveStatsLoop(){ saveStats() setTimeout(function () { @@ -272,13 +274,13 @@ module.exports = function (program, conf) { }, 10000) } saveStatsLoop() - + function saveStats () { if(!shouldSaveStats) return - + var output_lines = [] var tmp_balance = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).format('0.00000000') - + var profit = s.start_capital ? n(tmp_balance).subtract(s.start_capital).divide(s.start_capital) : n(0) output_lines.push('last balance: ' + n(tmp_balance).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')') var buy_hold = s.start_price ? n(s.period.close).multiply(n(s.start_capital).divide(s.start_price)) : n(tmp_balance) @@ -318,7 +320,7 @@ module.exports = function (program, conf) { s.stats.losses = losses s.stats.error_rate = (sells ? n(losses).divide(sells).format('0.00%') : '0.00%') } - + var html_output = output_lines.map(function (line) { return colors.stripColors(line) }).join('\n') @@ -341,7 +343,7 @@ module.exports = function (program, conf) { if (so.filename !== 'none') { var out_target var dt = new Date().toISOString() - + //ymd var today = dt.slice(2, 4) + dt.slice(5, 7) + dt.slice(8, 10) out_target = so.filename || 'simulations/trade_result_' + so.selector.normalized +'_' + today + '_UTC.html' @@ -377,7 +379,7 @@ module.exports = function (program, conf) { var my_trades_size = 0 var my_trades = collectionServiceInstance.getMyTrades() var periods = collectionServiceInstance.getPeriods() - + console.log('fetching pre-roll data:') var zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : 'zenbot.sh' // Use 'win32' for 64 bit windows too var command_args = ['backfill', so.selector.normalized, '--days', days || 1] @@ -398,12 +400,12 @@ module.exports = function (program, conf) { }, sort: {time: 1}, limit: 1000 - } + } if (db_cursor) { opts.query.time = {$gt: db_cursor} } else { - trade_cursor = s.exchange.getCursor(query_start) + trade_cursor = s.exchange.getCursor(query_start) opts.query.time = {$gte: query_start} } trades.find(opts.query).limit(opts.limit).sort(opts.sort).toArray(function (err, trades) { diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js new file mode 100644 index 0000000000..a29f579d5b --- /dev/null +++ b/extensions/exchanges/sim/exchange.js @@ -0,0 +1,218 @@ +let path = require('path') + , n = require('numbro') + , _ = require('underscore') + + +module.exports = function sim (conf, s) { + + let so = s.options + let exchange_id = so.selector.exchange_id + let real_exchange = require(path.resolve(__dirname, `../${exchange_id}/exchange`))(conf) + + var now + var balance = { asset: so.asset_capital, currency: so.currency_capital } + + var last_order_id = 1001 + var orders = {} + var openOrders = {} + + var exchange = { + name: 'sim', + historyScan: real_exchange.historyScan, + historyScanUsesTime: real_exchange.historyScanUsesTime, + makerFee: real_exchange.makerFee, + takerFee: real_exchange.takerFee, + dynamicFees: real_exchange.dynamicFees, + + getProducts: real_exchange.getProducts, + + getTrades: function (opts, cb) { + return cb(null, []) + }, + + getBalance: function (opts, cb) { + return cb(null, balance) + }, + + getQuote: function (opts, cb) { + return cb(null, { + bid: s.period.close, + ask: s.period.close + }) + }, + + cancelOrder: function (opts, cb) { + var order_id = '~' + opts.order_id + var order = orders[order_id] + + if (order.status === 'open') { + order.status = 'cancelled' + delete openOrders[order_id] + } + + cb(null) + }, + + buy: function (opts, cb) { + var result = { + id: last_order_id++ + } + + var order = { + id: result.id, + status: 'open', + price: opts.price, + size: opts.size, + orig_size: opts.size, + post_only: !!opts.post_only, + filled_size: '0', + ordertype: opts.order_type, + tradetype: 'buy', + orig_time: now, + time: now, + created_at: now + + } + orders['~' + result.id] = order + openOrders['~' + result.id] = order + cb(null, order) + }, + + sell: function (opts, cb) { + var result = { + id: last_order_id++ + } + + var order = { + id: result.id, + status: 'open', + price: opts.price, + size: opts.size, + orig_size: opts.size, + post_only: !!opts.post_only, + filled_size: '0', + ordertype: opts.order_type, + tradetype: 'sell', + orig_time: now, + time: now, + created_at: now + } + orders['~' + result.id] = order + openOrders['~' + result.id] = order + cb(null, order) + }, + + getOrder: function (opts, cb) { + var order = orders['~' + opts.order_id] + cb(null, order) + }, + + getCursor: function (trade) { + return (trade.time || trade) + }, + + getTime: function() { + return now + }, + + processTrade: function(trade) { + now = trade.time + + _.each(openOrders, function(order, order_id) { + if (order.tradetype === 'buy') { + if (trade.time - order.time < so.order_adjust_time) { + // Not time yet + } + else if (trade.price <= Number(order.price)) { + processBuy(order) + order.done_at = trade.time + delete openOrders[order_id] + } + } + else if (order.tradetype === 'sell') { + if (trade.time - order.time < so.order_adjust_time) { + // Not time yet + } + else if (trade.price >= order.price) { + processSell(order) + order.done_at = trade.time + delete openOrders[order_id] + } + } + }) + } + } + + function processBuy (buy_order) { + let fee + let price = buy_order.price + if (so.order_type === 'maker') { + if (exchange.makerFee) { + fee = n(buy_order.size).multiply(exchange.makerFee / 100).value() + } + } + if (so.order_type === 'taker') { + if (s.exchange.takerFee) { + fee = n(buy_order.size).multiply(exchange.takerFee / 100).value() + } + } + + balance.asset = n(balance.asset).add(buy_order.size).format('0.00000000') + if (so.order_type === 'maker') { + price = n(buy_order.price).add(n(buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') + if (exchange.makerFee) { + balance.asset = n(balance.asset).subtract(fee).format('0.00000000') + } + } + if (so.order_type === 'taker') { + if (exchange.takerFee) { + balance.asset = n(balance.asset).subtract(fee).format('0.00000000') + } + } + let total = n(price).multiply(buy_order.size) + balance.currency = n(balance.currency).subtract(total).format('0.00000000') + + + buy_order.status = 'done' + buy_order.filled_size = buy_order.size + buy_order.remaining_size = 0 + } + + function processSell (sell_order) { + let fee + let price = sell_order.price + + if (so.order_type === 'maker') { + if (exchange.makerFee) { + fee = n(sell_order.size).multiply(exchange.makerFee / 100).multiply(price).value() + } + } + if (so.order_type === 'taker') { + if (exchange.takerFee) { + fee = n(sell_order.size).multiply(exchange.takerFee / 100).multiply(price).value() + } + } + + balance.asset = n(balance.asset).subtract(sell_order.size).value() + if (so.order_type === 'maker') { + price = n(sell_order.price).subtract(n(sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') + if (exchange.makerFee) { + fee = n(sell_order.size).multiply(exchange.makerFee / 100).multiply(price).value() + balance.currency = n(balance.currency).subtract(fee).format('0.00000000') + } + } + if (so.order_type === 'taker') { + if (exchange.takerFee) { + balance.currency = n(balance.currency).subtract(fee).format('0.00000000') + } + } + let total = n(price).multiply(sell_order.size) + balance.currency = n(balance.currency).add(total).value() + + sell_order.status = 'done' + sell_order.filled_size = sell_order.size + sell_order.remaining_size = 0 + } + + return exchange +} diff --git a/lib/engine.js b/lib/engine.js index 5c35a47a8b..f9e558105b 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -21,7 +21,12 @@ module.exports = function (s, conf) { let so = s.options if(_.isUndefined(s.exchange)){ - s.exchange = require(path.resolve(__dirname, `../extensions/exchanges/${so.selector.exchange_id}/exchange`))(conf) + if (so.mode == 'sim') { + s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s) + } + else { + s.exchange = require(path.resolve(__dirname, `../extensions/exchanges/${so.selector.exchange_id}/exchange`))(conf) + } } s.product_id = so.selector.product_id s.asset = so.selector.asset @@ -43,7 +48,7 @@ module.exports = function (s, conf) { console.error('error: could not find product "' + s.product_id + '"') process.exit(1) } - if ((so.mode === 'live' || so.mode === 'paper') && s.exchange.dynamicFees) { + if (s.exchange.dynamicFees) { s.exchange.setFees({asset: s.asset, currency: s.currency}) } if (so.mode === 'sim' || so.mode === 'paper') { @@ -87,11 +92,21 @@ module.exports = function (s, conf) { if (s.strategy.getOptions) { s.strategy.getOptions.call(s.ctx, s) } + if (s.strategy.orderExecuted) { + eventBus.on('orderExecuted', function(type) { + s.strategy.orderExecuted(s, type, executeSignal) + }) + } } function msg (str) { if (so.debug) { - console.error('\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) + if (lastTickCheckOrder) { + console.error('\n' + moment(lastTickCheckOrder).format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) + } + else { + console.error('\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) + } } } @@ -156,6 +171,19 @@ module.exports = function (s, conf) { } } + function nextBuyForQuote(s, quote) { + if (s.next_buy_price) + return n(s.next_buy_price).format(s.product.increment, Math.floor) + else + return n(quote.bid).subtract(n(quote.bid).multiply(s.options.markdown_buy_pct / 100)).format(s.product.increment, Math.floor) + } + function nextSellForQuote(s, quote) { + if (s.next_sell_price) + return n(s.next_sell_price).format(s.product.increment, Math.ceil) + else + return n(quote.ask).add(n(quote.ask).multiply(s.options.markup_sell_pct / 100)).format(s.product.increment, Math.ceil) + } + function updatePeriod(trade) { s.period.high = Math.max(trade.price, s.period.high) s.period.low = Math.min(trade.price, s.period.low) @@ -211,10 +239,6 @@ module.exports = function (s, conf) { } function syncBalance (cb) { - if (so.mode !== 'live') { - return cb() - } - s.exchange.getBalance({currency: s.currency, asset: s.asset}, function (err, balance) { if (err) return cb(err) s.balance = balance @@ -249,160 +273,54 @@ module.exports = function (s, conf) { let order = s[type + '_order'] order.price = opts.price order.size = opts.size - if (so.mode !== 'live') { - if (!order.orig_time) order.orig_time = s.period.latest_trade_time - order.time = s.period.latest_trade_time - return cb(null, order) - } - else { - order.product_id = s.product_id - order.post_only = conf.post_only - msg('placing ' + type + ' order...') - let order_copy = JSON.parse(JSON.stringify(order)) - s.exchange[type](order_copy, function (err, api_order) { - if (err) return cb(err) - s.api_order = api_order - if (api_order.status === 'rejected') { - if (api_order.reject_reason === 'post only') { - // trigger immediate price adjustment and re-order - msg('post-only ' + type + ' failed, re-ordering') - return cb(null, null) - } - else if (api_order.reject_reason === 'balance') { - // treat as a no-op. - msg('not enough balance for ' + type + ', aborting') - return cb(null, false) - } - else if (api_order.reject_reason === 'price') { - // treat as a no-op. - msg('invalid price for ' + type + ', aborting') - return cb(null, false) - } - err = new Error('\norder rejected') - err.order = api_order - return cb(err) - } - msg(type + ' order placed at ' + fc(order.price)) - order.order_id = api_order.id - if (!order.time) { - order.orig_time = new Date(api_order.created_at).getTime() + + order.product_id = s.product_id + order.post_only = conf.post_only + msg('placing ' + type + ' order...') + let order_copy = JSON.parse(JSON.stringify(order)) + s.exchange[type](order_copy, function (err, api_order) { + if (err) return cb(err) + s.api_order = api_order + if (api_order.status === 'rejected') { + if (api_order.reject_reason === 'post only') { + // trigger immediate price adjustment and re-order + msg('post-only ' + type + ' failed, re-ordering') + return cb(null, null) } - order.time = new Date(api_order.created_at).getTime() - order.local_time = new Date().getTime() - order.status = api_order.status - //console.log('\ncreated ' + order.status + ' ' + type + ' order: ' + fa(order.size) + ' at ' + fc(order.price) + ' (total ' + fc(n(order.price).multiply(order.size)) + ')\n') - function cancelOrder (do_reorder) { - msg('cancelling order') - s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function () { - function checkHold () { - s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) { - if (api_order) { - s.api_order = api_order - if (api_order.filled_size) { - order.remaining_size = n(order.size).subtract(api_order.filled_size).format('0.00000000') - } - } - syncBalance(function () { - let on_hold - if (type === 'buy') on_hold = n(s.balance.currency).subtract(s.balance.currency_hold || 0).value() < n(order.price).multiply(order.remaining_size).value() - else on_hold = n(s.balance.asset).subtract(s.balance.asset_hold || 0).value() < n(order.remaining_size).value() - if (on_hold) { - // wait a bit for settlement - msg('funds on hold after cancel, waiting 5s') - setTimeout(checkHold, conf.wait_for_settlement) - } - else { - cb(null, do_reorder ? null : false) - } - }) - }) - } - checkHold() - }) + else if (api_order.reject_reason === 'balance') { + // treat as a no-op. + msg('not enough balance for ' + type + ', aborting') + return cb(null, false) } - function checkOrder () { - if (!s[type + '_order']) { - // signal switched, stop checking order - msg('signal switched during ' + type + ', aborting') - return cancelOrder(false) - } - s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) { - if (err) return cb(err) - s.api_order = api_order - order.status = api_order.status - if (api_order.reject_reason) order.reject_reason = api_order.reject_reason - msg('order status: ' + order.status) - if (api_order.status === 'done') { - order.time = new Date(api_order.done_at).getTime() - order.price = api_order.price || order.price // Use actual price if possible. In market order the actual price (api_order.price) could be very different from trade price - executeOrder(order) - return syncBalance(function () { - cb(null, order) - }) - } - if (order.status === 'rejected' && (order.reject_reason === 'post only' || api_order.reject_reason === 'post only')) { - msg('post-only ' + type + ' failed, re-ordering') - return cb(null, null) - } - if (order.status === 'rejected' && order.reject_reason === 'balance') { - msg('not enough balance for ' + type + ', aborting') - return cb(null, null) - } - if (new Date().getTime() - order.local_time >= so.order_adjust_time) { - getQuote(function (err, quote) { - if (err) { - err.desc = 'could not execute ' + type + ': error fetching quote' - return cb(err) - } - let marked_price - if (type === 'buy') { - marked_price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format((so.currency_increment !== null) ? so.currency_increment : s.product.increment, Math.floor) - if (n(order.price).value() < marked_price) { - msg(marked_price + ' vs our ' + order.price) - cancelOrder(true) - } - else { - order.local_time = new Date().getTime() - setTimeout(checkOrder, so.order_poll_time) - } - } - else { - marked_price = n(quote.ask).add(n(quote.ask).multiply(so.markup_sell_pct / 100)).format((so.currency_increment !== null) ? so.currency_increment : s.product.increment, Math.ceil) - if (n(order.price).value() > marked_price) { - msg(marked_price + ' vs our ' + order.price) - cancelOrder(true) - } - else { - order.local_time = new Date().getTime() - setTimeout(checkOrder, so.order_poll_time) - } - } - }) - } - else { - setTimeout(checkOrder, so.order_poll_time) - } - }) + else if (api_order.reject_reason === 'price') { + // treat as a no-op. + msg('invalid price for ' + type + ', aborting') + return cb(null, false) } - setTimeout(checkOrder, so.order_poll_time) - }) - } + err = new Error('\norder rejected') + err.order = api_order + return cb(err) + } + msg(type + ' order placed at ' + fc(order.price)) + order.order_id = api_order.id + if (!order.time) { + order.orig_time = new Date(api_order.created_at).getTime() + } + order.time = new Date(api_order.created_at).getTime() + order.local_time = now() + order.status = api_order.status + //console.log('\ncreated ' + order.status + ' ' + type + ' order: ' + fa(order.size) + ' at ' + fc(order.price) + ' (total ' + fc(n(order.price).multiply(order.size)) + ')\n') + + queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + }) } function getQuote (cb) { - if (so.mode === 'sim' || so.mode === 'train') { - return cb(null, { - bid: s.period.close, - ask: s.period.close - }) - } - else { - s.exchange.getQuote({product_id: s.product_id}, function (err, quote) { - if (err) return cb(err) - s.quote = quote - cb(null, quote) - }) - } + s.exchange.getQuote({product_id: s.product_id}, function (err, quote) { + if (err) return cb(err) + s.quote = quote + cb(null, quote) + }) } // if s.signal @@ -416,6 +334,7 @@ module.exports = function (s, conf) { // 8. if not filled after timer, repeat process // 9. if filled, record order stats function executeSignal (signal, _cb, size, is_reorder, is_taker) { + let price delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order'] s.last_signal = signal @@ -458,36 +377,32 @@ module.exports = function (s, conf) { return cb(err) } if (signal === 'buy') { - price = n(quote.bid).subtract(n(quote.bid).multiply(so.markdown_buy_pct / 100)).format(s.product.increment, Math.floor) + price = nextBuyForQuote(s, quote) if (!size) { - if (so.mode === 'live' || so.mode === 'paper') { - let buy_pct = so.buy_pct - if(so.buy_max_amt){ // account for held assets as buy_max - let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() - let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() - buy_pct = buy_max_as_pct - }else{ // account for held assets as % - let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() - let to_buy_pct = n(so.buy_pct).subtract(held_pct).value() - buy_pct = to_buy_pct - } - if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { - fee = s.exchange.makerFee - } else { - fee = s.exchange.takerFee - } - trade_balance = n(s.balance.currency).divide(100).multiply(buy_pct) - tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) - expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too - if (buy_pct + fee < 100) { - size = n(tradeable_balance).divide(price).format('0.00000000') - } else { - size = n(trade_balance).subtract(expected_fee).divide(price).format('0.00000000') - } - msg('preparing buy order over ' + fa(size) + ' of ' + fc(tradeable_balance) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + fc(expected_fee) + ' (' + fee + '%)') + let buy_pct = so.buy_pct + if(so.buy_max_amt){ // account for held assets as buy_max + let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() + let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() + buy_pct = buy_max_as_pct + }else{ // account for held assets as % + let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() + let to_buy_pct = n(so.buy_pct).subtract(held_pct).value() + buy_pct = to_buy_pct + } + if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { + fee = s.exchange.makerFee } else { - size = n(s.balance.currency).multiply(so.buy_pct).divide(100).divide(price).format('0.00000000') + fee = s.exchange.takerFee } + trade_balance = n(s.balance.currency).divide(100).multiply(buy_pct) + tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) + expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too + if (buy_pct + fee < 100) { + size = n(tradeable_balance).divide(price).format('0.00000000') + } else { + size = n(trade_balance).subtract(expected_fee).divide(price).format('0.00000000') + } + msg('preparing buy order over ' + fa(size) + ' of ' + fc(tradeable_balance) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + fc(expected_fee) + ' (' + fee + '%)') } if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || ('min_total' in s.product && s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { @@ -533,7 +448,7 @@ module.exports = function (s, conf) { } } else if (signal === 'sell') { - price = n(quote.ask).add(n(quote.ask).multiply(so.markup_sell_pct / 100)).format(s.product.increment, Math.ceil) + price = nextSellForQuote(s, quote) if (!size) { size = n(s.balance.asset).multiply(so.sell_pct / 100).format('0.00000000') } @@ -617,142 +532,111 @@ module.exports = function (s, conf) { } } - function executeOrder (trade) { + function executeOrder (trade, type) { let price, fee = 0 if (!so.order_type) { so.order_type = 'maker' } + // If order is cancelled, but on the exchange it completed, we need to recover it here + if (type === 'buy') + s.buy_order = trade + else if (type === 'sell') + s.sell_order = trade + + if (s.buy_order) { - if (so.mode === 'live' || trade.price <= Number(s.buy_order.price)) { - price = s.buy_order.price - if (so.order_type === 'maker') { - if (s.exchange.makerFee) { - fee = n(s.buy_order.size).multiply(s.exchange.makerFee / 100).value() - } - } - if (so.order_type === 'taker') { - if (s.exchange.takerFee) { - fee = n(s.buy_order.size).multiply(s.exchange.takerFee / 100).value() - } - } - if (so.mode !== 'live') { - s.balance.asset = n(s.balance.asset).add(s.buy_order.size).format('0.00000000') - if (so.order_type === 'maker') { - price = n(s.buy_order.price).add(n(s.buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') - if (s.exchange.makerFee) { - s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') - } - } - if (so.order_type === 'taker') { - if (s.exchange.takerFee) { - s.balance.asset = n(s.balance.asset).subtract(fee).format('0.00000000') - } - } - let total = n(price).multiply(s.buy_order.size) - s.balance.currency = n(s.balance.currency).subtract(total).format('0.00000000') - } - s.action = 'bought' - let my_trade = { - order_id: trade.order_id, - time: trade.time, - execution_time: trade.time - s.buy_order.orig_time, - slippage: n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).value(), - type: 'buy', - size: s.buy_order.orig_size, - fee: fee, - price: price, - order_type: so.order_type || 'taker', - profit: s.last_sell_price && (s.last_sell_price - price) / s.last_sell_price, - cancel_after: so.cancel_after || 'day' - } - s.my_trades.push(my_trade) - if (so.stats) { - let order_complete = '\nbuy order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.buy_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' - console.log((order_complete).cyan) - pushMessage('Buy ' + s.exchange.name.toUpperCase(), order_complete) + price = s.buy_order.price + if (so.order_type === 'maker') { + if (s.exchange.makerFee) { + fee = n(s.buy_order.size).multiply(s.exchange.makerFee / 100).value() } - s.last_buy_price = my_trade.price - delete s.buy_order - delete s.buy_stop - delete s.sell_stop - if (so.sell_stop_pct) { - s.sell_stop = n(price).subtract(n(price).multiply(so.sell_stop_pct / 100)).value() + } + if (so.order_type === 'taker') { + if (s.exchange.takerFee) { + fee = n(s.buy_order.size).multiply(s.exchange.takerFee / 100).value() } - delete s.profit_stop - delete s.profit_stop_high } + s.action = 'bought' + let my_trade = { + order_id: trade.order_id, + time: trade.time, + execution_time: trade.time - s.buy_order.orig_time, + slippage: n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).value(), + type: 'buy', + size: s.buy_order.orig_size, + fee: fee, + price: price, + order_type: so.order_type || 'taker', + profit: s.last_sell_price && (s.last_sell_price - price) / s.last_sell_price, + cancel_after: so.cancel_after || 'day' + } + s.my_trades.push(my_trade) + if (so.stats) { + let order_complete = '\nbuy order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.buy_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' + console.log((order_complete).cyan) + pushMessage('Buy ' + s.exchange.name.toUpperCase(), order_complete) + } + s.last_buy_price = my_trade.price + delete s.buy_order + delete s.buy_stop + delete s.sell_stop + if (so.sell_stop_pct) { + s.sell_stop = n(price).subtract(n(price).multiply(so.sell_stop_pct / 100)).value() + } + delete s.profit_stop + delete s.profit_stop_high + eventBus.emit('orderExecuted', 'buy') } else if (s.sell_order) { - if (so.mode === 'live' || trade.price >= s.sell_order.price) { - price = s.sell_order.price - if (so.order_type === 'maker') { - if (s.exchange.makerFee) { - fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() - } - } - if (so.order_type === 'taker') { - if (s.exchange.takerFee) { - fee = n(s.sell_order.size).multiply(s.exchange.takerFee / 100).multiply(price).value() - } - } - if (so.mode !== 'live') { - s.balance.asset = n(s.balance.asset).subtract(s.sell_order.size).value() - if (so.order_type === 'maker') { - price = n(s.sell_order.price).subtract(n(s.sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') - if (s.exchange.makerFee) { - fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() - s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') - } - } - if (so.order_type === 'taker') { - if (s.exchange.takerFee) { - s.balance.currency = n(s.balance.currency).subtract(fee).format('0.00000000') - } - } - let total = n(price).multiply(s.sell_order.size) - s.balance.currency = n(s.balance.currency).add(total).value() + price = s.sell_order.price + if (so.order_type === 'maker') { + if (s.exchange.makerFee) { + fee = n(s.sell_order.size).multiply(s.exchange.makerFee / 100).multiply(price).value() } - s.action = 'sold' - let my_trade = { - order_id: trade.order_id, - time: trade.time, - execution_time: trade.time - s.sell_order.orig_time, - slippage: n(s.sell_order.orig_price).subtract(price).divide(price).value(), - type: 'sell', - size: s.sell_order.orig_size, - fee: fee, - price: price, - order_type: so.order_type, - profit: s.last_buy_price && (price - s.last_buy_price) / s.last_buy_price - } - s.my_trades.push(my_trade) - if (so.stats) { - let order_complete = '\nsell order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.sell_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' - console.log((order_complete).cyan) - pushMessage('Sell ' + s.exchange.name.toUpperCase(), order_complete) - } - s.last_sell_price = my_trade.price - delete s.sell_order - delete s.buy_stop - if (so.buy_stop_pct) { - s.buy_stop = n(price).add(n(price).multiply(so.buy_stop_pct / 100)).value() + } + if (so.order_type === 'taker') { + if (s.exchange.takerFee) { + fee = n(s.sell_order.size).multiply(s.exchange.takerFee / 100).multiply(price).value() } - delete s.sell_stop - delete s.profit_stop - delete s.profit_stop_high } + s.action = 'sold' + let my_trade = { + order_id: trade.order_id, + time: trade.time, + execution_time: trade.time - s.sell_order.orig_time, + slippage: n(s.sell_order.orig_price).subtract(price).divide(price).value(), + type: 'sell', + size: s.sell_order.orig_size, + fee: fee, + price: price, + order_type: so.order_type, + profit: s.last_buy_price && (price - s.last_buy_price) / s.last_buy_price + } + s.my_trades.push(my_trade) + if (so.stats) { + let order_complete = '\nsell order completed at ' + moment(trade.time).format('YYYY-MM-DD HH:mm:ss') + ':\n\n' + fa(my_trade.size) + ' at ' + fc(my_trade.price) + '\ntotal ' + fc(my_trade.size * my_trade.price) + '\n' + n(my_trade.slippage).format('0.0000%') + ' slippage (orig. price ' + fc(s.sell_order.orig_price) + ')\nexecution: ' + moment.duration(my_trade.execution_time).humanize() + '\n' + console.log((order_complete).cyan) + pushMessage('Sell ' + s.exchange.name.toUpperCase(), order_complete) + } + s.last_sell_price = my_trade.price + delete s.sell_order + delete s.buy_stop + if (so.buy_stop_pct) { + s.buy_stop = n(price).add(n(price).multiply(so.buy_stop_pct / 100)).value() + } + delete s.sell_stop + delete s.profit_stop + delete s.profit_stop_high + eventBus.emit('orderExecuted', 'sell') } } - function adjustBid (trade) { - if (so.mode === 'live') return - if (s.buy_order && trade.time - s.buy_order.time >= so.order_adjust_time) { - executeSignal('buy', null, null, true) - } - else if (s.sell_order && trade.time - s.sell_order.time >= so.order_adjust_time) { - executeSignal('sell', null, null, true) - } + function now () { + if (so.mode === 'live') + return new Date().getTime() + else + return s.exchange.getTime() } function writeReport (is_progress, blink_off) { @@ -864,6 +748,9 @@ module.exports = function (s, conf) { function withOnPeriod (trade, period_id, cb) { updatePeriod(trade) if (!s.in_preroll) { + if (so.mode === 'sim') + s.exchange.processTrade(trade) + if (so.mode !== 'live' && !s.start_capital) { s.start_capital = 0 s.start_price = trade.price @@ -876,19 +763,157 @@ module.exports = function (s, conf) { } if (!so.manual) { executeStop() + tickCheckOrder(trade.time) if (s.signal) { executeSignal(s.signal) s.signal = null } } - if (so.mode !== 'live') { - adjustBid(trade) - executeOrder(trade) - } } s.last_period_id = period_id cb() - } + } + + // Instead of using setTimeout, this gives a consistent way between sim and live + // to manage calling functions that need to happen in the future + var eventQueue = [] + function queueEvent(func, duration) { + eventQueue.push({func: func, time: lastTickCheckOrder + duration}) + } + var lastTickCheckOrder = null + function tickCheckOrder(time) { + if (!lastTickCheckOrder) { + lastTickCheckOrder = time + return + } + + for (let i = 0, len = eventQueue.length; i < len; i++) { + let func_data = eventQueue[i] + let func = func_data.func + let func_time = func_data.time + + if (time > func_time) { + + func.call() + + eventQueue.splice(i, 1) + i-- + len-- + } + } + lastTickCheckOrder = time + } + + function cancelOrder (order, type, do_reorder, cb) { + s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function () { + function checkHold (do_reorder, cb) { + s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) { + if (api_order) { + if (api_order.status === 'done') { + order.time = new Date(api_order.done_at).getTime() + order.price = api_order.price || order.price // Use actual price if possible. In market order the actual price (api_order.price) could be very different from trade price + msg('cancel failed, order done, executing') + executeOrder(order, type) + return syncBalance(function () { + cb(null, order) + }) + } + + s.api_order = api_order + if (api_order.filled_size) { + order.remaining_size = n(order.size).subtract(api_order.filled_size).format('0.00000000') + } + } + syncBalance(function () { + let on_hold + if (type === 'buy') on_hold = n(s.balance.currency).subtract(s.balance.currency_hold || 0).value() < n(order.price).multiply(order.remaining_size).value() + else on_hold = n(s.balance.asset).subtract(s.balance.asset_hold || 0).value() < n(order.remaining_size).value() + + if (on_hold && s.balance.currency_hold > 0) { + // wait a bit for settlement + msg('funds on hold after cancel, waiting 5s') + queueEvent(function() { checkHold(do_reorder, cb) }, conf.wait_for_settlement) + } + else { + cb(null, do_reorder ? null : false) + } + }) + }) + } + checkHold(do_reorder, cb) + }) + } + function checkOrder (order, type, cb) { + if (!s[type + '_order']) { + // signal switched, stop checking order + msg('signal switched during ' + type + ', aborting') + return cancelOrder(order, type, false, cb) + } + s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) { + if (err) return cb(err) + s.api_order = api_order + order.status = api_order.status + if (api_order.reject_reason) order.reject_reason = api_order.reject_reason + if (api_order.status === 'done') { + order.time = new Date(api_order.done_at).getTime() + order.price = api_order.price || order.price // Use actual price if possible. In market order the actual price (api_order.price) could be very different from trade price + executeOrder(order, type) + return syncBalance(function () { + cb(null, order) + }) + } + if (order.status === 'rejected' && (order.reject_reason === 'post only' || api_order.reject_reason === 'post only')) { + msg('post-only ' + type + ' failed, re-ordering') + return cb(null, null) + } + if (order.status === 'rejected' && order.reject_reason === 'balance') { + msg('not enough balance for ' + type + ', aborting') + return cb(null, null) + } + if (now() - order.local_time >= so.order_adjust_time) { + getQuote(function (err, quote) { + if (err) { + err.desc = 'could not execute ' + type + ': error fetching quote' + return cb(err) + } + let marked_price + if (type === 'buy') { + marked_price = nextBuyForQuote(s, quote) + if (so.exact_buy_orders && n(order.price).value() != marked_price) { + msg(marked_price + ' vs! our ' + order.price) + cancelOrder(order, type, true, cb) + } + else if (n(order.price).value() < marked_price) { + msg(marked_price + ' vs our ' + order.price) + cancelOrder(order, type, true, cb) + } + else { + order.local_time = lastTickCheckOrder + queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + } + } + else { + marked_price = nextSellForQuote(s, quote) + if (so.exact_sell_orders && n(order.price).value() != marked_price) { + msg(marked_price + ' vs! our ' + order.price) + cancelOrder(order, type, true, cb) + } + else if (n(order.price).value() > marked_price) { + msg(marked_price + ' vs our ' + order.price) + cancelOrder(order, type, true, cb) + } + else { + order.local_time = lastTickCheckOrder + queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + } + } + }) + } + else { + queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + } + }) + } var q = async.queue(function({trade, is_preroll}, callback){ onTrade(trade, is_preroll, callback) @@ -933,7 +958,7 @@ module.exports = function (s, conf) { withOnPeriod(trade, period_id, cb) } } - + function onTrades(trades, is_preroll, cb) { if (_.isFunction(is_preroll)) { cb = is_preroll From b22bee8f0e90cf3f1ea0bcb6b28852b81175df46 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 22 Feb 2018 10:48:53 +0000 Subject: [PATCH 184/236] Exchanges: update-products 625 --- package-lock.json | 2338 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 2229 insertions(+), 109 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9366f1fcce..6e702fb709 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,57 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz", + "integrity": "sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA==", + "requires": { + "@babel/highlight": "7.0.0-beta.40" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", + "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", + "requires": { + "chalk": "2.3.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "@slack/client": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.15.0.tgz", @@ -63,6 +114,11 @@ "ltx": "2.7.1" } }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -97,6 +153,14 @@ } } }, + "acorn-globals": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", + "requires": { + "acorn": "5.3.0" + } + }, "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", @@ -278,6 +342,16 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -351,6 +425,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", @@ -1024,6 +1103,30 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + } + } + }, "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", @@ -1187,11 +1290,31 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" + }, "browser-request": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=" }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", @@ -1300,6 +1423,22 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1640,6 +1779,78 @@ "chalk": "1.1.3" } }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1791,6 +2002,15 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", @@ -1909,6 +2129,11 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==" + }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", @@ -1934,6 +2159,11 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-js": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", @@ -2162,6 +2392,19 @@ "source-map": "0.5.7" } }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "requires": { + "cssom": "0.3.2" + } + }, "ctype": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", @@ -2232,6 +2475,11 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-9.0.1.tgz", "integrity": "sha512-2h0iKbJwnImBk4TGk7CG1xadoA0g3LDPlQhQzbZ221zvG0p2YVUedbKIPsOZXKZGx6YmZMJKYOalpCMxSdDqTQ==" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -2248,8 +2496,7 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "define-properties": { "version": "1.1.2", @@ -2260,6 +2507,15 @@ "object-keys": "1.0.11" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + } + }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", @@ -2325,6 +2581,11 @@ "repeating": "2.0.1" } }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" + }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", @@ -2349,6 +2610,14 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "4.0.2" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -2562,6 +2831,25 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, "escope": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", @@ -2856,6 +3144,34 @@ "fill-range": "2.2.3" } }, + "expect": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", + "integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==", + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "22.4.0", + "jest-get-type": "22.1.0", + "jest-matcher-utils": "22.4.0", + "jest-message-util": "22.4.0", + "jest-regex-util": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + } + } + }, "exports-loader": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.7.0.tgz", @@ -2926,6 +3242,25 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "external-editor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", @@ -2967,8 +3302,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastparse": { "version": "1.1.1", @@ -3185,6 +3519,14 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.4.tgz", "integrity": "sha512-aK/oGatyYLTtXRHjfEsytX5fieeR5H4s8sLorzcT12taFS+dbMZejnvm9gRa8mZAPwci24ucjq9epDyaq5u8Iw==" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -4329,6 +4671,11 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -4490,6 +4837,53 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -4553,6 +4947,14 @@ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "1.0.3" + } + }, "http-errors": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", @@ -4905,6 +5307,21 @@ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4944,11 +5361,43 @@ "ci-info": "1.1.2" } }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -4993,6 +5442,11 @@ "number-is-nan": "1.0.1" } }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=" + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -5047,10 +5501,25 @@ "symbol-observable": "0.2.4" } }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true }, "is-path-in-cwd": { @@ -5156,6 +5625,11 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5210,22 +5684,104 @@ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" }, - "jest-get-type": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", - "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==" + "jest-config": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.0.tgz", + "integrity": "sha512-hZs8qHjCybOpqni0Kwt40eAavYN/3KnJJwYxSJsBRedJ98IgGSiI18SjybCSccKayA7eHgw1A+dLkHcfI4LItQ==", + "requires": { + "chalk": "2.3.1", + "glob": "7.1.2", + "jest-environment-jsdom": "22.4.0", + "jest-environment-node": "22.4.0", + "jest-get-type": "22.1.0", + "jest-jasmine2": "22.4.0", + "jest-regex-util": "22.1.0", + "jest-resolve": "22.4.0", + "jest-util": "22.4.0", + "jest-validate": "22.4.0", + "pretty-format": "22.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + }, + "jest-validate": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.0.tgz", + "integrity": "sha512-l5JwbIAso8jGp/5/Dy86BCVjOra/Rb81wyXcFTGa4VxbtIh4AEOp2WixgprHLwp+YlUrHugZwaGyuagjB+iB+A==", + "requires": { + "chalk": "2.3.1", + "jest-config": "22.4.0", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "22.4.0" + } + }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } }, - "jest-validate": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", - "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "jest-diff": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz", + "integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==", "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "2.3.1", + "diff": "3.4.0", + "jest-get-type": "22.1.0", + "pretty-format": "22.4.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -5235,26 +5791,398 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.2.0" } }, "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.0.tgz", + "integrity": "sha512-SAUCte4KFLaD2YhYwHFVEI2GkR4BHqHJsnbFgmQMGgHnZ2CfjSZE8Bnb+jlarbxIG4GXl31+2e9rjBpzbY9gKQ==", + "requires": { + "jest-mock": "22.2.0", + "jest-util": "22.4.0", + "jsdom": "11.6.2" + } + }, + "jest-environment-node": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.0.tgz", + "integrity": "sha512-ihSKa2MU5jkAhmRJ17FU4nisbbfW6spvl6Jtwmm5W9kmTVa2sa9UoHWbOWAb7HXuLi3PGGjzTfEt5o3uIzisnQ==", + "requires": { + "jest-mock": "22.2.0", + "jest-util": "22.4.0" + } + }, + "jest-jasmine2": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.0.tgz", + "integrity": "sha512-oL7bNLfEL9jPVjmiwqQuwrAJ/5ddmKHSpns0kCpAmv1uQ47Q5aC9zBTXZbDWP5GVbVHj2hbYtNbkwTiXJr0e8w==", + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.1", + "co": "4.6.0", + "expect": "22.4.0", + "graceful-fs": "4.1.11", + "is-generator-fn": "1.0.0", + "jest-diff": "22.4.0", + "jest-matcher-utils": "22.4.0", + "jest-message-util": "22.4.0", + "jest-snapshot": "22.4.0", + "source-map-support": "0.5.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "callsites": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "requires": { + "source-map": "0.6.1" + } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz", + "integrity": "sha512-03m3issxUXpWMwDYTfmL8hRNewUB0yCRTeXPm+eq058rZxLHD9f5NtSSO98CWHqe4UyISIxd9Ao9iDVjHWd2qg==", + "requires": { + "chalk": "2.3.1", + "jest-get-type": "22.1.0", + "pretty-format": "22.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-message-util": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.0.tgz", + "integrity": "sha512-eyCJB0T3hrlpFF2FqQoIB093OulP+1qvATQmD3IOgJgMGqPL6eYw8TbC5P/VCWPqKhGL51xvjIIhow5eZ2wHFw==", + "requires": { + "@babel/code-frame": "7.0.0-beta.40", + "chalk": "2.3.1", + "micromatch": "2.3.11", + "slash": "1.0.0", + "stack-utils": "1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-mock": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.2.0.tgz", + "integrity": "sha512-eOfoUYLOB/JlxChOFkh/bzpWGqUXb9I+oOpkprHHs9L7nUNfL8Rk28h1ycWrqzWCEQ/jZBg/xIv7VdQkfAkOhw==" + }, + "jest-regex-util": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", + "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==" + }, + "jest-resolve": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.0.tgz", + "integrity": "sha512-Vs/5VeJEHLpB0ubpYuU9QpBjcCUZRHoHnoV58ZC+N3EXyMJr/MgoqUNpo4OHGQERWlUpvl4YLAAO5uxSMF2VIg==", + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-snapshot": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.0.tgz", + "integrity": "sha512-6Zz4F9G1Nbr93kfm5h3A2+OkE+WGpgJlskYE4iSNN2uYfoTL5b9W6aB9Orpx+ueReHyqmy7HET7Z3EmYlL3hKw==", + "requires": { + "chalk": "2.3.1", + "jest-diff": "22.4.0", + "jest-matcher-utils": "22.4.0", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "22.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-util": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.0.tgz", + "integrity": "sha512-652EArz3XScAGAUMhbny7FrFGlmJkp+56CO+9RTrKPtGfbtVDF2WB2D8G+6D6zorDmDW5hNtKNIGNdGfG2kj1g==", + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.1", + "graceful-fs": "4.1.11", + "is-ci": "1.1.0", + "jest-message-util": "22.4.0", + "mkdirp": "0.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" } } } @@ -5289,6 +6217,187 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, + "jsdom": { + "version": "11.6.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", + "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", + "requires": { + "abab": "1.0.4", + "acorn": "5.3.0", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "browser-process-hrtime": "0.1.2", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "domexception": "1.0.1", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "left-pad": "1.2.0", + "nwmatcher": "1.4.3", + "parse5": "4.0.0", + "pn": "1.1.0", + "request": "2.83.0", + "request-promise-native": "1.0.5", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "w3c-hr-time": "1.0.1", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "6.4.0", + "ws": "4.0.0", + "xml-name-validator": "3.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=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.1" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.17" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "1.0.0" + } + } + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "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", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -5437,6 +6546,11 @@ "invert-kv": "1.0.0" } }, + "left-pad": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", + "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=" + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -5446,39 +6560,44 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "1.1.2", "type-check": "0.3.2" } }, "lint-staged": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-6.1.0.tgz", - "integrity": "sha512-RMB6BUd2bEKaPnj06F7j8RRB8OHM+UP4fQS2LT8lF+X9BjSaezw1oVB5hc4elLhYvzlFCkhAaatzYz+x53YHgw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.0.0.tgz", + "integrity": "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==", "requires": { "app-root-path": "2.0.1", - "chalk": "2.3.0", - "commander": "2.12.2", + "chalk": "2.3.1", + "commander": "2.14.1", "cosmiconfig": "4.0.0", "debug": "3.1.0", "dedent": "0.7.0", - "execa": "0.8.0", + "execa": "0.9.0", "find-parent-dir": "0.3.0", "is-glob": "4.0.0", - "jest-validate": "21.2.1", + "jest-validate": "22.4.0", "listr": "0.13.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "log-symbols": "2.2.0", - "minimatch": "3.0.4", + "micromatch": "3.1.8", "npm-which": "3.0.1", "p-map": "1.2.0", "path-is-inside": "1.0.2", "pify": "3.0.0", - "staged-git-files": "0.0.4", + "please-upgrade-node": "3.0.1", + "staged-git-files": "1.1.0", "stringify-object": "3.2.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -5487,16 +6606,68 @@ "color-convert": "1.9.1" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.2.0" } }, + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + }, "cosmiconfig": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", @@ -5532,9 +6703,9 @@ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -5545,11 +6716,156 @@ "strip-eof": "1.0.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -5563,6 +6879,41 @@ "is-extglob": "2.1.1" } }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + }, + "jest-validate": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.0.tgz", + "integrity": "sha512-l5JwbIAso8jGp/5/Dy86BCVjOra/Rb81wyXcFTGa4VxbtIh4AEOp2WixgprHLwp+YlUrHugZwaGyuagjB+iB+A==", + "requires": { + "chalk": "2.3.1", + "jest-config": "22.4.0", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "22.4.0" + } + }, "js-yaml": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", @@ -5572,6 +6923,36 @@ "esprima": "4.0.0" } }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "micromatch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.8.tgz", + "integrity": "sha512-/XeuOQqYg+B5kwjDWekXseSwGS7CzE0w9Gjo4Cjkf/uFitNh47NrZHAY2vp/oS2YQVfebPIdbEIvgdy+kIcAog==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -5581,17 +6962,31 @@ "json-parse-better-errors": "1.0.1" } }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + } + }, "require-from-string": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=" }, + "staged-git-files": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", + "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=" + }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -5887,6 +7282,11 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, "lodash.tail": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", @@ -6033,11 +7433,24 @@ "pify": "3.0.0" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, "math-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/math-array/-/math-array-1.1.2.tgz", @@ -6205,6 +7618,25 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mixin-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", @@ -6286,11 +7718,46 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "negotiator": { "version": "0.6.1", @@ -6792,6 +8259,11 @@ "numbro": { "version": "github:highvelocityspace/numbro#65a801c05c40496e5701458c0d4e780060e9a742" }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==" + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -6802,6 +8274,59 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", @@ -6812,6 +8337,14 @@ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -6831,6 +8364,14 @@ } } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -6946,7 +8487,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "0.1.3", "fast-levenshtein": "2.0.6", @@ -6959,8 +8499,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, @@ -7116,11 +8655,21 @@ "error-ex": "1.3.1" } }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", @@ -7231,12 +8780,22 @@ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" }, + "please-upgrade-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.1.tgz", + "integrity": "sha1-CmgfLBiRXlQzpcos2U4Lggangts=" + }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, "poloniex.js": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/poloniex.js/-/poloniex.js-0.0.8.tgz", @@ -7408,6 +8967,11 @@ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz", "integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM=" }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", @@ -8064,8 +9628,7 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", @@ -8077,30 +9640,6 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, - "pretty-format": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", - "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.1" - } - } - } - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -8600,6 +10139,15 @@ "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, "regex-parser": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.8.tgz", @@ -8727,6 +10275,16 @@ "lodash": "4.17.4" } }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8820,6 +10378,11 @@ "signal-exit": "3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz", @@ -8953,6 +10516,14 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -9088,11 +10659,40 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "requires": { + "to-object-path": "0.3.0" + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -9184,28 +10784,162 @@ "qbox": "0.1.7" } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } } } }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + } + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -9274,6 +11008,14 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9306,10 +11048,80 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "staged-git-files": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-0.0.4.tgz", - "integrity": "sha1-15fhtVHKemOd7AI33G60u5vhfTU=" + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } }, "stats-lite": { "version": "2.1.0", @@ -9530,6 +11342,11 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=" }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -9690,6 +11507,112 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", @@ -9698,6 +11621,21 @@ "punycode": "1.4.1" } }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, "trend": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/trend/-/trend-0.3.0.tgz", @@ -9755,7 +11693,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "1.1.2" } @@ -9852,6 +11789,38 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -9875,6 +11844,42 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -9931,6 +11936,85 @@ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "0.1.0" + } + } + } + }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", @@ -10005,6 +12089,14 @@ "indexof": "0.0.1" } }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "requires": { + "browser-process-hrtime": "0.1.2" + } + }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", @@ -10020,6 +12112,11 @@ "resolved": "https://registry.npmjs.org/waypoints/-/waypoints-4.0.1.tgz", "integrity": "sha1-CZeaBXOBCylifLpDZqKEoGLsacg=" }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, "webpack": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", @@ -10233,6 +12330,24 @@ "resolved": "https://registry.npmjs.org/wexnz/-/wexnz-0.1.3.tgz", "integrity": "sha512-/aOABXmapFoTvv7hLKtQlW2ueWXE43JvrrMK5G3tD62fRA/S7ZX4Tu+Lv5O/VhcRz9FisFrO9PD49bOA0mFang==" }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, "whet.extend": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", @@ -10334,6 +12449,11 @@ } } }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, "xml2js": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.13.tgz", From 24ebe03a41846f4974cfd8c773e3d1ebe6241f90 Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Thu, 22 Feb 2018 10:55:45 -0500 Subject: [PATCH 185/236] Darwin additions (#1404) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add parameter noStatSave - if true no statistics will be saved for the generation. useful when using —generateLaunch as it can run for day and fill the drive with a lot of files. added some error checking in the process of implementing —noStatSave — specifically if a sim fails due to an incompatible parameter combination (usually TA lib crashes) a bad result is returned that has a VERY bad fitness calculation. Saving of generation data now has a more granular format. instead of a directory named backtest_YYYMMDDHHmm it now uses the format backtes_..YYYMMDDHHmmss This pervents the condition of overlap when starting multiple darwins on the same machine within one minute causing them to use the same simulation directory resulting in errors. --- scripts/genetic_backtester/darwin.js | 72 ++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index bff3ab0cba..aadf6fc1e7 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -5,6 +5,22 @@ * 07/01/2017 * * Example: ./darwin.js --selector="bitfinex.ETH-USD" --days="10" --currency_capital="5000" --use_strategies="all | macd,trend_ema,etc" --population="101" --population_data="simulations/generation_data_NUMBERS" + * Params: + * --use_strategies=,, Min one strategy, can include more than one + * --population_data= filename used for continueing backtesting from previous run + * --generateLaunch=| will generate .sh and .bat file using the best generation discovered + * --population= populate per strategy + * --maxCores= maximum processes to execute at a time default is # of cpu cores in system + * --selector= + * --asset_capital= amount coin to start sim with + * --currency_capital= amount of capital/base currency to start sim with + * --days= amount of days to use when backfilling + * --noStatSave=| true:no statistics are saved to the simulation folder + * --silent=| true:can improve performance + * + * any parameters for sim and or strategy can be passed in and will override the genetic test generated parameter + * i.e. if --period_length=1m is passed all test will be performed using --period_length=1m instead of trying to find that parameter + * */ let shell = require('shelljs') @@ -45,6 +61,9 @@ let simArgs let populationSize = 0 let generationCount = 1 let generationProcessing = false +let population_data = '' +let noStatSave = false + let darwinMonitor = { periodDurations: [], @@ -331,7 +350,8 @@ let readSimDataFile = (iteration) => { let writeSimDataFile = (iteration, data) => { let jsonFileName = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}.json` - writeFileAndFolder(jsonFileName, data) + if (!noStatSave) + writeFileAndFolder(jsonFileName, data) } let runCommand = (taskStrategyName, phenotype, command, cb) => { @@ -349,9 +369,11 @@ let runCommand = (taskStrategyName, phenotype, command, cb) => { proc.on('exit', () => { let result = null let stdout = endData.toString() - try { + try { result = processOutput(stdout,taskStrategyName,phenotype) - + if (!result) { + throw 'Error during execution' + } command.endTime = moment() command.result = result @@ -450,7 +472,32 @@ function processOutput (output,taskStrategyName, pheno) { end = parseInt(simulationResults.end || null) } else { - console.log(`Couldn't find simulationResults for ${pheno.backtester_generation}`) + console.log(`Couldn't find simulationResults for ${pheno.backtester_generation}` ) + // this should retun a general bad result but not throw an error + // our job here is to use the result. not diagnose an error at this point so a failing sim should just be ignored. + // idea here is to make the fitness of this calculation as bad as possible so darwin won't use the combonation of parameters again. + // todo: make the result its own object, and in this function just set the values don't define the result here. + return { + params: 'module.exports = {}', + endBalance: 0, + buyHold: 0, + vsBuyHold: 0, + wins: 0, + losses: -1, + errorRate: 100, + days: 0, + period_length: 0, + min_periods: 0, + markdown_buy_pct: 0, + markup_sell_pct: 0, + order_type: 'maker', + wlRatio: 'Infinity', + roi: -1000, + selector: params.selector, + strategy: params.strategy, + frequency: 0 + } + } let roi @@ -1059,6 +1106,7 @@ function isUsefulKey (key) { } function generateCommandParams (input) { + input = input.params.replace('module.exports =','') input = JSON.parse(input) @@ -1097,7 +1145,7 @@ function saveGenerationData (csvFileName, jsonFileName, dataCSV, dataJSON) { } } -let population_data = argv.population_data || `backtest_${moment().format('YYYYMMDDHHmm')}` + // Find the first incomplete generation of this session, where incomplete means no "results" files while (fs.existsSync(`simulations/${population_data}/gen_${generationCount}`)) { generationCount++ } @@ -1156,7 +1204,7 @@ function saveLaunchFiles(saveLauchFile, configuration ){ fs.chmodSync(lFinenamewin32, '777') } } - +let cycleCount = -1 function simulateGeneration (generateLaunchFile) { // Find the first incomplete generation of this session, where incomplete means no "results" files @@ -1164,6 +1212,11 @@ function simulateGeneration (generateLaunchFile) { generationCount-- if (generationCount > 0 && !fs.existsSync(`simulations/${population_data}/gen_${generationCount}/results.csv`)) { generationCount-- } + if (noStatSave) { + cycleCount++ + generationCount = cycleCount + } + generationProcessing = true console.log(`\n\n=== Simulating generation ${++generationCount} ===\n`) darwinMonitor.reset() @@ -1249,7 +1302,8 @@ function simulateGeneration (generateLaunchFile) { let jsonFileName = `simulations/${population_data}/gen_${generationCount}/results.json` let dataJSON = JSON.stringify(poolData, null, 2) - saveGenerationData(csvFileName, jsonFileName, dataCSV, dataJSON ) + if (!noStatSave) + saveGenerationData(csvFileName, jsonFileName, dataCSV, dataJSON ) //Display best of the generation @@ -1329,6 +1383,7 @@ if (simArgs.help || !(simArgs.use_strategies)) console.log('--asset_capital= amount coin to start sim with ') console.log('--currency_capital= amount of capital/base currency to start sim with'), console.log('--days= amount of days to use when backfilling') + console.log('--noStatSave=|') process.exit(0) } @@ -1347,11 +1402,12 @@ if (simArgs.maxCores) } let generateLaunchFile = (simArgs.generateLaunch) ? true : false +noStatSave = (simArgs.noStatSave) ? true : false let strategyName = (argv.use_strategies) ? argv.use_strategies : 'all' -// let populationFileName = (argv.population_data) ? argv.population_data : null populationSize = (argv.population) ? argv.population : 100 +population_data = argv.population_data || `backtest.${simArgs.selector.toLowerCase()}.${moment().format('YYYYMMDDHHmmss')}` console.log(`Backtesting strategy ${strategyName} ...\n`) From bbacc1fc98dd85efa8917f2f0550e7f110394091 Mon Sep 17 00:00:00 2001 From: defkev Date: Thu, 22 Feb 2018 21:52:43 +0100 Subject: [PATCH 186/236] Resize order on reorder (#1406) Instead of reordering using the same size (which doesn't make sense) calculate the (remaining) size (in percent) of the order and use it as `buy|sell_pct` This should fix a fair ammount of "insufficient funds" errors people have been reporting. --- lib/engine.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index f9e558105b..71d0c62d60 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -334,8 +334,7 @@ module.exports = function (s, conf) { // 8. if not filled after timer, repeat process // 9. if filled, record order stats function executeSignal (signal, _cb, size, is_reorder, is_taker) { - - let price + let price, buy_pct, sell_pct delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order'] s.last_signal = signal if (!is_reorder && s[signal + '_order']) { @@ -376,17 +375,30 @@ module.exports = function (s, conf) { err.desc = 'could not execute ' + signal + ': error fetching quote' return cb(err) } + if (is_reorder && s[signal + '_order']) { + if (signal === 'buy') { + reorder_pct = n(size).multiply(s.buy_order.price).divide(s.balance.currency).multiply(100).add(fee) + } else { + reorder_pct = n(size).divide(s.balance.asset).multiply(100) + } + msg('price changed, resizing order, ' + reorder_pct + '% remain') + size = null + } if (signal === 'buy') { price = nextBuyForQuote(s, quote) if (!size) { - let buy_pct = so.buy_pct + if (is_reorder) { + buy_pct = reorder_pct + } else { + buy_pct = so.buy_pct + } if(so.buy_max_amt){ // account for held assets as buy_max let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() buy_pct = buy_max_as_pct }else{ // account for held assets as % let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() - let to_buy_pct = n(so.buy_pct).subtract(held_pct).value() + let to_buy_pct = n(buy_pct).subtract(held_pct).value() buy_pct = to_buy_pct } if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { @@ -402,12 +414,12 @@ module.exports = function (s, conf) { } else { size = n(trade_balance).subtract(expected_fee).divide(price).format('0.00000000') } - msg('preparing buy order over ' + fa(size) + ' of ' + fc(tradeable_balance) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + fc(expected_fee) + ' (' + fee + '%)') } if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || ('min_total' in s.product && s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { size = s.product.max_size } + msg('preparing buy order over ' + fa(size) + ' of ' + fc(tradeable_balance) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + fc(expected_fee) + ' (' + fee + '%)') if (!s.last_sell_price && s.my_prev_trades.length) { var prev_sells = s.my_prev_trades.filter(trade => trade.type === 'sell') if (prev_sells.length) { @@ -450,7 +462,12 @@ module.exports = function (s, conf) { else if (signal === 'sell') { price = nextSellForQuote(s, quote) if (!size) { - size = n(s.balance.asset).multiply(so.sell_pct / 100).format('0.00000000') + if (is_reorder) { + sell_pct = reorder_pct + } else { + sell_pct = so.sell_pct + } + size = n(s.balance.asset).multiply(sell_pct / 100).format('0.00000000') } if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || (s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { From 57707fac74ca85e711810b1e35998b1d1633dc20 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Thu, 22 Feb 2018 15:53:56 -0500 Subject: [PATCH 187/236] Hopeful fix for paper mode (#1405) --- extensions/exchanges/sim/exchange.js | 20 +++++++++++++++----- lib/engine.js | 9 ++++++--- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js index a29f579d5b..0a2eb2ce18 100644 --- a/extensions/exchanges/sim/exchange.js +++ b/extensions/exchanges/sim/exchange.js @@ -27,7 +27,12 @@ module.exports = function sim (conf, s) { getProducts: real_exchange.getProducts, getTrades: function (opts, cb) { - return cb(null, []) + if (so.mode === 'paper') { + return real_exchange.getTrades(opts, cb) + } + else { + return cb(null, []) + } }, getBalance: function (opts, cb) { @@ -35,10 +40,15 @@ module.exports = function sim (conf, s) { }, getQuote: function (opts, cb) { - return cb(null, { - bid: s.period.close, - ask: s.period.close - }) + if (so.mode === 'paper') { + return real_exchange.getQuote(opts, cb) + } + else { + return cb(null, { + bid: s.period.close, + ask: s.period.close + }) + } }, cancelOrder: function (opts, cb) { diff --git a/lib/engine.js b/lib/engine.js index 71d0c62d60..b153880ae8 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -21,13 +21,16 @@ module.exports = function (s, conf) { let so = s.options if(_.isUndefined(s.exchange)){ - if (so.mode == 'sim') { + if (so.mode !== 'live') { s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s) } else { s.exchange = require(path.resolve(__dirname, `../extensions/exchanges/${so.selector.exchange_id}/exchange`))(conf) } } + else if (so.mode === 'paper') { + s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s) + } s.product_id = so.selector.product_id s.asset = so.selector.asset s.currency = so.selector.currency @@ -650,7 +653,7 @@ module.exports = function (s, conf) { } function now () { - if (so.mode === 'live') + if (so.mode !== 'live') return new Date().getTime() else return s.exchange.getTime() @@ -765,7 +768,7 @@ module.exports = function (s, conf) { function withOnPeriod (trade, period_id, cb) { updatePeriod(trade) if (!s.in_preroll) { - if (so.mode === 'sim') + if (so.mode !== 'live') s.exchange.processTrade(trade) if (so.mode !== 'live' && !s.start_capital) { From 70776d6131ba805bfa3aec8e1364c8dc96123c3a Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 23 Feb 2018 10:49:13 +0000 Subject: [PATCH 188/236] Exchanges: update-products 635 --- extensions/exchanges/bitfinex/products.json | 54 ++++++++++----------- extensions/exchanges/bittrex/products.json | 16 ++++++ 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index 96b915a90a..e10f0a04e0 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -450,7 +450,7 @@ { "asset": "YYW", "currency": "USD", - "min_size": "78.0", + "min_size": "84.0", "max_size": "50000.0", "increment": "0.000001", "label": "YYW/USD" @@ -458,7 +458,7 @@ { "asset": "YYW", "currency": "BTC", - "min_size": "78.0", + "min_size": "84.0", "max_size": "50000.0", "increment": "0.000000001", "label": "YYW/BTC" @@ -466,7 +466,7 @@ { "asset": "YYW", "currency": "ETH", - "min_size": "78.0", + "min_size": "84.0", "max_size": "50000.0", "increment": "0.000000001", "label": "YYW/ETH" @@ -498,7 +498,7 @@ { "asset": "SNT", "currency": "USD", - "min_size": "56.0", + "min_size": "60.0", "max_size": "200000.0", "increment": "0.000001", "label": "SNT/USD" @@ -506,7 +506,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "56.0", + "min_size": "60.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/BTC" @@ -514,7 +514,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "56.0", + "min_size": "60.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/ETH" @@ -578,7 +578,7 @@ { "asset": "FUN", "currency": "USD", - "min_size": "194.0", + "min_size": "208.0", "max_size": "200000.0", "increment": "0.0000001", "label": "FUN/USD" @@ -586,7 +586,7 @@ { "asset": "FUN", "currency": "BTC", - "min_size": "194.0", + "min_size": "208.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "FUN/BTC" @@ -594,7 +594,7 @@ { "asset": "FUN", "currency": "ETH", - "min_size": "194.0", + "min_size": "208.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "FUN/ETH" @@ -602,7 +602,7 @@ { "asset": "ZRX", "currency": "USD", - "min_size": "10.0", + "min_size": "12.0", "max_size": "200000.0", "increment": "0.00001", "label": "ZRX/USD" @@ -610,7 +610,7 @@ { "asset": "ZRX", "currency": "BTC", - "min_size": "10.0", + "min_size": "12.0", "max_size": "200000.0", "increment": "0.00000001", "label": "ZRX/BTC" @@ -618,7 +618,7 @@ { "asset": "ZRX", "currency": "ETH", - "min_size": "10.0", + "min_size": "12.0", "max_size": "200000.0", "increment": "0.00000001", "label": "ZRX/ETH" @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "158.0", + "min_size": "176.0", "max_size": "200000.0", "increment": "0.0000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "158.0", + "min_size": "176.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "158.0", + "min_size": "176.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/ETH" @@ -650,7 +650,7 @@ { "asset": "SPK", "currency": "USD", - "min_size": "56.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000001", "label": "SPK/USD" @@ -658,7 +658,7 @@ { "asset": "SPK", "currency": "BTC", - "min_size": "56.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SPK/BTC" @@ -666,7 +666,7 @@ { "asset": "SPK", "currency": "ETH", - "min_size": "56.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SPK/ETH" @@ -698,7 +698,7 @@ { "asset": "RCN", "currency": "USD", - "min_size": "62.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000001", "label": "RCN/USD" @@ -706,7 +706,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "62.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/BTC" @@ -714,7 +714,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "62.0", + "min_size": "68.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/ETH" @@ -722,7 +722,7 @@ { "asset": "RLC", "currency": "USD", - "min_size": "8.0", + "min_size": "10.0", "max_size": "25000.0", "increment": "0.00001", "label": "RLC/USD" @@ -730,7 +730,7 @@ { "asset": "RLC", "currency": "BTC", - "min_size": "8.0", + "min_size": "10.0", "max_size": "25000.0", "increment": "0.00000001", "label": "RLC/BTC" @@ -738,7 +738,7 @@ { "asset": "RLC", "currency": "ETH", - "min_size": "8.0", + "min_size": "10.0", "max_size": "25000.0", "increment": "0.00000001", "label": "RLC/ETH" @@ -770,7 +770,7 @@ { "asset": "SNG", "currency": "USD", - "min_size": "76.0", + "min_size": "94.0", "max_size": "200000.0", "increment": "0.000001", "label": "SNG/USD" @@ -778,7 +778,7 @@ { "asset": "SNG", "currency": "BTC", - "min_size": "76.0", + "min_size": "94.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNG/BTC" @@ -786,7 +786,7 @@ { "asset": "SNG", "currency": "ETH", - "min_size": "76.0", + "min_size": "94.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNG/ETH" diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index d832993495..c3dd6e979d 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2142,5 +2142,21 @@ "max_size": "1000000", "increment": "0.00000001", "label": "ETH/VEE" + }, + { + "asset": "BCPT", + "currency": "BTC", + "min_size": "0.00000001", + "max_size": "1000000", + "increment": "0.00000001", + "label": "BTC/BCPT" + }, + { + "asset": "BCPT", + "currency": "ETH", + "min_size": "0.00000001", + "max_size": "1000000", + "increment": "0.00000001", + "label": "ETH/BCPT" } ] \ No newline at end of file From ccfaecdfd7a37758e52b377f52643ec1e59ba846 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Fri, 23 Feb 2018 12:01:18 -0500 Subject: [PATCH 189/236] Bad typo broke live (#1411) --- lib/engine.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/engine.js b/lib/engine.js index b153880ae8..4685c503f7 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -653,7 +653,7 @@ module.exports = function (s, conf) { } function now () { - if (so.mode !== 'live') + if (so.mode === 'live') return new Date().getTime() else return s.exchange.getTime() From 71d9a524474de00fbf5a9a4bed632add4e104b01 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Fri, 23 Feb 2018 12:17:52 -0500 Subject: [PATCH 190/236] Fixes #1380 - binance formatting for assets (#1398) * Fixes #1380 - binance formatting for assets * Remove comment and Math.floor changes --- extensions/exchanges/binance/products.json | 835 ++++++++++++------ .../exchanges/binance/update-products.sh | 19 +- lib/engine.js | 8 +- 3 files changed, 578 insertions(+), 284 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 88b77df731..126eb1418d 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -5,7 +5,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "ETH/BTC" }, { @@ -14,7 +15,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "LTC/BTC" }, { @@ -23,7 +25,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "BNB/BTC" }, { @@ -32,16 +35,28 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "NEO/BTC" }, + { + "id": "123456", + "asset": "123", + "currency": "456", + "min_size": "0.00100000", + "max_size": "100000.00000000", + "increment": "0.000001", + "asset_increment": "0.001", + "label": "123/456" + }, { "id": "QTUMETH", "asset": "QTUM", "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "QTUM/ETH" }, { @@ -50,7 +65,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "EOS/ETH" }, { @@ -59,7 +75,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNT/ETH" }, { @@ -68,7 +85,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "BNT/ETH" }, { @@ -77,7 +95,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "BCH/BTC" }, { @@ -86,7 +105,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "GAS/BTC" }, { @@ -95,7 +115,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "BNB/ETH" }, { @@ -104,7 +125,8 @@ "currency": "USDT", "min_size": "0.00000100", "max_size": "10000000.00000000", - "increment": "0.00000100", + "increment": "0.01", + "asset_increment": "0.000001", "label": "BTC/USDT" }, { @@ -113,7 +135,8 @@ "currency": "USDT", "min_size": "0.00001000", "max_size": "10000000.00000000", - "increment": "0.00001000", + "increment": "0.01", + "asset_increment": "0.00001", "label": "ETH/USDT" }, { @@ -122,7 +145,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "HSR/BTC" }, { @@ -131,7 +155,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "OAX/ETH" }, { @@ -140,7 +165,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "DNT/ETH" }, { @@ -149,7 +175,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "MCO/ETH" }, { @@ -158,7 +185,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "ICN/ETH" }, { @@ -167,7 +195,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "MCO/BTC" }, { @@ -176,7 +205,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "WTC/BTC" }, { @@ -185,7 +215,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "WTC/ETH" }, { @@ -194,7 +225,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LRC/BTC" }, { @@ -203,7 +235,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LRC/ETH" }, { @@ -212,17 +245,19 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "QTUM/BTC" }, { "id": "YOYOBTC", - "asset": "YOYOW", + "asset": "YOYO", "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", - "label": "YOYOW/BTC" + "increment": "0.00000001", + "asset_increment": "1.", + "label": "YOYO/BTC" }, { "id": "OMGBTC", @@ -230,7 +265,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "OMG/BTC" }, { @@ -239,7 +275,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "OMG/ETH" }, { @@ -248,7 +285,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ZRX/BTC" }, { @@ -257,7 +295,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ZRX/ETH" }, { @@ -266,7 +305,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "STRAT/BTC" }, { @@ -275,7 +315,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "STRAT/ETH" }, { @@ -284,7 +325,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNGLS/BTC" }, { @@ -293,7 +335,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNGLS/ETH" }, { @@ -302,7 +345,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BQX/BTC" }, { @@ -311,7 +355,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "BQX/ETH" }, { @@ -320,7 +365,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "KNC/BTC" }, { @@ -329,7 +375,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "KNC/ETH" }, { @@ -338,7 +385,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "FUN/BTC" }, { @@ -347,7 +395,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "FUN/ETH" }, { @@ -356,7 +405,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNM/BTC" }, { @@ -365,7 +415,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNM/ETH" }, { @@ -374,7 +425,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "NEO/ETH" }, { @@ -383,7 +435,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "IOTA/BTC" }, { @@ -392,7 +445,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "IOTA/ETH" }, { @@ -401,7 +455,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LINK/BTC" }, { @@ -410,7 +465,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LINK/ETH" }, { @@ -419,7 +475,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XVG/BTC" }, { @@ -428,7 +485,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XVG/ETH" }, { @@ -437,7 +495,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CTR/BTC" }, { @@ -446,7 +505,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "CTR/ETH" }, { @@ -455,7 +515,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "SALT/BTC" }, { @@ -464,7 +525,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "SALT/ETH" }, { @@ -473,7 +535,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "MDA/BTC" }, { @@ -482,7 +545,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "MDA/ETH" }, { @@ -491,7 +555,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "MTL/BTC" }, { @@ -500,7 +565,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "MTL/ETH" }, { @@ -509,7 +575,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SUB/BTC" }, { @@ -518,7 +585,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SUB/ETH" }, { @@ -527,7 +595,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "EOS/BTC" }, { @@ -536,7 +605,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "SNT/BTC" }, { @@ -545,7 +615,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "ETC/ETH" }, { @@ -554,7 +625,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "ETC/BTC" }, { @@ -563,7 +635,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "MTH/BTC" }, { @@ -572,7 +645,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "MTH/ETH" }, { @@ -581,7 +655,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ENG/BTC" }, { @@ -590,7 +665,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "ENG/ETH" }, { @@ -599,7 +675,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "DNT/BTC" }, { @@ -608,7 +685,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "ZEC/BTC" }, { @@ -617,7 +695,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "ZEC/ETH" }, { @@ -626,7 +705,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BNT/BTC" }, { @@ -635,7 +715,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "AST/BTC" }, { @@ -644,7 +725,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "AST/ETH" }, { @@ -653,7 +735,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "DASH/BTC" }, { @@ -662,7 +745,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "DASH/ETH" }, { @@ -671,7 +755,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "OAX/BTC" }, { @@ -680,7 +765,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ICN/BTC" }, { @@ -689,7 +775,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "BTG/BTC" }, { @@ -698,7 +785,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "BTG/ETH" }, { @@ -707,7 +795,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "EVX/BTC" }, { @@ -716,7 +805,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "EVX/ETH" }, { @@ -725,7 +815,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "REQ/BTC" }, { @@ -734,7 +825,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "REQ/ETH" }, { @@ -743,7 +835,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "VIB/BTC" }, { @@ -752,7 +845,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "VIB/ETH" }, { @@ -761,7 +855,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "HSR/ETH" }, { @@ -770,7 +865,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TRX/BTC" }, { @@ -779,7 +875,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TRX/ETH" }, { @@ -788,7 +885,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "POWR/BTC" }, { @@ -797,7 +895,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "POWR/ETH" }, { @@ -806,7 +905,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "ARK/BTC" }, { @@ -815,17 +915,19 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "ARK/ETH" }, { "id": "YOYOETH", - "asset": "YOYOW", + "asset": "YOYO", "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", - "label": "YOYOW/ETH" + "increment": "0.00000001", + "asset_increment": "1.", + "label": "YOYO/ETH" }, { "id": "XRPBTC", @@ -833,7 +935,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XRP/BTC" }, { @@ -842,7 +945,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XRP/ETH" }, { @@ -851,7 +955,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "MOD/BTC" }, { @@ -860,7 +965,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "MOD/ETH" }, { @@ -869,7 +975,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ENJ/BTC" }, { @@ -878,7 +985,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ENJ/ETH" }, { @@ -887,7 +995,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "STORJ/BTC" }, { @@ -896,7 +1005,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "STORJ/ETH" }, { @@ -905,7 +1015,8 @@ "currency": "USDT", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0001", + "asset_increment": "0.01", "label": "BNB/USDT" }, { @@ -914,17 +1025,19 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0001", + "asset_increment": "0.01", "label": "VEN/BNB" }, { "id": "YOYOBNB", - "asset": "YOYOW", + "asset": "YOYO", "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", - "label": "YOYOW/BNB" + "increment": "0.00001", + "asset_increment": "0.01", + "label": "YOYO/BNB" }, { "id": "POWRBNB", @@ -932,7 +1045,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "POWR/BNB" }, { @@ -941,7 +1055,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "VEN/BTC" }, { @@ -950,7 +1065,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "VEN/ETH" }, { @@ -959,7 +1075,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "KMD/BTC" }, { @@ -968,7 +1085,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "KMD/ETH" }, { @@ -977,7 +1095,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "NULS/BNB" }, { @@ -986,7 +1105,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "RCN/BTC" }, { @@ -995,7 +1115,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "RCN/ETH" }, { @@ -1004,7 +1125,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "RCN/BNB" }, { @@ -1013,7 +1135,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "NULS/BTC" }, { @@ -1022,7 +1145,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "NULS/ETH" }, { @@ -1031,7 +1155,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "RDN/BTC" }, { @@ -1040,7 +1165,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "RDN/ETH" }, { @@ -1049,7 +1175,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "RDN/BNB" }, { @@ -1058,7 +1185,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "XMR/BTC" }, { @@ -1067,7 +1195,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "XMR/ETH" }, { @@ -1076,7 +1205,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "DLT/BNB" }, { @@ -1085,7 +1215,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0001", + "asset_increment": "0.01", "label": "WTC/BNB" }, { @@ -1094,7 +1225,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "DLT/BTC" }, { @@ -1103,7 +1235,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "DLT/ETH" }, { @@ -1112,7 +1245,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "AMB/BTC" }, { @@ -1121,7 +1255,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "AMB/ETH" }, { @@ -1130,7 +1265,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "AMB/BNB" }, { @@ -1139,7 +1275,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "BCH/ETH" }, { @@ -1148,7 +1285,8 @@ "currency": "USDT", "min_size": "0.00001000", "max_size": "10000000.00000000", - "increment": "0.00001000", + "increment": "0.01", + "asset_increment": "0.00001", "label": "BCH/USDT" }, { @@ -1157,7 +1295,8 @@ "currency": "BNB", "min_size": "0.00001000", "max_size": "100000.00000000", - "increment": "0.00001000", + "increment": "0.01", + "asset_increment": "0.00001", "label": "BCH/BNB" }, { @@ -1166,7 +1305,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BAT/BTC" }, { @@ -1175,7 +1315,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BAT/ETH" }, { @@ -1184,7 +1325,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "BAT/BNB" }, { @@ -1193,7 +1335,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BCPT/BTC" }, { @@ -1202,7 +1345,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BCPT/ETH" }, { @@ -1211,7 +1355,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "BCPT/BNB" }, { @@ -1220,7 +1365,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ARN/BTC" }, { @@ -1229,7 +1375,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ARN/ETH" }, { @@ -1238,7 +1385,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "GVT/BTC" }, { @@ -1247,7 +1395,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "GVT/ETH" }, { @@ -1256,7 +1405,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CDT/BTC" }, { @@ -1265,7 +1415,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CDT/ETH" }, { @@ -1274,7 +1425,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "GXS/BTC" }, { @@ -1283,7 +1435,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "GXS/ETH" }, { @@ -1292,7 +1445,8 @@ "currency": "USDT", "min_size": "0.00100000", "max_size": "10000000.00000000", - "increment": "0.00100000", + "increment": "0.001", + "asset_increment": "0.001", "label": "NEO/USDT" }, { @@ -1301,7 +1455,8 @@ "currency": "BNB", "min_size": "0.00100000", "max_size": "10000000.00000000", - "increment": "0.00100000", + "increment": "0.001", + "asset_increment": "0.001", "label": "NEO/BNB" }, { @@ -1310,7 +1465,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "POE/BTC" }, { @@ -1319,7 +1475,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "POE/ETH" }, { @@ -1328,7 +1485,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "QSP/BTC" }, { @@ -1337,7 +1495,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "QSP/ETH" }, { @@ -1346,7 +1505,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "QSP/BNB" }, { @@ -1355,7 +1515,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BTS/BTC" }, { @@ -1364,7 +1525,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BTS/ETH" }, { @@ -1373,7 +1535,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "BTS/BNB" }, { @@ -1382,7 +1545,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "XZC/BTC" }, { @@ -1391,7 +1555,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "XZC/ETH" }, { @@ -1400,7 +1565,8 @@ "currency": "BNB", "min_size": "0.00100000", "max_size": "10000000.00000000", - "increment": "0.00100000", + "increment": "0.001", + "asset_increment": "0.001", "label": "XZC/BNB" }, { @@ -1409,7 +1575,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "LSK/BTC" }, { @@ -1418,7 +1585,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "LSK/ETH" }, { @@ -1427,7 +1595,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0001", + "asset_increment": "0.01", "label": "LSK/BNB" }, { @@ -1436,7 +1605,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TNT/BTC" }, { @@ -1445,7 +1615,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TNT/ETH" }, { @@ -1454,7 +1625,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "FUEL/BTC" }, { @@ -1463,7 +1635,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "FUEL/ETH" }, { @@ -1472,7 +1645,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "MANA/BTC" }, { @@ -1481,7 +1655,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "MANA/ETH" }, { @@ -1490,7 +1665,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "BCD/BTC" }, { @@ -1499,7 +1675,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "BCD/ETH" }, { @@ -1508,7 +1685,8 @@ "currency": "BTC", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.000001", + "asset_increment": "0.001", "label": "DGD/BTC" }, { @@ -1517,7 +1695,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "DGD/ETH" }, { @@ -1526,7 +1705,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "IOTA/BNB" }, { @@ -1535,7 +1715,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ADX/BTC" }, { @@ -1544,7 +1725,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "ADX/ETH" }, { @@ -1553,7 +1735,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "ADX/BNB" }, { @@ -1562,7 +1745,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ADA/BTC" }, { @@ -1571,7 +1755,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ADA/ETH" }, { @@ -1580,7 +1765,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "PPT/BTC" }, { @@ -1589,7 +1775,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "PPT/ETH" }, { @@ -1598,7 +1785,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CMT/BTC" }, { @@ -1607,7 +1795,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CMT/ETH" }, { @@ -1616,7 +1805,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "CMT/BNB" }, { @@ -1625,7 +1815,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XLM/BTC" }, { @@ -1634,7 +1825,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "XLM/ETH" }, { @@ -1643,7 +1835,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "XLM/BNB" }, { @@ -1652,7 +1845,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CND/BTC" }, { @@ -1661,7 +1855,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CND/ETH" }, { @@ -1670,7 +1865,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "CND/BNB" }, { @@ -1679,7 +1875,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LEND/BTC" }, { @@ -1688,7 +1885,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "LEND/ETH" }, { @@ -1697,7 +1895,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "WABI/BTC" }, { @@ -1706,7 +1905,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "WABI/ETH" }, { @@ -1715,7 +1915,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "WABI/BNB" }, { @@ -1724,7 +1925,8 @@ "currency": "ETH", "min_size": "0.00100000", "max_size": "100000.00000000", - "increment": "0.00100000", + "increment": "0.00001", + "asset_increment": "0.001", "label": "LTC/ETH" }, { @@ -1733,7 +1935,8 @@ "currency": "USDT", "min_size": "0.00001000", "max_size": "10000000.00000000", - "increment": "0.00001000", + "increment": "0.01", + "asset_increment": "0.00001", "label": "LTC/USDT" }, { @@ -1742,7 +1945,8 @@ "currency": "BNB", "min_size": "0.00001000", "max_size": "100000.00000000", - "increment": "0.00001000", + "increment": "0.01", + "asset_increment": "0.00001", "label": "LTC/BNB" }, { @@ -1751,7 +1955,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TNB/BTC" }, { @@ -1760,7 +1965,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "TNB/ETH" }, { @@ -1769,7 +1975,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "WAVES/BTC" }, { @@ -1778,7 +1985,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "WAVES/ETH" }, { @@ -1787,7 +1995,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0001", + "asset_increment": "0.01", "label": "WAVES/BNB" }, { @@ -1796,7 +2005,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "GTO/BTC" }, { @@ -1805,7 +2015,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "GTO/ETH" }, { @@ -1814,7 +2025,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "GTO/BNB" }, { @@ -1823,7 +2035,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "ICX/BTC" }, { @@ -1832,7 +2045,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "ICX/ETH" }, { @@ -1841,7 +2055,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "ICX/BNB" }, { @@ -1850,7 +2065,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "OST/BTC" }, { @@ -1859,7 +2075,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "OST/ETH" }, { @@ -1868,7 +2085,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "OST/BNB" }, { @@ -1877,7 +2095,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ELF/BTC" }, { @@ -1886,7 +2105,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "ELF/ETH" }, { @@ -1895,7 +2115,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "AION/BTC" }, { @@ -1904,7 +2125,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "AION/ETH" }, { @@ -1913,7 +2135,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "AION/BNB" }, { @@ -1922,7 +2145,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "NEBL/BTC" }, { @@ -1931,7 +2155,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "NEBL/ETH" }, { @@ -1940,7 +2165,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "NEBL/BNB" }, { @@ -1949,7 +2175,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BRD/BTC" }, { @@ -1958,7 +2185,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "BRD/ETH" }, { @@ -1967,7 +2195,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "BRD/BNB" }, { @@ -1976,7 +2205,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "MCO/BNB" }, { @@ -1985,7 +2215,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "EDO/BTC" }, { @@ -1994,7 +2225,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "EDO/ETH" }, { @@ -2003,7 +2235,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "WINGS/BTC" }, { @@ -2012,7 +2245,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "WINGS/ETH" }, { @@ -2021,7 +2255,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "NAV/BTC" }, { @@ -2030,7 +2265,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "NAV/ETH" }, { @@ -2039,7 +2275,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "NAV/BNB" }, { @@ -2048,7 +2285,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "LUN/BTC" }, { @@ -2057,7 +2295,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "LUN/ETH" }, { @@ -2066,7 +2305,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "TRIG/BTC" }, { @@ -2075,7 +2315,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "TRIG/ETH" }, { @@ -2084,7 +2325,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "TRIG/BNB" }, { @@ -2093,7 +2335,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "APPC/BTC" }, { @@ -2102,7 +2345,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "APPC/ETH" }, { @@ -2111,7 +2355,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "APPC/BNB" }, { @@ -2120,7 +2365,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "VIBE/BTC" }, { @@ -2129,7 +2375,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.0000001", + "asset_increment": "1.", "label": "VIBE/ETH" }, { @@ -2138,7 +2385,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "RLC/BTC" }, { @@ -2147,7 +2395,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "RLC/ETH" }, { @@ -2156,7 +2405,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "RLC/BNB" }, { @@ -2165,7 +2415,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "INS/BTC" }, { @@ -2174,7 +2425,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "INS/ETH" }, { @@ -2183,7 +2435,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "PIVX/BTC" }, { @@ -2192,7 +2445,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "PIVX/ETH" }, { @@ -2201,7 +2455,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "PIVX/BNB" }, { @@ -2210,7 +2465,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "IOST/BTC" }, { @@ -2219,7 +2475,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "IOST/ETH" }, { @@ -2228,7 +2485,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CHAT/BTC" }, { @@ -2237,7 +2495,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "CHAT/ETH" }, { @@ -2246,7 +2505,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "STEEM/BTC" }, { @@ -2255,7 +2515,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "STEEM/ETH" }, { @@ -2264,35 +2525,39 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "STEEM/BNB" }, { "id": "NANOBTC", - "asset": "XRB", + "asset": "NANO", "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", - "label": "XRB/BTC" + "increment": "0.0000001", + "asset_increment": "0.01", + "label": "NANO/BTC" }, { "id": "NANOETH", - "asset": "XRB", + "asset": "NANO", "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", - "label": "XRB/ETH" + "increment": "0.000001", + "asset_increment": "0.01", + "label": "NANO/ETH" }, { "id": "NANOBNB", - "asset": "XRB", + "asset": "NANO", "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", - "label": "XRB/BNB" + "increment": "0.0001", + "asset_increment": "0.01", + "label": "NANO/BNB" }, { "id": "VIABTC", @@ -2300,7 +2565,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "VIA/BTC" }, { @@ -2309,7 +2575,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "VIA/ETH" }, { @@ -2318,7 +2585,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "VIA/BNB" }, { @@ -2327,7 +2595,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BLZ/BTC" }, { @@ -2336,7 +2605,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "BLZ/ETH" }, { @@ -2345,7 +2615,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "BLZ/BNB" }, { @@ -2354,7 +2625,8 @@ "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.0000001", + "asset_increment": "0.01", "label": "AE/BTC" }, { @@ -2363,7 +2635,8 @@ "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", - "increment": "0.01000000", + "increment": "0.000001", + "asset_increment": "0.01", "label": "AE/ETH" }, { @@ -2372,7 +2645,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "AE/BNB" }, { @@ -2381,7 +2655,8 @@ "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "RPX/BTC" }, { @@ -2390,7 +2665,8 @@ "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", - "increment": "1.00000000", + "increment": "0.00000001", + "asset_increment": "1.", "label": "RPX/ETH" }, { @@ -2399,7 +2675,8 @@ "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", - "increment": "0.01000000", + "increment": "0.00001", + "asset_increment": "0.01", "label": "RPX/BNB" } ] \ No newline at end of file diff --git a/extensions/exchanges/binance/update-products.sh b/extensions/exchanges/binance/update-products.sh index b6dcd82803..505bd63609 100755 --- a/extensions/exchanges/binance/update-products.sh +++ b/extensions/exchanges/binance/update-products.sh @@ -5,13 +5,30 @@ new ccxt.binance().fetch_markets().then(function(markets) { var products = [] markets.forEach(function (market) { + var currStepSize = market.info.filters[0].tickSize + for (i = currStepSize.length - 1; i > 0; i--) { + if (currStepSize[i] === '0') + currStepSize = currStepSize.slice(0, i) + else + break; + } + + var assetStepSize = market.info.filters[1].stepSize + for (i = assetStepSize.length - 1; i > 0; i--) { + if (assetStepSize[i] === '0') + assetStepSize = assetStepSize.slice(0, i) + else + break + } + products.push({ id: market.id, asset: market.base, currency: market.quote, min_size: market.info.filters[1].minQty, max_size: market.info.filters[0].maxPrice, - increment: market.info.filters[1].stepSize, + increment: currStepSize, + asset_increment: assetStepSize, label: market.base + '/' + market.quote }) }) diff --git a/lib/engine.js b/lib/engine.js index 4685c503f7..bf5dd0a1f5 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -413,9 +413,9 @@ module.exports = function (s, conf) { tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too if (buy_pct + fee < 100) { - size = n(tradeable_balance).divide(price).format('0.00000000') + size = n(tradeable_balance).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') } else { - size = n(trade_balance).subtract(expected_fee).divide(price).format('0.00000000') + size = n(trade_balance).subtract(expected_fee).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') } } if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || ('min_total' in s.product && s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { @@ -470,7 +470,7 @@ module.exports = function (s, conf) { } else { sell_pct = so.sell_pct } - size = n(s.balance.asset).multiply(sell_pct / 100).format('0.00000000') + size = n(s.balance.asset).multiply(sell_pct / 100).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') } if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || (s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { @@ -841,7 +841,7 @@ module.exports = function (s, conf) { s.api_order = api_order if (api_order.filled_size) { - order.remaining_size = n(order.size).subtract(api_order.filled_size).format('0.00000000') + order.remaining_size = n(order.size).subtract(api_order.filled_size).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') } } syncBalance(function () { From 003291a407e52e61e5ac597230dad873222c1a49 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Sat, 24 Feb 2018 10:51:12 +0000 Subject: [PATCH 191/236] Exchanges: update-products 641 --- extensions/exchanges/binance/products.json | 34 ++++++++-------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 126eb1418d..e53af8841d 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -39,16 +39,6 @@ "asset_increment": "0.01", "label": "NEO/BTC" }, - { - "id": "123456", - "asset": "123", - "currency": "456", - "min_size": "0.00100000", - "max_size": "100000.00000000", - "increment": "0.000001", - "asset_increment": "0.001", - "label": "123/456" - }, { "id": "QTUMETH", "asset": "QTUM", @@ -251,13 +241,13 @@ }, { "id": "YOYOBTC", - "asset": "YOYO", + "asset": "YOYOW", "currency": "BTC", "min_size": "1.00000000", "max_size": "100000.00000000", "increment": "0.00000001", "asset_increment": "1.", - "label": "YOYO/BTC" + "label": "YOYOW/BTC" }, { "id": "OMGBTC", @@ -921,13 +911,13 @@ }, { "id": "YOYOETH", - "asset": "YOYO", + "asset": "YOYOW", "currency": "ETH", "min_size": "1.00000000", "max_size": "100000.00000000", "increment": "0.00000001", "asset_increment": "1.", - "label": "YOYO/ETH" + "label": "YOYOW/ETH" }, { "id": "XRPBTC", @@ -1031,13 +1021,13 @@ }, { "id": "YOYOBNB", - "asset": "YOYO", + "asset": "YOYOW", "currency": "BNB", "min_size": "0.01000000", "max_size": "10000.00000000", "increment": "0.00001", "asset_increment": "0.01", - "label": "YOYO/BNB" + "label": "YOYOW/BNB" }, { "id": "POWRBNB", @@ -2531,33 +2521,33 @@ }, { "id": "NANOBTC", - "asset": "NANO", + "asset": "XRB", "currency": "BTC", "min_size": "0.01000000", "max_size": "100000.00000000", "increment": "0.0000001", "asset_increment": "0.01", - "label": "NANO/BTC" + "label": "XRB/BTC" }, { "id": "NANOETH", - "asset": "NANO", + "asset": "XRB", "currency": "ETH", "min_size": "0.01000000", "max_size": "100000.00000000", "increment": "0.000001", "asset_increment": "0.01", - "label": "NANO/ETH" + "label": "XRB/ETH" }, { "id": "NANOBNB", - "asset": "NANO", + "asset": "XRB", "currency": "BNB", "min_size": "0.01000000", "max_size": "100000.00000000", "increment": "0.0001", "asset_increment": "0.01", - "label": "NANO/BNB" + "label": "XRB/BNB" }, { "id": "VIABTC", From ab655e3783a05f8f44d88369c39739c046df7dc7 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Sun, 25 Feb 2018 10:51:37 +0000 Subject: [PATCH 192/236] Exchanges: update-products 649 --- extensions/exchanges/bitfinex/products.json | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index e10f0a04e0..d4ded63275 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -338,7 +338,7 @@ { "asset": "AVT", "currency": "USD", - "min_size": "4.0", + "min_size": "6.0", "max_size": "50000.0", "increment": "0.00001", "label": "AVT/USD" @@ -346,7 +346,7 @@ { "asset": "AVT", "currency": "BTC", - "min_size": "4.0", + "min_size": "6.0", "max_size": "50000.0", "increment": "0.00000001", "label": "AVT/BTC" @@ -354,7 +354,7 @@ { "asset": "AVT", "currency": "ETH", - "min_size": "4.0", + "min_size": "6.0", "max_size": "50000.0", "increment": "0.00000001", "label": "AVT/ETH" @@ -498,7 +498,7 @@ { "asset": "SNT", "currency": "USD", - "min_size": "60.0", + "min_size": "62.0", "max_size": "200000.0", "increment": "0.000001", "label": "SNT/USD" @@ -506,7 +506,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "60.0", + "min_size": "62.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/BTC" @@ -514,7 +514,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "60.0", + "min_size": "62.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/ETH" @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "176.0", + "min_size": "180.0", "max_size": "200000.0", "increment": "0.0000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "176.0", + "min_size": "180.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "176.0", + "min_size": "180.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/ETH" @@ -698,7 +698,7 @@ { "asset": "RCN", "currency": "USD", - "min_size": "68.0", + "min_size": "72.0", "max_size": "200000.0", "increment": "0.000001", "label": "RCN/USD" @@ -706,7 +706,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "68.0", + "min_size": "72.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/BTC" @@ -714,7 +714,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "68.0", + "min_size": "72.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/ETH" From 29032a1414ce7e36e4efa71b3f5bad6d96931380 Mon Sep 17 00:00:00 2001 From: Chase Date: Mon, 26 Feb 2018 09:07:12 +0100 Subject: [PATCH 193/236] Replace stackoverflow (#1417) * add docker mount for forex_analytics models (#1369) * ISSUE_TEMPLATE: update * extend with @defkev suggestions --- ISSUE_TEMPLATE.md | 22 ++++++++++++++-------- docker-compose.yml | 1 + 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 967d7aeb1b..b0f11d0fd8 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,26 +1,32 @@ -Please go to Stack Overflow for help and support: +KINDLY READ AND ACT ON THE BELOW INFORMATION BEFORE FILING YOUR ISSUE! -https://stackoverflow.com/questions/tagged/zenbot +Please go to our Zenbot subreddit for questions, help and support: + +[https://www.reddit.com/r/zenbot/](https://www.reddit.com/r/zenbot/) If you open a GitHub issue, here is our policy: 1. It must be a bug or a feature request. 2. The form below must be filled out. -**Here's why we have that policy**: Zenbot developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies hundreds of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow. +**Here's why we have that policy**: Zenbot developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals and rarely leads to bugfixes or useful enhancements. GitHub also notifies hundreds of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Reddit. +------------------------ +Remove everything above before creating your issue. ------------------------ ### System information - **Have I written custom code (as opposed to using zenbot vanilla)**: - **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**: -- **Zenbot version**: -- **NodeJS version**: -- **Python version**: -- **Exact command to reproduce**: +- **Zenbot version** (commit ref, or version): +- **Zenbot branch**: +- **NodeJS version**: +- **Python version (when using a python script)**: +- **Exact command to reproduce (include everything)**: +- **Did I make any changes to conf-sample.js?**: ### Describe the problem Describe the problem clearly here. Be sure to convey here why it's a bug in Zenbot or a feature request. -### Source code / logs +### Source code / Error logs Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. diff --git a/docker-compose.yml b/docker-compose.yml index 36be578eb1..bc05dbd3aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ services: - ./conf.js:/app/conf.js - ./extensions:/app/extensions - ./simulations:/app/simulations + - ./models:/app/models links: - mongodb command: [ "trade", "--paper" ] From 6721abb35a10a4f03b3d9297890e408fe91e7127 Mon Sep 17 00:00:00 2001 From: charlieheart <32141102+charlieheart@users.noreply.github.com> Date: Mon, 26 Feb 2018 11:08:17 +0300 Subject: [PATCH 194/236] Update strategy.js (#1420) --- extensions/strategies/macd/strategy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/strategies/macd/strategy.js b/extensions/strategies/macd/strategy.js index 1436f79b11..344f067878 100644 --- a/extensions/strategies/macd/strategy.js +++ b/extensions/strategies/macd/strategy.js @@ -31,7 +31,7 @@ module.exports = { } } - // compture MACD + // compute MACD ema(s, 'ema_short', s.options.ema_short_period) ema(s, 'ema_long', s.options.ema_long_period) if (s.period.ema_short && s.period.ema_long) { From dc35fff77692c0d1401d67574d20ea0e10764790 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 26 Feb 2018 09:55:25 +0100 Subject: [PATCH 195/236] =?UTF-8?q?Update=20webpack=20to=20the=20latest=20?= =?UTF-8?q?version=20=F0=9F=9A=80=20(#1421)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update webpack to version 4.0.0 * webpack4 compatibility --- package-lock.json | 6006 ++++++++++++++++++++++++++++----------------- package.json | 5 +- webpack.config.js | 6 +- 3 files changed, 3779 insertions(+), 2238 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e702fb709..798faa9795 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,16 +56,16 @@ } }, "@slack/client": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.15.0.tgz", - "integrity": "sha512-MIgf5s9PrcxFaPlkJ2cFOhrfh9/KOmUKK5GG/Eka1IJK7+oBCscJFnQ6FfYnZICwIQxWkkuiXmeWYWNevZhCLg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz", + "integrity": "sha512-CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==", "requires": { "async": "1.5.2", "bluebird": "3.5.1", "eventemitter3": "1.2.0", "https-proxy-agent": "1.0.0", "inherits": "2.0.3", - "lodash": "4.17.4", + "lodash": "4.17.5", "pkginfo": "0.4.1", "request": "2.76.0", "retry": "0.9.0", @@ -129,28 +129,21 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "2.1.17", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==" + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", + "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" }, "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } + "acorn": "5.4.1" } }, "acorn-globals": { @@ -158,7 +151,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.3.0" + "acorn": "5.4.1" } }, "acorn-jsx": { @@ -189,7 +182,7 @@ "lodash.assign": "4.2.0", "lodash.defaults": "3.1.2", "object-path": "0.9.2", - "regex-parser": "2.2.8" + "regex-parser": "2.2.9" }, "dependencies": { "camelcase": { @@ -242,25 +235,15 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { "co": "4.6.0", - "fast-deep-equal": "1.0.0", + "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", + "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=" }, "alphanum-sort": { "version": "1.0.2", @@ -273,10 +256,9 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "ansi-regex": { "version": "2.1.1", @@ -300,6 +282,49 @@ "requires": { "micromatch": "2.3.11", "normalize-path": "2.1.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + } } }, "app-root-path": { @@ -318,17 +343,22 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", - "readable-stream": "2.3.3" + "readable-stream": "2.3.4" } }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "1.0.3" } }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=" + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -347,6 +377,11 @@ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -366,7 +401,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, "requires": { "array-uniq": "1.0.3" } @@ -374,8 +408,7 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.2.1", @@ -394,8 +427,7 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { "version": "0.2.3", @@ -403,9 +435,9 @@ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "asn1.js": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { "bn.js": "4.11.8", "inherits": "2.0.3", @@ -430,12 +462,17 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "ast-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==" + }, "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "async-each": { @@ -459,9 +496,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", - "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" }, "autoprefixer": { "version": "6.7.7", @@ -469,7 +506,7 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000789", + "caniuse-db": "1.0.30000810", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.18", @@ -481,8 +518,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000789", - "electron-to-chromium": "1.3.30" + "caniuse-db": "1.0.30000810", + "electron-to-chromium": "1.3.34" } } } @@ -502,7 +539,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "1.3.0", + "follow-redirects": "1.4.1", "is-buffer": "1.1.6" } }, @@ -522,7 +559,7 @@ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", + "babel-generator": "6.26.1", "babel-helpers": "6.24.1", "babel-messages": "6.23.0", "babel-register": "6.26.0", @@ -534,7 +571,7 @@ "convert-source-map": "1.5.1", "debug": "2.6.9", "json5": "0.5.1", - "lodash": "4.17.4", + "lodash": "4.17.5", "minimatch": "3.0.4", "path-is-absolute": "1.0.1", "private": "0.1.8", @@ -543,20 +580,30 @@ } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "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", + "lodash": "4.17.5", "source-map": "0.5.7", "trim-right": "1.0.1" } }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", @@ -586,7 +633,7 @@ "babel-helper-function-name": "6.24.1", "babel-runtime": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "babel-helper-explode-assignable-expression": { @@ -599,6 +646,17 @@ "babel-types": "6.26.0" } }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", @@ -645,7 +703,7 @@ "requires": { "babel-runtime": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "babel-helper-remap-async-to-generator": { @@ -683,9 +741,9 @@ } }, "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.3.tgz", + "integrity": "sha512-PeN29YvOynPMvNk7QCzsHqxpmfXwKAC+uxkiSNFQsmXBBVltzEkVWmv/Ip3tx7yk149dQUwk497bTXNu+DZjLA==", "requires": { "find-cache-dir": "1.0.0", "loader-utils": "1.1.0", @@ -713,16 +771,66 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", @@ -733,6 +841,39 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "requires": { + "babel-plugin-syntax-class-constructor-call": "6.18.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -758,7 +899,7 @@ "babel-template": "6.26.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "babel-plugin-transform-es2015-classes": { @@ -955,6 +1096,33 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "requires": { + "babel-plugin-syntax-export-extensions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", @@ -1021,9 +1189,73 @@ "babel-plugin-transform-es2015-unicode-regex": "6.24.1", "babel-plugin-transform-exponentiation-operator": "6.24.1", "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.0", - "invariant": "2.2.2", - "semver": "5.4.1" + "browserslist": "2.11.3", + "invariant": "2.2.3", + "semver": "5.5.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "requires": { + "babel-plugin-transform-class-constructor-call": "6.24.1", + "babel-plugin-transform-export-extensions": "6.22.0", + "babel-preset-stage-2": "6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.26.0" } }, "babel-register": { @@ -1035,7 +1267,7 @@ "babel-runtime": "6.26.0", "core-js": "2.5.3", "home-or-tmp": "2.0.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "mkdirp": "0.5.1", "source-map-support": "0.4.18" } @@ -1058,7 +1290,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "babel-traverse": { @@ -1073,8 +1305,8 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "invariant": "2.2.3", + "lodash": "4.17.5" } }, "babel-types": { @@ -1084,7 +1316,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.4", + "lodash": "4.17.5", "to-fast-properties": "1.0.3" } }, @@ -1124,13 +1356,18 @@ "requires": { "is-descriptor": "1.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", + "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -1151,6 +1388,11 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" }, + "binaryextensions": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", + "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==" + }, "bintrees": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", @@ -1162,7 +1404,7 @@ "integrity": "sha512-pG4BMCD7T/R1vkLhLdHPim4Lbfbkdyt/yTaJ+A48vrzGsQO7MwxIRRs6rEx1Acm/vpsUyksbOaQyladh2T8Whw==", "requires": { "debug": "2.6.9", - "lodash": "4.17.4", + "lodash": "4.17.5", "request": "2.76.0", "request-promise": "4.2.2", "ws": "3.3.3" @@ -1186,9 +1428,9 @@ } }, "bitstamp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bitstamp/-/bitstamp-1.0.5.tgz", - "integrity": "sha512-hgo+gJ6AioE4dZAGAikbscq/F2TInnNi45WyMAV6e00zWQkjpeTKqtCXCu0hP6LRgooIPvZgWUrJbpjNwgmsOQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/bitstamp/-/bitstamp-1.0.6.tgz", + "integrity": "sha512-TZDi2OvckUWNl9qDotuOjQsdR9KfByqhy+4eRo2GmpmUbzvG9Fu+fnC9VGeeX9Kc5yAgHWLyvrlOq+6QYdi4eg==", "requires": { "underscore": "1.4.4" } @@ -1198,7 +1440,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.4" } }, "block-stream": { @@ -1227,13 +1469,13 @@ "bytes": "3.0.0", "content-type": "1.0.4", "debug": "2.6.9", - "depd": "1.1.1", + "depd": "1.1.2", "http-errors": "1.6.2", "iconv-lite": "0.4.19", "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "1.6.16" }, "dependencies": { "qs": { @@ -1262,14 +1504,14 @@ } }, "bootstrap": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-beta.3.tgz", - "integrity": "sha512-/Qe1Q2d1muLEZRX2iCteMQHZBBAm6ZIjJ9FcBYK/xLr05+HvDtBOVBN+Cz7mCNZuy0zr+y5artZHM05W7mIz6g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==" }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -1306,13 +1548,6 @@ "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", "requires": { "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } } }, "browserify-aes": { @@ -1354,7 +1589,7 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { "bn.js": "4.11.8", - "randombytes": "2.0.5" + "randombytes": "2.0.6" } }, "browserify-sign": { @@ -1380,12 +1615,12 @@ } }, "browserslist": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.0.tgz", - "integrity": "sha512-mNYp0RNeu1xueGuJFSXkU+K0nH+dBE/gcjtyhtNKfU8hwdrVIfoA7i5iFSjOmzkGdL2QaO7YX9ExiVPE7AY9JA==", + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "requires": { - "caniuse-lite": "1.0.30000789", - "electron-to-chromium": "1.3.30" + "caniuse-lite": "1.0.30000810", + "electron-to-chromium": "1.3.34" } }, "bson": { @@ -1398,7 +1633,7 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.1", + "base64-js": "1.2.3", "ieee754": "1.1.8", "isarray": "1.0.0" } @@ -1423,6 +1658,33 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "requires": { + "bluebird": "3.5.1", + "chownr": "1.0.1", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lru-cache": "4.1.1", + "mississippi": "2.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "5.2.4", + "unique-filename": "1.1.0", + "y18n": "4.0.0" + }, + "dependencies": { + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1437,6 +1699,13 @@ "to-object-path": "0.3.0", "union-value": "1.0.0", "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "caller-path": { @@ -1446,13 +1715,20 @@ "dev": true, "requires": { "callsites": "0.2.0" + }, + "dependencies": { + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + } } }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "camelcase": { "version": "2.1.1", @@ -1474,7 +1750,7 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000789", + "caniuse-db": "1.0.30000810", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" }, @@ -1484,21 +1760,21 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000789", - "electron-to-chromium": "1.3.30" + "caniuse-db": "1.0.30000810", + "electron-to-chromium": "1.3.34" } } } }, "caniuse-db": { - "version": "1.0.30000789", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000789.tgz", - "integrity": "sha1-XPP+x1SABBqxYsoGQTFTFB4jQyU=" + "version": "1.0.30000810", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000810.tgz", + "integrity": "sha1-vSWDDEHvq2Qzmi44H0lnc0PIRQk=" }, "caniuse-lite": { - "version": "1.0.30000789", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000789.tgz", - "integrity": "sha1-Lj2TeyZxM/Y2Ne9/RB+sZjYPyIk=" + "version": "1.0.30000810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz", + "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==" }, "caseless": { "version": "0.11.0", @@ -1506,9 +1782,9 @@ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "ccxt": { - "version": "1.10.1145", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1145.tgz", - "integrity": "sha512-abK8Bfncsq6LF2fUCDSWeiad8behgreOwI9O8IuR4jOsWWl60G5dTjKtn+KrPGveaE8nX9+sbwau4vG73zYKvw==", + "version": "1.10.1216", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1216.tgz", + "integrity": "sha512-Zg7aFvZ+upQfwf4ZWu6MnOFAWGui0s/brYGREpd1RFb1cpjA1jGx1H/eXihLNn1BRFKPdlDVJcN5YZui0/KZsA==", "requires": { "cloudscraper": "1.4.1", "crypto-js": "3.1.9-1", @@ -1524,26 +1800,10 @@ } } }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - }, - "dependencies": { - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - } - } - }, "cexio-api-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cexio-api-node/-/cexio-api-node-1.1.0.tgz", - "integrity": "sha512-qdqB/l/hBHUY7TgAo4nckteYdyyUkCJ7tSbEtC42lb5uztw6on6SSScE4Ve/mBM0V+fpURL8Jan+QzqYtybNmw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cexio-api-node/-/cexio-api-node-1.2.0.tgz", + "integrity": "sha512-vqt4NxuDJbmCHXnKr1J0viefmJfW0BAo1vqHXXcVIJcYMs6Qs9TXztvlkqanGOq09h9mVQ3Y+xj/GWOdwuvunQ==", "requires": { "debug": "3.1.0", "moment": "2.20.1", @@ -1567,7 +1827,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "caseless": { @@ -1588,7 +1848,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } } } @@ -1602,13 +1862,13 @@ } }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "har-validator": { @@ -1627,14 +1887,14 @@ "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", - "hoek": "4.2.0", + "hoek": "4.2.1", "sntp": "2.1.0" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "http-signature": { "version": "1.2.0", @@ -1659,17 +1919,17 @@ "aws-sign2": "0.7.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.3.1", + "form-data": "2.3.2", "har-validator": "5.0.3", "hawk": "6.0.2", "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", @@ -1677,7 +1937,7 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "uuid": "3.2.1" } }, "sntp": { @@ -1685,7 +1945,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "tunnel-agent": { @@ -1749,8 +2009,33 @@ "is-glob": "2.0.1", "path-is-absolute": "1.0.1", "readdirp": "2.1.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } } }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, + "chrome-trace-event": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz", + "integrity": "sha1-kPNohdU0WlBiEzLwcXtZWIPV2YI=" + }, "ci-info": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", @@ -1844,6 +2129,11 @@ "kind-of": "5.1.0" } }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", @@ -1868,7 +2158,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, "requires": { "colors": "1.0.3" }, @@ -1876,8 +2165,7 @@ "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, @@ -1890,10 +2178,23 @@ "string-width": "1.0.2" }, "dependencies": { - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } } } }, @@ -1958,6 +2259,26 @@ "string-width": "1.0.2", "strip-ansi": "3.0.1", "wrap-ansi": "2.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "clone": { @@ -1965,6 +2286,11 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, "clone-deep": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", @@ -1974,6 +2300,38 @@ "is-plain-object": "2.0.4", "kind-of": "3.2.2", "shallow-clone": "0.1.2" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "requires": { + "inherits": "2.0.3", + "process-nextick-args": "1.0.7", + "through2": "2.0.3" + }, + "dependencies": { + "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=" + } } }, "cloudscraper": { @@ -2002,6 +2360,93 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "codecov": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.0.tgz", + "integrity": "sha1-wnO4xPEpRXI+jcnSWAPYk0Pl8o4=", + "requires": { + "argv": "0.0.2", + "request": "2.81.0", + "urlgrey": "0.4.4" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "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.18", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2058,17 +2503,17 @@ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "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==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" }, "commondir": { "version": "1.0.1", @@ -2094,10 +2539,9 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.3", + "readable-stream": "2.3.4", "typedarray": "0.0.6" } }, @@ -2159,6 +2603,19 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2175,17 +2632,30 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "requires": { "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" + "js-yaml": "3.10.0", + "parse-json": "4.0.0", + "require-from-string": "2.0.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "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==", + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + } } }, "counterup": { @@ -2193,7 +2663,7 @@ "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", "requires": { - "jquery": "3.2.1", + "jquery": "3.3.1", "waypoints": "4.0.1" } }, @@ -2214,7 +2684,7 @@ "cipher-base": "1.0.4", "inherits": "2.0.3", "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "sha.js": "2.4.10" } }, "create-hmac": { @@ -2227,15 +2697,16 @@ "inherits": "2.0.3", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "sha.js": "2.4.10" } }, "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.1", + "shebang-command": "1.2.0", "which": "1.3.0" } }, @@ -2261,8 +2732,8 @@ "inherits": "2.0.3", "pbkdf2": "3.0.14", "public-encrypt": "4.0.0", - "randombytes": "2.0.5", - "randomfill": "1.0.3" + "randombytes": "2.0.6", + "randomfill": "1.0.4" } }, "crypto-js": { @@ -2281,6 +2752,11 @@ "urix": "0.1.0" }, "dependencies": { + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=" + }, "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", @@ -2288,6 +2764,22 @@ "requires": { "amdefine": "1.0.1" } + }, + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" } } }, @@ -2297,9 +2789,9 @@ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" }, "css-loader": { - "version": "0.28.8", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.8.tgz", - "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==", + "version": "0.28.10", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.10.tgz", + "integrity": "sha512-X1IJteKnW9Llmrd+lJ0f7QZHh9Arf+11S7iRcoT2+riig3BK0QaCaOtubAulMK6Itbo08W6d3l8sW21r+Jhp5Q==", "requires": { "babel-code-frame": "6.26.0", "css-selector-tokenizer": "0.7.0", @@ -2309,7 +2801,7 @@ "lodash.camelcase": "4.3.0", "object-assign": "4.1.1", "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-extract-imports": "1.2.0", "postcss-modules-local-by-default": "1.2.0", "postcss-modules-scope": "1.1.0", "postcss-modules-values": "1.3.0", @@ -2424,13 +2916,15 @@ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "0.10.37" - } + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=" }, "dashdash": { "version": "1.14.1", @@ -2457,6 +2951,11 @@ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2493,6 +2992,11 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2514,6 +3018,13 @@ "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "defined": { @@ -2536,6 +3047,20 @@ "rimraf": "2.6.2" }, "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -2555,9 +3080,9 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.0", @@ -2573,6 +3098,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -2593,7 +3123,7 @@ "requires": { "bn.js": "4.11.8", "miller-rabin": "4.0.1", - "randombytes": "2.0.5" + "randombytes": "2.0.6" } }, "doctrine": { @@ -2605,10 +3135,15 @@ "esutils": "2.0.2" } }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "domexception": { "version": "1.0.1", @@ -2623,6 +3158,17 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "duplexify": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.4", + "stream-shift": "1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -2640,6 +3186,11 @@ "zrender": "4.0.1" } }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2650,18 +3201,10 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" }, - "electron-releases": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz", - "integrity": "sha512-cyKFD1bTE/UgULXfaueIN1k5EPFzs+FRc/rvCY5tIynefAPqopQEgjr0EzY+U3Dqrk/G4m9tXSPuZ77v6dL/Rw==" - }, "electron-to-chromium": { - "version": "1.3.30", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz", - "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==", - "requires": { - "electron-releases": "2.1.0" - } + "version": "1.3.34", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz", + "integrity": "sha1-2TSY9AORuwwWpgPYJBuZUUBBV+0=" }, "elegant-spinner": { "version": "1.0.1", @@ -2688,9 +3231,9 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.12", @@ -2709,24 +3252,32 @@ } }, "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", + "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", "requires": { "graceful-fs": "4.1.11", "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "tapable": "1.0.0" } }, "errno": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "1.0.1" } }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "requires": { + "string-template": "0.2.1", + "xtend": "4.0.1" + } + }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -2757,74 +3308,15 @@ "is-symbol": "1.0.1" } }, - "es5-ext": { - "version": "0.10.37", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", - "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-symbol": "3.1.1" - } + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "escape-latex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.0.0.tgz", + "integrity": "sha512-oogO9Cg3n/4nspF34CTfXFymgI79skca66DebIIQgxVy6qRVqczl/ji2YGAqhFCzpD/oAt/fCWF4qlhMAfda+g==" }, "escape-string-regexp": { "version": "1.0.5", @@ -2850,47 +3342,36 @@ } } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } - }, "eslint": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz", - "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.1.tgz", + "integrity": "sha512-gPSfpSRCHre1GLxGmO68tZNxOlL2y7xBd95VcLD+Eo4S2js31YoMum3CAQIOaxY24hqYOMksMvW38xuuWKQTgw==", "dev": true, "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.3.0", + "chalk": "2.3.1", "concat-stream": "1.6.0", "cross-spawn": "5.1.0", "debug": "3.1.0", "doctrine": "2.1.0", "eslint-scope": "3.7.1", "eslint-visitor-keys": "1.0.0", - "espree": "3.5.2", + "espree": "3.5.3", "esquery": "1.0.0", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "11.1.0", + "globals": "11.3.0", "ignore": "3.3.7", "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.0.1", + "inquirer": "3.0.6", + "is-resolvable": "1.1.0", "js-yaml": "3.10.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "minimatch": "3.0.4", "mkdirp": "0.5.1", "natural-compare": "1.4.0", @@ -2899,10 +3380,10 @@ "pluralize": "7.0.0", "progress": "2.0.0", "require-uncached": "1.0.3", - "semver": "5.4.1", + "semver": "5.5.0", "strip-ansi": "4.0.0", "strip-json-comments": "2.0.1", - "table": "4.0.2", + "table": "4.0.3", "text-table": "0.2.0" }, "dependencies": { @@ -2922,25 +3403,14 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "supports-color": "5.2.0" } }, "debug": { @@ -2959,15 +3429,15 @@ "dev": true }, "globals": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", - "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", + "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", "dev": true }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "js-yaml": { @@ -2976,7 +3446,7 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", + "argparse": "1.0.10", "esprima": "4.0.0" } }, @@ -2990,12 +3460,12 @@ } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -3004,7 +3474,6 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, "requires": { "esrecurse": "4.2.0", "estraverse": "4.2.0" @@ -3017,12 +3486,12 @@ "dev": true }, "espree": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", - "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.3.tgz", + "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", "dev": true, "requires": { - "acorn": "5.3.0", + "acorn": "5.4.1", "acorn-jsx": "3.0.1" } }, @@ -3064,15 +3533,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.37" - } - }, "eventemitter3": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", @@ -3093,9 +3553,9 @@ } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -3104,18 +3564,6 @@ "p-finally": "1.0.0", "signal-exit": "3.0.2", "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - } } }, "exit": { @@ -3144,6 +3592,14 @@ "fill-range": "2.2.3" } }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "1.0.1" + } + }, "expect": { "version": "22.4.0", "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", @@ -3164,11 +3620,6 @@ "requires": { "color-convert": "1.9.1" } - }, - "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" } } }, @@ -3206,8 +3657,8 @@ "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", "escape-html": "1.0.3", "etag": "1.8.1", "finalhandler": "1.1.0", @@ -3217,7 +3668,7 @@ "on-finished": "2.3.0", "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "2.0.3", "qs": "6.5.1", "range-parser": "1.2.0", "safe-buffer": "5.1.1", @@ -3225,7 +3676,7 @@ "serve-static": "1.13.1", "setprototypeof": "1.1.0", "statuses": "1.3.1", - "type-is": "1.6.15", + "type-is": "1.6.16", "utils-merge": "1.0.1", "vary": "1.1.2" }, @@ -3277,6 +3728,13 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { "is-extglob": "1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + } } }, "extsprintf": { @@ -3290,9 +3748,9 @@ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -3344,12 +3802,12 @@ } }, "file-loader": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz", - "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.9.tgz", + "integrity": "sha512-6ql03hOSoJHBkTB+3De/f7NJse+JXkUwvAf3y4Q5rIcTD0kqJiE3btvLnDcZT+P4t1QYLb9dJ9EI4auzfo3wFA==", "requires": { "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "schema-utils": "0.4.5" } }, "file-type": { @@ -3372,16 +3830,6 @@ "randomatic": "1.1.7", "repeat-element": "1.1.2", "repeat-string": "1.6.1" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } } }, "finalhandler": { @@ -3390,7 +3838,7 @@ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", + "encodeurl": "1.0.2", "escape-html": "1.0.3", "on-finished": "2.3.0", "parseurl": "1.3.2", @@ -3404,7 +3852,7 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "requires": { "commondir": "1.0.1", - "make-dir": "1.1.0", + "make-dir": "1.2.0", "pkg-dir": "2.0.0" } }, @@ -3421,6 +3869,14 @@ "locate-path": "2.0.0" } }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "2.3.4" + } + }, "flat": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz", @@ -3447,10 +3903,24 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flow-parser": { + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.66.0.tgz", + "integrity": "sha1-vlg/77ARkqpRZEFdMaYkGzVxiYM=" + }, + "flush-write-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.4" + } + }, "follow-redirects": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.3.0.tgz", - "integrity": "sha1-9oSHH8EW0uMp/aVe9naH9Pq8kFw=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", + "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", "requires": { "debug": "3.1.0" }, @@ -3471,9 +3941,9 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { "for-in": "1.0.2" } @@ -3491,7 +3961,7 @@ "forex.analytics": { "version": "github:mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14", "requires": { - "nan": "2.8.0" + "nan": "2.9.2" } }, "form-data": { @@ -3500,8 +3970,8 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "formidable": { @@ -3532,6 +4002,26 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.4" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.4" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3543,20 +4033,18 @@ "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "optional": true, "requires": { - "nan": "2.8.0", + "nan": "2.9.2", "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "optional": true, "requires": { "co": "4.6.0", @@ -3565,19 +4053,16 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -3586,43 +4071,36 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -3630,24 +4108,21 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -3655,61 +4130,51 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3717,16 +4182,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -3734,31 +4197,26 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -3766,25 +4224,21 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -3794,13 +4248,11 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -3810,8 +4262,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -3821,8 +4272,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -3837,8 +4287,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3846,16 +4295,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3867,19 +4314,16 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -3888,14 +4332,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -3905,13 +4347,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": 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=", + "bundled": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -3921,8 +4361,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3930,44 +4369,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -3975,20 +4407,17 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -3996,20 +4425,17 @@ }, "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=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -4020,56 +4446,48 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -4087,8 +4505,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -4097,8 +4514,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4109,45 +4525,38 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4156,36 +4565,30 @@ }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4196,16 +4599,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4218,8 +4619,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4248,47 +4648,40 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -4304,16 +4697,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4322,36 +4713,31 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4360,8 +4746,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "optional": true, "requires": { "debug": "2.6.8", @@ -4376,8 +4761,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -4385,8 +4769,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4394,31 +4777,26 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -4426,8 +4804,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -4435,8 +4812,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, @@ -4475,6 +4851,26 @@ "string-width": "1.0.2", "strip-ansi": "3.0.1", "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "gaze": { @@ -4542,7 +4938,7 @@ "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.1.4", @@ -4552,7 +4948,7 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "0.2.0", "qs": "6.4.0", @@ -4560,7 +4956,7 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "uuid": "3.2.1" } }, "tunnel-agent": { @@ -4600,7 +4996,7 @@ "integrity": "sha512-pWWT+jjaVLrFUp2i8qIrBZoD/eBmY5XBu2MELQIc+pbgKdBJXefR5gVi/R9zaccoNbHZvpFztWCWrWhtXOxiKw==", "requires": { "axios": "0.16.2", - "lodash": "4.17.4", + "lodash": "4.17.5", "qs": "6.5.1", "shortid": "2.2.8", "ws": "2.3.1" @@ -4691,6 +5087,23 @@ } } }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "requires": { + "got": "7.1.0", + "is-plain-obj": "1.1.0" + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "requires": { + "gh-got": "6.0.0" + } + }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", @@ -4704,6 +5117,30 @@ "path-is-absolute": "1.0.1" } }, + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "requires": { + "glob": "7.1.2", + "yargs": "1.2.6" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=" + }, + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", + "requires": { + "minimist": "0.1.0" + } + } + } + }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", @@ -4711,6 +5148,21 @@ "requires": { "glob-parent": "2.0.0", "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } } }, "glob-parent": { @@ -4719,6 +5171,59 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "1.0.2", + "is-windows": "1.0.2", + "resolve-dir": "1.0.1" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "1.0.2", + "which": "1.3.0" } }, "globals": { @@ -4727,13 +5232,11 @@ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { "array-union": "1.0.2", - "arrify": "1.0.1", "glob": "7.1.2", "object-assign": "4.1.1", "pify": "2.3.0", @@ -4743,8 +5246,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -4754,7 +5256,7 @@ "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", "requires": { "glob": "7.1.2", - "lodash": "4.17.4", + "lodash": "4.17.5", "minimatch": "3.0.4" } }, @@ -4784,6 +5286,14 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "4.17.5" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -4814,22 +5324,27 @@ "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=" + }, "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "has-symbol-support-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", - "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "requires": { - "has-symbol-support-x": "1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-unicode": { @@ -4845,6 +5360,13 @@ "get-value": "2.0.6", "has-values": "1.0.0", "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "has-values": { @@ -4937,6 +5459,14 @@ "os-tmpdir": "1.0.2" } }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "requires": { + "parse-passwd": "1.0.0" + } + }, "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", @@ -4966,6 +5496,11 @@ "statuses": "1.3.1" }, "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, "setprototypeof": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", @@ -4974,9 +5509,9 @@ } }, "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=" + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" }, "http-signature": { "version": "1.1.1", @@ -5011,18 +5546,6 @@ "is-ci": "1.1.0", "normalize-path": "1.0.0", "strip-indent": "2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=" - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" - } } }, "iconv-lite": { @@ -5040,7 +5563,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "requires": { - "postcss": "6.0.16" + "postcss": "6.0.19" }, "dependencies": { "ansi-styles": { @@ -5052,38 +5575,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -5092,11 +5605,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -5106,7 +5619,7 @@ "resolved": "https://registry.npmjs.org/idgen/-/idgen-2.0.2.tgz", "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=", "requires": { - "commander": "2.12.2" + "commander": "2.14.1" } }, "ieee754": { @@ -5114,6 +5627,11 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, "ignore": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", @@ -5139,8 +5657,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "in-publish": { "version": "2.0.0", @@ -5179,94 +5696,29 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", + "ansi-escapes": "1.4.0", + "chalk": "1.1.3", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "2.1.0", "figures": "2.0.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "mute-stream": "0.0.7", "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", + "rx": "4.1.0", "string-width": "2.1.1", - "strip-ansi": "4.0.0", + "strip-ansi": "3.0.1", "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } } }, "int": { @@ -5280,9 +5732,9 @@ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", "requires": { "loose-envify": "1.3.1" } @@ -5298,9 +5750,9 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" }, "is-absolute-url": { "version": "2.1.0", @@ -5422,9 +5874,9 @@ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.0.2", @@ -5435,12 +5887,9 @@ } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-generator-fn": { "version": "1.0.0", @@ -5448,11 +5897,11 @@ "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=" }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "2.1.1" } }, "is-integer": { @@ -5464,13 +5913,19 @@ "is-finite": "1.0.2" } }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==" + }, "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==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "requires": { "generate-function": "2.0.0", "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", "jsonpointer": "4.0.1", "xtend": "4.0.1" } @@ -5551,6 +6006,13 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "is-posix-bracket": { @@ -5587,9 +6049,9 @@ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" }, "is-resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz", - "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, "is-retry-allowed": { @@ -5597,6 +6059,14 @@ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "requires": { + "scoped-regex": "1.0.0" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -5646,15 +6116,28 @@ "integrity": "sha1-Dj+XWbWB2Z3YUIbw7Cp0kJz63QE=" }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "requires": { + "binaryextensions": "2.1.1", + "editions": "1.3.4", + "textextensions": "2.2.0" + } + }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", @@ -5665,19 +6148,19 @@ } }, "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "version": "2.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", + "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", "requires": { "exit": "0.1.2", "glob": "7.1.2", - "jasmine-core": "2.8.0" + "jasmine-core": "2.99.1" } }, "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=" + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=" }, "javascript-natural-sort": { "version": "0.7.1", @@ -5685,28 +6168,23 @@ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=" }, "jest-config": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.0.tgz", - "integrity": "sha512-hZs8qHjCybOpqni0Kwt40eAavYN/3KnJJwYxSJsBRedJ98IgGSiI18SjybCSccKayA7eHgw1A+dLkHcfI4LItQ==", + "version": "22.4.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.2.tgz", + "integrity": "sha512-oG31qYO73/3vj/Q8aM2RgzmHndTkz9nRk8ISybfuJqqbf0RW7OUjHVOZPLOUiwLWtz52Yq2HkjIblsyhbA7vrg==", "requires": { "chalk": "2.3.1", "glob": "7.1.2", - "jest-environment-jsdom": "22.4.0", - "jest-environment-node": "22.4.0", + "jest-environment-jsdom": "22.4.1", + "jest-environment-node": "22.4.1", "jest-get-type": "22.1.0", - "jest-jasmine2": "22.4.0", + "jest-jasmine2": "22.4.2", "jest-regex-util": "22.1.0", - "jest-resolve": "22.4.0", - "jest-util": "22.4.0", - "jest-validate": "22.4.0", + "jest-resolve": "22.4.2", + "jest-util": "22.4.1", + "jest-validate": "22.4.2", "pretty-format": "22.4.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -5730,32 +6208,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" - }, - "jest-validate": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.0.tgz", - "integrity": "sha512-l5JwbIAso8jGp/5/Dy86BCVjOra/Rb81wyXcFTGa4VxbtIh4AEOp2WixgprHLwp+YlUrHugZwaGyuagjB+iB+A==", - "requires": { - "chalk": "2.3.1", - "jest-config": "22.4.0", - "jest-get-type": "22.1.0", - "leven": "2.1.0", - "pretty-format": "22.4.0" - } - }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - } - }, "supports-color": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", @@ -5777,11 +6229,6 @@ "pretty-format": "22.4.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -5805,20 +6252,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" - }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - } - }, "supports-color": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", @@ -5830,30 +6263,34 @@ } }, "jest-environment-jsdom": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.0.tgz", - "integrity": "sha512-SAUCte4KFLaD2YhYwHFVEI2GkR4BHqHJsnbFgmQMGgHnZ2CfjSZE8Bnb+jlarbxIG4GXl31+2e9rjBpzbY9gKQ==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz", + "integrity": "sha512-x/JzAoH+dWPBnIMv5OQKiIR0TYf6UvbRjsIuDZ11yDFXkHKGJZg6jNnLAsokAm3cq9kUa2hH5BPUC9XU4n1ELQ==", "requires": { "jest-mock": "22.2.0", - "jest-util": "22.4.0", + "jest-util": "22.4.1", "jsdom": "11.6.2" } }, "jest-environment-node": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.0.tgz", - "integrity": "sha512-ihSKa2MU5jkAhmRJ17FU4nisbbfW6spvl6Jtwmm5W9kmTVa2sa9UoHWbOWAb7HXuLi3PGGjzTfEt5o3uIzisnQ==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.1.tgz", + "integrity": "sha512-wj9+zzfRgnUbm5VwFOCGgG1QmbucUyrjPKBKUJdLW8K5Ss5zrNc1k+v6feZhFg6sS3ZGnjgtIyklaxEARxu+LQ==", "requires": { "jest-mock": "22.2.0", - "jest-util": "22.4.0" + "jest-util": "22.4.1" } }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" + }, "jest-jasmine2": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.0.tgz", - "integrity": "sha512-oL7bNLfEL9jPVjmiwqQuwrAJ/5ddmKHSpns0kCpAmv1uQ47Q5aC9zBTXZbDWP5GVbVHj2hbYtNbkwTiXJr0e8w==", + "version": "22.4.2", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz", + "integrity": "sha512-KZaIHpXQ0AIlvQJFCU0uoXxtz5GG47X14r9upMe7VXE55UazoMZBFnQb9TX2HoYX2/AxJYnjHuvwKVCFqOrEtw==", "requires": { - "callsites": "2.0.0", "chalk": "2.3.1", "co": "4.6.0", "expect": "22.4.0", @@ -5863,6 +6300,7 @@ "jest-matcher-utils": "22.4.0", "jest-message-util": "22.4.0", "jest-snapshot": "22.4.0", + "jest-util": "22.4.1", "source-map-support": "0.5.3" }, "dependencies": { @@ -5874,11 +6312,6 @@ "color-convert": "1.9.1" } }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, "chalk": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", @@ -5927,11 +6360,6 @@ "pretty-format": "22.4.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -5955,20 +6383,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" - }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - } - }, "supports-color": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", @@ -6014,6 +6428,47 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, "supports-color": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", @@ -6035,9 +6490,9 @@ "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==" }, "jest-resolve": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.0.tgz", - "integrity": "sha512-Vs/5VeJEHLpB0ubpYuU9QpBjcCUZRHoHnoV58ZC+N3EXyMJr/MgoqUNpo4OHGQERWlUpvl4YLAAO5uxSMF2VIg==", + "version": "22.4.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.2.tgz", + "integrity": "sha512-P1hSfcc2HJYT5t+WPu/11OfFMa7m8pBb2Gf2vm6W9OVs7YTXQ5RCC3nDqaYZQaTqxEM1ZZaTcQGcE6U2xMOsqQ==", "requires": { "browser-resolve": "1.11.2", "chalk": "2.3.1" @@ -6089,11 +6544,6 @@ "pretty-format": "22.4.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -6117,15 +6567,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - } - }, "supports-color": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", @@ -6137,16 +6578,17 @@ } }, "jest-util": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.0.tgz", - "integrity": "sha512-652EArz3XScAGAUMhbny7FrFGlmJkp+56CO+9RTrKPtGfbtVDF2WB2D8G+6D6zorDmDW5hNtKNIGNdGfG2kj1g==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.1.tgz", + "integrity": "sha512-9ySBdJY2qVWpg0OvZbGcFXE2NgwccpZVj384E9bx7brKFc7l5anpqah15mseWcz7FLDk7/N+LyYgqFme7Rez2Q==", "requires": { "callsites": "2.0.0", "chalk": "2.3.1", "graceful-fs": "4.1.11", "is-ci": "1.1.0", "jest-message-util": "22.4.0", - "mkdirp": "0.5.1" + "mkdirp": "0.5.1", + "source-map": "0.6.1" }, "dependencies": { "ansi-styles": { @@ -6157,10 +6599,55 @@ "color-convert": "1.9.1" } }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "jest-validate": { + "version": "22.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.2.tgz", + "integrity": "sha512-TLOgc/EULFBjMCAqZp5OdVvjxV16DZpfthd/UyPzM6lRmgWluohNVemAdnL3JvugU1s2Q2npcIqtbOtiPjaZ0A==", + "requires": { + "chalk": "2.3.1", + "jest-config": "22.4.2", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "22.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "chalk": { "version": "2.3.1", @@ -6188,14 +6675,14 @@ } }, "jquery": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" }, "js-base64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", - "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==" }, "js-tokens": { "version": "3.0.2", @@ -6207,7 +6694,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "requires": { - "argparse": "1.0.9", + "argparse": "1.0.10", "esprima": "2.7.3" } }, @@ -6217,16 +6704,108 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, - "jsdom": { - "version": "11.6.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", - "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", + "jscodeshift": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz", + "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==", "requires": { - "abab": "1.0.4", - "acorn": "5.3.0", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "browser-process-hrtime": "0.1.2", + "async": "1.5.2", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-stage-1": "6.24.1", + "babel-register": "6.26.0", + "babylon": "6.18.0", + "colors": "1.1.2", + "flow-parser": "0.66.0", + "lodash": "4.17.5", + "micromatch": "2.3.11", + "node-dir": "0.1.8", + "nomnom": "1.8.1", + "recast": "0.12.9", + "temp": "0.8.3", + "write-file-atomic": "1.3.4" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "recast": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", + "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", + "requires": { + "ast-types": "0.10.1", + "core-js": "2.5.3", + "esprima": "4.0.0", + "private": "0.1.8", + "source-map": "0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "jsdom": { + "version": "11.6.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", + "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", + "requires": { + "abab": "1.0.4", + "acorn": "5.4.1", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "browser-process-hrtime": "0.1.2", "content-type-parser": "1.0.2", "cssom": "0.3.2", "cssstyle": "0.2.37", @@ -6246,7 +6825,7 @@ "webidl-conversions": "4.0.2", "whatwg-encoding": "1.0.3", "whatwg-url": "6.4.0", - "ws": "4.0.0", + "ws": "4.1.0", "xml-name-validator": "3.0.0" }, "dependencies": { @@ -6298,17 +6877,7 @@ "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.17" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - } + "mime-types": "2.1.18" } }, "har-validator": { @@ -6359,7 +6928,7 @@ "aws-sign2": "0.7.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.3.2", @@ -6369,7 +6938,7 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", @@ -6377,7 +6946,7 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "uuid": "3.2.1" } }, "sntp": { @@ -6403,11 +6972,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, "json-parse-better-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", @@ -6449,7 +7013,7 @@ "dev": true, "requires": { "cli-table": "0.3.1", - "commander": "2.12.2", + "commander": "2.14.1", "debug": "3.1.0", "flat": "4.0.0", "lodash.clonedeep": "4.5.0", @@ -6534,9 +7098,12 @@ } }, "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "0.1.0" + } }, "lcid": { "version": "1.0.0", @@ -6579,11 +7146,11 @@ "execa": "0.9.0", "find-parent-dir": "0.3.0", "is-glob": "4.0.0", - "jest-validate": "22.4.0", + "jest-validate": "22.4.2", "listr": "0.13.0", "lodash": "4.17.5", "log-symbols": "2.2.0", - "micromatch": "3.1.8", + "micromatch": "3.1.9", "npm-which": "3.0.1", "p-map": "1.2.0", "path-is-inside": "1.0.2", @@ -6593,11 +7160,6 @@ "stringify-object": "3.2.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, "ansi-styles": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", @@ -6606,53 +7168,6 @@ "color-convert": "1.9.1" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "kind-of": "6.0.2", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, "chalk": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", @@ -6663,32 +7178,6 @@ "supports-color": "5.2.0" } }, - "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" - }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.10.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.1" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -6697,337 +7186,58 @@ "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==" + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "execa": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", - "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "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" + "has-flag": "3.0.0" } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + } + } + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "requires": { + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "figures": "1.7.0", + "indent-string": "2.1.0", + "is-observable": "0.2.0", + "is-promise": "2.1.0", + "is-stream": "1.1.0", + "listr-silent-renderer": "1.1.1", + "listr-update-renderer": "0.4.0", + "listr-verbose-renderer": "0.4.1", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "ora": "0.2.3", + "p-map": "1.2.0", + "rxjs": "5.5.6", + "stream-to-observable": "0.2.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==" - }, - "jest-validate": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.0.tgz", - "integrity": "sha512-l5JwbIAso8jGp/5/Dy86BCVjOra/Rb81wyXcFTGa4VxbtIh4AEOp2WixgprHLwp+YlUrHugZwaGyuagjB+iB+A==", - "requires": { - "chalk": "2.3.1", - "jest-config": "22.4.0", - "jest-get-type": "22.1.0", - "leven": "2.1.0", - "pretty-format": "22.4.0" - } - }, - "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==", - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" - }, - "micromatch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.8.tgz", - "integrity": "sha512-/XeuOQqYg+B5kwjDWekXseSwGS7CzE0w9Gjo4Cjkf/uFitNh47NrZHAY2vp/oS2YQVfebPIdbEIvgdy+kIcAog==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.1", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" - } - }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - } - }, - "require-from-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", - "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=" - }, - "staged-git-files": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", - "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=" - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "listr": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", - "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", - "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-observable": "0.2.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.4.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.6", - "stream-to-observable": "0.2.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "requires": { "chalk": "1.1.3" } @@ -7134,6 +7344,14 @@ "strip-bom": "2.0.0" }, "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -7166,9 +7384,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, "lodash._baseassign": { "version": "3.2.0", @@ -7267,9 +7485,9 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, "lodash.mergewith": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=" + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" }, "lodash.restparam": { "version": "3.6.1", @@ -7302,7 +7520,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "2.3.0" + "chalk": "2.3.1" }, "dependencies": { "ansi-styles": { @@ -7314,26 +7532,26 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -7347,11 +7565,6 @@ "cli-cursor": "1.0.2" }, "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, "cli-cursor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", @@ -7376,11 +7589,6 @@ } } }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", @@ -7426,9 +7634,9 @@ "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=" }, "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", "requires": { "pify": "3.0.0" } @@ -7462,17 +7670,18 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" }, "mathjs": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.19.0.tgz", - "integrity": "sha512-E1cKiSclqkPyrndVaE1gQ/IqveCRvTGBDcM+AT6lDK0tTAzUpI3kHdsq/9HKNRn0+v+i2m6arZ6PxBtATXQlxw==", + "version": "3.20.2", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.20.2.tgz", + "integrity": "sha512-3f6/+uf1cUtIz1rYFz775wekl/UEDSQ3mU6xdxW7qzpvvhc2v28i3UtLsGTRB+u8OqDWoSX6Dz8gehaGFs6tCA==", "requires": { "complex.js": "2.0.4", "decimal.js": "9.0.1", + "escape-latex": "1.0.0", "fraction.js": "4.0.4", "javascript-natural-sort": "0.7.1", "seed-random": "2.2.0", "tiny-emitter": "2.0.2", - "typed-function": "0.10.6" + "typed-function": "0.10.7" } }, "md5.js": { @@ -7494,7 +7703,56 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "1.2.0" + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "requires": { + "through2": "2.0.3", + "vinyl": "1.2.0", + "vinyl-file": "2.0.0" + }, + "dependencies": { + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "mem-fs-editor": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz", + "integrity": "sha1-3Qpuryu4prN3QAZ6pUnrUwEFr58=", + "requires": { + "commondir": "1.0.1", + "deep-extend": "0.4.2", + "ejs": "2.5.7", + "glob": "7.1.2", + "globby": "6.1.0", + "mkdirp": "0.5.1", + "multimatch": "2.1.0", + "rimraf": "2.6.2", + "through2": "2.0.3", + "vinyl": "2.1.0" } }, "memory-fs": { @@ -7502,8 +7760,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.3" + "errno": "0.1.7", + "readable-stream": "2.3.4" } }, "meow": { @@ -7539,62 +7797,284 @@ "integrity": "sha1-oannMhcBT01AGqH+Vp6NdReB1yY=" }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "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" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, "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=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "1.33.0" } }, "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "mimic-response": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "0.1.1" + } + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -7610,7 +8090,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -7618,6 +8098,23 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "requires": { + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "2.0.1", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -7682,22 +8179,35 @@ "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" }, "mongodb": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.1.tgz", - "integrity": "sha1-J47oAGJX7CJ5hZSmJZVGgl1t4bI=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.3.tgz", + "integrity": "sha512-BuYbPwjrIS/Ik/AUegjnYb8ncOa4dj8tzP4eSCsaqjP9yjmIWzzKrAXBY+s8xy6xkTJxgvbuTFub6cIwpmHRXQ==", "requires": { - "mongodb-core": "3.0.1" + "mongodb-core": "3.0.3" } }, "mongodb-core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.1.tgz", - "integrity": "sha1-/23Dbulv9ZaVPYCmhA1nMbyS7+0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.3.tgz", + "integrity": "sha512-AkEiYeq4PZrgoKPZ32q2nL2xFe9iswOgefMipS2YHJHX8DCFAXmYr1aFxefAWisinxI/nd57nBMSe4mrm3yV1g==", "requires": { "bson": "1.0.4", "require_optional": "1.0.1" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "moving-averages": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/moving-averages/-/moving-averages-4.0.5.tgz", @@ -7708,15 +8218,26 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "requires": { + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==" }, "nanomatch": { "version": "1.2.9", @@ -7734,7 +8255,7 @@ "object.pick": "1.3.0", "regex-not": "1.0.2", "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -7764,10 +8285,15 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", + "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==" + }, "node-bittrex-api": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/node-bittrex-api/-/node-bittrex-api-0.8.2.tgz", - "integrity": "sha1-FRJMt8FruGYRBIdMkA8i5WUUF9E=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/node-bittrex-api/-/node-bittrex-api-0.8.3.tgz", + "integrity": "sha1-hJ1NpcIXAXytp0mkbOF4j8OX1/M=", "requires": { "cloudscraper": "1.4.1", "jsonic": "0.3.0", @@ -7776,6 +8302,11 @@ "signalr-client": "0.0.17" } }, + "node-dir": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz", + "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=" + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -7802,7 +8333,7 @@ "mkdirp": "0.5.1", "nopt": "3.0.6", "npmlog": "4.1.2", - "osenv": "0.1.4", + "osenv": "0.1.5", "request": "2.76.0", "rimraf": "2.6.2", "semver": "5.3.0", @@ -7828,7 +8359,7 @@ "console-browserify": "1.1.0", "constants-browserify": "1.0.0", "crypto-browserify": "3.12.0", - "domain-browser": "1.1.7", + "domain-browser": "1.2.0", "events": "1.1.1", "https-browserify": "1.0.0", "os-browserify": "0.3.0", @@ -7836,11 +8367,11 @@ "process": "0.11.10", "punycode": "1.4.1", "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", + "readable-stream": "2.3.4", "stream-browserify": "2.0.1", - "stream-http": "2.7.2", + "stream-http": "2.8.0", "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", + "timers-browserify": "2.0.6", "tty-browserify": "0.0.0", "url": "0.11.0", "util": "0.10.3", @@ -7877,10 +8408,10 @@ "in-publish": "2.0.0", "lodash.assign": "4.2.0", "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.0", + "lodash.mergewith": "4.6.1", "meow": "3.7.0", "mkdirp": "0.5.1", - "nan": "2.8.0", + "nan": "2.9.2", "node-gyp": "3.6.2", "npmlog": "4.1.2", "request": "2.79.0", @@ -7889,14 +8420,23 @@ "true-case-path": "1.0.2" }, "dependencies": { + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { "chalk": "1.1.3", - "commander": "2.12.2", - "is-my-json-valid": "2.17.1", + "commander": "2.14.1", + "is-my-json-valid": "2.17.2", "pinkie-promise": "2.0.1" } }, @@ -7908,7 +8448,7 @@ "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.11.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.1.4", @@ -7918,13 +8458,13 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "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" + "uuid": "3.2.1" } } } @@ -7938,11 +8478,11 @@ "bl": "1.2.1", "bluebird": "3.5.1", "debug": "3.1.0", - "depd": "1.1.1", - "eventemitter3": "3.0.0", + "depd": "1.1.2", + "eventemitter3": "3.0.1", "file-type": "3.9.0", "mime": "1.6.0", - "pump": "2.0.0", + "pump": "2.0.1", "request": "2.83.0", "request-promise": "4.2.2" }, @@ -7962,7 +8502,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "caseless": { @@ -7983,7 +8523,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } } } @@ -7997,18 +8537,18 @@ } }, "eventemitter3": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.0.tgz", - "integrity": "sha512-62TxCtz4m2LRaOERVEvLJJ4A6rsg8lC9Xm+FLg2y/1fB/v4ZZ9JCOn+/Ppl5KkH6sRih6bhix724PVanmXYZJQ==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.1.tgz", + "integrity": "sha512-QOCPu979MMWX9XNlfRZoin+Wm+bK1SP7vv3NGUniYwuSJK/+cPA10blMaeRgzg31RvoSFk6FsCDVa4vNryBTGA==" }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "har-validator": { @@ -8027,14 +8567,14 @@ "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", - "hoek": "4.2.0", + "hoek": "4.2.1", "sntp": "2.1.0" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "http-signature": { "version": "1.2.0", @@ -8064,17 +8604,17 @@ "aws-sign2": "0.7.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.3.1", + "form-data": "2.3.2", "har-validator": "5.0.3", "hawk": "6.0.2", "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", @@ -8082,7 +8622,7 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "uuid": "3.2.1" } }, "sntp": { @@ -8090,7 +8630,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "tunnel-agent": { @@ -8148,6 +8688,42 @@ "resolved": "https://registry.npmjs.org/node-xmpp-tls-connect/-/node-xmpp-tls-connect-1.0.1.tgz", "integrity": "sha1-kazkOsJrE4hhsr5HjfnfGdYdxcM=" }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "requires": { + "chalk": "0.4.0", + "underscore": "1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "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=" + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" + } + } + }, "nonce": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nonce/-/nonce-1.0.4.tgz", @@ -8168,17 +8744,14 @@ "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", - "semver": "5.4.1", + "semver": "5.5.0", "validate-npm-package-license": "3.0.1" } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=" }, "normalize-range": { "version": "0.1.2", @@ -8217,7 +8790,7 @@ "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", "requires": { - "commander": "2.12.2", + "commander": "2.14.1", "npm-path": "2.0.4", "which": "1.3.0" } @@ -8343,6 +8916,13 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "object.omit": { @@ -8352,16 +8932,6 @@ "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "1.0.2" - } - } } }, "object.pick": { @@ -8370,6 +8940,13 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "on-finished": { @@ -8393,7 +8970,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "1.2.0" } }, "opencollective": { @@ -8409,41 +8986,6 @@ "opn": "4.0.2" }, "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "inquirer": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", - "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", - "requires": { - "ansi-escapes": "1.4.0", - "chalk": "1.1.3", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.4", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx": "4.1.0", - "string-width": "2.1.1", - "strip-ansi": "3.0.1", - "through": "2.3.8" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "node-fetch": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", @@ -8452,25 +8994,6 @@ "encoding": "0.1.12", "is-stream": "1.1.0" } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } } } }, @@ -8494,13 +9017,6 @@ "prelude-ls": "1.1.2", "type-check": "0.3.2", "wordwrap": "1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - } } }, "options": { @@ -8561,15 +9077,20 @@ "lcid": "1.0.0" } }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=" + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -8580,11 +9101,24 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "requires": { + "p-reduce": "1.0.0" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-lazy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=" + }, "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", @@ -8606,6 +9140,11 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + }, "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", @@ -8624,12 +9163,22 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.4" + } + }, "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "asn1.js": "4.9.2", + "asn1.js": "4.10.1", "browserify-aes": "1.1.1", "create-hash": "1.1.3", "evp_bytestokey": "1.0.3", @@ -8645,16 +9194,37 @@ "is-dotfile": "1.0.3", "is-extglob": "1.0.0", "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.1" + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", @@ -8704,12 +9274,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, - "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 - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -8741,7 +9305,7 @@ "create-hmac": "1.1.6", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "sha.js": "2.4.10" } }, "performance-now": { @@ -8978,7 +9542,7 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "requires": { "chalk": "1.1.3", - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.5.7", "supports-color": "3.2.3" }, @@ -9081,6 +9645,35 @@ "object-assign": "4.1.1", "postcss-load-options": "1.2.0", "postcss-load-plugins": "2.3.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + } } }, "postcss-load-options": { @@ -9090,6 +9683,35 @@ "requires": { "cosmiconfig": "2.2.2", "object-assign": "4.1.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + } } }, "postcss-load-plugins": { @@ -9099,17 +9721,46 @@ "requires": { "cosmiconfig": "2.2.2", "object-assign": "4.1.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + } } }, "postcss-loader": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.10.tgz", - "integrity": "sha512-xQaDcEgJ/2JqFY18zpFkik8vyYs7oS5ZRbrjvDqkP97k2wYWfPT4+qA0m4o3pTSCsz0u26PNqs8ZO9FRUWAqrA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.1.tgz", + "integrity": "sha512-f0J/DWE/hyO9/LH0WHpXkny/ZZ238sSaG3p1SRBtVZnFWUtD7GXIEgHoBg8cnAeRbmEvUxHQptY46zWfwNYj/w==", "requires": { "loader-utils": "1.1.0", - "postcss": "6.0.16", + "postcss": "6.0.19", "postcss-load-config": "1.2.0", - "schema-utils": "0.3.0" + "schema-utils": "0.4.5" }, "dependencies": { "ansi-styles": { @@ -9121,38 +9772,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -9161,11 +9802,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9205,8 +9846,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000789", - "electron-to-chromium": "1.3.30" + "caniuse-db": "1.0.30000810", + "electron-to-chromium": "1.3.34" } } } @@ -9258,11 +9899,11 @@ } }, "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "requires": { - "postcss": "6.0.16" + "postcss": "6.0.19" }, "dependencies": { "ansi-styles": { @@ -9274,38 +9915,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -9314,11 +9945,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9329,7 +9960,7 @@ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" + "postcss": "6.0.19" }, "dependencies": { "ansi-styles": { @@ -9341,38 +9972,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -9381,11 +10002,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9396,7 +10017,7 @@ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" + "postcss": "6.0.19" }, "dependencies": { "ansi-styles": { @@ -9408,38 +10029,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -9448,11 +10059,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9463,7 +10074,7 @@ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "requires": { "icss-replace-symbols": "1.1.0", - "postcss": "6.0.16" + "postcss": "6.0.19" }, "dependencies": { "ansi-styles": { @@ -9475,38 +10086,28 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.1", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.2.0" } }, "source-map": { @@ -9515,11 +10116,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9640,6 +10241,40 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "prettier": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", + "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==" + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" + }, + "pretty-format": { + "version": "22.4.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", + "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + } + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -9651,22 +10286,27 @@ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, "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=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" + "ipaddr.js": "1.6.0" } }, "prr": { @@ -9688,18 +10328,28 @@ "browserify-rsa": "4.0.1", "create-hash": "1.1.3", "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "randombytes": "2.0.6" } }, "pump": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.0.tgz", - "integrity": "sha512-6MYypjOvtiXhBSTOD0Zs5eNjCGfnqi5mPsCsW+dgKTxrZzQMZQNpBo3XRkLx7id753f3EeyHLBqzqqUymIolgw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" } }, + "pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "requires": { + "duplexify": "3.5.3", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -9732,7 +10382,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "caseless": { @@ -9758,19 +10408,19 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } } } }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "har-validator": { @@ -9789,14 +10439,14 @@ "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", - "hoek": "4.2.0", + "hoek": "4.2.1", "sntp": "2.1.0" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "http-signature": { "version": "1.2.0", @@ -9826,17 +10476,17 @@ "aws-sign2": "0.7.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.3.1", + "form-data": "2.3.2", "har-validator": "5.0.3", "hawk": "6.0.2", "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", @@ -9844,7 +10494,7 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "uuid": "3.2.1" } }, "sntp": { @@ -9852,7 +10502,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.2.0" + "hoek": "4.2.1" } }, "tunnel-agent": { @@ -9959,19 +10609,19 @@ } }, "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { "safe-buffer": "5.1.1" } }, "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "randombytes": "2.0.5", + "randombytes": "2.0.6", "safe-buffer": "5.1.1" } }, @@ -9991,6 +10641,15 @@ "unpipe": "1.0.0" } }, + "read-chunk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", + "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", + "requires": { + "pify": "3.0.0", + "safe-buffer": "5.1.1" + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -10030,14 +10689,14 @@ } }, "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==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", - "process-nextick-args": "1.0.7", + "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", "string_decoder": "1.0.3", "util-deprecate": "1.0.2" @@ -10050,17 +10709,44 @@ "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", - "readable-stream": "2.3.3", + "readable-stream": "2.3.4", "set-immediate-shim": "1.0.1" } }, + "recast": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.13.2.tgz", + "integrity": "sha512-Xqo0mKljGUWGUhnkdbODk7oJGFrMcpgKQ9cCyZ4y+G9VfoTKdum8nHbf/SxIdKx5aBSZ29VpVy20bTyt7jyC8w==", + "requires": { + "ast-types": "0.10.2", + "esprima": "4.0.0", + "private": "0.1.8", + "source-map": "0.6.1" + }, + "dependencies": { + "ast-types": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.2.tgz", + "integrity": "sha512-ufWX953VU1eIuWqxS0nRDMYlGyFH+yxln5CsmIHlpzEt3fdYqUnRtsFt0XAsQot8OaVCwFqxT1RiwvtzYjeYeg==" + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "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" + "resolve": "1.1.7" } }, "reconnect-core": { @@ -10077,6 +10763,16 @@ "requires": { "indent-string": "2.1.0", "strip-indent": "1.0.1" + }, + "dependencies": { + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "4.0.1" + } + } } }, "reduce-css-calc": { @@ -10149,9 +10845,9 @@ } }, "regex-parser": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.8.tgz", - "integrity": "sha1-2kwM2lqChVkJQWiTD0VfUytv+6w=" + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.9.tgz", + "integrity": "sha512-VncXxOF6uFlYog5prG2j+e2UGJeam5MfNiJnB/qEgo4KTnMm2XrELCg4rNZ6IlaEUZnGlb8aB6lXowCRQtTkkA==" }, "regexpu-core": { "version": "2.0.0", @@ -10211,6 +10907,11 @@ "is-finite": "1.0.2" } }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, "request": { "version": "2.76.0", "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", @@ -10219,7 +10920,7 @@ "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.11.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.1.4", @@ -10229,7 +10930,7 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "node-uuid": "1.4.8", "oauth-sign": "0.8.2", "qs": "6.3.2", @@ -10244,8 +10945,8 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { "chalk": "1.1.3", - "commander": "2.12.2", - "is-my-json-valid": "2.17.1", + "commander": "2.14.1", + "is-my-json-valid": "2.17.2", "pinkie-promise": "2.0.1" } }, @@ -10272,7 +10973,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "request-promise-native": { @@ -10291,9 +10992,9 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", + "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=" }, "require-main-filename": { "version": "1.0.1", @@ -10324,16 +11025,36 @@ "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { "resolve-from": "2.0.0", - "semver": "5.4.1" + "semver": "5.5.0" } }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { - "path-parse": "1.0.5" + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" } }, "resolve-from": { @@ -10409,14 +11130,6 @@ "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "0.1.4" - } - }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -10468,6 +11181,14 @@ "integrity": "sha1-bDkwzHwLR9Na50IBCfZgqt4kAeM=", "dev": true }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "1.2.0" + } + }, "rx": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", @@ -10476,14 +11197,12 @@ "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" }, "rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, "requires": { "rx-lite": "4.0.8" } @@ -10530,7 +11249,7 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "requires": { "glob": "7.1.2", - "lodash": "4.17.4", + "lodash": "4.17.5", "scss-tokenizer": "0.2.3", "yargs": "7.1.0" }, @@ -10540,6 +11259,24 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", @@ -10580,19 +11317,37 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "requires": { - "ajv": "5.5.2" + "ajv": "6.2.0", + "ajv-keywords": "3.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", + "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "requires": { + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + } } }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.4.4" }, "dependencies": { @@ -10612,9 +11367,9 @@ "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=" }, "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "send": { "version": "0.16.1", @@ -10622,9 +11377,9 @@ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "requires": { "debug": "2.6.9", - "depd": "1.1.1", + "depd": "1.1.2", "destroy": "1.0.4", - "encodeurl": "1.0.1", + "encodeurl": "1.0.2", "escape-html": "1.0.3", "etag": "1.8.1", "fresh": "0.5.2", @@ -10643,12 +11398,17 @@ } } }, + "serialize-javascript": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", + "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=" + }, "serve-static": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "requires": { - "encodeurl": "1.0.1", + "encodeurl": "1.0.2", "escape-html": "1.0.3", "parseurl": "1.3.2", "send": "0.16.1" @@ -10704,9 +11464,9 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", + "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", "requires": { "inherits": "2.0.3", "safe-buffer": "5.1.1" @@ -10730,6 +11490,11 @@ "requires": { "is-buffer": "1.1.6" } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" } } }, @@ -10747,9 +11512,9 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz", - "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", + "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", "dev": true, "requires": { "glob": "7.1.2", @@ -10790,21 +11555,14 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "snapdragon": { "version": "0.8.1", @@ -10821,11 +11579,6 @@ "use": "2.0.2" }, "dependencies": { - "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" - }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -10892,23 +11645,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" } } }, @@ -10929,6 +11665,11 @@ "requires": { "is-descriptor": "1.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -10967,13 +11708,14 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { - "atob": "1.1.3", + "atob": "2.0.3", + "decode-uri-component": "0.2.0", "resolve-url": "0.2.1", - "source-map-url": "0.3.0", + "source-map-url": "0.4.0", "urix": "0.1.0" } }, @@ -10986,9 +11728,18 @@ } }, "source-map-url": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", - "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", + "requires": { + "concat-stream": "1.6.0", + "os-shim": "0.1.3" + } }, "spdx-correct": { "version": "1.0.2", @@ -11043,6 +11794,14 @@ } } }, + "ssri": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", + "integrity": "sha512-UnEAgMZa15973iH7cUi0AHjJn1ACDIkaMyZILoqwN6yzt+4P81I8tBc5Hl+qwi5auMplZtPQsHrPBR5vJLcQtQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -11053,6 +11812,11 @@ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" }, + "staged-git-files": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", + "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -11141,7 +11905,7 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.4" } }, "stealthy-require": { @@ -11155,21 +11919,35 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.3" + "readable-stream": "2.3.4" + } + }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", "requires": { "builtin-status-codes": "3.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.3", + "readable-stream": "2.3.4", "to-arraybuffer": "1.0.1", "xtend": "4.0.1" } }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, "stream-to-observable": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", @@ -11183,14 +11961,33 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } } }, "string_decoder": { @@ -11232,18 +12029,24 @@ "is-utf8": "0.2.1" } }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "2.0.0", + "strip-bom": "2.0.0" + } + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "4.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" }, "strip-json-comments": { "version": "2.0.1", @@ -11252,23 +12055,12 @@ "dev": true }, "style-loader": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.1.tgz", - "integrity": "sha512-NtlwQOHQvUgEKuPs4JoUMQUkML8UNMxLbXM2JAZerIQVVVMgO5VVRjYQA8zzkpBu/X2OnTt+5ZKe8IbGk5TjRA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.2.tgz", + "integrity": "sha512-FrLMGaOLVhS5pvoez3eJyc0ktchT1inEZziBSjBq1hHQBK3GFkF57Qd825DcrUhjaAWQk70MKrIl5bfjadR/Dg==", "requires": { "loader-utils": "1.1.0", - "schema-utils": "0.4.3" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz", - "integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==", - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1" - } - } + "schema-utils": "0.4.5" } }, "superagent": { @@ -11280,12 +12072,12 @@ "cookiejar": "2.1.1", "debug": "3.1.0", "extend": "3.0.1", - "form-data": "2.3.1", + "form-data": "2.3.2", "formidable": "1.1.1", "methods": "1.1.2", "mime": "1.6.0", "qs": "6.5.1", - "readable-stream": "2.3.3" + "readable-stream": "2.3.4" }, "dependencies": { "debug": { @@ -11297,13 +12089,13 @@ } }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "mime": { @@ -11348,24 +12140,29 @@ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.3.0", - "lodash": "4.17.4", + "ajv": "6.2.0", + "ajv-keywords": "3.1.0", + "chalk": "2.3.1", + "lodash": "4.17.5", "slice-ansi": "1.0.0", "string-width": "2.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "ajv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", + "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "dev": true, + "requires": { + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } }, "ansi-styles": { "version": "3.2.0", @@ -11377,54 +12174,38 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.2.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -11434,13 +12215,13 @@ "resolved": "https://registry.npmjs.org/talib/-/talib-1.0.4.tgz", "integrity": "sha512-s4QITrKVUZ4feHl78296sMKLRWBG8dbuBPE0nr8NHVJimzrz1GVI27PBfBHlx0Bx1+Bmu8/6IbQM+84x0B0eKQ==", "requires": { - "nan": "2.8.0" + "nan": "2.9.2" } }, "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" }, "tar": { "version": "2.2.1", @@ -11452,17 +12233,46 @@ "inherits": "2.0.3" } }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + } + } + }, "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 + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==" }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.4", + "xtend": "4.0.1" + } + }, "timebucket": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/timebucket/-/timebucket-0.4.0.tgz", @@ -11477,9 +12287,9 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", + "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", "requires": { "setimmediate": "1.0.5" } @@ -11516,82 +12326,14 @@ } }, "to-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", - "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -11698,24 +12440,23 @@ } }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "2.1.18" } }, "typed-function": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-0.10.6.tgz", - "integrity": "sha512-PYtsDjxyW3vq7Itn2RMz0cn6CrbybIY6XC2i9c1q1o/H94QW8B1Pf3wSsbBDOCMpN1i5jDRrlDsLXFaqXBpfHQ==" + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-0.10.7.tgz", + "integrity": "sha512-3mlZ5AwRMbLvUKkc8a1TI4RUJUS2H27pmD5q0lHRObgsoWzhDAX01yg82kwSP1FUw922/4Y9ZliIEh0qJZcz+g==" }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { "version": "3.1.2", @@ -11725,58 +12466,47 @@ "is-typedarray": "1.0.0" } }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "commander": "2.13.0", + "source-map": "0.6.1" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "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=", - "optional": true - }, "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-CG/NvzXfemUAm5Y4Guh5eEaJYHtkG7kKNpXEJHp9QpxsFVB5/qKvYWoMaq4sa99ccZ0hM3MK8vQV9XPZB4357A==", "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.5", + "serialize-javascript": "1.4.0", + "source-map": "0.6.1", + "uglify-es": "3.3.9", + "webpack-sources": "1.1.0", + "worker-farm": "1.5.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "ultron": { @@ -11839,8 +12569,24 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, - "unpipe": { - "version": "1.0.0", + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "requires": { + "unique-slug": "2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "requires": { + "imurmurhash": "0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, @@ -11877,9 +12623,22 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, + "untildify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", + "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", + "requires": { + "os-homedir": "1.0.2" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -11920,6 +12679,14 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "5.5.2" + } } } }, @@ -11936,6 +12703,11 @@ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=" + }, "use": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", @@ -12000,18 +12772,15 @@ "kind-of": "5.1.0" } }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "requires": { - "set-getter": "0.1.0" - } } } }, @@ -12041,9 +12810,14 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" }, "validate-npm-package-license": { "version": "3.0.1", @@ -12081,6 +12855,66 @@ } } }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + } + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0", + "strip-bom-stream": "2.0.0", + "vinyl": "1.2.0" + }, + "dependencies": { + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -12118,53 +12952,593 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", - "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", - "requires": { - "acorn": "5.3.0", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.0.tgz", + "integrity": "sha512-wnEjBERuGrbelfsBJ7QKLuGAEaLNPTGJrLgK8H0p1TPS3pUqvTU4OZKeS1OAd8xBpEkuBrFcyHpXPvi0JZVvkA==", + "requires": { + "acorn": "5.4.1", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.2.0", + "ajv-keywords": "3.1.0", + "chrome-trace-event": "0.1.2", + "enhanced-resolve": "4.0.0", + "eslint-scope": "3.7.1", "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", + "micromatch": "3.1.9", "mkdirp": "0.5.1", + "neo-async": "2.5.0", "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", + "schema-utils": "0.4.5", + "tapable": "1.0.0", + "uglifyjs-webpack-plugin": "1.2.2", "watchpack": "1.4.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "webpack-sources": "1.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", + "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "requires": { + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + } + } + }, + "webpack-addons": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", + "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", + "requires": { + "jscodeshift": "0.4.1" + } + }, + "webpack-cli": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.9.tgz", + "integrity": "sha512-KIkOFHhrq8W7ovg5u8M7Xbduzr1aQ1Ch1aGGY0TvL5neO81T6/aCZ/NeG7R92UaXIF/BK4KCkla35wtoOoxyDQ==", + "requires": { + "chalk": "2.3.1", + "codecov": "3.0.0", + "cross-spawn": "5.1.0", + "diff": "3.4.0", + "enhanced-resolve": "3.4.1", + "glob-all": "3.1.0", + "global": "4.3.2", + "global-modules": "1.0.0", + "got": "7.1.0", + "inquirer": "3.3.0", + "interpret": "1.1.0", + "jscodeshift": "0.4.1", + "listr": "0.12.0", + "loader-utils": "1.1.0", + "lodash": "4.17.5", + "log-symbols": "2.1.0", + "mkdirp": "0.5.1", + "p-each-series": "1.0.0", + "p-lazy": "1.0.0", + "prettier": "1.10.2", + "recast": "0.13.2", + "resolve-cwd": "2.0.0", + "supports-color": "4.5.0", + "uglifyjs-webpack-plugin": "1.2.2", + "v8-compile-cache": "1.1.2", + "webpack-addons": "1.1.5", + "webpack-fork-yeoman-generator": "1.1.1", + "yargs": "9.0.1", + "yeoman-environment": "2.0.5" }, "dependencies": { + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + }, + "dependencies": { + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "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" + } + }, "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "requires": { + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "figures": "1.7.0", + "indent-string": "2.1.0", + "is-promise": "2.1.0", + "is-stream": "1.1.0", + "listr-silent-renderer": "1.1.1", + "listr-update-renderer": "0.2.0", + "listr-verbose-renderer": "0.4.1", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "ora": "0.2.3", + "p-map": "1.2.0", + "rxjs": "5.5.6", + "stream-to-observable": "0.1.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "requires": { + "chalk": "1.1.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "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=" + } + } + }, + "listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "requires": { + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "elegant-spinner": "1.0.1", + "figures": "1.7.0", + "indent-string": "3.2.0", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "requires": { + "chalk": "1.1.3" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "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=" + } + } + }, + "load-json-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } }, - "is-fullwidth-code-point": { + "log-symbols": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz", + "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", + "requires": { + "chalk": "2.3.1" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "stream-to-observable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", + "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + } + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + }, + "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-fork-yeoman-generator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/webpack-fork-yeoman-generator/-/webpack-fork-yeoman-generator-1.1.1.tgz", + "integrity": "sha512-TrLT6Bw6gl9rJA7iZw+YJ+4xHhEUzfOQB3tHpyINBFdZDmO0tlDW9MtMSMZ5rsUNjHxcEba5yuGaAW86J84j/w==", + "requires": { + "async": "2.6.0", + "chalk": "1.1.3", + "cli-table": "0.3.1", + "cross-spawn": "5.1.0", + "dargs": "5.1.0", + "dateformat": "2.2.0", + "debug": "2.6.9", + "detect-conflict": "1.0.1", + "error": "7.0.2", + "find-up": "2.1.0", + "github-username": "4.1.0", + "istextorbinary": "2.2.1", + "lodash": "4.17.5", + "mem-fs-editor": "3.0.2", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "pretty-bytes": "4.0.2", + "read-chunk": "2.1.0", + "read-pkg-up": "2.0.0", + "rimraf": "2.6.2", + "run-async": "2.3.0", + "shelljs": "0.7.8", + "text-table": "0.2.0", + "through2": "2.0.3", + "yeoman-environment": "1.6.6" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "1.0.1" + } + }, + "diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=" + }, + "external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "requires": { + "extend": "3.0.1", + "spawn-sync": "1.0.15", + "tmp": "0.0.29" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "6.0.4", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "inquirer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", + "requires": { + "ansi-escapes": "1.4.0", + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-width": "2.2.0", + "external-editor": "1.1.1", + "figures": "1.7.0", + "lodash": "4.17.5", + "mute-stream": "0.0.6", + "pinkie-promise": "2.0.1", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "through": "2.3.8" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } }, "load-json-file": { "version": "2.0.0", @@ -12177,14 +13551,30 @@ "strip-bom": "3.0.0" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "chalk": "1.1.3" + } + }, + "mute-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=" + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" } }, "path-type": { @@ -12219,21 +13609,33 @@ "read-pkg": "2.0.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "exit-hook": "1.1.1", + "onetime": "1.1.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "requires": { - "ansi-regex": "3.0.0" + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-bom": { @@ -12241,45 +13643,31 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "os-tmpdir": "1.0.2" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "yeoman-environment": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz", + "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=", "requires": { - "camelcase": "4.1.0" + "chalk": "1.1.3", + "debug": "2.6.9", + "diff": "2.2.3", + "escape-string-regexp": "1.0.5", + "globby": "4.1.0", + "grouped-queue": "0.3.3", + "inquirer": "1.2.3", + "lodash": "4.17.5", + "log-symbols": "1.0.2", + "mem-fs": "1.1.3", + "text-table": "0.2.0", + "untildify": "2.1.0" } } } @@ -12306,7 +13694,7 @@ "integrity": "sha512-M58njvi6ZxVb5k7kpnHh2BvNKuBWiwIYvsToErBzWhvBZYwlEiLcyLrG41T1jRcrY9ettqPYEqduLI7ul54CVQ==", "requires": { "debug": "2.6.9", - "nan": "2.8.0", + "nan": "2.9.2", "typedarray-to-buffer": "3.1.2", "yaeti": "0.0.6" } @@ -12316,7 +13704,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.9", + "http-parser-js": "0.4.10", "websocket-extensions": "0.1.3" } }, @@ -12372,13 +13760,28 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, "winston": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", @@ -12405,9 +13808,18 @@ } }, "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "worker-farm": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.4.tgz", + "integrity": "sha512-ITyClEvcfv0ozqJl1vmWFWhvI+OIrkbInYqkEPE50wFPXj8J9Gd3FYf8+CkZJXJJsQBYe+2DvmoK9Zhx5w8W+w==", + "requires": { + "errno": "0.1.7", + "xtend": "4.0.1" + } }, "wrap-ansi": { "version": "2.1.0", @@ -12416,6 +13828,26 @@ "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "wrappy": { @@ -12432,21 +13864,23 @@ "mkdirp": "0.5.1" } }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, "ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.0.0.tgz", - "integrity": "sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "requires": { "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" - }, - "dependencies": { - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - } + "safe-buffer": "5.1.1" } }, "xml-name-validator": { @@ -12530,11 +13964,20 @@ "wrap-ansi": "2.1.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "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" + } }, "os-locale": { "version": "2.1.0", @@ -12547,16 +13990,6 @@ "mem": "1.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -12598,6 +14031,111 @@ } } }, + "yeoman-environment": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.0.5.tgz", + "integrity": "sha512-6/W7/B54OPHJXob0n0+pmkwFsirC8cokuQkPSmT/D0lCcSxkKtg/BA6ZnjUBIwjuGqmw3DTrT4en++htaUju5g==", + "requires": { + "chalk": "2.3.1", + "debug": "3.1.0", + "diff": "3.4.0", + "escape-string-regexp": "1.0.5", + "globby": "6.1.0", + "grouped-queue": "0.3.3", + "inquirer": "3.3.0", + "is-scoped": "1.0.0", + "lodash": "4.17.5", + "log-symbols": "2.2.0", + "mem-fs": "1.1.3", + "text-table": "0.2.0", + "untildify": "3.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + }, + "untildify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=" + } + } + }, "zero-fill": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/zero-fill/-/zero-fill-2.2.3.tgz", diff --git a/package.json b/package.json index 08ea011f42..067bd240e9 100644 --- a/package.json +++ b/package.json @@ -101,10 +101,11 @@ "url-loader": "^0.6.2", "uuid": "^3.1.0", "waypoints": "^4.0.1", - "webpack": "^3.10.0", + "webpack": "^4.0.0", "wexnz": "^0.1.3", "ws": "^4.0.0", - "zero-fill": "^2.2.3" + "zero-fill": "^2.2.3", + "webpack-cli": "^2.0.9" }, "devDependencies": { "eslint": "^4.7.1", diff --git a/webpack.config.js b/webpack.config.js index d7afcf0956..fff4b28746 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -9,14 +9,16 @@ module.exports = { app: './webpack-src/js/app.js', echarts: './webpack-src/js/echarts.js' }, + optimization: { + minimize: true + }, plugins: [ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery', 'window.jQuery': 'jquery', Popper: ['popper.js', 'default'], - }), - new webpack.optimize.UglifyJsPlugin() + }) ], output: { publicPath: '/assets-wp/', From 2d8ccf404753dd2d2d66ed28d73caa66e81ea19a Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 26 Feb 2018 10:51:25 +0100 Subject: [PATCH 196/236] =?UTF-8?q?Update=20mathjs=20to=20the=20latest=20v?= =?UTF-8?q?ersion=20=F0=9F=9A=80=20(#1422)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update mathjs to version 4.0.0 * update package-lock.json --- package-lock.json | 25 ++++++++++++++++--------- package.json | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 798faa9795..4c36047475 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3318,6 +3318,11 @@ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.0.0.tgz", "integrity": "sha512-oogO9Cg3n/4nspF34CTfXFymgI79skca66DebIIQgxVy6qRVqczl/ji2YGAqhFCzpD/oAt/fCWF4qlhMAfda+g==" }, + "escape-latex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.0.0.tgz", + "integrity": "sha512-oogO9Cg3n/4nspF34CTfXFymgI79skca66DebIIQgxVy6qRVqczl/ji2YGAqhFCzpD/oAt/fCWF4qlhMAfda+g==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -7670,9 +7675,9 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" }, "mathjs": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.20.2.tgz", - "integrity": "sha512-3f6/+uf1cUtIz1rYFz775wekl/UEDSQ3mU6xdxW7qzpvvhc2v28i3UtLsGTRB+u8OqDWoSX6Dz8gehaGFs6tCA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-4.0.0.tgz", + "integrity": "sha512-8MiwG5kGDrN5VhvdoFZpezEmVeY+Zi1Sq1Piy79xnCXZ+Fac3/2fAAgwKmYTcj/Zx0thnTs7KTPhX+f8boow1g==", "requires": { "complex.js": "2.0.4", "decimal.js": "9.0.1", @@ -7681,7 +7686,14 @@ "javascript-natural-sort": "0.7.1", "seed-random": "2.2.0", "tiny-emitter": "2.0.2", - "typed-function": "0.10.7" + "typed-function": "1.0.1" + }, + "dependencies": { + "typed-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.0.1.tgz", + "integrity": "sha512-Ie5d+HS39FU+sKj5nzcSV9pucMOtHsomaZPaxX9CWnxeqcdBkGl0cGKx1xd5v+b1czUd1iVa/RMZbsN8wnfGPg==" + } } }, "md5.js": { @@ -12448,11 +12460,6 @@ "mime-types": "2.1.18" } }, - "typed-function": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-0.10.7.tgz", - "integrity": "sha512-3mlZ5AwRMbLvUKkc8a1TI4RUJUS2H27pmD5q0lHRObgsoWzhDAX01yg82kwSP1FUw922/4Y9ZliIEh0qJZcz+g==" - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", diff --git a/package.json b/package.json index 067bd240e9..cd7d1749d2 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "kraken-api": "^1.0.0", "lint-staged": "^7.0.0", "lodash": "^4.17.4", - "mathjs": "^3.17.0", + "mathjs": "^4.0.0", "micro-request": "^666.0.10", "mime": "^2.2.0", "minimist": "^1.2.0", From 3531ecda079edbaafcaf18a4685b9a64c1ba74f7 Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Mon, 26 Feb 2018 11:33:25 +0100 Subject: [PATCH 197/236] update ccxt to latest --- package-lock.json | 365 ++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 238 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c36047475..7bbec6b60c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2663,7 +2663,7 @@ "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", "requires": { - "jquery": "3.3.1", + "jquery": "3.2.1", "waypoints": "4.0.1" } }, @@ -3318,11 +3318,6 @@ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.0.0.tgz", "integrity": "sha512-oogO9Cg3n/4nspF34CTfXFymgI79skca66DebIIQgxVy6qRVqczl/ji2YGAqhFCzpD/oAt/fCWF4qlhMAfda+g==" }, - "escape-latex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.0.0.tgz", - "integrity": "sha512-oogO9Cg3n/4nspF34CTfXFymgI79skca66DebIIQgxVy6qRVqczl/ji2YGAqhFCzpD/oAt/fCWF4qlhMAfda+g==" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -4044,12 +4039,14 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "optional": true, "requires": { "co": "4.6.0", @@ -4058,16 +4055,19 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -4076,36 +4076,43 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -4113,21 +4120,24 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -4135,51 +4145,61 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4187,14 +4207,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "optional": true, "requires": { "ms": "2.0.0" @@ -4202,26 +4224,31 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -4229,21 +4256,25 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "optional": true, "requires": { "asynckit": "0.4.0", @@ -4253,11 +4284,13 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -4267,7 +4300,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "optional": true, "requires": { "fstream": "1.0.11", @@ -4277,7 +4311,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.1.1", @@ -4292,7 +4327,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4300,14 +4336,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4319,16 +4357,19 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "optional": true, "requires": { "ajv": "4.11.8", @@ -4337,12 +4378,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -4352,11 +4395,13 @@ }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "optional": true, "requires": { "assert-plus": "0.2.0", @@ -4366,7 +4411,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4374,37 +4420,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -4412,17 +4465,20 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "optional": true, "requires": { "jsonify": "0.0.0" @@ -4430,17 +4486,20 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "optional": true, "requires": { "assert-plus": "1.0.0", @@ -4451,48 +4510,56 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "optional": true, "requires": { "detect-libc": "1.0.2", @@ -4510,7 +4577,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.0", @@ -4519,7 +4587,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4530,38 +4599,45 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4570,30 +4646,36 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4604,14 +4686,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4624,7 +4708,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4653,40 +4738,47 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "optional": true, "requires": { "asn1": "0.2.3", @@ -4702,14 +4794,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4718,31 +4812,36 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4751,7 +4850,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "optional": true, "requires": { "debug": "2.6.8", @@ -4766,7 +4866,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "optional": true, "requires": { "punycode": "1.4.1" @@ -4774,7 +4875,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4782,26 +4884,31 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "optional": true, "requires": { "extsprintf": "1.0.2" @@ -4809,7 +4916,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -4817,7 +4925,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, @@ -6680,14 +6789,14 @@ } }, "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" }, "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", + "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==" }, "js-tokens": { "version": "3.0.2", @@ -9554,7 +9663,7 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "requires": { "chalk": "1.1.3", - "js-base64": "2.4.3", + "js-base64": "2.4.0", "source-map": "0.5.7", "supports-color": "3.2.3" }, @@ -11359,7 +11468,7 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.3", + "js-base64": "2.4.0", "source-map": "0.4.4" }, "dependencies": { diff --git a/package.json b/package.json index cd7d1749d2..7518a603b9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "bl": "^1.2.1", "bollinger-bands": "^3.0.1", "bootstrap": "^4.0.0-beta.2", - "ccxt": "^1.10.1102", + "ccxt": "^1.10.1216", "cexio-api-node": "^1.0.8", "cliff": "^0.1.10", "colors": "^1.1.2", From e6c8f9b497dcad3d5ba60821d554465c20e86095 Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Mon, 26 Feb 2018 11:34:28 +0100 Subject: [PATCH 198/236] update README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 347f3737c9..20fefe7322 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB. I - Configurable sell stops, buy stops, and (trailing) profit stops - Flexible sampling period and trade frequency - averages 1-2 trades/day with 1h period, 15-50/day with 5m period +### Community + +Join the Zenbot community on [Reddit](https://reddit.com/r/zenbot)! + ## Disclaimer - Zenbot is NOT a sure-fire profit machine. Use it AT YOUR OWN RISK. From 035981411aafd27af20aae5a4ce407630ed47b75 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 26 Feb 2018 11:39:16 +0100 Subject: [PATCH 199/236] =?UTF-8?q?Update=20gdax=20to=20the=20latest=20ver?= =?UTF-8?q?sion=20=F0=9F=9A=80=20(#1335)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update gdax to version 0.6.0 * add docker mount for forex_analytics models (#1369) * update package-lock.json * fix package-lock.json --- package-lock.json | 186 ++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 115 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bbec6b60c..e55b09b204 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1383,6 +1383,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, + "bignumber.js": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-5.0.0.tgz", + "integrity": "sha512-KWTu6ZMVk9sxlDJQh2YH1UOnfDP8O8TpxUxgQG/vKASoSnEjK9aVuOueFaPcQEYQ5fyNXNTOYwYw3099RYebWg==" + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -4996,23 +5001,32 @@ } }, "gdax": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/gdax/-/gdax-0.5.1.tgz", - "integrity": "sha1-iKDtKdvsw0jFysA8VZjUyAkHJjI=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/gdax/-/gdax-0.6.0.tgz", + "integrity": "sha512-5KdMBa+S6F6nlz9emyLRDp6ybrg3zA7oeWvjXnP5d++sK0Pv4rBSS2zuZ/Q63fFFXXMSHo2EA95pITSCbGcRSA==", "requires": { + "bignumber.js": "5.0.0", "bintrees": "1.0.1", - "num": "0.3.0", - "request": "2.81.0", - "ws": "3.0.0" + "request": "2.83.0", + "ws": "4.1.0" }, "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "hoek": "4.2.1" } }, "caseless": { @@ -5020,52 +5034,106 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "1.0.0" + } + } + } }, "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { - "aws-sign2": "0.6.0", + "aws-sign2": "0.7.0", "aws4": "1.6.0", "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", "mime-types": "2.1.18", "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", + "performance-now": "2.1.0", + "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", "tough-cookie": "2.3.3", @@ -5073,6 +5141,14 @@ "uuid": "3.2.1" } }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.1" + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -5080,27 +5156,6 @@ "requires": { "safe-buffer": "5.1.1" } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "ws": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.0.0.tgz", - "integrity": "sha1-mN2wAFbIOQy3Ued4h4hJf5kQO2w=", - "requires": { - "safe-buffer": "5.0.1", - "ultron": "1.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - } - } } } }, @@ -5835,11 +5890,6 @@ "through": "2.3.8" } }, - "int": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/int/-/int-0.2.0.tgz", - "integrity": "sha1-WJ8FsDuNjAjJGMiIR4TLYqlO9H4=" - }, "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", @@ -8927,14 +8977,6 @@ "set-blocking": "2.0.0" } }, - "num": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/num/-/num-0.3.0.tgz", - "integrity": "sha1-qC4qmx/FL7qzEzWM35KQXm8D8oc=", - "requires": { - "int": "0.2.0" - } - }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", diff --git a/package.json b/package.json index 7518a603b9..ceba3b77f0 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "express": "^4.16.2", "file-loader": "^1.1.6", "forex.analytics": "mkmarek/forex.analytics#7bc278987700d4204e959af17de61495941d1a14", - "gdax": "^0.5.1", + "gdax": "^0.6.0", "gemini-api": "^2.0.4", "glob": "^7.1.1", "har-validator": "^5.0.3", From accc62e605cba2d82853cd5a69f4b39c658b8122 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Mon, 26 Feb 2018 05:39:34 -0500 Subject: [PATCH 200/236] Make same rules on binance retry for both buy and sell (#1412) --- extensions/exchanges/binance/exchange.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/extensions/exchanges/binance/exchange.js b/extensions/exchanges/binance/exchange.js index 8c78f4331c..c063271f96 100644 --- a/extensions/exchanges/binance/exchange.js +++ b/extensions/exchanges/binance/exchange.js @@ -150,9 +150,9 @@ module.exports = function bittrex (conf) { }, function(err){ // match error against string: // "binance {"code":-2011,"msg":"UNKNOWN_ORDER"}" - + if (err) { - // decide if this error is allowed for a retry + // decide if this error is allowed for a retry if (err.message && err.message.match(new RegExp(/-2011|UNKNOWN_ORDER/))) { console.error(('\ncancelOrder retry - unknown Order: ' + JSON.stringify(opts) + ' - ' + err).cyan) @@ -207,7 +207,7 @@ module.exports = function bittrex (conf) { cb(null, order) }).catch(function (error) { console.error('An error occurred', error) - + // decide if this error is allowed for a retry: // {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"} // {"code":-2010,"msg":"Account has insufficient balance for requested action"} @@ -263,10 +263,12 @@ module.exports = function bittrex (conf) { cb(null, order) }).catch(function (error) { console.error('An error occurred', error) - + // decide if this error is allowed for a retry: // {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"} - if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL/))) { + // {"code":-2010,"msg":"Account has insufficient balance for requested action"} + + if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL|-2010/))) { return cb(null, { status: 'rejected', reject_reason: 'balance' From 149150a5a376132f64bb22cb517102ffb75a2ae4 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Mon, 26 Feb 2018 10:54:07 +0000 Subject: [PATCH 201/236] Exchanges: update-products 676 --- extensions/exchanges/binance/products.json | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index e53af8841d..48726b5f76 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -2668,5 +2668,35 @@ "increment": "0.00001", "asset_increment": "0.01", "label": "RPX/BNB" + }, + { + "id": "NCASHBTC", + "asset": "NCASH", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "NCASH/BTC" + }, + { + "id": "NCASHETH", + "asset": "NCASH", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "NCASH/ETH" + }, + { + "id": "NCASHBNB", + "asset": "NCASH", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.00001", + "asset_increment": "0.01", + "label": "NCASH/BNB" } ] \ No newline at end of file From 76fa3e737fd9eaacdcb1a168dbeb39ade1d6f41a Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 27 Feb 2018 03:27:05 -0500 Subject: [PATCH 202/236] wait till trade queue is drained before exiting engine (#1419) * wait till queue is drained before exiting * tie run_for exit into engine.exit to flush queue before actual exit --- commands/sim.js | 1 + commands/trade.js | 4 +++- lib/engine.js | 24 +++++++++++++++++------- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/commands/sim.js b/commands/sim.js index 76a099d908..e6ef106152 100644 --- a/commands/sim.js +++ b/commands/sim.js @@ -268,6 +268,7 @@ module.exports = function (program, conf) { return getNext() } engine.exit(exitSim) + return } else { if (reversing) { cursor = lastTrade.orig_time diff --git a/commands/trade.js b/commands/trade.js index 553e168db2..2357e66b9a 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -549,7 +549,9 @@ module.exports = function (program, conf) { } if (botStartTime && botStartTime - moment() < 0 ) { // Not sure if I should just handle exit code directly or thru printTrade. Decided on printTrade being if code is added there for clean exits this can just take advantage of it. - printTrade(true) + engine.exit(() => { + printTrade(true) + }) } session.updated = new Date().getTime() session.balance = s.balance diff --git a/lib/engine.js b/lib/engine.js index bf5dd0a1f5..de9ca6f34b 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -374,6 +374,7 @@ module.exports = function (s, conf) { msg('error getting balance') } getQuote(function (err, quote) { + let reorder_pct, fee, trade_balance, tradeable_balance, expected_fee if (err) { err.desc = 'could not execute ' + signal + ': error fetching quote' return cb(err) @@ -395,11 +396,11 @@ module.exports = function (s, conf) { } else { buy_pct = so.buy_pct } - if(so.buy_max_amt){ // account for held assets as buy_max + if (so.buy_max_amt) { // account for held assets as buy_max let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() buy_pct = buy_max_as_pct - }else{ // account for held assets as % + } else { // account for held assets as % let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() let to_buy_pct = n(buy_pct).subtract(held_pct).value() buy_pct = to_buy_pct @@ -935,12 +936,12 @@ module.exports = function (s, conf) { }) } - var q = async.queue(function({trade, is_preroll}, callback){ + var tradeProcessingQueue = async.queue(function({trade, is_preroll}, callback){ onTrade(trade, is_preroll, callback) }) function queueTrade(trade, is_preroll){ - q.push({trade, is_preroll}) + tradeProcessingQueue.push({trade, is_preroll}) } function onTrade(trade, is_preroll, cb) { @@ -1012,10 +1013,19 @@ module.exports = function (s, conf) { }, update: onTrades, exit: function (cb) { - if(s.strategy.onExit) { - s.strategy.onExit.call( s.ctx, s ) + if(tradeProcessingQueue.length()){ + tradeProcessingQueue.drain = () => { + if(s.strategy.onExit) { + s.strategy.onExit.call( s.ctx, s ) + } + cb() + } + } else { + if(s.strategy.onExit) { + s.strategy.onExit.call( s.ctx, s ) + } + cb() } - cb() }, executeSignal: executeSignal, From 15baa1a223c72333d584145bd7adafdc571c74a2 Mon Sep 17 00:00:00 2001 From: Michael Sutton Date: Tue, 27 Feb 2018 03:27:21 -0500 Subject: [PATCH 203/236] GeneticBacktester Floating StartDate (#1428) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Parameter --floatScanWindow When used the time windows used for scanning the data will change with each generation allowing each successive generation to be within the timeframe of —days selected. Example with —days 1 —floatScanWindow the start time frame will be 2018-1-1 00:01 after one day the start time will be 2018-1-2 00:01 without —floatScanWindow the start will remain at 2018-1-1 00:01 * add --ignoreLaunchFitness previous fitness is ignore and launch files are always updated to the current best generation as long as the fitness is > 0. This helps when using —floatScanWindow as over time the best fitness yesterday may be in reality the worst fitness today. so the launch files need to update with the best one, be it greater or less than the previous, as long as it is profitable. --- scripts/genetic_backtester/darwin.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index aadf6fc1e7..11b29ea614 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -9,7 +9,9 @@ * --use_strategies=,, Min one strategy, can include more than one * --population_data= filename used for continueing backtesting from previous run * --generateLaunch=| will generate .sh and .bat file using the best generation discovered - * --population= populate per strategy + * --ignoreLaunchFitness=| if used with --generateLaunch it will always write a new launch file regardless if latest fitness is greater + * --floatScanWindow Time widow used for analyzing data be adjusted every generation + * --population= populate per strategy * --maxCores= maximum processes to execute at a time default is # of cpu cores in system * --selector= * --asset_capital= amount coin to start sim with @@ -18,6 +20,7 @@ * --noStatSave=| true:no statistics are saved to the simulation folder * --silent=| true:can improve performance * + * * any parameters for sim and or strategy can be passed in and will override the genetic test generated parameter * i.e. if --period_length=1m is passed all test will be performed using --period_length=1m instead of trying to find that parameter * @@ -63,6 +66,8 @@ let generationCount = 1 let generationProcessing = false let population_data = '' let noStatSave = false +let floatScanWindow = false +let ignoreLaunchFitness = false let darwinMonitor = { @@ -515,7 +520,6 @@ function processOutput (output,taskStrategyName, pheno) { delete r.asset_capital delete r.buy_pct delete r.currency_capital - delete r.days delete r.mode delete r.order_adjust_time delete r.population @@ -530,14 +534,21 @@ function processOutput (output,taskStrategyName, pheno) { r.selector = r.selector.normalized if (start) { - r.start = moment(start).format('YYYYMMDDHHmm') + if (floatScanWindow) + r.start = moment().subtract(r.days,'d').format('YYYYMMDDHHmm') + else + r.start = moment(start).format('YYYYMMDDHHmm') } if (end) { - r.end = moment(end).format('YYYYMMDDHHmm') + if (floatScanWindow) + r.end = moment().format('YYYYMMDDHHmm') + else + r.end = moment(end).format('YYYYMMDDHHmm') } if (!start && !end && params.days) { r.days = params.days } + delete r.days let results = { params: 'module.exports = ' + JSON.stringify(r), @@ -1162,6 +1173,7 @@ function saveLaunchFiles(saveLauchFile, configuration ){ let bestOverallCommand = generateCommandParams(configuration) let lastFitnessLevel = -9999.0 + // get prior fitness level nix if (fs.existsSync(lFilenameNix) ) { @@ -1186,7 +1198,7 @@ function saveLaunchFiles(saveLauchFile, configuration ){ lastFitnessLevel = th[1] } } - + //write Nix Version let lNixContents = '#!/bin/bash\n'.concat('#fitness=',configuration.fitness,'\n', 'env node zenbot.js trade ', @@ -1195,7 +1207,7 @@ function saveLaunchFiles(saveLauchFile, configuration ){ 'node zenbot.js trade ', bestOverallCommand,' %*\n') - if (Number(configuration.fitness) > Number(lastFitnessLevel)) + if ( ((Number(configuration.fitness) > Number(lastFitnessLevel)) || (ignoreLaunchFitness)) && Number(configuration.fitness) > 0.0 ) { fs.writeFileSync(lFilenameNix, lNixContents) fs.writeFileSync(lFinenamewin32, lWin32Contents) @@ -1405,6 +1417,8 @@ let generateLaunchFile = (simArgs.generateLaunch) ? true : false noStatSave = (simArgs.noStatSave) ? true : false let strategyName = (argv.use_strategies) ? argv.use_strategies : 'all' populationSize = (argv.population) ? argv.population : 100 +floatScanWindow = (argv.floatScanWindow) ? argv.floatScanWindow : false +ignoreLaunchFitness = (argv.ignoreLaunchFitness) ? argv.ignoreLaunchFitness : false population_data = argv.population_data || `backtest.${simArgs.selector.toLowerCase()}.${moment().format('YYYYMMDDHHmmss')}` From 85f2324b78fa216159c851822b223082f37bae02 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Tue, 27 Feb 2018 03:29:05 -0500 Subject: [PATCH 204/236] sim and general exchange creation, fix getCursor (#1429) --- commands/balance.js | 1 - commands/trade.js | 8 +------- extensions/exchanges/sim/exchange.js | 6 ++---- lib/engine.js | 4 ++++ 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/commands/balance.js b/commands/balance.js index 231f5502c8..4fb603f5a8 100644 --- a/commands/balance.js +++ b/commands/balance.js @@ -17,7 +17,6 @@ module.exports = function (program, conf) { .action(function (selector, cmd) { var s = {options: minimist(process.argv)} s.selector = objectifySelector(selector || conf.selector) - s.exchange = require(`../extensions/exchanges/${s.selector.exchange_id}/exchange`)(conf) s.product_id = s.selector.product_id s.asset = s.selector.asset s.currency = s.selector.currency diff --git a/commands/trade.js b/commands/trade.js index 2357e66b9a..762983ca0b 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -80,13 +80,7 @@ module.exports = function (program, conf) { so.stats = !cmd.disable_stats so.mode = so.paper ? 'paper' : 'live' - so.selector = objectifySelector(selector || conf.selector) - s.exchange = require(`../extensions/exchanges/${so.selector.exchange_id}/exchange`)(conf) - if (!s.exchange) { - console.error('cannot trade ' + so.selector.normalized + ': exchange not implemented') - process.exit(1) - - } + so.selector = objectifySelector(selector || conf.selector) var engine = engineFactory(s, conf) var collectionServiceInstance = collectionService(conf) diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js index 0a2eb2ce18..24800b1bc1 100644 --- a/extensions/exchanges/sim/exchange.js +++ b/extensions/exchanges/sim/exchange.js @@ -1,6 +1,6 @@ let path = require('path') , n = require('numbro') - , _ = require('underscore') + , _ = require('lodash') module.exports = function sim (conf, s) { @@ -117,9 +117,7 @@ module.exports = function sim (conf, s) { cb(null, order) }, - getCursor: function (trade) { - return (trade.time || trade) - }, + getCursor: real_exchange.getCursor, getTime: function() { return now diff --git a/lib/engine.js b/lib/engine.js index de9ca6f34b..f37189a925 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -31,6 +31,10 @@ module.exports = function (s, conf) { else if (so.mode === 'paper') { s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s) } + if (!s.exchange) { + console.error('cannot trade ' + so.selector.normalized + ': exchange not implemented') + process.exit(1) + } s.product_id = so.selector.product_id s.asset = so.selector.asset s.currency = so.selector.currency From fc28a42d7320b76e9b4b4369e540652b3dbe71de Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 27 Feb 2018 10:51:45 +0000 Subject: [PATCH 205/236] Exchanges: update-products 685 --- extensions/exchanges/bitfinex/products.json | 6 +- extensions/exchanges/bittrex/products.json | 540 ++++++++++---------- 2 files changed, 273 insertions(+), 273 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index d4ded63275..75173f8ec7 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "180.0", + "min_size": "186.0", "max_size": "200000.0", "increment": "0.0000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "180.0", + "min_size": "186.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "180.0", + "min_size": "186.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/ETH" diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index c3dd6e979d..bb810b5062 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2,7 +2,7 @@ { "asset": "LTC", "currency": "BTC", - "min_size": "0.01378854", + "min_size": "0.01141553", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LTC" @@ -10,7 +10,7 @@ { "asset": "DOGE", "currency": "BTC", - "min_size": "423.72881356", + "min_size": "396.82539683", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DOGE" @@ -18,7 +18,7 @@ { "asset": "VTC", "currency": "BTC", - "min_size": "0.65884833", + "min_size": "0.67193463", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VTC" @@ -26,7 +26,7 @@ { "asset": "PPC", "currency": "BTC", - "min_size": "0.61336147", + "min_size": "0.79488728", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PPC" @@ -34,7 +34,7 @@ { "asset": "FTC", "currency": "BTC", - "min_size": "10.63829787", + "min_size": "11.88777936", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FTC" @@ -42,7 +42,7 @@ { "asset": "RDD", "currency": "BTC", - "min_size": "324.67532468", + "min_size": "250.00000000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RDD" @@ -50,7 +50,7 @@ { "asset": "NXT", "currency": "BTC", - "min_size": "11.06194690", + "min_size": "12.07729469", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXT" @@ -58,7 +58,7 @@ { "asset": "DASH", "currency": "BTC", - "min_size": "0.00339213", + "min_size": "0.00412541", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DASH" @@ -66,7 +66,7 @@ { "asset": "POT", "currency": "BTC", - "min_size": "13.77410468", + "min_size": "15.75299307", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/POT" @@ -74,7 +74,7 @@ { "asset": "BLK", "currency": "BTC", - "min_size": "6.66844492", + "min_size": "7.35726898", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLK" @@ -82,7 +82,7 @@ { "asset": "EMC2", "currency": "BTC", - "min_size": "5.50055006", + "min_size": "8.33055648", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EMC2" @@ -90,7 +90,7 @@ { "asset": "XMY", "currency": "BTC", - "min_size": "179.85611511", + "min_size": "213.67521368", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMY" @@ -98,7 +98,7 @@ { "asset": "AUR", "currency": "BTC", - "min_size": "1.25194051", + "min_size": "1.45917236", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AUR" @@ -106,7 +106,7 @@ { "asset": "EFL", "currency": "BTC", - "min_size": "8.83704489", + "min_size": "11.67133520", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EFL" @@ -114,7 +114,7 @@ { "asset": "GLD", "currency": "BTC", - "min_size": "13.15097317", + "min_size": "15.16070346", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GLD" @@ -122,7 +122,7 @@ { "asset": "SLR", "currency": "BTC", - "min_size": "4.29405703", + "min_size": "5.78302105", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SLR" @@ -130,7 +130,7 @@ { "asset": "PTC", "currency": "BTC", - "min_size": "39.68253968", + "min_size": "48.73294347", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PTC" @@ -138,7 +138,7 @@ { "asset": "GRS", "currency": "BTC", - "min_size": "3.35615519", + "min_size": "4.28890033", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GRS" @@ -146,7 +146,7 @@ { "asset": "NLG", "currency": "BTC", - "min_size": "12.96008294", + "min_size": "16.99524133", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NLG" @@ -154,7 +154,7 @@ { "asset": "RBY", "currency": "BTC", - "min_size": "2.94152253", + "min_size": "3.58680057", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RBY" @@ -162,7 +162,7 @@ { "asset": "XWC", "currency": "BTC", - "min_size": "16.76727029", + "min_size": "19.37984496", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XWC" @@ -170,7 +170,7 @@ { "asset": "MONA", "currency": "BTC", - "min_size": "0.51090266", + "min_size": "0.45961797", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MONA" @@ -178,7 +178,7 @@ { "asset": "THC", "currency": "BTC", - "min_size": "12.76161307", + "min_size": "19.98401279", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/THC" @@ -186,7 +186,7 @@ { "asset": "ENRG", "currency": "BTC", - "min_size": "14.01345291", + "min_size": "17.24137931", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ENRG" @@ -194,7 +194,7 @@ { "asset": "ERC", "currency": "BTC", - "min_size": "2.90023202", + "min_size": "3.52063090", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ERC" @@ -202,7 +202,7 @@ { "asset": "VRC", "currency": "BTC", - "min_size": "2.34455594", + "min_size": "3.37518564", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VRC" @@ -210,7 +210,7 @@ { "asset": "CURE", "currency": "BTC", - "min_size": "4.60574797", + "min_size": "5.59910414", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CURE" @@ -218,7 +218,7 @@ { "asset": "XMR", "currency": "BTC", - "min_size": "0.00865034", + "min_size": "0.00893258", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMR" @@ -226,7 +226,7 @@ { "asset": "CLOAK", "currency": "BTC", - "min_size": "0.22789426", + "min_size": "0.27795072", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLOAK" @@ -234,7 +234,7 @@ { "asset": "START", "currency": "BTC", - "min_size": "22.32142857", + "min_size": "27.65486726", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/START" @@ -242,7 +242,7 @@ { "asset": "KORE", "currency": "BTC", - "min_size": "0.66812764", + "min_size": "0.85435035", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/KORE" @@ -250,7 +250,7 @@ { "asset": "XDN", "currency": "BTC", - "min_size": "103.30578512", + "min_size": "129.53367876", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XDN" @@ -258,7 +258,7 @@ { "asset": "TRUST", "currency": "BTC", - "min_size": "15.79279848", + "min_size": "20.22653722", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TRUST" @@ -266,7 +266,7 @@ { "asset": "NAV", "currency": "BTC", - "min_size": "1.36128505", + "min_size": "1.44843569", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NAV" @@ -274,7 +274,7 @@ { "asset": "XST", "currency": "BTC", - "min_size": "5.41711809", + "min_size": "7.84190715", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XST" @@ -282,7 +282,7 @@ { "asset": "VIA", "currency": "BTC", - "min_size": "0.73529412", + "min_size": "0.98522167", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VIA" @@ -290,7 +290,7 @@ { "asset": "PINK", "currency": "BTC", - "min_size": "77.63975155", + "min_size": "89.92805755", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PINK" @@ -298,7 +298,7 @@ { "asset": "IOC", "currency": "BTC", - "min_size": "0.96150148", + "min_size": "1.35457304", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IOC" @@ -306,7 +306,7 @@ { "asset": "CANN", "currency": "BTC", - "min_size": "23.49624060", + "min_size": "36.60322108", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CANN" @@ -314,7 +314,7 @@ { "asset": "SYS", "currency": "BTC", - "min_size": "4.01284109", + "min_size": "4.09567497", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SYS" @@ -322,7 +322,7 @@ { "asset": "NEOS", "currency": "BTC", - "min_size": "0.49744314", + "min_size": "0.59494062", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NEOS" @@ -330,7 +330,7 @@ { "asset": "DGB", "currency": "BTC", - "min_size": "58.54800937", + "min_size": "72.88629738", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DGB" @@ -338,7 +338,7 @@ { "asset": "BURST", "currency": "BTC", - "min_size": "75.07507508", + "min_size": "79.61783439", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BURST" @@ -346,7 +346,7 @@ { "asset": "EXCL", "currency": "BTC", - "min_size": "1.71232877", + "min_size": "2.08368061", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EXCL" @@ -354,7 +354,7 @@ { "asset": "SWIFT", "currency": "BTC", - "min_size": "1.64095832", + "min_size": "2.37326751", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SWIFT" @@ -362,7 +362,7 @@ { "asset": "DOPE", "currency": "BTC", - "min_size": "23.29916123", + "min_size": "37.76435045", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DOPE" @@ -370,7 +370,7 @@ { "asset": "BLOCK", "currency": "BTC", - "min_size": "0.07670006", + "min_size": "0.08881499", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLOCK" @@ -378,7 +378,7 @@ { "asset": "ABY", "currency": "BTC", - "min_size": "143.67816092", + "min_size": "200.00000000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ABY" @@ -386,7 +386,7 @@ { "asset": "BYC", "currency": "BTC", - "min_size": "2.41033552", + "min_size": "2.85322986", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BYC" @@ -394,7 +394,7 @@ { "asset": "XMG", "currency": "BTC", - "min_size": "4.38673451", + "min_size": "4.38827453", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMG" @@ -402,7 +402,7 @@ { "asset": "BLITZ", "currency": "BTC", - "min_size": "1.43686419", + "min_size": "1.88665006", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLITZ" @@ -410,7 +410,7 @@ { "asset": "BAY", "currency": "BTC", - "min_size": "28.21670429", + "min_size": "40.58441558", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BAY" @@ -418,7 +418,7 @@ { "asset": "FAIR", "currency": "BTC", - "min_size": "4.15351387", + "min_size": "5.87130108", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FAIR" @@ -426,7 +426,7 @@ { "asset": "SPR", "currency": "BTC", - "min_size": "3.85030032", + "min_size": "5.43596434", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SPR" @@ -434,7 +434,7 @@ { "asset": "VTR", "currency": "BTC", - "min_size": "3.25563224", + "min_size": "3.79708384", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VTR" @@ -442,7 +442,7 @@ { "asset": "XRP", "currency": "BTC", - "min_size": "2.14261227", + "min_size": "2.72836407", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XRP" @@ -450,7 +450,7 @@ { "asset": "GAME", "currency": "BTC", - "min_size": "0.90370156", + "min_size": "1.12902497", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GAME" @@ -458,7 +458,7 @@ { "asset": "COVAL", "currency": "BTC", - "min_size": "156.25000000", + "min_size": "198.41269841", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/COVAL" @@ -466,7 +466,7 @@ { "asset": "NXS", "currency": "BTC", - "min_size": "0.68540096", + "min_size": "1.41795701", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXS" @@ -474,7 +474,7 @@ { "asset": "XCP", "currency": "BTC", - "min_size": "0.07482431", + "min_size": "0.11363636", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XCP" @@ -482,7 +482,7 @@ { "asset": "BITB", "currency": "BTC", - "min_size": "208.33333333", + "min_size": "121.95121951", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BITB" @@ -490,7 +490,7 @@ { "asset": "GEO", "currency": "BTC", - "min_size": "0.66309480", + "min_size": "0.86236633", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GEO" @@ -498,7 +498,7 @@ { "asset": "FLDC", "currency": "BTC", - "min_size": "86.80555556", + "min_size": "92.59259259", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FLDC" @@ -506,7 +506,7 @@ { "asset": "GRC", "currency": "BTC", - "min_size": "34.53038674", + "min_size": "38.69969040", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GRC" @@ -514,7 +514,7 @@ { "asset": "FLO", "currency": "BTC", - "min_size": "20.59308072", + "min_size": "26.42706131", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FLO" @@ -522,7 +522,7 @@ { "asset": "NBT", "currency": "BTC", - "min_size": "2.16113416", + "min_size": "2.56226299", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NBT" @@ -530,7 +530,7 @@ { "asset": "MUE", "currency": "BTC", - "min_size": "14.00560224", + "min_size": "17.81895937", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MUE" @@ -538,7 +538,7 @@ { "asset": "XEM", "currency": "BTC", - "min_size": "3.75262684", + "min_size": "6.50195059", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XEM" @@ -546,7 +546,7 @@ { "asset": "CLAM", "currency": "BTC", - "min_size": "0.35971223", + "min_size": "0.44166490", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLAM" @@ -554,7 +554,7 @@ { "asset": "DMD", "currency": "BTC", - "min_size": "0.16339869", + "min_size": "0.18062279", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DMD" @@ -562,7 +562,7 @@ { "asset": "GAM", "currency": "BTC", - "min_size": "0.16296412", + "min_size": "0.19230621", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GAM" @@ -570,7 +570,7 @@ { "asset": "SPHR", "currency": "BTC", - "min_size": "0.60975610", + "min_size": "0.90389761", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SPHR" @@ -578,7 +578,7 @@ { "asset": "OK", "currency": "BTC", - "min_size": "7.93650794", + "min_size": "10.84598698", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OK" @@ -586,7 +586,7 @@ { "asset": "SNRG", "currency": "BTC", - "min_size": "1.08761855", + "min_size": "1.33304895", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SNRG" @@ -594,7 +594,7 @@ { "asset": "PKB", "currency": "BTC", - "min_size": "2.66666667", + "min_size": "3.66300366", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PKB" @@ -602,7 +602,7 @@ { "asset": "CPC", "currency": "BTC", - "min_size": "3.80575430", + "min_size": "4.95245642", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CPC" @@ -610,7 +610,7 @@ { "asset": "AEON", "currency": "BTC", - "min_size": "0.66135817", + "min_size": "0.75734626", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AEON" @@ -618,7 +618,7 @@ { "asset": "ETH", "currency": "BTC", - "min_size": "0.00249817", + "min_size": "0.00292842", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ETH" @@ -626,7 +626,7 @@ { "asset": "GCR", "currency": "BTC", - "min_size": "18.51851852", + "min_size": "20.45826514", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GCR" @@ -634,7 +634,7 @@ { "asset": "TX", "currency": "BTC", - "min_size": "2.02823300", + "min_size": "2.54712175", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TX" @@ -642,7 +642,7 @@ { "asset": "BCY", "currency": "BTC", - "min_size": "4.36986541", + "min_size": "5.35905681", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCY" @@ -650,7 +650,7 @@ { "asset": "EXP", "currency": "BTC", - "min_size": "0.73110104", + "min_size": "0.95891987", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EXP" @@ -658,7 +658,7 @@ { "asset": "INFX", "currency": "BTC", - "min_size": "2.27066303", + "min_size": "10.54407423", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/INFX" @@ -666,7 +666,7 @@ { "asset": "OMNI", "currency": "BTC", - "min_size": "0.06241231", + "min_size": "0.06537708", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OMNI" @@ -674,7 +674,7 @@ { "asset": "AMP", "currency": "BTC", - "min_size": "5.74712644", + "min_size": "8.27266711", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AMP" @@ -682,7 +682,7 @@ { "asset": "AGRS", "currency": "BTC", - "min_size": "0.90197352", + "min_size": "2.84738041", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AGRS" @@ -690,7 +690,7 @@ { "asset": "XLM", "currency": "BTC", - "min_size": "5.52730489", + "min_size": "7.13470320", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XLM" @@ -698,7 +698,7 @@ { "asset": "BTC", "currency": "USDT", - "min_size": "0.00035398", + "min_size": "0.00029283", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BTC" @@ -706,7 +706,7 @@ { "asset": "CLUB", "currency": "BTC", - "min_size": "1.75957207", + "min_size": "2.30946882", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLUB" @@ -714,7 +714,7 @@ { "asset": "VOX", "currency": "BTC", - "min_size": "13.22751323", + "min_size": "19.77848101", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VOX" @@ -722,7 +722,7 @@ { "asset": "EMC", "currency": "BTC", - "min_size": "0.55458196", + "min_size": "0.69442515", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EMC" @@ -730,7 +730,7 @@ { "asset": "FCT", "currency": "BTC", - "min_size": "0.07917431", + "min_size": "0.07859436", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FCT" @@ -738,7 +738,7 @@ { "asset": "MAID", "currency": "BTC", - "min_size": "5.25099769", + "min_size": "6.96184907", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MAID" @@ -746,7 +746,7 @@ { "asset": "EGC", "currency": "BTC", - "min_size": "7.13877784", + "min_size": "7.81250000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EGC" @@ -754,7 +754,7 @@ { "asset": "SLS", "currency": "BTC", - "min_size": "0.04408837", + "min_size": "0.07028612", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SLS" @@ -762,7 +762,7 @@ { "asset": "RADS", "currency": "BTC", - "min_size": "0.33602602", + "min_size": "0.43881975", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RADS" @@ -770,7 +770,7 @@ { "asset": "DCR", "currency": "BTC", - "min_size": "0.02777781", + "min_size": "0.03405531", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DCR" @@ -778,7 +778,7 @@ { "asset": "BSD", "currency": "BTC", - "min_size": "2.14022772", + "min_size": "2.81531532", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BSD" @@ -786,7 +786,7 @@ { "asset": "XVG", "currency": "BTC", - "min_size": "37.93626707", + "min_size": "41.66666667", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XVG" @@ -794,7 +794,7 @@ { "asset": "PIVX", "currency": "BTC", - "min_size": "0.36695632", + "min_size": "0.47860630", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PIVX" @@ -802,7 +802,7 @@ { "asset": "XVC", "currency": "BTC", - "min_size": "3.48383501", + "min_size": "4.34782609", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XVC" @@ -810,7 +810,7 @@ { "asset": "MEME", "currency": "BTC", - "min_size": "4.68867217", + "min_size": "7.45823389", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MEME" @@ -818,7 +818,7 @@ { "asset": "STEEM", "currency": "BTC", - "min_size": "0.51299940", + "min_size": "0.74183976", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STEEM" @@ -826,7 +826,7 @@ { "asset": "2GIVE", "currency": "BTC", - "min_size": "190.83969466", + "min_size": "217.39130435", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/2GIVE" @@ -834,7 +834,7 @@ { "asset": "LSK", "currency": "BTC", - "min_size": "0.07864281", + "min_size": "0.12460749", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LSK" @@ -842,7 +842,7 @@ { "asset": "PDC", "currency": "BTC", - "min_size": "25.12562814", + "min_size": "27.74694784", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PDC" @@ -850,7 +850,7 @@ { "asset": "BRK", "currency": "BTC", - "min_size": "6.17131572", + "min_size": "8.33333333", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BRK" @@ -858,7 +858,7 @@ { "asset": "WAVES", "currency": "BTC", - "min_size": "0.38331800", + "min_size": "0.37886824", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WAVES" @@ -866,7 +866,7 @@ { "asset": "LBC", "currency": "BTC", - "min_size": "5.90876861", + "min_size": "7.12656784", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LBC" @@ -874,7 +874,7 @@ { "asset": "SBD", "currency": "BTC", - "min_size": "0.46753441", + "min_size": "0.68311610", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SBD" @@ -882,7 +882,7 @@ { "asset": "BRX", "currency": "BTC", - "min_size": "1.85116623", + "min_size": "2.35338417", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BRX" @@ -890,7 +890,7 @@ { "asset": "ETC", "currency": "BTC", - "min_size": "0.08833922", + "min_size": "0.07176484", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ETC" @@ -898,7 +898,7 @@ { "asset": "ETC", "currency": "ETH", - "min_size": "0.17533875", + "min_size": "0.12210012", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ETC" @@ -906,7 +906,7 @@ { "asset": "STRAT", "currency": "BTC", - "min_size": "0.28233275", + "min_size": "0.34626039", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STRAT" @@ -914,7 +914,7 @@ { "asset": "UNB", "currency": "BTC", - "min_size": "2.31481481", + "min_size": "3.70425248", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UNB" @@ -922,7 +922,7 @@ { "asset": "SYNX", "currency": "BTC", - "min_size": "3.08756330", + "min_size": "3.27396543", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SYNX" @@ -930,7 +930,7 @@ { "asset": "EBST", "currency": "BTC", - "min_size": "7.41399763", + "min_size": "8.07232806", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EBST" @@ -938,7 +938,7 @@ { "asset": "VRM", "currency": "BTC", - "min_size": "0.40114245", + "min_size": "0.61574838", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VRM" @@ -946,7 +946,7 @@ { "asset": "SEQ", "currency": "BTC", - "min_size": "8.38082467", + "min_size": "11.37915339", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SEQ" @@ -954,7 +954,7 @@ { "asset": "REP", "currency": "BTC", - "min_size": "0.03970605", + "min_size": "0.05548035", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/REP" @@ -962,7 +962,7 @@ { "asset": "SHIFT", "currency": "BTC", - "min_size": "0.69444444", + "min_size": "0.89564002", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SHIFT" @@ -970,7 +970,7 @@ { "asset": "ARDR", "currency": "BTC", - "min_size": "4.38904494", + "min_size": "6.17894217", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ARDR" @@ -978,7 +978,7 @@ { "asset": "XZC", "currency": "BTC", - "min_size": "0.03827827", + "min_size": "0.04594161", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XZC" @@ -986,7 +986,7 @@ { "asset": "NEO", "currency": "BTC", - "min_size": "0.01992032", + "min_size": "0.01917647", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NEO" @@ -994,7 +994,7 @@ { "asset": "ZEC", "currency": "BTC", - "min_size": "0.00447495", + "min_size": "0.00627983", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZEC" @@ -1002,7 +1002,7 @@ { "asset": "ZCL", "currency": "BTC", - "min_size": "0.02133761", + "min_size": "0.02155172", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZCL" @@ -1010,7 +1010,7 @@ { "asset": "IOP", "currency": "BTC", - "min_size": "0.67385445", + "min_size": "0.78616352", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IOP" @@ -1018,7 +1018,7 @@ { "asset": "GOLOS", "currency": "BTC", - "min_size": "15.61524047", + "min_size": "17.56851722", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GOLOS" @@ -1026,7 +1026,7 @@ { "asset": "UBQ", "currency": "BTC", - "min_size": "0.76494707", + "min_size": "1.05440742", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UBQ" @@ -1034,7 +1034,7 @@ { "asset": "KMD", "currency": "BTC", - "min_size": "0.52009653", + "min_size": "0.66237448", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/KMD" @@ -1042,7 +1042,7 @@ { "asset": "GBG", "currency": "BTC", - "min_size": "20.19386107", + "min_size": "22.87282708", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GBG" @@ -1050,7 +1050,7 @@ { "asset": "SIB", "currency": "BTC", - "min_size": "1.08558774", + "min_size": "1.21247393", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SIB" @@ -1058,7 +1058,7 @@ { "asset": "ION", "currency": "BTC", - "min_size": "0.70625459", + "min_size": "1.05409622", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ION" @@ -1066,7 +1066,7 @@ { "asset": "LMC", "currency": "BTC", - "min_size": "27.99552072", + "min_size": "36.23188406", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LMC" @@ -1074,7 +1074,7 @@ { "asset": "QWARK", "currency": "BTC", - "min_size": "14.26126640", + "min_size": "17.61804087", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QWARK" @@ -1082,7 +1082,7 @@ { "asset": "CRW", "currency": "BTC", - "min_size": "0.78139651", + "min_size": "1.08908734", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CRW" @@ -1090,7 +1090,7 @@ { "asset": "SWT", "currency": "BTC", - "min_size": "0.82508251", + "min_size": "1.36866309", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SWT" @@ -1098,7 +1098,7 @@ { "asset": "MLN", "currency": "BTC", - "min_size": "0.01934179", + "min_size": "0.02373058", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MLN" @@ -1106,7 +1106,7 @@ { "asset": "ARK", "currency": "BTC", - "min_size": "0.52976203", + "min_size": "0.66700462", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ARK" @@ -1114,7 +1114,7 @@ { "asset": "DYN", "currency": "BTC", - "min_size": "0.79445786", + "min_size": "1.08700378", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DYN" @@ -1122,7 +1122,7 @@ { "asset": "TKS", "currency": "BTC", - "min_size": "0.64602822", + "min_size": "0.64935065", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TKS" @@ -1130,7 +1130,7 @@ { "asset": "MUSIC", "currency": "BTC", - "min_size": "101.62601626", + "min_size": "128.20512821", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MUSIC" @@ -1138,7 +1138,7 @@ { "asset": "DTB", "currency": "BTC", - "min_size": "3.38478202", + "min_size": "3.71581451", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DTB" @@ -1146,7 +1146,7 @@ { "asset": "INCNT", "currency": "BTC", - "min_size": "6.97934115", + "min_size": "9.60430273", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/INCNT" @@ -1154,7 +1154,7 @@ { "asset": "GBYTE", "currency": "BTC", - "min_size": "0.00416627", + "min_size": "0.00577821", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GBYTE" @@ -1162,7 +1162,7 @@ { "asset": "GNT", "currency": "BTC", - "min_size": "6.32911392", + "min_size": "6.48676700", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GNT" @@ -1170,7 +1170,7 @@ { "asset": "NXC", "currency": "BTC", - "min_size": "8.33333333", + "min_size": "12.31527094", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXC" @@ -1178,7 +1178,7 @@ { "asset": "EDG", "currency": "BTC", - "min_size": "2.46087213", + "min_size": "2.78582572", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EDG" @@ -1186,7 +1186,7 @@ { "asset": "LGD", "currency": "BTC", - "min_size": "2.61889797", + "min_size": "3.28385656", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LGD" @@ -1194,7 +1194,7 @@ { "asset": "TRST", "currency": "BTC", - "min_size": "5.93824228", + "min_size": "8.31117021", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TRST" @@ -1202,7 +1202,7 @@ { "asset": "GNT", "currency": "ETH", - "min_size": "12.66015091", + "min_size": "10.97815347", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GNT" @@ -1210,7 +1210,7 @@ { "asset": "REP", "currency": "ETH", - "min_size": "0.07855543", + "min_size": "0.09503935", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/REP" @@ -1218,7 +1218,7 @@ { "asset": "ETH", "currency": "USDT", - "min_size": "0.00353870", + "min_size": "0.00343249", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ETH" @@ -1226,7 +1226,7 @@ { "asset": "WINGS", "currency": "ETH", - "min_size": "6.79634085", + "min_size": "5.50000550", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WINGS" @@ -1234,7 +1234,7 @@ { "asset": "WINGS", "currency": "BTC", - "min_size": "3.36292709", + "min_size": "3.27653997", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WINGS" @@ -1242,7 +1242,7 @@ { "asset": "RLC", "currency": "BTC", - "min_size": "1.51929505", + "min_size": "1.79881997", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RLC" @@ -1250,7 +1250,7 @@ { "asset": "GNO", "currency": "BTC", - "min_size": "0.01508753", + "min_size": "0.01875235", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GNO" @@ -1258,7 +1258,7 @@ { "asset": "GUP", "currency": "BTC", - "min_size": "5.80855019", + "min_size": "8.92857143", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GUP" @@ -1266,7 +1266,7 @@ { "asset": "LUN", "currency": "BTC", - "min_size": "0.11429669", + "min_size": "0.12356846", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LUN" @@ -1274,7 +1274,7 @@ { "asset": "GUP", "currency": "ETH", - "min_size": "11.77218468", + "min_size": "15.22255374", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GUP" @@ -1282,7 +1282,7 @@ { "asset": "RLC", "currency": "ETH", - "min_size": "3.07115875", + "min_size": "3.06759758", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/RLC" @@ -1290,7 +1290,7 @@ { "asset": "LUN", "currency": "ETH", - "min_size": "0.22761632", + "min_size": "0.21892837", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LUN" @@ -1298,7 +1298,7 @@ { "asset": "GNO", "currency": "ETH", - "min_size": "0.02967779", + "min_size": "0.03222470", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GNO" @@ -1306,7 +1306,7 @@ { "asset": "HMQ", "currency": "BTC", - "min_size": "11.13089938", + "min_size": "12.05981669", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/HMQ" @@ -1314,7 +1314,7 @@ { "asset": "HMQ", "currency": "ETH", - "min_size": "21.86748305", + "min_size": "21.18823629", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/HMQ" @@ -1322,7 +1322,7 @@ { "asset": "ANT", "currency": "BTC", - "min_size": "0.48926551", + "min_size": "0.67081679", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ANT" @@ -1330,7 +1330,7 @@ { "asset": "TRST", "currency": "ETH", - "min_size": "12.08868258", + "min_size": "14.23933474", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/TRST" @@ -1338,7 +1338,7 @@ { "asset": "ANT", "currency": "ETH", - "min_size": "0.98561981", + "min_size": "1.17189331", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ANT" @@ -1346,7 +1346,7 @@ { "asset": "SC", "currency": "BTC", - "min_size": "88.96797153", + "min_size": "114.15525114", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SC" @@ -1354,7 +1354,7 @@ { "asset": "BAT", "currency": "ETH", - "min_size": "11.85086867", + "min_size": "11.84946440", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BAT" @@ -1362,7 +1362,7 @@ { "asset": "BAT", "currency": "BTC", - "min_size": "5.97657184", + "min_size": "6.95410292", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BAT" @@ -1370,7 +1370,7 @@ { "asset": "ZEN", "currency": "BTC", - "min_size": "0.05707046", + "min_size": "0.07036604", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZEN" @@ -1378,7 +1378,7 @@ { "asset": "1ST", "currency": "BTC", - "min_size": "4.32451133", + "min_size": "8.86524823", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/1ST" @@ -1386,7 +1386,7 @@ { "asset": "QRL", "currency": "BTC", - "min_size": "1.51920272", + "min_size": "2.25002250", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QRL" @@ -1394,7 +1394,7 @@ { "asset": "1ST", "currency": "ETH", - "min_size": "8.62068966", + "min_size": "15.37231753", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/1ST" @@ -1402,7 +1402,7 @@ { "asset": "QRL", "currency": "ETH", - "min_size": "3.00574699", + "min_size": "3.82845461", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/QRL" @@ -1410,7 +1410,7 @@ { "asset": "CRB", "currency": "BTC", - "min_size": "5.55679040", + "min_size": "7.25689405", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CRB" @@ -1418,7 +1418,7 @@ { "asset": "CRB", "currency": "ETH", - "min_size": "10.77562984", + "min_size": "12.73723093", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CRB" @@ -1426,7 +1426,7 @@ { "asset": "LGD", "currency": "ETH", - "min_size": "5.34005468", + "min_size": "5.68491905", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LGD" @@ -1434,7 +1434,7 @@ { "asset": "PTOY", "currency": "BTC", - "min_size": "10.64735945", + "min_size": "12.62626263", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PTOY" @@ -1442,7 +1442,7 @@ { "asset": "PTOY", "currency": "ETH", - "min_size": "21.92982456", + "min_size": "21.72401807", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/PTOY" @@ -1450,7 +1450,7 @@ { "asset": "CFI", "currency": "BTC", - "min_size": "20.40816327", + "min_size": "28.63688431", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CFI" @@ -1458,7 +1458,7 @@ { "asset": "CFI", "currency": "ETH", - "min_size": "40.39751151", + "min_size": "48.64759681", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CFI" @@ -1466,7 +1466,7 @@ { "asset": "BNT", "currency": "BTC", - "min_size": "0.41947013", + "min_size": "0.50479556", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BNT" @@ -1474,7 +1474,7 @@ { "asset": "BNT", "currency": "ETH", - "min_size": "0.83610083", + "min_size": "0.86340426", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BNT" @@ -1482,7 +1482,7 @@ { "asset": "NMR", "currency": "BTC", - "min_size": "0.11187985", + "min_size": "0.12499938", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NMR" @@ -1490,7 +1490,7 @@ { "asset": "NMR", "currency": "ETH", - "min_size": "0.22520615", + "min_size": "0.21599000", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/NMR" @@ -1498,7 +1498,7 @@ { "asset": "LTC", "currency": "ETH", - "min_size": "0.02719504", + "min_size": "0.01948764", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LTC" @@ -1506,7 +1506,7 @@ { "asset": "XRP", "currency": "ETH", - "min_size": "4.27251831", + "min_size": "4.68766114", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XRP" @@ -1514,7 +1514,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "9.58588957", + "min_size": "15.02403846", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SNT" @@ -1522,7 +1522,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "18.64141376", + "min_size": "25.56760074", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SNT" @@ -1530,7 +1530,7 @@ { "asset": "DCT", "currency": "BTC", - "min_size": "2.31331544", + "min_size": "3.49357183", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DCT" @@ -1538,7 +1538,7 @@ { "asset": "XEL", "currency": "BTC", - "min_size": "7.68049155", + "min_size": "9.06782735", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XEL" @@ -1546,7 +1546,7 @@ { "asset": "MCO", "currency": "BTC", - "min_size": "0.29166424", + "min_size": "0.35334191", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MCO" @@ -1554,7 +1554,7 @@ { "asset": "MCO", "currency": "ETH", - "min_size": "0.59171528", + "min_size": "0.59378192", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/MCO" @@ -1562,7 +1562,7 @@ { "asset": "ADT", "currency": "BTC", - "min_size": "26.12330199", + "min_size": "41.18616145", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADT" @@ -1570,7 +1570,7 @@ { "asset": "ADT", "currency": "ETH", - "min_size": "52.53204455", + "min_size": "70.53180985", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADT" @@ -1578,7 +1578,7 @@ { "asset": "PAY", "currency": "BTC", - "min_size": "1.18562079", + "min_size": "1.58027813", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PAY" @@ -1586,7 +1586,7 @@ { "asset": "PAY", "currency": "ETH", - "min_size": "2.39694342", + "min_size": "2.78238417", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/PAY" @@ -1594,7 +1594,7 @@ { "asset": "STORJ", "currency": "BTC", - "min_size": "2.15554406", + "min_size": "2.78955590", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STORJ" @@ -1602,7 +1602,7 @@ { "asset": "STORJ", "currency": "ETH", - "min_size": "4.25941544", + "min_size": "4.72585325", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/STORJ" @@ -1610,7 +1610,7 @@ { "asset": "ADX", "currency": "BTC", - "min_size": "1.44508671", + "min_size": "1.70998632", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADX" @@ -1618,7 +1618,7 @@ { "asset": "ADX", "currency": "ETH", - "min_size": "2.89388695", + "min_size": "2.90290930", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADX" @@ -1626,7 +1626,7 @@ { "asset": "DASH", "currency": "ETH", - "min_size": "0.00677187", + "min_size": "0.00708175", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DASH" @@ -1634,7 +1634,7 @@ { "asset": "SC", "currency": "ETH", - "min_size": "177.11654269", + "min_size": "197.00551615", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SC" @@ -1642,7 +1642,7 @@ { "asset": "ZEC", "currency": "ETH", - "min_size": "0.00890954", + "min_size": "0.01082682", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ZEC" @@ -1650,7 +1650,7 @@ { "asset": "ZEC", "currency": "USDT", - "min_size": "0.00632104", + "min_size": "0.00735640", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ZEC" @@ -1658,7 +1658,7 @@ { "asset": "LTC", "currency": "USDT", - "min_size": "0.01956691", + "min_size": "0.01333333", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/LTC" @@ -1666,7 +1666,7 @@ { "asset": "ETC", "currency": "USDT", - "min_size": "0.12655375", + "min_size": "0.08391608", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ETC" @@ -1674,7 +1674,7 @@ { "asset": "XRP", "currency": "USDT", - "min_size": "3.03030303", + "min_size": "3.21543408", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/XRP" @@ -1682,7 +1682,7 @@ { "asset": "OMG", "currency": "BTC", - "min_size": "0.17313259", + "min_size": "0.14800256", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OMG" @@ -1690,7 +1690,7 @@ { "asset": "OMG", "currency": "ETH", - "min_size": "0.34717376", + "min_size": "0.25322315", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/OMG" @@ -1698,7 +1698,7 @@ { "asset": "CVC", "currency": "BTC", - "min_size": "4.74113408", + "min_size": "7.12250712", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CVC" @@ -1706,7 +1706,7 @@ { "asset": "CVC", "currency": "ETH", - "min_size": "9.50154875", + "min_size": "12.21329295", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CVC" @@ -1714,7 +1714,7 @@ { "asset": "PART", "currency": "BTC", - "min_size": "0.08548850", + "min_size": "0.11826985", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PART" @@ -1722,7 +1722,7 @@ { "asset": "QTUM", "currency": "BTC", - "min_size": "0.07552322", + "min_size": "0.09091438", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QTUM" @@ -1730,7 +1730,7 @@ { "asset": "QTUM", "currency": "ETH", - "min_size": "0.15058862", + "min_size": "0.15579343", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/QTUM" @@ -1738,7 +1738,7 @@ { "asset": "XMR", "currency": "ETH", - "min_size": "0.01732582", + "min_size": "0.01531146", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XMR" @@ -1746,7 +1746,7 @@ { "asset": "XEM", "currency": "ETH", - "min_size": "7.53341068", + "min_size": "11.12644087", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XEM" @@ -1754,7 +1754,7 @@ { "asset": "XLM", "currency": "ETH", - "min_size": "11.03825860", + "min_size": "12.19512195", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XLM" @@ -1762,7 +1762,7 @@ { "asset": "NEO", "currency": "ETH", - "min_size": "0.03984116", + "min_size": "0.03281596", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/NEO" @@ -1770,7 +1770,7 @@ { "asset": "XMR", "currency": "USDT", - "min_size": "0.01234049", + "min_size": "0.01047916", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/XMR" @@ -1778,7 +1778,7 @@ { "asset": "DASH", "currency": "USDT", - "min_size": "0.00483827", + "min_size": "0.00485437", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/DASH" @@ -1786,7 +1786,7 @@ { "asset": "BCC", "currency": "ETH", - "min_size": "0.00329247", + "min_size": "0.00354537", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BCC" @@ -1794,7 +1794,7 @@ { "asset": "BCC", "currency": "USDT", - "min_size": "0.00235479", + "min_size": "0.00241432", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BCC" @@ -1802,7 +1802,7 @@ { "asset": "BCC", "currency": "BTC", - "min_size": "0.00166443", + "min_size": "0.00205900", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCC" @@ -1810,7 +1810,7 @@ { "asset": "DNT", "currency": "BTC", - "min_size": "26.26050420", + "min_size": "31.60556258", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DNT" @@ -1818,7 +1818,7 @@ { "asset": "DNT", "currency": "ETH", - "min_size": "50.26641198", + "min_size": "53.79814934", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DNT" @@ -1826,7 +1826,7 @@ { "asset": "NEO", "currency": "USDT", - "min_size": "0.02832861", + "min_size": "0.02248876", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/NEO" @@ -1834,7 +1834,7 @@ { "asset": "WAVES", "currency": "ETH", - "min_size": "0.75872534", + "min_size": "0.64935149", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WAVES" @@ -1842,7 +1842,7 @@ { "asset": "STRAT", "currency": "ETH", - "min_size": "0.55645640", + "min_size": "0.58892815", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/STRAT" @@ -1850,7 +1850,7 @@ { "asset": "DGB", "currency": "ETH", - "min_size": "116.87704535", + "min_size": "124.22360248", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DGB" @@ -1858,7 +1858,7 @@ { "asset": "FCT", "currency": "ETH", - "min_size": "0.15636879", + "min_size": "0.13389053", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/FCT" @@ -1866,7 +1866,7 @@ { "asset": "OMG", "currency": "USDT", - "min_size": "0.24590164", + "min_size": "0.17347961", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/OMG" @@ -1874,7 +1874,7 @@ { "asset": "ADA", "currency": "BTC", - "min_size": "5.61797753", + "min_size": "7.77121542", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADA" @@ -1882,7 +1882,7 @@ { "asset": "MANA", "currency": "BTC", - "min_size": "18.75468867", + "min_size": "22.62443439", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MANA" @@ -1890,7 +1890,7 @@ { "asset": "MANA", "currency": "ETH", - "min_size": "39.03505348", + "min_size": "38.08073115", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/MANA" @@ -1898,7 +1898,7 @@ { "asset": "SALT", "currency": "BTC", - "min_size": "0.47984645", + "min_size": "0.59547912", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SALT" @@ -1906,7 +1906,7 @@ { "asset": "SALT", "currency": "ETH", - "min_size": "0.96209166", + "min_size": "1.02452718", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SALT" @@ -1914,7 +1914,7 @@ { "asset": "TIX", "currency": "BTC", - "min_size": "2.77438686", + "min_size": "4.24592391", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TIX" @@ -1922,7 +1922,7 @@ { "asset": "TIX", "currency": "ETH", - "min_size": "5.43478261", + "min_size": "7.31678764", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/TIX" @@ -1930,7 +1930,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "12.08313195", + "min_size": "17.60563380", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RCN" @@ -1938,7 +1938,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "23.65855967", + "min_size": "30.09147809", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/RCN" @@ -1946,7 +1946,7 @@ { "asset": "VIB", "currency": "BTC", - "min_size": "8.51788756", + "min_size": "11.11111111", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VIB" @@ -1954,7 +1954,7 @@ { "asset": "VIB", "currency": "ETH", - "min_size": "17.39614501", + "min_size": "19.21008145", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/VIB" @@ -1962,7 +1962,7 @@ { "asset": "MER", "currency": "BTC", - "min_size": "4.49559432", + "min_size": "7.20046083", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MER" @@ -1970,7 +1970,7 @@ { "asset": "POWR", "currency": "BTC", - "min_size": "2.86139407", + "min_size": "4.19956325", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/POWR" @@ -1978,7 +1978,7 @@ { "asset": "POWR", "currency": "ETH", - "min_size": "5.59196546", + "min_size": "7.20346919", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/POWR" @@ -1986,7 +1986,7 @@ { "asset": "BTG", "currency": "BTC", - "min_size": "0.01739043", + "min_size": "0.02214176", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BTG" @@ -1994,7 +1994,7 @@ { "asset": "BTG", "currency": "ETH", - "min_size": "0.03540396", + "min_size": "0.03798059", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BTG" @@ -2002,7 +2002,7 @@ { "asset": "BTG", "currency": "USDT", - "min_size": "0.02459016", + "min_size": "0.02597403", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BTG" @@ -2010,7 +2010,7 @@ { "asset": "ADA", "currency": "ETH", - "min_size": "11.20975697", + "min_size": "13.35077835", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADA" @@ -2018,7 +2018,7 @@ { "asset": "ENG", "currency": "BTC", - "min_size": "0.75759872", + "min_size": "1.00660332", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ENG" @@ -2026,7 +2026,7 @@ { "asset": "ENG", "currency": "ETH", - "min_size": "1.49476831", + "min_size": "1.67567060", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ENG" @@ -2034,7 +2034,7 @@ { "asset": "ADA", "currency": "USDT", - "min_size": "7.97448166", + "min_size": "9.15712454", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ADA" @@ -2042,7 +2042,7 @@ { "asset": "XVG", "currency": "USDT", - "min_size": "53.57130421", + "min_size": "49.18030368", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/XVG" @@ -2050,7 +2050,7 @@ { "asset": "NXT", "currency": "USDT", - "min_size": "15.51685239", + "min_size": "14.28571429", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/NXT" @@ -2058,7 +2058,7 @@ { "asset": "UKG", "currency": "BTC", - "min_size": "4.91352201", + "min_size": "7.37898465", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UKG" @@ -2066,7 +2066,7 @@ { "asset": "UKG", "currency": "ETH", - "min_size": "9.60725540", + "min_size": "12.82051282", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/UKG" @@ -2074,7 +2074,7 @@ { "asset": "IGNIS", "currency": "BTC", - "min_size": "8.90947969", + "min_size": "12.46882793", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IGNIS" @@ -2082,7 +2082,7 @@ { "asset": "SRN", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "3.73357228", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SRN" @@ -2090,7 +2090,7 @@ { "asset": "SRN", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "6.40196668", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SRN" @@ -2098,7 +2098,7 @@ { "asset": "WAX", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "7.88643533", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WAX" @@ -2106,7 +2106,7 @@ { "asset": "WAX", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "13.71855022", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WAX" @@ -2114,7 +2114,7 @@ { "asset": "ZRX", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "2.42036983", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZRX" @@ -2122,7 +2122,7 @@ { "asset": "ZRX", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "4.10741717", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ZRX" @@ -2130,7 +2130,7 @@ { "asset": "VEE", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "34.96503497", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VEE" @@ -2138,7 +2138,7 @@ { "asset": "VEE", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "58.90669180", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/VEE" @@ -2146,7 +2146,7 @@ { "asset": "BCPT", "currency": "BTC", - "min_size": "0.00000001", + "min_size": "2.12947189", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCPT" @@ -2154,7 +2154,7 @@ { "asset": "BCPT", "currency": "ETH", - "min_size": "0.00000001", + "min_size": "3.66294999", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BCPT" From db35fd34da28287284e5bcba40febc51f0dca797 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 28 Feb 2018 10:53:36 +0000 Subject: [PATCH 206/236] Exchanges: update-products 694 --- extensions/exchanges/binance/products.json | 30 ++ extensions/exchanges/bittrex/products.json | 538 ++++++++++----------- 2 files changed, 299 insertions(+), 269 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index 48726b5f76..eb5cdc51c3 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -2698,5 +2698,35 @@ "increment": "0.00001", "asset_increment": "0.01", "label": "NCASH/BNB" + }, + { + "id": "POABTC", + "asset": "POA", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "POA/BTC" + }, + { + "id": "POAETH", + "asset": "POA", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "POA/ETH" + }, + { + "id": "POABNB", + "asset": "POA", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.00001", + "asset_increment": "0.01", + "label": "POA/BNB" } ] \ No newline at end of file diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index bb810b5062..49f0917556 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2,7 +2,7 @@ { "asset": "LTC", "currency": "BTC", - "min_size": "0.01141553", + "min_size": "0.01231527", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LTC" @@ -10,7 +10,7 @@ { "asset": "DOGE", "currency": "BTC", - "min_size": "396.82539683", + "min_size": "431.03448276", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DOGE" @@ -18,7 +18,7 @@ { "asset": "VTC", "currency": "BTC", - "min_size": "0.67193463", + "min_size": "0.66034496", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VTC" @@ -26,7 +26,7 @@ { "asset": "PPC", "currency": "BTC", - "min_size": "0.79488728", + "min_size": "0.85881141", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PPC" @@ -34,7 +34,7 @@ { "asset": "FTC", "currency": "BTC", - "min_size": "11.88777936", + "min_size": "12.56281407", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FTC" @@ -42,7 +42,7 @@ { "asset": "RDD", "currency": "BTC", - "min_size": "250.00000000", + "min_size": "287.35632184", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RDD" @@ -50,7 +50,7 @@ { "asset": "NXT", "currency": "BTC", - "min_size": "12.07729469", + "min_size": "12.79426817", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXT" @@ -58,7 +58,7 @@ { "asset": "DASH", "currency": "BTC", - "min_size": "0.00412541", + "min_size": "0.00432676", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DASH" @@ -66,7 +66,7 @@ { "asset": "POT", "currency": "BTC", - "min_size": "15.75299307", + "min_size": "16.54533422", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/POT" @@ -74,7 +74,7 @@ { "asset": "BLK", "currency": "BTC", - "min_size": "7.35726898", + "min_size": "7.81250000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLK" @@ -82,7 +82,7 @@ { "asset": "EMC2", "currency": "BTC", - "min_size": "8.33055648", + "min_size": "8.53825137", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EMC2" @@ -90,7 +90,7 @@ { "asset": "XMY", "currency": "BTC", - "min_size": "213.67521368", + "min_size": "233.64485981", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMY" @@ -98,7 +98,7 @@ { "asset": "AUR", "currency": "BTC", - "min_size": "1.45917236", + "min_size": "1.46455770", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AUR" @@ -106,7 +106,7 @@ { "asset": "EFL", "currency": "BTC", - "min_size": "11.67133520", + "min_size": "11.91043354", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EFL" @@ -114,7 +114,7 @@ { "asset": "GLD", "currency": "BTC", - "min_size": "15.16070346", + "min_size": "15.82278481", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GLD" @@ -122,7 +122,7 @@ { "asset": "SLR", "currency": "BTC", - "min_size": "5.78302105", + "min_size": "5.97086219", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SLR" @@ -130,7 +130,7 @@ { "asset": "PTC", "currency": "BTC", - "min_size": "48.73294347", + "min_size": "48.54368932", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PTC" @@ -138,7 +138,7 @@ { "asset": "GRS", "currency": "BTC", - "min_size": "4.28890033", + "min_size": "4.34782609", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GRS" @@ -146,7 +146,7 @@ { "asset": "NLG", "currency": "BTC", - "min_size": "16.99524133", + "min_size": "17.53155680", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NLG" @@ -154,7 +154,7 @@ { "asset": "RBY", "currency": "BTC", - "min_size": "3.58680057", + "min_size": "3.69112653", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RBY" @@ -162,7 +162,7 @@ { "asset": "XWC", "currency": "BTC", - "min_size": "19.37984496", + "min_size": "19.62323391", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XWC" @@ -170,7 +170,7 @@ { "asset": "MONA", "currency": "BTC", - "min_size": "0.45961797", + "min_size": "0.48814777", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MONA" @@ -178,7 +178,7 @@ { "asset": "THC", "currency": "BTC", - "min_size": "19.98401279", + "min_size": "21.73913043", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/THC" @@ -186,7 +186,7 @@ { "asset": "ENRG", "currency": "BTC", - "min_size": "17.24137931", + "min_size": "18.95375284", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ENRG" @@ -194,7 +194,7 @@ { "asset": "ERC", "currency": "BTC", - "min_size": "3.52063090", + "min_size": "3.84142594", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ERC" @@ -202,7 +202,7 @@ { "asset": "VRC", "currency": "BTC", - "min_size": "3.37518564", + "min_size": "3.03508559", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VRC" @@ -210,7 +210,7 @@ { "asset": "CURE", "currency": "BTC", - "min_size": "5.59910414", + "min_size": "5.53832521", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CURE" @@ -218,7 +218,7 @@ { "asset": "XMR", "currency": "BTC", - "min_size": "0.00893258", + "min_size": "0.00892857", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMR" @@ -226,7 +226,7 @@ { "asset": "CLOAK", "currency": "BTC", - "min_size": "0.27795072", + "min_size": "0.26460627", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLOAK" @@ -234,7 +234,7 @@ { "asset": "START", "currency": "BTC", - "min_size": "27.65486726", + "min_size": "29.48113208", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/START" @@ -242,7 +242,7 @@ { "asset": "KORE", "currency": "BTC", - "min_size": "0.85435035", + "min_size": "0.91404336", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/KORE" @@ -250,7 +250,7 @@ { "asset": "XDN", "currency": "BTC", - "min_size": "129.53367876", + "min_size": "140.44943820", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XDN" @@ -258,7 +258,7 @@ { "asset": "TRUST", "currency": "BTC", - "min_size": "20.22653722", + "min_size": "20.24291498", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TRUST" @@ -266,7 +266,7 @@ { "asset": "NAV", "currency": "BTC", - "min_size": "1.44843569", + "min_size": "1.47780339", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NAV" @@ -274,7 +274,7 @@ { "asset": "XST", "currency": "BTC", - "min_size": "7.84190715", + "min_size": "8.01538955", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XST" @@ -282,7 +282,7 @@ { "asset": "VIA", "currency": "BTC", - "min_size": "0.98522167", + "min_size": "0.98939370", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VIA" @@ -290,7 +290,7 @@ { "asset": "PINK", "currency": "BTC", - "min_size": "89.92805755", + "min_size": "88.65248227", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PINK" @@ -298,7 +298,7 @@ { "asset": "IOC", "currency": "BTC", - "min_size": "1.35457304", + "min_size": "1.40559991", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IOC" @@ -306,7 +306,7 @@ { "asset": "CANN", "currency": "BTC", - "min_size": "36.60322108", + "min_size": "38.46153846", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CANN" @@ -314,7 +314,7 @@ { "asset": "SYS", "currency": "BTC", - "min_size": "4.09567497", + "min_size": "4.09634606", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SYS" @@ -322,7 +322,7 @@ { "asset": "NEOS", "currency": "BTC", - "min_size": "0.59494062", + "min_size": "0.62717945", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NEOS" @@ -330,7 +330,7 @@ { "asset": "DGB", "currency": "BTC", - "min_size": "72.88629738", + "min_size": "73.09941520", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DGB" @@ -338,7 +338,7 @@ { "asset": "BURST", "currency": "BTC", - "min_size": "79.61783439", + "min_size": "71.22507123", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BURST" @@ -346,7 +346,7 @@ { "asset": "EXCL", "currency": "BTC", - "min_size": "2.08368061", + "min_size": "2.08350696", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EXCL" @@ -354,7 +354,7 @@ { "asset": "SWIFT", "currency": "BTC", - "min_size": "2.37326751", + "min_size": "2.44857982", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SWIFT" @@ -362,7 +362,7 @@ { "asset": "DOPE", "currency": "BTC", - "min_size": "37.76435045", + "min_size": "38.88024883", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DOPE" @@ -370,7 +370,7 @@ { "asset": "BLOCK", "currency": "BTC", - "min_size": "0.08881499", + "min_size": "0.08474576", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLOCK" @@ -378,7 +378,7 @@ { "asset": "ABY", "currency": "BTC", - "min_size": "200.00000000", + "min_size": "217.39130435", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ABY" @@ -386,7 +386,7 @@ { "asset": "BYC", "currency": "BTC", - "min_size": "2.85322986", + "min_size": "2.77716063", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BYC" @@ -394,7 +394,7 @@ { "asset": "XMG", "currency": "BTC", - "min_size": "4.38827453", + "min_size": "5.50903482", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XMG" @@ -402,7 +402,7 @@ { "asset": "BLITZ", "currency": "BTC", - "min_size": "1.88665006", + "min_size": "1.92366882", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BLITZ" @@ -410,7 +410,7 @@ { "asset": "BAY", "currency": "BTC", - "min_size": "40.58441558", + "min_size": "36.65689150", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BAY" @@ -418,7 +418,7 @@ { "asset": "FAIR", "currency": "BTC", - "min_size": "5.87130108", + "min_size": "5.54938957", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FAIR" @@ -426,7 +426,7 @@ { "asset": "SPR", "currency": "BTC", - "min_size": "5.43596434", + "min_size": "5.74316563", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SPR" @@ -434,7 +434,7 @@ { "asset": "VTR", "currency": "BTC", - "min_size": "3.79708384", + "min_size": "4.22868742", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VTR" @@ -442,7 +442,7 @@ { "asset": "XRP", "currency": "BTC", - "min_size": "2.72836407", + "min_size": "2.87092329", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XRP" @@ -450,7 +450,7 @@ { "asset": "GAME", "currency": "BTC", - "min_size": "1.12902497", + "min_size": "1.17200319", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GAME" @@ -458,7 +458,7 @@ { "asset": "COVAL", "currency": "BTC", - "min_size": "198.41269841", + "min_size": "182.48175182", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/COVAL" @@ -466,7 +466,7 @@ { "asset": "NXS", "currency": "BTC", - "min_size": "1.41795701", + "min_size": "1.50384986", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXS" @@ -474,7 +474,7 @@ { "asset": "XCP", "currency": "BTC", - "min_size": "0.11363636", + "min_size": "0.11308277", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XCP" @@ -482,7 +482,7 @@ { "asset": "BITB", "currency": "BTC", - "min_size": "121.95121951", + "min_size": "144.50867052", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BITB" @@ -490,7 +490,7 @@ { "asset": "GEO", "currency": "BTC", - "min_size": "0.86236633", + "min_size": "1.00932617", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GEO" @@ -498,7 +498,7 @@ { "asset": "FLDC", "currency": "BTC", - "min_size": "92.59259259", + "min_size": "102.45901639", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FLDC" @@ -506,7 +506,7 @@ { "asset": "GRC", "currency": "BTC", - "min_size": "38.69969040", + "min_size": "39.43217666", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GRC" @@ -514,7 +514,7 @@ { "asset": "FLO", "currency": "BTC", - "min_size": "26.42706131", + "min_size": "26.23294858", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FLO" @@ -522,7 +522,7 @@ { "asset": "NBT", "currency": "BTC", - "min_size": "2.56226299", + "min_size": "2.66752027", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NBT" @@ -530,7 +530,7 @@ { "asset": "MUE", "currency": "BTC", - "min_size": "17.81895937", + "min_size": "18.01152738", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MUE" @@ -538,7 +538,7 @@ { "asset": "XEM", "currency": "BTC", - "min_size": "6.50195059", + "min_size": "6.63305917", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XEM" @@ -546,7 +546,7 @@ { "asset": "CLAM", "currency": "BTC", - "min_size": "0.44166490", + "min_size": "0.46850696", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLAM" @@ -554,7 +554,7 @@ { "asset": "DMD", "currency": "BTC", - "min_size": "0.18062279", + "min_size": "0.20501214", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DMD" @@ -562,7 +562,7 @@ { "asset": "GAM", "currency": "BTC", - "min_size": "0.19230621", + "min_size": "0.18409426", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GAM" @@ -570,7 +570,7 @@ { "asset": "SPHR", "currency": "BTC", - "min_size": "0.90389761", + "min_size": "0.89378285", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SPHR" @@ -578,7 +578,7 @@ { "asset": "OK", "currency": "BTC", - "min_size": "10.84598698", + "min_size": "10.85540599", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OK" @@ -586,7 +586,7 @@ { "asset": "SNRG", "currency": "BTC", - "min_size": "1.33304895", + "min_size": "1.38488810", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SNRG" @@ -594,7 +594,7 @@ { "asset": "PKB", "currency": "BTC", - "min_size": "3.66300366", + "min_size": "3.71747212", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PKB" @@ -602,7 +602,7 @@ { "asset": "CPC", "currency": "BTC", - "min_size": "4.95245642", + "min_size": "5.07202272", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CPC" @@ -610,7 +610,7 @@ { "asset": "AEON", "currency": "BTC", - "min_size": "0.75734626", + "min_size": "0.77160494", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AEON" @@ -618,7 +618,7 @@ { "asset": "ETH", "currency": "BTC", - "min_size": "0.00292842", + "min_size": "0.00303030", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ETH" @@ -626,7 +626,7 @@ { "asset": "GCR", "currency": "BTC", - "min_size": "20.45826514", + "min_size": "20.69536424", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GCR" @@ -634,7 +634,7 @@ { "asset": "TX", "currency": "BTC", - "min_size": "2.54712175", + "min_size": "2.50050010", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TX" @@ -642,7 +642,7 @@ { "asset": "BCY", "currency": "BTC", - "min_size": "5.35905681", + "min_size": "5.70385581", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCY" @@ -650,7 +650,7 @@ { "asset": "EXP", "currency": "BTC", - "min_size": "0.95891987", + "min_size": "0.94837070", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EXP" @@ -658,7 +658,7 @@ { "asset": "INFX", "currency": "BTC", - "min_size": "10.54407423", + "min_size": "10.55743243", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/INFX" @@ -666,7 +666,7 @@ { "asset": "OMNI", "currency": "BTC", - "min_size": "0.06537708", + "min_size": "0.06833476", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OMNI" @@ -674,7 +674,7 @@ { "asset": "AMP", "currency": "BTC", - "min_size": "8.27266711", + "min_size": "8.24266403", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AMP" @@ -682,7 +682,7 @@ { "asset": "AGRS", "currency": "BTC", - "min_size": "2.84738041", + "min_size": "1.44508671", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/AGRS" @@ -690,7 +690,7 @@ { "asset": "XLM", "currency": "BTC", - "min_size": "7.13470320", + "min_size": "7.49175907", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XLM" @@ -698,7 +698,7 @@ { "asset": "BTC", "currency": "USDT", - "min_size": "0.00029283", + "min_size": "0.00028043", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BTC" @@ -706,7 +706,7 @@ { "asset": "CLUB", "currency": "BTC", - "min_size": "2.30946882", + "min_size": "2.68615021", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CLUB" @@ -714,7 +714,7 @@ { "asset": "VOX", "currency": "BTC", - "min_size": "19.77848101", + "min_size": "19.53125000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VOX" @@ -722,7 +722,7 @@ { "asset": "EMC", "currency": "BTC", - "min_size": "0.69442515", + "min_size": "0.71426531", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EMC" @@ -730,7 +730,7 @@ { "asset": "FCT", "currency": "BTC", - "min_size": "0.07859436", + "min_size": "0.07663493", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/FCT" @@ -738,7 +738,7 @@ { "asset": "MAID", "currency": "BTC", - "min_size": "6.96184907", + "min_size": "6.36780438", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MAID" @@ -746,7 +746,7 @@ { "asset": "EGC", "currency": "BTC", - "min_size": "7.81250000", + "min_size": "7.98722045", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EGC" @@ -754,7 +754,7 @@ { "asset": "SLS", "currency": "BTC", - "min_size": "0.07028612", + "min_size": "0.07415911", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SLS" @@ -762,7 +762,7 @@ { "asset": "RADS", "currency": "BTC", - "min_size": "0.43881975", + "min_size": "0.45679621", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RADS" @@ -770,7 +770,7 @@ { "asset": "DCR", "currency": "BTC", - "min_size": "0.03405531", + "min_size": "0.03396873", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DCR" @@ -778,7 +778,7 @@ { "asset": "BSD", "currency": "BTC", - "min_size": "2.81531532", + "min_size": "2.78396437", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BSD" @@ -786,7 +786,7 @@ { "asset": "XVG", "currency": "BTC", - "min_size": "41.66666667", + "min_size": "44.09171076", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XVG" @@ -794,7 +794,7 @@ { "asset": "PIVX", "currency": "BTC", - "min_size": "0.47860630", + "min_size": "0.46956293", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PIVX" @@ -802,7 +802,7 @@ { "asset": "XVC", "currency": "BTC", - "min_size": "4.34782609", + "min_size": "4.97710532", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XVC" @@ -810,7 +810,7 @@ { "asset": "MEME", "currency": "BTC", - "min_size": "7.45823389", + "min_size": "6.91562932", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MEME" @@ -818,7 +818,7 @@ { "asset": "STEEM", "currency": "BTC", - "min_size": "0.74183976", + "min_size": "0.77688005", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STEEM" @@ -826,7 +826,7 @@ { "asset": "2GIVE", "currency": "BTC", - "min_size": "217.39130435", + "min_size": "225.22522523", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/2GIVE" @@ -834,7 +834,7 @@ { "asset": "LSK", "currency": "BTC", - "min_size": "0.12460749", + "min_size": "0.13437248", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LSK" @@ -842,7 +842,7 @@ { "asset": "PDC", "currency": "BTC", - "min_size": "27.74694784", + "min_size": "28.80184332", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PDC" @@ -850,7 +850,7 @@ { "asset": "BRK", "currency": "BTC", - "min_size": "8.33333333", + "min_size": "9.05797101", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BRK" @@ -858,7 +858,7 @@ { "asset": "WAVES", "currency": "BTC", - "min_size": "0.37886824", + "min_size": "0.40917870", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WAVES" @@ -866,7 +866,7 @@ { "asset": "LBC", "currency": "BTC", - "min_size": "7.12656784", + "min_size": "6.90417012", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LBC" @@ -874,7 +874,7 @@ { "asset": "SBD", "currency": "BTC", - "min_size": "0.68311610", + "min_size": "0.71428571", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SBD" @@ -882,7 +882,7 @@ { "asset": "BRX", "currency": "BTC", - "min_size": "2.35338417", + "min_size": "2.49975002", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BRX" @@ -890,7 +890,7 @@ { "asset": "ETC", "currency": "BTC", - "min_size": "0.07176484", + "min_size": "0.07509492", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ETC" @@ -898,7 +898,7 @@ { "asset": "ETC", "currency": "ETH", - "min_size": "0.12210012", + "min_size": "0.12463333", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ETC" @@ -906,7 +906,7 @@ { "asset": "STRAT", "currency": "BTC", - "min_size": "0.34626039", + "min_size": "0.34446174", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STRAT" @@ -914,7 +914,7 @@ { "asset": "UNB", "currency": "BTC", - "min_size": "3.70425248", + "min_size": "3.96699460", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UNB" @@ -922,7 +922,7 @@ { "asset": "SYNX", "currency": "BTC", - "min_size": "3.27396543", + "min_size": "3.49162011", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SYNX" @@ -930,7 +930,7 @@ { "asset": "EBST", "currency": "BTC", - "min_size": "8.07232806", + "min_size": "8.61771803", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EBST" @@ -938,7 +938,7 @@ { "asset": "VRM", "currency": "BTC", - "min_size": "0.61574838", + "min_size": "0.55730177", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VRM" @@ -946,7 +946,7 @@ { "asset": "SEQ", "currency": "BTC", - "min_size": "11.37915339", + "min_size": "12.43781095", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SEQ" @@ -954,7 +954,7 @@ { "asset": "REP", "currency": "BTC", - "min_size": "0.05548035", + "min_size": "0.05504959", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/REP" @@ -962,7 +962,7 @@ { "asset": "SHIFT", "currency": "BTC", - "min_size": "0.89564002", + "min_size": "0.90009001", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SHIFT" @@ -970,7 +970,7 @@ { "asset": "ARDR", "currency": "BTC", - "min_size": "6.17894217", + "min_size": "6.43997939", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ARDR" @@ -978,7 +978,7 @@ { "asset": "XZC", "currency": "BTC", - "min_size": "0.04594161", + "min_size": "0.04818822", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XZC" @@ -986,7 +986,7 @@ { "asset": "NEO", "currency": "BTC", - "min_size": "0.01917647", + "min_size": "0.01879525", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NEO" @@ -994,7 +994,7 @@ { "asset": "ZEC", "currency": "BTC", - "min_size": "0.00627983", + "min_size": "0.00657822", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZEC" @@ -1002,7 +1002,7 @@ { "asset": "ZCL", "currency": "BTC", - "min_size": "0.02155172", + "min_size": "0.02953337", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZCL" @@ -1010,7 +1010,7 @@ { "asset": "IOP", "currency": "BTC", - "min_size": "0.78616352", + "min_size": "0.78125000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IOP" @@ -1018,7 +1018,7 @@ { "asset": "GOLOS", "currency": "BTC", - "min_size": "17.56851722", + "min_size": "18.82530120", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GOLOS" @@ -1026,7 +1026,7 @@ { "asset": "UBQ", "currency": "BTC", - "min_size": "1.05440742", + "min_size": "1.07462173", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UBQ" @@ -1034,7 +1034,7 @@ { "asset": "KMD", "currency": "BTC", - "min_size": "0.66237448", + "min_size": "0.69967255", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/KMD" @@ -1042,7 +1042,7 @@ { "asset": "GBG", "currency": "BTC", - "min_size": "22.87282708", + "min_size": "25.00000000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GBG" @@ -1050,7 +1050,7 @@ { "asset": "SIB", "currency": "BTC", - "min_size": "1.21247393", + "min_size": "1.27122953", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SIB" @@ -1058,7 +1058,7 @@ { "asset": "ION", "currency": "BTC", - "min_size": "1.05409622", + "min_size": "1.05981602", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ION" @@ -1066,7 +1066,7 @@ { "asset": "LMC", "currency": "BTC", - "min_size": "36.23188406", + "min_size": "37.87878788", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LMC" @@ -1074,7 +1074,7 @@ { "asset": "QWARK", "currency": "BTC", - "min_size": "17.61804087", + "min_size": "19.09854851", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QWARK" @@ -1082,7 +1082,7 @@ { "asset": "CRW", "currency": "BTC", - "min_size": "1.08908734", + "min_size": "0.97560976", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CRW" @@ -1090,7 +1090,7 @@ { "asset": "SWT", "currency": "BTC", - "min_size": "1.36866309", + "min_size": "1.30187991", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SWT" @@ -1098,7 +1098,7 @@ { "asset": "MLN", "currency": "BTC", - "min_size": "0.02373058", + "min_size": "0.02424329", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MLN" @@ -1106,7 +1106,7 @@ { "asset": "ARK", "currency": "BTC", - "min_size": "0.66700462", + "min_size": "0.70631445", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ARK" @@ -1114,7 +1114,7 @@ { "asset": "DYN", "currency": "BTC", - "min_size": "1.08700378", + "min_size": "1.12521379", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DYN" @@ -1122,7 +1122,7 @@ { "asset": "TKS", "currency": "BTC", - "min_size": "0.64935065", + "min_size": "0.69049329", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TKS" @@ -1130,7 +1130,7 @@ { "asset": "MUSIC", "currency": "BTC", - "min_size": "128.20512821", + "min_size": "123.15270936", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MUSIC" @@ -1138,7 +1138,7 @@ { "asset": "DTB", "currency": "BTC", - "min_size": "3.71581451", + "min_size": "3.93700787", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DTB" @@ -1146,7 +1146,7 @@ { "asset": "INCNT", "currency": "BTC", - "min_size": "9.60430273", + "min_size": "8.39771582", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/INCNT" @@ -1154,7 +1154,7 @@ { "asset": "GBYTE", "currency": "BTC", - "min_size": "0.00577821", + "min_size": "0.00630181", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GBYTE" @@ -1162,7 +1162,7 @@ { "asset": "GNT", "currency": "BTC", - "min_size": "6.48676700", + "min_size": "7.26744186", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GNT" @@ -1170,7 +1170,7 @@ { "asset": "NXC", "currency": "BTC", - "min_size": "12.31527094", + "min_size": "12.50625313", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NXC" @@ -1178,7 +1178,7 @@ { "asset": "EDG", "currency": "BTC", - "min_size": "2.78582572", + "min_size": "2.86401650", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/EDG" @@ -1186,7 +1186,7 @@ { "asset": "LGD", "currency": "BTC", - "min_size": "3.28385656", + "min_size": "3.56989861", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LGD" @@ -1194,7 +1194,7 @@ { "asset": "TRST", "currency": "BTC", - "min_size": "8.31117021", + "min_size": "8.39771582", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TRST" @@ -1202,7 +1202,7 @@ { "asset": "GNT", "currency": "ETH", - "min_size": "10.97815347", + "min_size": "12.00422549", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GNT" @@ -1210,7 +1210,7 @@ { "asset": "REP", "currency": "ETH", - "min_size": "0.09503935", + "min_size": "0.09093679", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/REP" @@ -1218,7 +1218,7 @@ { "asset": "ETH", "currency": "USDT", - "min_size": "0.00343249", + "min_size": "0.00339083", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ETH" @@ -1226,7 +1226,7 @@ { "asset": "WINGS", "currency": "ETH", - "min_size": "5.50000550", + "min_size": "6.05921061", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WINGS" @@ -1234,7 +1234,7 @@ { "asset": "WINGS", "currency": "BTC", - "min_size": "3.27653997", + "min_size": "3.68459838", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WINGS" @@ -1242,7 +1242,7 @@ { "asset": "RLC", "currency": "BTC", - "min_size": "1.79881997", + "min_size": "1.69204738", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RLC" @@ -1250,7 +1250,7 @@ { "asset": "GNO", "currency": "BTC", - "min_size": "0.01875235", + "min_size": "0.02009060", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GNO" @@ -1258,7 +1258,7 @@ { "asset": "GUP", "currency": "BTC", - "min_size": "8.92857143", + "min_size": "8.23451910", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/GUP" @@ -1266,7 +1266,7 @@ { "asset": "LUN", "currency": "BTC", - "min_size": "0.12356846", + "min_size": "0.11449822", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/LUN" @@ -1274,7 +1274,7 @@ { "asset": "GUP", "currency": "ETH", - "min_size": "15.22255374", + "min_size": "13.64628821", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GUP" @@ -1282,7 +1282,7 @@ { "asset": "RLC", "currency": "ETH", - "min_size": "3.06759758", + "min_size": "2.68159780", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/RLC" @@ -1290,7 +1290,7 @@ { "asset": "LUN", "currency": "ETH", - "min_size": "0.21892837", + "min_size": "0.18946075", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LUN" @@ -1298,7 +1298,7 @@ { "asset": "GNO", "currency": "ETH", - "min_size": "0.03222470", + "min_size": "0.03357341", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/GNO" @@ -1306,7 +1306,7 @@ { "asset": "HMQ", "currency": "BTC", - "min_size": "12.05981669", + "min_size": "11.89909567", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/HMQ" @@ -1314,7 +1314,7 @@ { "asset": "HMQ", "currency": "ETH", - "min_size": "21.18823629", + "min_size": "19.36633357", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/HMQ" @@ -1322,7 +1322,7 @@ { "asset": "ANT", "currency": "BTC", - "min_size": "0.67081679", + "min_size": "0.69541029", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ANT" @@ -1330,7 +1330,7 @@ { "asset": "TRST", "currency": "ETH", - "min_size": "14.23933474", + "min_size": "13.19679054", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/TRST" @@ -1338,7 +1338,7 @@ { "asset": "ANT", "currency": "ETH", - "min_size": "1.17189331", + "min_size": "1.11407455", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ANT" @@ -1346,7 +1346,7 @@ { "asset": "SC", "currency": "BTC", - "min_size": "114.15525114", + "min_size": "121.35922330", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SC" @@ -1354,7 +1354,7 @@ { "asset": "BAT", "currency": "ETH", - "min_size": "11.84946440", + "min_size": "11.78272652", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BAT" @@ -1362,7 +1362,7 @@ { "asset": "BAT", "currency": "BTC", - "min_size": "6.95410292", + "min_size": "7.16948666", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BAT" @@ -1370,7 +1370,7 @@ { "asset": "ZEN", "currency": "BTC", - "min_size": "0.07036604", + "min_size": "0.06473229", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZEN" @@ -1378,7 +1378,7 @@ { "asset": "1ST", "currency": "BTC", - "min_size": "8.86524823", + "min_size": "6.99105145", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/1ST" @@ -1386,7 +1386,7 @@ { "asset": "QRL", "currency": "BTC", - "min_size": "2.25002250", + "min_size": "2.25978487", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QRL" @@ -1394,7 +1394,7 @@ { "asset": "1ST", "currency": "ETH", - "min_size": "15.37231753", + "min_size": "11.84300907", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/1ST" @@ -1402,7 +1402,7 @@ { "asset": "QRL", "currency": "ETH", - "min_size": "3.82845461", + "min_size": "3.70444459", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/QRL" @@ -1410,7 +1410,7 @@ { "asset": "CRB", "currency": "BTC", - "min_size": "7.25689405", + "min_size": "7.21500722", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CRB" @@ -1418,7 +1418,7 @@ { "asset": "CRB", "currency": "ETH", - "min_size": "12.73723093", + "min_size": "12.19809710", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CRB" @@ -1426,7 +1426,7 @@ { "asset": "LGD", "currency": "ETH", - "min_size": "5.68491905", + "min_size": "5.59785043", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LGD" @@ -1434,7 +1434,7 @@ { "asset": "PTOY", "currency": "BTC", - "min_size": "12.62626263", + "min_size": "13.91207568", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PTOY" @@ -1442,7 +1442,7 @@ { "asset": "PTOY", "currency": "ETH", - "min_size": "21.72401807", + "min_size": "22.92105987", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/PTOY" @@ -1450,7 +1450,7 @@ { "asset": "CFI", "currency": "BTC", - "min_size": "28.63688431", + "min_size": "30.41362530", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CFI" @@ -1458,7 +1458,7 @@ { "asset": "CFI", "currency": "ETH", - "min_size": "48.64759681", + "min_size": "49.91514425", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CFI" @@ -1466,7 +1466,7 @@ { "asset": "BNT", "currency": "BTC", - "min_size": "0.50479556", + "min_size": "0.53416521", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BNT" @@ -1474,7 +1474,7 @@ { "asset": "BNT", "currency": "ETH", - "min_size": "0.86340426", + "min_size": "0.86964386", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BNT" @@ -1482,7 +1482,7 @@ { "asset": "NMR", "currency": "BTC", - "min_size": "0.12499938", + "min_size": "0.12262837", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/NMR" @@ -1490,7 +1490,7 @@ { "asset": "NMR", "currency": "ETH", - "min_size": "0.21599000", + "min_size": "0.20325212", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/NMR" @@ -1498,7 +1498,7 @@ { "asset": "LTC", "currency": "ETH", - "min_size": "0.01948764", + "min_size": "0.02019397", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/LTC" @@ -1506,7 +1506,7 @@ { "asset": "XRP", "currency": "ETH", - "min_size": "4.68766114", + "min_size": "4.73440015", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XRP" @@ -1514,7 +1514,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "15.02403846", + "min_size": "15.86294416", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SNT" @@ -1522,7 +1522,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "25.56760074", + "min_size": "26.05795289", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SNT" @@ -1530,7 +1530,7 @@ { "asset": "DCT", "currency": "BTC", - "min_size": "3.49357183", + "min_size": "3.54157813", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DCT" @@ -1538,7 +1538,7 @@ { "asset": "XEL", "currency": "BTC", - "min_size": "9.06782735", + "min_size": "9.47328534", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/XEL" @@ -1546,7 +1546,7 @@ { "asset": "MCO", "currency": "BTC", - "min_size": "0.35334191", + "min_size": "0.32765400", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MCO" @@ -1554,7 +1554,7 @@ { "asset": "MCO", "currency": "ETH", - "min_size": "0.59378192", + "min_size": "0.53830816", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/MCO" @@ -1562,7 +1562,7 @@ { "asset": "ADT", "currency": "BTC", - "min_size": "41.18616145", + "min_size": "40.45307443", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADT" @@ -1570,7 +1570,7 @@ { "asset": "ADT", "currency": "ETH", - "min_size": "70.53180985", + "min_size": "65.22306288", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADT" @@ -1578,7 +1578,7 @@ { "asset": "PAY", "currency": "BTC", - "min_size": "1.58027813", + "min_size": "1.64300736", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PAY" @@ -1586,7 +1586,7 @@ { "asset": "PAY", "currency": "ETH", - "min_size": "2.78238417", + "min_size": "2.71342440", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/PAY" @@ -1594,7 +1594,7 @@ { "asset": "STORJ", "currency": "BTC", - "min_size": "2.78955590", + "min_size": "2.87356322", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/STORJ" @@ -1602,7 +1602,7 @@ { "asset": "STORJ", "currency": "ETH", - "min_size": "4.72585325", + "min_size": "4.78317852", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/STORJ" @@ -1610,7 +1610,7 @@ { "asset": "ADX", "currency": "BTC", - "min_size": "1.70998632", + "min_size": "1.88778978", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADX" @@ -1618,7 +1618,7 @@ { "asset": "ADX", "currency": "ETH", - "min_size": "2.90290930", + "min_size": "3.05866520", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADX" @@ -1626,7 +1626,7 @@ { "asset": "DASH", "currency": "ETH", - "min_size": "0.00708175", + "min_size": "0.00710697", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DASH" @@ -1634,7 +1634,7 @@ { "asset": "SC", "currency": "ETH", - "min_size": "197.00551615", + "min_size": "198.01980198", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SC" @@ -1642,7 +1642,7 @@ { "asset": "ZEC", "currency": "ETH", - "min_size": "0.01082682", + "min_size": "0.01084034", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ZEC" @@ -1650,7 +1650,7 @@ { "asset": "ZEC", "currency": "USDT", - "min_size": "0.00735640", + "min_size": "0.00738734", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ZEC" @@ -1658,7 +1658,7 @@ { "asset": "LTC", "currency": "USDT", - "min_size": "0.01333333", + "min_size": "0.01380753", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/LTC" @@ -1666,7 +1666,7 @@ { "asset": "ETC", "currency": "USDT", - "min_size": "0.08391608", + "min_size": "0.08426966", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ETC" @@ -1682,7 +1682,7 @@ { "asset": "OMG", "currency": "BTC", - "min_size": "0.14800256", + "min_size": "0.13256973", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/OMG" @@ -1690,7 +1690,7 @@ { "asset": "OMG", "currency": "ETH", - "min_size": "0.25322315", + "min_size": "0.21654358", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/OMG" @@ -1698,7 +1698,7 @@ { "asset": "CVC", "currency": "BTC", - "min_size": "7.12250712", + "min_size": "7.14898484", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/CVC" @@ -1706,7 +1706,7 @@ { "asset": "CVC", "currency": "ETH", - "min_size": "12.21329295", + "min_size": "11.89400067", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/CVC" @@ -1714,7 +1714,7 @@ { "asset": "PART", "currency": "BTC", - "min_size": "0.11826985", + "min_size": "0.11205938", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/PART" @@ -1722,7 +1722,7 @@ { "asset": "QTUM", "currency": "BTC", - "min_size": "0.09091438", + "min_size": "0.09762574", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/QTUM" @@ -1730,7 +1730,7 @@ { "asset": "QTUM", "currency": "ETH", - "min_size": "0.15579343", + "min_size": "0.16129032", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/QTUM" @@ -1738,7 +1738,7 @@ { "asset": "XMR", "currency": "ETH", - "min_size": "0.01531146", + "min_size": "0.01459581", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XMR" @@ -1746,7 +1746,7 @@ { "asset": "XEM", "currency": "ETH", - "min_size": "11.12644087", + "min_size": "10.98901099", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XEM" @@ -1754,7 +1754,7 @@ { "asset": "XLM", "currency": "ETH", - "min_size": "12.19512195", + "min_size": "12.34659357", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/XLM" @@ -1762,7 +1762,7 @@ { "asset": "NEO", "currency": "ETH", - "min_size": "0.03281596", + "min_size": "0.03095683", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/NEO" @@ -1770,7 +1770,7 @@ { "asset": "XMR", "currency": "USDT", - "min_size": "0.01047916", + "min_size": "0.00996741", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/XMR" @@ -1778,7 +1778,7 @@ { "asset": "DASH", "currency": "USDT", - "min_size": "0.00485437", + "min_size": "0.00483631", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/DASH" @@ -1786,7 +1786,7 @@ { "asset": "BCC", "currency": "ETH", - "min_size": "0.00354537", + "min_size": "0.00353898", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BCC" @@ -1794,7 +1794,7 @@ { "asset": "BCC", "currency": "USDT", - "min_size": "0.00241432", + "min_size": "0.00240228", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BCC" @@ -1802,7 +1802,7 @@ { "asset": "BCC", "currency": "BTC", - "min_size": "0.00205900", + "min_size": "0.00214427", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCC" @@ -1810,7 +1810,7 @@ { "asset": "DNT", "currency": "BTC", - "min_size": "31.60556258", + "min_size": "33.78378378", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/DNT" @@ -1818,7 +1818,7 @@ { "asset": "DNT", "currency": "ETH", - "min_size": "53.79814934", + "min_size": "54.42473060", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DNT" @@ -1826,7 +1826,7 @@ { "asset": "NEO", "currency": "USDT", - "min_size": "0.02248876", + "min_size": "0.02091847", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/NEO" @@ -1834,7 +1834,7 @@ { "asset": "WAVES", "currency": "ETH", - "min_size": "0.64935149", + "min_size": "0.67456356", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WAVES" @@ -1842,7 +1842,7 @@ { "asset": "STRAT", "currency": "ETH", - "min_size": "0.58892815", + "min_size": "0.56753689", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/STRAT" @@ -1850,7 +1850,7 @@ { "asset": "DGB", "currency": "ETH", - "min_size": "124.22360248", + "min_size": "119.13271384", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/DGB" @@ -1858,7 +1858,7 @@ { "asset": "FCT", "currency": "ETH", - "min_size": "0.13389053", + "min_size": "0.12723961", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/FCT" @@ -1866,7 +1866,7 @@ { "asset": "OMG", "currency": "USDT", - "min_size": "0.17347961", + "min_size": "0.14882005", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/OMG" @@ -1874,7 +1874,7 @@ { "asset": "ADA", "currency": "BTC", - "min_size": "7.77121542", + "min_size": "8.11951932", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ADA" @@ -1882,7 +1882,7 @@ { "asset": "MANA", "currency": "BTC", - "min_size": "22.62443439", + "min_size": "23.51834431", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MANA" @@ -1890,7 +1890,7 @@ { "asset": "MANA", "currency": "ETH", - "min_size": "38.08073115", + "min_size": "38.82288998", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/MANA" @@ -1898,7 +1898,7 @@ { "asset": "SALT", "currency": "BTC", - "min_size": "0.59547912", + "min_size": "0.64539447", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SALT" @@ -1906,7 +1906,7 @@ { "asset": "SALT", "currency": "ETH", - "min_size": "1.02452718", + "min_size": "1.04142584", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SALT" @@ -1914,7 +1914,7 @@ { "asset": "TIX", "currency": "BTC", - "min_size": "4.24592391", + "min_size": "4.43813243", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/TIX" @@ -1922,7 +1922,7 @@ { "asset": "TIX", "currency": "ETH", - "min_size": "7.31678764", + "min_size": "7.11561450", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/TIX" @@ -1930,7 +1930,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "17.60563380", + "min_size": "18.27485380", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/RCN" @@ -1938,7 +1938,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "30.09147809", + "min_size": "29.95626385", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/RCN" @@ -1946,7 +1946,7 @@ { "asset": "VIB", "currency": "BTC", - "min_size": "11.11111111", + "min_size": "11.34301270", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VIB" @@ -1954,7 +1954,7 @@ { "asset": "VIB", "currency": "ETH", - "min_size": "19.21008145", + "min_size": "18.83097318", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/VIB" @@ -1962,7 +1962,7 @@ { "asset": "MER", "currency": "BTC", - "min_size": "7.20046083", + "min_size": "7.39426205", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/MER" @@ -1970,7 +1970,7 @@ { "asset": "POWR", "currency": "BTC", - "min_size": "4.19956325", + "min_size": "4.43262411", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/POWR" @@ -1978,7 +1978,7 @@ { "asset": "POWR", "currency": "ETH", - "min_size": "7.20346919", + "min_size": "7.28427616", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/POWR" @@ -1986,7 +1986,7 @@ { "asset": "BTG", "currency": "BTC", - "min_size": "0.02214176", + "min_size": "0.02258966", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BTG" @@ -1994,7 +1994,7 @@ { "asset": "BTG", "currency": "ETH", - "min_size": "0.03798059", + "min_size": "0.03677587", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BTG" @@ -2002,7 +2002,7 @@ { "asset": "BTG", "currency": "USDT", - "min_size": "0.02597403", + "min_size": "0.02523129", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/BTG" @@ -2010,7 +2010,7 @@ { "asset": "ADA", "currency": "ETH", - "min_size": "13.35077835", + "min_size": "13.40482574", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ADA" @@ -2018,7 +2018,7 @@ { "asset": "ENG", "currency": "BTC", - "min_size": "1.00660332", + "min_size": "1.00000000", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ENG" @@ -2026,7 +2026,7 @@ { "asset": "ENG", "currency": "ETH", - "min_size": "1.67567060", + "min_size": "1.67334331", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ENG" @@ -2034,7 +2034,7 @@ { "asset": "ADA", "currency": "USDT", - "min_size": "9.15712454", + "min_size": "9.09090909", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/ADA" @@ -2042,7 +2042,7 @@ { "asset": "XVG", "currency": "USDT", - "min_size": "49.18030368", + "min_size": "49.86046549", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/XVG" @@ -2050,7 +2050,7 @@ { "asset": "NXT", "currency": "USDT", - "min_size": "14.28571429", + "min_size": "14.28599933", "max_size": "1000000", "increment": "0.00000001", "label": "USDT/NXT" @@ -2058,7 +2058,7 @@ { "asset": "UKG", "currency": "BTC", - "min_size": "7.37898465", + "min_size": "7.64993880", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/UKG" @@ -2066,7 +2066,7 @@ { "asset": "UKG", "currency": "ETH", - "min_size": "12.82051282", + "min_size": "12.52850234", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/UKG" @@ -2074,7 +2074,7 @@ { "asset": "IGNIS", "currency": "BTC", - "min_size": "12.46882793", + "min_size": "13.42642320", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/IGNIS" @@ -2082,7 +2082,7 @@ { "asset": "SRN", "currency": "BTC", - "min_size": "3.73357228", + "min_size": "4.13359788", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/SRN" @@ -2090,7 +2090,7 @@ { "asset": "SRN", "currency": "ETH", - "min_size": "6.40196668", + "min_size": "6.84931507", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/SRN" @@ -2098,7 +2098,7 @@ { "asset": "WAX", "currency": "BTC", - "min_size": "7.88643533", + "min_size": "8.30564784", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/WAX" @@ -2106,7 +2106,7 @@ { "asset": "WAX", "currency": "ETH", - "min_size": "13.71855022", + "min_size": "13.91130154", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/WAX" @@ -2114,7 +2114,7 @@ { "asset": "ZRX", "currency": "BTC", - "min_size": "2.42036983", + "min_size": "2.68413142", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/ZRX" @@ -2122,7 +2122,7 @@ { "asset": "ZRX", "currency": "ETH", - "min_size": "4.10741717", + "min_size": "4.46245292", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/ZRX" @@ -2130,7 +2130,7 @@ { "asset": "VEE", "currency": "BTC", - "min_size": "34.96503497", + "min_size": "36.65689150", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/VEE" @@ -2138,7 +2138,7 @@ { "asset": "VEE", "currency": "ETH", - "min_size": "58.90669180", + "min_size": "58.10575247", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/VEE" @@ -2146,7 +2146,7 @@ { "asset": "BCPT", "currency": "BTC", - "min_size": "2.12947189", + "min_size": "1.75045512", "max_size": "1000000", "increment": "0.00000001", "label": "BTC/BCPT" @@ -2154,7 +2154,7 @@ { "asset": "BCPT", "currency": "ETH", - "min_size": "3.66294999", + "min_size": "2.91378687", "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BCPT" From 2224806ad6e1bcd5389abc41a20f99a5be8f1e03 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Wed, 28 Feb 2018 06:15:12 -0500 Subject: [PATCH 207/236] Small tweak to make getQuote in sim a bit more realistic (#1431) --- extensions/exchanges/sim/exchange.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js index 24800b1bc1..5cb53df4f3 100644 --- a/extensions/exchanges/sim/exchange.js +++ b/extensions/exchanges/sim/exchange.js @@ -15,6 +15,7 @@ module.exports = function sim (conf, s) { var last_order_id = 1001 var orders = {} var openOrders = {} + var last_trade var exchange = { name: 'sim', @@ -44,10 +45,18 @@ module.exports = function sim (conf, s) { return real_exchange.getQuote(opts, cb) } else { - return cb(null, { - bid: s.period.close, - ask: s.period.close - }) + if (last_trade) { + return cb(null, { + bid: last_trade.price, + ask: last_trade.price + }) + } + else { + return cb(null, { + bid: s.period.close, + ask: s.period.close + }) + } } }, @@ -124,6 +133,7 @@ module.exports = function sim (conf, s) { }, processTrade: function(trade) { + last_trade = trade now = trade.time _.each(openOrders, function(order, order_id) { From 5bf21802521cfb0c3dc6088871fe81a5f197d5de Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 28 Feb 2018 12:49:48 +0100 Subject: [PATCH 208/236] =?UTF-8?q?Update=20json2csv=20to=20the=20latest?= =?UTF-8?q?=20version=20=F0=9F=9A=80=20(#1436)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update json2csv to version 4.0.0 * update package-lock.json --- package-lock.json | 648 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 277 insertions(+), 373 deletions(-) diff --git a/package-lock.json b/package-lock.json index e55b09b204..002297da84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -134,16 +134,16 @@ } }, "acorn": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", - "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz", + "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==" }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "5.4.1" + "acorn": "5.5.0" } }, "acorn-globals": { @@ -151,7 +151,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.4.1" + "acorn": "5.5.0" } }, "acorn-jsx": { @@ -1399,9 +1399,9 @@ "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==" }, "bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha1-SfiW1uhYpKSZ34XDj7OZua/4QPg=" }, "bitfinex-api-node": { "version": "1.2.1", @@ -1629,9 +1629,9 @@ } }, "bson": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", - "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.5.tgz", + "integrity": "sha512-D4SCtud6mlEb48kXdTHU31DRU0bsgOJ+4St1Dcx30uYNnf/aGc+hC9gHB/z0Eth8HYYs/hr0SFdyZViht19SwA==" }, "buffer": { "version": "4.9.1", @@ -1787,9 +1787,9 @@ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "ccxt": { - "version": "1.10.1216", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1216.tgz", - "integrity": "sha512-Zg7aFvZ+upQfwf4ZWu6MnOFAWGui0s/brYGREpd1RFb1cpjA1jGx1H/eXihLNn1BRFKPdlDVJcN5YZui0/KZsA==", + "version": "1.10.1258", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1258.tgz", + "integrity": "sha512-mjyrL0sBIdTrZhzfzV5cB1H6NkK2CZAkmSN7S+HJnZAPxsNxsqE3eThxo8TZ7h5wbU42/UzaQlyFlJpUik7f5A==", "requires": { "cloudscraper": "1.4.1", "crypto-js": "3.1.9-1", @@ -1940,7 +1940,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -2174,6 +2174,45 @@ } } }, + "cli-table2": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", + "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", + "dev": true, + "requires": { + "colors": "1.1.2", + "lodash": "3.10.1", + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, "cli-truncate": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", @@ -2437,7 +2476,7 @@ "qs": "6.4.0", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -2668,7 +2707,7 @@ "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", "requires": { - "jquery": "3.2.1", + "jquery": "3.3.1", "waypoints": "4.0.1" } }, @@ -3184,11 +3223,11 @@ } }, "echarts": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.0.2.tgz", - "integrity": "sha512-2kLhHvSAVbJ6QYVDxuySFp/+LfJxlYTYyPaOfwqydiFMAL9Wx7jzarfR1P4P6DFzLCZi4U4mv6EcZhH9BantKQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.0.3.tgz", + "integrity": "sha512-ZN6XLCcGfeSPa5qrLGpBrxA2190QGnpU529+N+V/PWJlGx3lvi5Ggw8Vh6Dx7fVpZz3+sQxWx4PNmQ37UKVuvA==", "requires": { - "zrender": "4.0.1" + "zrender": "4.0.2" } }, "editions": { @@ -3329,21 +3368,27 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", - "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "requires": { "esprima": "3.1.3", "estraverse": "4.2.0", "esutils": "2.0.2", "optionator": "0.8.2", - "source-map": "0.5.7" + "source-map": "0.6.1" }, "dependencies": { "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true } } }, @@ -3480,7 +3525,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "requires": { - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -3496,7 +3541,7 @@ "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", "dev": true, "requires": { - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-jsx": "3.0.1" } }, @@ -3515,12 +3560,11 @@ } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -3807,9 +3851,9 @@ } }, "file-loader": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.9.tgz", - "integrity": "sha512-6ql03hOSoJHBkTB+3De/f7NJse+JXkUwvAf3y4Q5rIcTD0kqJiE3btvLnDcZT+P4t1QYLb9dJ9EI4auzfo3wFA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.10.tgz", + "integrity": "sha512-dNnT4yJgUPtGDg0+m03kQ0b/PZi3Y12EnqYuRPNCsbYkBZc6j+fwVWy40jWzZjn5kIzQ4BLIxzJimbwAYlnPGw==", "requires": { "loader-utils": "1.1.0", "schema-utils": "0.4.5" @@ -3882,15 +3926,6 @@ "readable-stream": "2.3.4" } }, - "flat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz", - "integrity": "sha512-ji/WMv2jdsE+LaznpkIF9Haax0sdpTBozrz/Dtg4qSRMfbs8oVg4ypJunIRYPiMLvH/ed6OflXbnbTIKJhtgeg==", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, "flat-cache": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", @@ -4044,14 +4079,12 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "optional": true, "requires": { "co": "4.6.0", @@ -4060,19 +4093,16 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -4081,43 +4111,36 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -4125,24 +4148,21 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -4150,61 +4170,51 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4212,16 +4222,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -4229,31 +4237,26 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4261,25 +4264,21 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -4289,13 +4288,11 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -4305,8 +4302,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -4316,8 +4312,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -4332,8 +4327,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4341,16 +4335,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4362,19 +4354,16 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -4383,14 +4372,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -4400,13 +4387,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": 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=", + "bundled": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -4416,8 +4401,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4425,44 +4409,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4470,20 +4447,17 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -4491,20 +4465,17 @@ }, "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=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -4515,56 +4486,48 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -4582,8 +4545,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -4592,8 +4554,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4604,45 +4565,38 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4651,36 +4605,30 @@ }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4691,16 +4639,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4713,8 +4659,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4743,47 +4688,40 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -4799,16 +4737,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4817,36 +4753,31 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4855,8 +4786,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "optional": true, "requires": { "debug": "2.6.8", @@ -4871,8 +4801,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -4880,8 +4809,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4889,31 +4817,26 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -4921,8 +4844,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -4930,8 +4852,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, @@ -5006,7 +4927,7 @@ "integrity": "sha512-5KdMBa+S6F6nlz9emyLRDp6ybrg3zA7oeWvjXnP5d++sK0Pv4rBSS2zuZ/Q63fFFXXMSHo2EA95pITSCbGcRSA==", "requires": { "bignumber.js": "5.0.0", - "bintrees": "1.0.1", + "bintrees": "1.0.2", "request": "2.83.0", "ws": "4.1.0" }, @@ -5060,16 +4981,6 @@ "asynckit": "0.4.0", "combined-stream": "1.0.6", "mime-types": "2.1.18" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - } } }, "har-validator": { @@ -5136,7 +5047,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -6839,14 +6750,14 @@ } }, "jquery": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" }, "js-base64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", - "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==" }, "js-tokens": { "version": "3.0.2", @@ -6966,7 +6877,7 @@ "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", "requires": { "abab": "1.0.4", - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-globals": "4.1.0", "array-equal": "1.0.0", "browser-process-hrtime": "0.1.2", @@ -6974,7 +6885,7 @@ "cssom": "0.3.2", "cssstyle": "0.2.37", "domexception": "1.0.1", - "escodegen": "1.9.0", + "escodegen": "1.9.1", "html-encoding-sniffer": "1.0.2", "left-pad": "1.2.0", "nwmatcher": "1.4.3", @@ -6984,7 +6895,7 @@ "request-promise-native": "1.0.5", "sax": "1.2.4", "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "w3c-hr-time": "1.0.1", "webidl-conversions": "4.0.2", "whatwg-encoding": "1.0.3", @@ -7108,7 +7019,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -7171,32 +7082,17 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json2csv": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-3.11.5.tgz", - "integrity": "sha512-ORsw84BuRKMLxfI+HFZuvxRDnsJps53D5fIGr6tLn4ZY+ymcG8XU00E+JJ2wfAiHx5w2QRNmOLE8xHiGAeSfuQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.0.0.tgz", + "integrity": "sha512-o2H+rcS+Thi4omzQPALOi9TK4ItNMeZHjkKxFQSbI+Nu1dVUXJvmyZ/6rJaPRgTtCn5j1ExwyTKM5VRGSkqJ1Q==", "dev": true, "requires": { - "cli-table": "0.3.1", + "cli-table2": "0.2.0", "commander": "2.14.1", - "debug": "3.1.0", - "flat": "4.0.0", + "jsonparse": "1.3.1", "lodash.clonedeep": "4.5.0", - "lodash.flatten": "4.4.0", "lodash.get": "4.4.2", - "lodash.set": "4.3.2", - "lodash.uniq": "4.5.0", - "path-is-absolute": "1.0.1" - }, - "dependencies": { - "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" - } - } + "lodash.set": "4.3.2" } }, "json5": { @@ -7214,6 +7110,12 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -7611,12 +7513,6 @@ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -7846,13 +7742,6 @@ "seed-random": "2.2.0", "tiny-emitter": "2.0.2", "typed-function": "1.0.1" - }, - "dependencies": { - "typed-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.0.1.tgz", - "integrity": "sha512-Ie5d+HS39FU+sKj5nzcSV9pucMOtHsomaZPaxX9CWnxeqcdBkGl0cGKx1xd5v+b1czUd1iVa/RMZbsN8wnfGPg==" - } } }, "md5.js": { @@ -8362,7 +8251,7 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.3.tgz", "integrity": "sha512-AkEiYeq4PZrgoKPZ32q2nL2xFe9iswOgefMipS2YHJHX8DCFAXmYr1aFxefAWisinxI/nd57nBMSe4mrm3yV1g==", "requires": { - "bson": "1.0.4", + "bson": "1.0.5", "require_optional": "1.0.1" } }, @@ -8488,9 +8377,9 @@ } }, "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.2.tgz", + "integrity": "sha512-XTBoBY8NoeGAqQywTM8BjBz/Ro37eTmVF657yf6JumfOhxW9eET43Hve5+6L4+lo3hTDx7kTbC1WfasTHinDpg==" }, "node-gyp": { "version": "3.6.2", @@ -8633,7 +8522,7 @@ "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.4.3", "uuid": "3.2.1" } @@ -8791,7 +8680,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -8916,7 +8805,7 @@ "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -9668,7 +9557,7 @@ "node-uuid": "1.4.8", "oauth-sign": "0.3.0", "qs": "0.6.6", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.3.0" } }, @@ -9705,7 +9594,7 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "requires": { "chalk": "1.1.3", - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.5.7", "supports-color": "3.2.3" }, @@ -10405,9 +10294,9 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "prettier": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", - "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.0.tgz", + "integrity": "sha512-5TznPccvjc3WtACW2YuHXQDCCpE6cTU7rpRLTw7dtNmvrI6j8lirXwICrYImyDZknIC4RL2epnGVqRbVAsQw+w==" }, "pretty-bytes": { "version": "4.0.2", @@ -10525,7 +10414,7 @@ "requires": { "clone": "2.1.1", "mime": "1.6.0", - "node-forge": "0.7.1", + "node-forge": "0.7.2", "request": "2.83.0", "websocket": "1.0.25" }, @@ -10655,7 +10544,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -11098,7 +10987,7 @@ "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.4.3" }, "dependencies": { @@ -11128,7 +11017,7 @@ "bluebird": "3.5.1", "request-promise-core": "1.1.1", "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "tough-cookie": "2.3.4" } }, "request-promise-core": { @@ -11146,7 +11035,7 @@ "requires": { "request-promise-core": "1.1.1", "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "tough-cookie": "2.3.4" } }, "require-directory": { @@ -11510,7 +11399,7 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.4.4" }, "dependencies": { @@ -11905,22 +11794,32 @@ } }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + }, "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", @@ -12519,9 +12418,9 @@ } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { "punycode": "1.4.1" } @@ -12611,6 +12510,11 @@ "mime-types": "2.1.18" } }, + "typed-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.0.1.tgz", + "integrity": "sha512-Ie5d+HS39FU+sKj5nzcSV9pucMOtHsomaZPaxX9CWnxeqcdBkGl0cGKx1xd5v+b1czUd1iVa/RMZbsN8wnfGPg==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -12978,12 +12882,12 @@ "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "vary": { @@ -13110,11 +13014,11 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.0.tgz", - "integrity": "sha512-wnEjBERuGrbelfsBJ7QKLuGAEaLNPTGJrLgK8H0p1TPS3pUqvTU4OZKeS1OAd8xBpEkuBrFcyHpXPvi0JZVvkA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.1.tgz", + "integrity": "sha512-jHQNMmKPElreOYLCxR7SHfPnbhcqRT9O7lYPOMDR6Gt5XueJ7tH7JReXm4uMFstBKf7rj2Y7AD3LiMKR2zexYA==", "requires": { - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-dynamic-import": "3.0.0", "ajv": "6.2.0", "ajv-keywords": "3.1.0", @@ -13179,7 +13083,7 @@ "mkdirp": "0.5.1", "p-each-series": "1.0.0", "p-lazy": "1.0.0", - "prettier": "1.10.2", + "prettier": "1.11.0", "recast": "0.13.2", "resolve-cwd": "2.0.0", "supports-color": "4.5.0", @@ -14300,9 +14204,9 @@ "integrity": "sha1-o97wa6XjmuZEhQu0yirUEStIVek=" }, "zrender": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.0.1.tgz", - "integrity": "sha512-VC9bTAZwd5OVgryysxBgNvIZuwBsRJbIDkSyK9PAk7e9wE/M0k4R3eylVYc1IAcDXvccSFnj4/NkzCteh/YSpA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.0.2.tgz", + "integrity": "sha512-TPaK8bHopnj1o0y6xoS9saFk0lKS88UkofZtX6l5opuBpZ84qAZ59QWColOeDcRLL/r/GJ0Ve3yG/4kxWpJBRg==" } } } diff --git a/package.json b/package.json index ceba3b77f0..bf230996ca 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "devDependencies": { "eslint": "^4.7.1", "geneticalgorithm": "^0.3.4", - "json2csv": "^3.11.5", + "json2csv": "^4.0.0", "round-precision": "^1.0.0", "run-parallel-limit": "^1.0.3", "shelljs": "^0.8.0", From 445ff5f32531ad51ac9f67cc346b80f3b3af4e5d Mon Sep 17 00:00:00 2001 From: defkev Date: Thu, 1 Mar 2018 09:57:57 +0100 Subject: [PATCH 209/236] Store fee in s for use at reorder (#1443) * Store fee in s for use at reorder Dunno if this is really needed though. * Init fee on every signal Avoid carrying over fee from a previous signal. --- lib/engine.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index f37189a925..70d194ddba 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -270,6 +270,7 @@ module.exports = function (s, conf) { s[type + '_order'] = { price: opts.price, size: opts.size, + fee: opts.fee, orig_size: opts.size, remaining_size: opts.size, orig_price: opts.price, @@ -280,6 +281,7 @@ module.exports = function (s, conf) { let order = s[type + '_order'] order.price = opts.price order.size = opts.size + order.fee = opts.fee order.product_id = s.product_id order.post_only = conf.post_only @@ -341,7 +343,7 @@ module.exports = function (s, conf) { // 8. if not filled after timer, repeat process // 9. if filled, record order stats function executeSignal (signal, _cb, size, is_reorder, is_taker) { - let price, buy_pct, sell_pct + let price, fee, buy_pct, sell_pct delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order'] s.last_signal = signal if (!is_reorder && s[signal + '_order']) { @@ -385,7 +387,7 @@ module.exports = function (s, conf) { } if (is_reorder && s[signal + '_order']) { if (signal === 'buy') { - reorder_pct = n(size).multiply(s.buy_order.price).divide(s.balance.currency).multiply(100).add(fee) + reorder_pct = n(size).multiply(s.buy_order.price).divide(s.balance.currency).multiply(100).add(s.buy_order.fee) } else { reorder_pct = n(size).divide(s.balance.asset).multiply(100) } @@ -526,6 +528,7 @@ module.exports = function (s, conf) { placeOrder(signal, { size: size, price: price, + fee: fee || null, is_taker: is_taker, cancel_after: so.cancel_after || 'day' }, function (err, order) { From ffb3c5af483a3f2698a98cf3f86dd00649bccf86 Mon Sep 17 00:00:00 2001 From: Chris McGee Date: Thu, 1 Mar 2018 03:59:33 -0500 Subject: [PATCH 210/236] add linting to travis (#1446) * add linting to travis * lint fixes --- .travis.yml | 3 +++ extensions/exchanges/bittrex/exchange.js | 2 +- extensions/exchanges/poloniex/exchange.js | 2 +- extensions/strategies/ta_ema/strategy.js | 4 ++-- extensions/strategies/ta_ultosc/strategy.js | 8 +++---- lib/ta_willr.js | 2 +- webpack-src/js/echarts.js | 24 ++++++++++----------- 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index 70ae50b495..0a87b54a3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,9 @@ node_js: before_install: - npm install -g node-gyp - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install -g greenkeeper-lockfile@1; fi +script: + - npm run lint + - npm test after_success: - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then greenkeeper-lockfile-update; fi after_script: diff --git a/extensions/exchanges/bittrex/exchange.js b/extensions/exchanges/bittrex/exchange.js index 42539e5fa8..977e2769d4 100644 --- a/extensions/exchanges/bittrex/exchange.js +++ b/extensions/exchanges/bittrex/exchange.js @@ -295,7 +295,7 @@ module.exports = function bittrex(conf) { if(typeof data.result.buy[0].Rate === 'undefined') { console.log(data.message) return cb(null, []) - }; + } cb(null, { buyOrderRate: data.result.buy[0].Rate, buyOrderAmount: data.result.buy[0].Quantity, diff --git a/extensions/exchanges/poloniex/exchange.js b/extensions/exchanges/poloniex/exchange.js index 2ab0641310..14b9657310 100644 --- a/extensions/exchanges/poloniex/exchange.js +++ b/extensions/exchanges/poloniex/exchange.js @@ -126,7 +126,7 @@ module.exports = function container (conf) { return cb(null, []) } if (data.error) { - console.error('\ggetOrderBook error:') + console.error('getOrderBook error:') console.error(data) return retry('getOrderBook', params) } diff --git a/extensions/strategies/ta_ema/strategy.js b/extensions/strategies/ta_ema/strategy.js index 70c9d08148..f9bda792d6 100644 --- a/extensions/strategies/ta_ema/strategy.js +++ b/extensions/strategies/ta_ema/strategy.js @@ -51,9 +51,9 @@ module.exports = { // we add all maybe we need more indicators Promise.all([ta_ema(s, s.options.trend_ema)]).then(result => { if(result && result.outReal) { - s.period.trend_ema = result.outReal; + s.period.trend_ema = result.outReal } - }); + }) // calculate ema rate if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) { diff --git a/extensions/strategies/ta_ultosc/strategy.js b/extensions/strategies/ta_ultosc/strategy.js index 2e4e6c5419..f64edaaf3c 100644 --- a/extensions/strategies/ta_ultosc/strategy.js +++ b/extensions/strategies/ta_ultosc/strategy.js @@ -81,10 +81,10 @@ module.exports = { } } - signals.bottom = s.period.ultosc < 30 ? signals.bottom + 1 : 0; - signals.top = s.period.ultosc > 70 ? signals.top + 1 : 0; + signals.bottom = s.period.ultosc < 30 ? signals.bottom + 1 : 0 + signals.top = s.period.ultosc > 70 ? signals.top + 1 : 0 - s.signales = signals; + s.signales = signals } if (s.period.trend_ultosc == 'up') { @@ -114,7 +114,7 @@ module.exports = { let cols = [] if (typeof s.period.ultosc === 'number') { - let signal = z(8, n(s.period.ultosc).format('0.0000'), ' '); + let signal = z(8, n(s.period.ultosc).format('0.0000'), ' ') if (s.period.ultosc <= 30) { cols.push(signal.red) diff --git a/lib/ta_willr.js b/lib/ta_willr.js index e8a3bf6c51..b4acf0e737 100644 --- a/lib/ta_willr.js +++ b/lib/ta_willr.js @@ -45,7 +45,7 @@ module.exports = function ppo(s, min_periods, timeperiod) { optInTimePeriod: timeperiod || 14, }, function (err, result) { if (err) { - console.log(err); + console.log(err) reject(err, result) return } diff --git a/webpack-src/js/echarts.js b/webpack-src/js/echarts.js index 55af1f80ec..f3d853a37a 100644 --- a/webpack-src/js/echarts.js +++ b/webpack-src/js/echarts.js @@ -1,12 +1,12 @@ -var echarts = require('echarts/lib/echarts'); - -require('echarts/lib/chart/line'); -require('echarts/lib/chart/bar'); -require('echarts/lib/chart/candlestick'); -require('echarts/lib/chart/scatter'); -require('echarts/lib/component/tooltip'); -require('echarts/lib/component/dataZoom'); -require('echarts/lib/component/markPoint'); -require('echarts/lib/component/toolbox'); - -module.exports = echarts; \ No newline at end of file +var echarts = require('echarts/lib/echarts') + +require('echarts/lib/chart/line') +require('echarts/lib/chart/bar') +require('echarts/lib/chart/candlestick') +require('echarts/lib/chart/scatter') +require('echarts/lib/component/tooltip') +require('echarts/lib/component/dataZoom') +require('echarts/lib/component/markPoint') +require('echarts/lib/component/toolbox') + +module.exports = echarts \ No newline at end of file From 61aa9fe963f631949a36d036b617232646ab9e97 Mon Sep 17 00:00:00 2001 From: Illya Havsiyevych Date: Thu, 1 Mar 2018 10:59:44 +0200 Subject: [PATCH 211/236] force `balance` to executed in `live` mode (#1445) --- commands/balance.js | 1 + 1 file changed, 1 insertion(+) diff --git a/commands/balance.js b/commands/balance.js index 4fb603f5a8..91b85a4a54 100644 --- a/commands/balance.js +++ b/commands/balance.js @@ -31,6 +31,7 @@ module.exports = function (program, conf) { }) so.selector = s.selector so.debug = cmd.debug + so.mode = 'live' var engine = engineFactory(s, conf) function balance () { s.exchange.getBalance(s, function (err, balance) { From e0e0c80a4b35279ed79764d0749f2112aecb000d Mon Sep 17 00:00:00 2001 From: Illya Havsiyevych Date: Thu, 1 Mar 2018 10:59:50 +0200 Subject: [PATCH 212/236] filter out 'sim' and '_stub' (#1444) --- commands/list-selectors.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/commands/list-selectors.js b/commands/list-selectors.js index eeca5f3390..cfb1de4496 100644 --- a/commands/list-selectors.js +++ b/commands/list-selectors.js @@ -9,6 +9,8 @@ module.exports = function (program) { .action(function (/*cmd*/) { var exchanges = fs.readdirSync('./extensions/exchanges') exchanges.forEach(function(exchange){ + if (exchange === 'sim' || exchange === '_stub') return + console.log(`${exchange}:`) var products = require(`../extensions/exchanges/${exchange}/products.json`) products.sort(function (a, b) { From 135e9ba820497e3f6b486439dec356e5f91c6a5f Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Thu, 1 Mar 2018 10:39:13 +0100 Subject: [PATCH 213/236] update package-lock --- package-lock.json | 758 ++++++++++++++++++++++------------------------ 1 file changed, 360 insertions(+), 398 deletions(-) diff --git a/package-lock.json b/package-lock.json index e55b09b204..ff0ce86cc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -125,25 +125,25 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { "mime-types": "2.1.18", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", - "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz", + "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==" }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "5.4.1" + "acorn": "5.5.0" } }, "acorn-globals": { @@ -151,7 +151,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.4.1" + "acorn": "5.5.0" } }, "acorn-jsx": { @@ -276,47 +276,14 @@ "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=" }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "micromatch": "2.3.11", + "micromatch": "3.1.9", "normalize-path": "2.1.1" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "1.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "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" - } - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -1399,9 +1366,9 @@ "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==" }, "bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha1-SfiW1uhYpKSZ34XDj7OZua/4QPg=" }, "bitfinex-api-node": { "version": "1.2.1", @@ -1629,9 +1596,9 @@ } }, "bson": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", - "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.5.tgz", + "integrity": "sha512-D4SCtud6mlEb48kXdTHU31DRU0bsgOJ+4St1Dcx30uYNnf/aGc+hC9gHB/z0Eth8HYYs/hr0SFdyZViht19SwA==" }, "buffer": { "version": "4.9.1", @@ -1787,9 +1754,9 @@ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "ccxt": { - "version": "1.10.1216", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1216.tgz", - "integrity": "sha512-Zg7aFvZ+upQfwf4ZWu6MnOFAWGui0s/brYGREpd1RFb1cpjA1jGx1H/eXihLNn1BRFKPdlDVJcN5YZui0/KZsA==", + "version": "1.10.1265", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1265.tgz", + "integrity": "sha512-HBkKDLeCfTxL9+AFkgoEEFm+ZtcusseWGzKrqCgKf3qJrfYPgs9lU5smd3GYmX657CghH86vKST814EC5DOLsQ==", "requires": { "cloudscraper": "1.4.1", "crypto-js": "3.1.9-1", @@ -1940,7 +1907,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -2001,32 +1968,128 @@ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", "requires": { - "anymatch": "1.3.2", + "anymatch": "2.0.0", "async-each": "1.0.1", + "braces": "2.3.1", "fsevents": "1.1.3", - "glob-parent": "2.0.0", + "glob-parent": "3.1.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", - "is-glob": "2.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "readdirp": "2.1.0", + "upath": "1.0.4" }, "dependencies": { - "is-extglob": { + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + } + }, + "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } }, - "is-glob": { + "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extglob": "1.0.0" + "is-extendable": "0.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" } } } @@ -2437,7 +2500,7 @@ "qs": "6.4.0", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -2668,7 +2731,7 @@ "resolved": "https://registry.npmjs.org/counterup/-/counterup-1.0.2.tgz", "integrity": "sha1-B9vh5dMYwXAtv/ir4l6aS4Jp3Hg=", "requires": { - "jquery": "3.2.1", + "jquery": "3.3.1", "waypoints": "4.0.1" } }, @@ -3184,11 +3247,11 @@ } }, "echarts": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.0.2.tgz", - "integrity": "sha512-2kLhHvSAVbJ6QYVDxuySFp/+LfJxlYTYyPaOfwqydiFMAL9Wx7jzarfR1P4P6DFzLCZi4U4mv6EcZhH9BantKQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.0.4.tgz", + "integrity": "sha512-PDWGchRwBvMcNJbg94/thIIDgD8Jw2APtbK6K9rq1X8h6rQIdQ3IFTEvRwGS9U0zsUgJQQwXFLXIw+RJ/EH3fw==", "requires": { - "zrender": "4.0.1" + "zrender": "4.0.3" } }, "editions": { @@ -3329,21 +3392,27 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", - "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "requires": { "esprima": "3.1.3", "estraverse": "4.2.0", "esutils": "2.0.2", "optionator": "0.8.2", - "source-map": "0.5.7" + "source-map": "0.6.1" }, "dependencies": { "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true } } }, @@ -3480,7 +3549,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "requires": { - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -3496,7 +3565,7 @@ "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", "dev": true, "requires": { - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-jsx": "3.0.1" } }, @@ -3515,12 +3584,11 @@ } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -3654,7 +3722,7 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "requires": { - "accepts": "1.3.4", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", @@ -3807,9 +3875,9 @@ } }, "file-loader": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.9.tgz", - "integrity": "sha512-6ql03hOSoJHBkTB+3De/f7NJse+JXkUwvAf3y4Q5rIcTD0kqJiE3btvLnDcZT+P4t1QYLb9dJ9EI4auzfo3wFA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.10.tgz", + "integrity": "sha512-dNnT4yJgUPtGDg0+m03kQ0b/PZi3Y12EnqYuRPNCsbYkBZc6j+fwVWy40jWzZjn5kIzQ4BLIxzJimbwAYlnPGw==", "requires": { "loader-utils": "1.1.0", "schema-utils": "0.4.5" @@ -4044,14 +4112,12 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "optional": true, "requires": { "co": "4.6.0", @@ -4060,19 +4126,16 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -4081,43 +4144,36 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -4125,24 +4181,21 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -4150,61 +4203,51 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4212,16 +4255,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -4229,31 +4270,26 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4261,25 +4297,21 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -4289,13 +4321,11 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -4305,8 +4335,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -4316,8 +4345,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -4332,8 +4360,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4341,16 +4368,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4362,19 +4387,16 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -4383,14 +4405,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -4400,13 +4420,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": 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=", + "bundled": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -4416,8 +4434,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4425,44 +4442,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4470,20 +4480,17 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -4491,20 +4498,17 @@ }, "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=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -4515,56 +4519,48 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -4582,8 +4578,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -4592,8 +4587,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4604,45 +4598,38 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4651,36 +4638,30 @@ }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4691,16 +4672,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4713,8 +4692,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4743,47 +4721,40 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -4799,16 +4770,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4817,36 +4786,31 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4855,8 +4819,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "optional": true, "requires": { "debug": "2.6.8", @@ -4871,8 +4834,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -4880,8 +4842,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4889,31 +4850,26 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -4921,8 +4877,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -4930,8 +4885,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, @@ -5006,7 +4960,7 @@ "integrity": "sha512-5KdMBa+S6F6nlz9emyLRDp6ybrg3zA7oeWvjXnP5d++sK0Pv4rBSS2zuZ/Q63fFFXXMSHo2EA95pITSCbGcRSA==", "requires": { "bignumber.js": "5.0.0", - "bintrees": "1.0.1", + "bintrees": "1.0.2", "request": "2.83.0", "ws": "4.1.0" }, @@ -5060,16 +5014,6 @@ "asynckit": "0.4.0", "combined-stream": "1.0.6", "mime-types": "2.1.18" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - } } }, "har-validator": { @@ -5136,7 +5080,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -6839,14 +6783,14 @@ } }, "jquery": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" }, "js-base64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", - "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==" }, "js-tokens": { "version": "3.0.2", @@ -6966,7 +6910,7 @@ "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", "requires": { "abab": "1.0.4", - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-globals": "4.1.0", "array-equal": "1.0.0", "browser-process-hrtime": "0.1.2", @@ -6974,7 +6918,7 @@ "cssom": "0.3.2", "cssstyle": "0.2.37", "domexception": "1.0.1", - "escodegen": "1.9.0", + "escodegen": "1.9.1", "html-encoding-sniffer": "1.0.2", "left-pad": "1.2.0", "nwmatcher": "1.4.3", @@ -6984,7 +6928,7 @@ "request-promise-native": "1.0.5", "sax": "1.2.4", "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "w3c-hr-time": "1.0.1", "webidl-conversions": "4.0.2", "whatwg-encoding": "1.0.3", @@ -7108,7 +7052,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -7846,13 +7790,6 @@ "seed-random": "2.2.0", "tiny-emitter": "2.0.2", "typed-function": "1.0.1" - }, - "dependencies": { - "typed-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.0.1.tgz", - "integrity": "sha512-Ie5d+HS39FU+sKj5nzcSV9pucMOtHsomaZPaxX9CWnxeqcdBkGl0cGKx1xd5v+b1czUd1iVa/RMZbsN8wnfGPg==" - } } }, "md5.js": { @@ -8362,7 +8299,7 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.3.tgz", "integrity": "sha512-AkEiYeq4PZrgoKPZ32q2nL2xFe9iswOgefMipS2YHJHX8DCFAXmYr1aFxefAWisinxI/nd57nBMSe4mrm3yV1g==", "requires": { - "bson": "1.0.4", + "bson": "1.0.5", "require_optional": "1.0.1" } }, @@ -8488,9 +8425,9 @@ } }, "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.2.tgz", + "integrity": "sha512-XTBoBY8NoeGAqQywTM8BjBz/Ro37eTmVF657yf6JumfOhxW9eET43Hve5+6L4+lo3hTDx7kTbC1WfasTHinDpg==" }, "node-gyp": { "version": "3.6.2", @@ -8633,7 +8570,7 @@ "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.4.3", "uuid": "3.2.1" } @@ -8791,7 +8728,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -8916,7 +8853,7 @@ "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -9417,6 +9354,11 @@ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -9668,7 +9610,7 @@ "node-uuid": "1.4.8", "oauth-sign": "0.3.0", "qs": "0.6.6", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.3.0" } }, @@ -9705,7 +9647,7 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "requires": { "chalk": "1.1.3", - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.5.7", "supports-color": "3.2.3" }, @@ -10405,9 +10347,9 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "prettier": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", - "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==" }, "pretty-bytes": { "version": "4.0.2", @@ -10525,7 +10467,7 @@ "requires": { "clone": "2.1.1", "mime": "1.6.0", - "node-forge": "0.7.1", + "node-forge": "0.7.2", "request": "2.83.0", "websocket": "1.0.25" }, @@ -10655,7 +10597,7 @@ "qs": "6.5.1", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" } @@ -11098,7 +11040,7 @@ "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.4.3" }, "dependencies": { @@ -11128,7 +11070,7 @@ "bluebird": "3.5.1", "request-promise-core": "1.1.1", "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "tough-cookie": "2.3.4" } }, "request-promise-core": { @@ -11146,7 +11088,7 @@ "requires": { "request-promise-core": "1.1.1", "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "tough-cookie": "2.3.4" } }, "require-directory": { @@ -11510,7 +11452,7 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.0", + "js-base64": "2.4.3", "source-map": "0.4.4" }, "dependencies": { @@ -11905,22 +11847,32 @@ } }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + }, "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", @@ -12519,9 +12471,9 @@ } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { "punycode": "1.4.1" } @@ -12611,6 +12563,11 @@ "mime-types": "2.1.18" } }, + "typed-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.0.1.tgz", + "integrity": "sha512-Ie5d+HS39FU+sKj5nzcSV9pucMOtHsomaZPaxX9CWnxeqcdBkGl0cGKx1xd5v+b1czUd1iVa/RMZbsN8wnfGPg==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -12797,6 +12754,11 @@ "os-homedir": "1.0.2" } }, + "upath": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -12978,12 +12940,12 @@ "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "vary": { @@ -13090,13 +13052,13 @@ } }, "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", + "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "chokidar": "2.0.2", + "graceful-fs": "4.1.11", + "neo-async": "2.5.0" } }, "waypoints": { @@ -13110,11 +13072,11 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.0.tgz", - "integrity": "sha512-wnEjBERuGrbelfsBJ7QKLuGAEaLNPTGJrLgK8H0p1TPS3pUqvTU4OZKeS1OAd8xBpEkuBrFcyHpXPvi0JZVvkA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.1.tgz", + "integrity": "sha512-jHQNMmKPElreOYLCxR7SHfPnbhcqRT9O7lYPOMDR6Gt5XueJ7tH7JReXm4uMFstBKf7rj2Y7AD3LiMKR2zexYA==", "requires": { - "acorn": "5.4.1", + "acorn": "5.5.0", "acorn-dynamic-import": "3.0.0", "ajv": "6.2.0", "ajv-keywords": "3.1.0", @@ -13131,7 +13093,7 @@ "schema-utils": "0.4.5", "tapable": "1.0.0", "uglifyjs-webpack-plugin": "1.2.2", - "watchpack": "1.4.0", + "watchpack": "1.5.0", "webpack-sources": "1.1.0" }, "dependencies": { @@ -13179,7 +13141,7 @@ "mkdirp": "0.5.1", "p-each-series": "1.0.0", "p-lazy": "1.0.0", - "prettier": "1.10.2", + "prettier": "1.11.1", "recast": "0.13.2", "resolve-cwd": "2.0.0", "supports-color": "4.5.0", @@ -14300,9 +14262,9 @@ "integrity": "sha1-o97wa6XjmuZEhQu0yirUEStIVek=" }, "zrender": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.0.1.tgz", - "integrity": "sha512-VC9bTAZwd5OVgryysxBgNvIZuwBsRJbIDkSyK9PAk7e9wE/M0k4R3eylVYc1IAcDXvccSFnj4/NkzCteh/YSpA==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.0.3.tgz", + "integrity": "sha512-LdkntRaNogzKAwlICuS0wdZcYaeA94llQ0SWqsgbcd6SPasgkjstaoe6vr5P9Pd2ID/rlhf3UrmIuFzqOLdDuA==" } } } From d19b734afd14ce37b79f4d460633cf37149f1c90 Mon Sep 17 00:00:00 2001 From: defkev Date: Fri, 2 Mar 2018 08:45:38 +0100 Subject: [PATCH 214/236] More reorder fixes (#1451) * Use expected_fee (in currency) instead of percentage to size reorder_pct closer to the origin size * Update remaining_size on reorder to prevent second (and consecutive) reorder(s) from using the initial size --- lib/engine.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index 70d194ddba..060fb10ce2 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -282,6 +282,7 @@ module.exports = function (s, conf) { order.price = opts.price order.size = opts.size order.fee = opts.fee + order.remaining_size = opts.size order.product_id = s.product_id order.post_only = conf.post_only @@ -343,7 +344,7 @@ module.exports = function (s, conf) { // 8. if not filled after timer, repeat process // 9. if filled, record order stats function executeSignal (signal, _cb, size, is_reorder, is_taker) { - let price, fee, buy_pct, sell_pct + let price, expected_fee, buy_pct, sell_pct delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order'] s.last_signal = signal if (!is_reorder && s[signal + '_order']) { @@ -387,7 +388,7 @@ module.exports = function (s, conf) { } if (is_reorder && s[signal + '_order']) { if (signal === 'buy') { - reorder_pct = n(size).multiply(s.buy_order.price).divide(s.balance.currency).multiply(100).add(s.buy_order.fee) + reorder_pct = n(size).multiply(s.buy_order.price).add(s.buy_order.fee).divide(s.balance.currency).multiply(100) } else { reorder_pct = n(size).divide(s.balance.asset).multiply(100) } @@ -528,7 +529,7 @@ module.exports = function (s, conf) { placeOrder(signal, { size: size, price: price, - fee: fee || null, + fee: expected_fee || null, is_taker: is_taker, cancel_after: so.cancel_after || 'day' }, function (err, order) { From 6f7cdf89bf72bc4f5f97f842d0954a97386966c6 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 2 Mar 2018 10:54:31 +0000 Subject: [PATCH 215/236] Exchanges: update-products 723 --- extensions/exchanges/bitfinex/products.json | 12 ++++++------ extensions/exchanges/bittrex/products.json | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index 75173f8ec7..6e327e276f 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -498,7 +498,7 @@ { "asset": "SNT", "currency": "USD", - "min_size": "62.0", + "min_size": "64.0", "max_size": "200000.0", "increment": "0.000001", "label": "SNT/USD" @@ -506,7 +506,7 @@ { "asset": "SNT", "currency": "BTC", - "min_size": "62.0", + "min_size": "64.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/BTC" @@ -514,7 +514,7 @@ { "asset": "SNT", "currency": "ETH", - "min_size": "62.0", + "min_size": "64.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNT/ETH" @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "186.0", + "min_size": "192.0", "max_size": "200000.0", "increment": "0.0000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "186.0", + "min_size": "192.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "186.0", + "min_size": "192.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/ETH" diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index 49f0917556..756217a145 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2158,5 +2158,21 @@ "max_size": "1000000", "increment": "0.00000001", "label": "ETH/BCPT" + }, + { + "asset": "TRX", + "currency": "BTC", + "min_size": "0.00000001", + "max_size": "1000000", + "increment": "0.00000001", + "label": "BTC/TRX" + }, + { + "asset": "TRX", + "currency": "ETH", + "min_size": "0.00000001", + "max_size": "1000000", + "increment": "0.00000001", + "label": "ETH/TRX" } ] \ No newline at end of file From 84f383afad60c1780c4476a7ea308f5e8d1e8c8a Mon Sep 17 00:00:00 2001 From: Illya Havsiyevych Date: Fri, 2 Mar 2018 16:42:46 +0200 Subject: [PATCH 216/236] remove invalid 'done' status based on assumption that if order is not in active orders list - it is done (#1455) add 'cancel' status based on order not in active orders and no trades --- extensions/exchanges/poloniex/exchange.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/extensions/exchanges/poloniex/exchange.js b/extensions/exchanges/poloniex/exchange.js index 14b9657310..8b34048e3e 100644 --- a/extensions/exchanges/poloniex/exchange.js +++ b/extensions/exchanges/poloniex/exchange.js @@ -255,16 +255,15 @@ module.exports = function container (conf) { if (api_order.orderNumber == opts.order_id) active = true }) } - if (!active) { - order.status = 'done' - order.done_at = new Date().getTime() - return cb(null, order) - } client.returnOrderTrades(opts.order_id, function (err, body) { if (typeof body === 'string' || !body) { return retry('getOrder', args) } if (err || body.error || !body.forEach) return cb(null, order) + if (body.length === 0 && !active) { + order.status = 'cancelled' + return cb(null, order) + } order.filled_size = '0' body.forEach(function (trade) { order.filled_size = n(order.filled_size).add(trade.amount).format('0.00000000') From d46e1c061f29a9d8c9ca8debfa014cc9708432c5 Mon Sep 17 00:00:00 2001 From: kongres Date: Sat, 3 Mar 2018 15:05:21 +0300 Subject: [PATCH 217/236] Fixed Poloniex Exchange trading (#1458) - removed credentials for public client - added checking for error 'Nonce must be greater...' when trade --- extensions/exchanges/poloniex/exchange.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extensions/exchanges/poloniex/exchange.js b/extensions/exchanges/poloniex/exchange.js index 8b34048e3e..d25f74e589 100644 --- a/extensions/exchanges/poloniex/exchange.js +++ b/extensions/exchanges/poloniex/exchange.js @@ -9,7 +9,7 @@ module.exports = function container (conf) { var public_client, authed_client function publicClient (/*product_id*/) { - if (!public_client) public_client = new Poloniex(conf.poloniex.key, conf.poloniex.secret) + if (!public_client) public_client = new Poloniex() return public_client } @@ -212,6 +212,8 @@ module.exports = function container (conf) { order.status = 'rejected' order.reject_reason = 'balance' return cb(null, order) + } else if (result && result.error && result.error.match(/^Nonce must be greater/)) { + return retry('trade', args) } if (!err && result.error) { err = new Error('unable to ' + type) From 28d668c6d3a2a8eef75c21082d21e61ae245ece3 Mon Sep 17 00:00:00 2001 From: kongres Date: Sat, 3 Mar 2018 15:06:39 +0300 Subject: [PATCH 218/236] Fixed calc buy_pct when used buy_max_amt (#1457) --- lib/engine.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index 060fb10ce2..6c33664dad 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -405,8 +405,10 @@ module.exports = function (s, conf) { } if (so.buy_max_amt) { // account for held assets as buy_max let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() - let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() - buy_pct = buy_max_as_pct + if(adjusted_buy_max_amt < s.balance.currency){ + let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() + buy_pct = buy_max_as_pct + } } else { // account for held assets as % let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() let to_buy_pct = n(buy_pct).subtract(held_pct).value() From 9f3f4fa3cc0fa7062529bff02b818ac2313d8ec9 Mon Sep 17 00:00:00 2001 From: defkev Date: Sat, 3 Mar 2018 13:09:20 +0100 Subject: [PATCH 219/236] Fix: Bot always defaults to maker (#1459) --- commands/buy.js | 2 +- commands/sell.js | 2 +- commands/trade.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/commands/buy.js b/commands/buy.js index 372613c2b3..8435a9036c 100644 --- a/commands/buy.js +++ b/commands/buy.js @@ -31,7 +31,7 @@ module.exports = function (program, conf) { so.buy_pct = cmd.pct so.selector = objectifySelector(selector || conf.selector) var order_types = ['maker', 'taker'] - if (!(so.order_type in order_types) || !so.order_type) { + if (!order_types.includes(so.order_type)) { so.order_type = 'maker' } so.mode = 'live' diff --git a/commands/sell.js b/commands/sell.js index f75821740b..a903bee428 100644 --- a/commands/sell.js +++ b/commands/sell.js @@ -31,7 +31,7 @@ module.exports = function (program, conf) { so.sell_pct = cmd.pct so.selector = objectifySelector(selector || conf.selector) var order_types = ['maker', 'taker'] - if (!(so.order_type in order_types) || !so.order_type) { + if (!order_types.includes(so.order_type)) { so.order_type = 'maker' } so.mode = 'live' diff --git a/commands/trade.js b/commands/trade.js index 762983ca0b..6bae0ea902 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -349,7 +349,7 @@ module.exports = function (program, conf) { } var order_types = ['maker', 'taker'] - if (!(so.order_type in order_types) || !so.order_type) { + if (!order_types.includes(so.order_type)) { so.order_type = 'maker' } From 10be83db110a53d44b6fa69a47d438738e5f7c82 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Sun, 4 Mar 2018 20:35:17 -0500 Subject: [PATCH 220/236] Ensure results with negative vsBuyHold don't get backward fitness --- scripts/genetic_backtester/phenotype.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/genetic_backtester/phenotype.js b/scripts/genetic_backtester/phenotype.js index be9dffc559..778913db44 100644 --- a/scripts/genetic_backtester/phenotype.js +++ b/scripts/genetic_backtester/phenotype.js @@ -45,8 +45,8 @@ module.exports = { let items = ['simple', 'low', 'trend'] let index = Math.floor(Math.random() * items.length) r[k] = items[index] - } - + } + } return r }, @@ -78,8 +78,8 @@ module.exports = { fitness: function(phenotype) { if (typeof phenotype.sim === 'undefined') return 0 - - var vsBuyHoldRate = (phenotype.sim.vsBuyHold / 50) + + var vsBuyHoldRate = ( (phenotype.sim.vsBuyHold + 100) / 50) var wlRatio = phenotype.sim.wins / phenotype.sim.losses if(isNaN(wlRatio)) { // zero trades will result in 0/0 which is NaN wlRatio = 1 From a2cbf987b5c0089f78ebfbd6ed15276f36cf9905 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Mon, 5 Mar 2018 03:09:59 -0500 Subject: [PATCH 221/236] Revamp Auto Backtester (#1433) --- extensions/strategies/bollinger/strategy.js | 19 + extensions/strategies/cci_srsi/strategy.js | 27 + .../strategies/crossover_vwap/strategy.js | 51 +- extensions/strategies/dema/strategy.js | 22 + .../strategies/forex_analytics/strategy.js | 16 +- extensions/strategies/macd/strategy.js | 29 +- extensions/strategies/momentum/strategy.js | 17 + extensions/strategies/neural/strategy.js | 34 +- extensions/strategies/rsi/strategy.js | 22 + extensions/strategies/sar/strategy.js | 18 + extensions/strategies/speed/strategy.js | 20 +- extensions/strategies/srsi_macd/strategy.js | 28 +- extensions/strategies/stddev/strategy.js | 27 +- extensions/strategies/ta_ema/strategy.js | 19 + extensions/strategies/ta_macd/strategy.js | 24 + extensions/strategies/ta_macd_ext/strategy.js | 27 + extensions/strategies/ta_ppo/strategy.js | 21 + extensions/strategies/ta_trix/strategy.js | 17 + extensions/strategies/ta_ultosc/strategy.js | 20 + .../strategies/trend_bollinger/strategy.js | 19 + extensions/strategies/trend_ema/strategy.js | 31 +- extensions/strategies/trendline/strategy.js | 33 +- .../strategies/trust_distrust/strategy.js | 22 + extensions/strategies/wavetrend/strategy.js | 23 + lib/backtester.js | 573 ++++++++ .../genetic_backtester => lib}/phenotype.js | 119 +- scripts/auto_backtester/backtester.js | 558 ++++---- scripts/genetic_backtester/darwin.js | 1192 ++--------------- 28 files changed, 1532 insertions(+), 1496 deletions(-) create mode 100644 lib/backtester.js rename {scripts/genetic_backtester => lib}/phenotype.js (53%) diff --git a/extensions/strategies/bollinger/strategy.js b/extensions/strategies/bollinger/strategy.js index 3f3edd2476..4650b6ac2e 100644 --- a/extensions/strategies/bollinger/strategy.js +++ b/extensions/strategies/bollinger/strategy.js @@ -1,6 +1,7 @@ var z = require('zero-fill') , n = require('numbro') , bollinger = require('../../../lib/bollinger') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'bollinger', @@ -58,6 +59,24 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + bollinger_size: Phenotypes.Range(1, 40), + bollinger_time: Phenotypes.RangeFloat(1,6), + bollinger_upper_bound_pct: Phenotypes.RangeFloat(-1, 30), + bollinger_lower_bound_pct: Phenotypes.RangeFloat(-1, 30) } } diff --git a/extensions/strategies/cci_srsi/strategy.js b/extensions/strategies/cci_srsi/strategy.js index 000cbaddd9..6e8dbdd40b 100644 --- a/extensions/strategies/cci_srsi/strategy.js +++ b/extensions/strategies/cci_srsi/strategy.js @@ -3,6 +3,7 @@ let z = require('zero-fill') , ema = require('../../../lib/ema') , srsi = require('../../../lib/srsi') , cci = require('../../../lib/cci') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'cci_srsi', @@ -103,6 +104,32 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + ema_acc: Phenotypes.RangeFloat(0, 0.5), + cci_periods: Phenotypes.Range(1, 200), + rsi_periods: Phenotypes.Range(1, 200), + srsi_periods: Phenotypes.Range(1, 200), + srsi_k: Phenotypes.Range(1, 50), + srsi_d: Phenotypes.Range(1, 50), + oversold_rsi: Phenotypes.Range(1, 100), + overbought_rsi: Phenotypes.Range(1, 100), + oversold_cci: Phenotypes.Range(-100, 100), + overbought_cci: Phenotypes.Range(1, 100), + constant: Phenotypes.RangeFloat(0.001, 0.05) } } diff --git a/extensions/strategies/crossover_vwap/strategy.js b/extensions/strategies/crossover_vwap/strategy.js index 797a5645bd..6a695670f1 100644 --- a/extensions/strategies/crossover_vwap/strategy.js +++ b/extensions/strategies/crossover_vwap/strategy.js @@ -3,18 +3,19 @@ var z = require('zero-fill') , vwap = require('../../../lib/vwap') , ema = require('../../../lib/ema') , sma = require('../../../lib/sma') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'crossover_vwap', description: 'Estimate trends by comparing "Volume Weighted Average Price" to the "Exponential Moving Average".', - getOptions: function () { + getOptions: function () { // default start is 30, 108, 60. // these are relative to period length. - + /* - Positive simulations during testing: - + Positive simulations during testing: + zenbot sim kraken.XXRP-ZEUR --period="120m" --strategy=crossover_vwap --currency_capital=700 --asset_capital=0 --max_slippage_pct=100 --days=60 --avg_slippage_pct=0.045 --vwap_max=8000 --markup_sell_pct=0.5 --markdown_buy_pct=0.5 --emalen1=50 zenbot sim kraken.XXRP-ZEUR --period="120m" --strategy=crossover_vwap --currency_capital=700 --asset_capital=0 --max_slippage_pct=100 --days=60 --avg_slippage_pct=0.045 --vwap_max=8000 --markup_sell_pct=0.5 --markdown_buy_pct=0.5 --emalen1=30 */ @@ -26,15 +27,15 @@ module.exports = { this.option('vwap_length', 'Min periods for vwap to start', Number, 10 )//gold this.option('vwap_max', 'Max history for vwap. Increasing this makes it more sensitive to short-term changes', Number, 8000)//gold }, - + calculate: function () { - + }, - - onPeriod: function (s, cb) { + + onPeriod: function (s, cb) { vwap(s, 'vwap', s.options.vwap_length, s.options.vwap_max)//gold - + ema(s, 'ema1', s.options.emalen1)//green sma(s, 'sma1', s.options.smalen1, 'high')//red sma(s, 'sma2', s.options.smalen2)//purple @@ -42,7 +43,7 @@ module.exports = { smared = s.period.sma1, smapurple= s.period.sma2, vwapgold = s.period.vwap - + // helper functions var trendUp = function(s){ if (s.trend !== 'up') { @@ -58,10 +59,10 @@ module.exports = { s.trend = 'down' s.signal = !s.acted_on_trend ? 'sell' : null } - + if(emagreen && smared && smapurple && s.period.vwap){ if(vwapgold > emagreen) trendUp(s) - else trendDown(s) + else trendDown(s) } cb() }, @@ -70,11 +71,11 @@ module.exports = { var cols = [] let emagreen = s.period.ema1, vwapgold = s.period.vwap - - if (vwapgold && emagreen) { + + if (vwapgold && emagreen) { var color = 'green' if(vwapgold > emagreen) color = 'red' - + cols.push(z(6, n(vwapgold).format('0.00000'), '')['yellow'] + ' ') cols.push(z(6, n(emagreen).format('0.00000'), '')[color] + ' ') } @@ -82,6 +83,26 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 400, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + emalen1: Phenotypes.Range(1, 300), + smalen1: Phenotypes.Range(1, 300), + smalen2: Phenotypes.Range(1, 300), + vwap_length: Phenotypes.Range(1, 300), + vwap_max: Phenotypes.RangeFactor(0, 10000, 10)//0 disables this max cap. Test in increments of 10 } } diff --git a/extensions/strategies/dema/strategy.js b/extensions/strategies/dema/strategy.js index 4e5c3f7a3a..57956d0829 100644 --- a/extensions/strategies/dema/strategy.js +++ b/extensions/strategies/dema/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'dema', @@ -79,6 +80,27 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + ema_short_period: Phenotypes.Range(1, 20), + ema_long_period: Phenotypes.Range(20, 100), + up_trend_threshold: Phenotypes.Range(0, 50), + down_trend_threshold: Phenotypes.Range(0, 50), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/forex_analytics/strategy.js b/extensions/strategies/forex_analytics/strategy.js index 1a3d952ebd..75bd6b32cb 100644 --- a/extensions/strategies/forex_analytics/strategy.js +++ b/extensions/strategies/forex_analytics/strategy.js @@ -24,14 +24,14 @@ module.exports = { } else { modelfile = path.resolve(__dirname, '../../../', s.options.modelfile) } - + if (fs.existsSync(modelfile)) { model = require(modelfile) } else { console.error('Modelfile ' + modelfile + ' does not exist.') - process.exit(1) + process.exit(1) } - + if (s.options.period !== model.period) { console.error(('Error: Period in model training was ' + model.period + ', now you specified ' + s.options.period + '.').red) process.exit(1) @@ -55,7 +55,7 @@ module.exports = { time: s.period.time / 1000 } candlesticks.unshift(candlestick) - + s.lookback.slice(0, s.lookback.length).map(function (period) { var candlestick = { open: period.open, @@ -66,12 +66,12 @@ module.exports = { } candlesticks.unshift(candlestick) }) - + var result = analytics.getMarketStatus(candlesticks, {'strategy': model.strategy}) if (result.shouldSell) { s.signal = 'sell' } else if (result.shouldBuy) { - s.signal = 'buy' + s.signal = 'buy' } } @@ -81,6 +81,8 @@ module.exports = { onReport: function () { var cols = [] return cols - } + }, + + phenotypes: null } diff --git a/extensions/strategies/macd/strategy.js b/extensions/strategies/macd/strategy.js index 344f067878..e85ee7e0f2 100644 --- a/extensions/strategies/macd/strategy.js +++ b/extensions/strategies/macd/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , ema = require('../../../lib/ema') , rsi = require('../../../lib/rsi') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'macd', @@ -30,7 +31,7 @@ module.exports = { if (s.options.mode === 'sim' && s.options.verbose) console.log(('\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\n').cyan) } } - + // compute MACD ema(s, 'ema_short', s.options.ema_short_period) ema(s, 'ema_long', s.options.ema_long_period) @@ -42,7 +43,7 @@ module.exports = { } } }, - + onPeriod: function (s, cb) { if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') { if (s.overbought) { @@ -51,7 +52,7 @@ module.exports = { s.signal = 'sell' return cb() } - + } if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') { @@ -83,6 +84,28 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + ema_short_period: Phenotypes.Range(1, 20), + ema_long_period: Phenotypes.Range(20, 100), + signal_period: Phenotypes.Range(1, 20), + up_trend_threshold: Phenotypes.Range(0, 50), + down_trend_threshold: Phenotypes.Range(0, 50), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/momentum/strategy.js b/extensions/strategies/momentum/strategy.js index 2a5c53fae9..9bc9ee8509 100644 --- a/extensions/strategies/momentum/strategy.js +++ b/extensions/strategies/momentum/strategy.js @@ -1,6 +1,7 @@ let z = require('zero-fill') , n = require('numbro') , momentum = require('../../../lib/momentum') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'momentum', @@ -46,6 +47,22 @@ module.exports = { cols.push(' '.repeat(5)) } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 2500), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + momentum_size: Phenotypes.Range(1,20) } } diff --git a/extensions/strategies/neural/strategy.js b/extensions/strategies/neural/strategy.js index 77b7997ddf..b0f1f3b5b5 100644 --- a/extensions/strategies/neural/strategy.js +++ b/extensions/strategies/neural/strategy.js @@ -1,9 +1,11 @@ -var convnetjs = require('convnetjs') -var z = require('zero-fill') -var n = require('numbro') -var math = require('mathjs') +let convnetjs = require('convnetjs') + , z = require('zero-fill') + , n = require('numbro') + , math = require('mathjs') + , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') const cluster = require('cluster') -var ema = require('../../../lib/ema') + // the below line starts you at 0 threads global.forks = 0 // the below line is for calculating the last mean vs the now mean. @@ -110,5 +112,27 @@ module.exports = { cols.push(z(8, n(global.meanp).format('0.000000000'), ' ')[global.meanp > global.mean ? 'green' : 'red']) return cols }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + neurons_1: Phenotypes.Range(1, 200), + activation_1_type: Phenotypes.ListOption(['sigmoid', 'tanh', 'relu']), + depth: Phenotypes.Range(1, 100), + min_predict: Phenotypes.Range(1, 100), + momentum: Phenotypes.Range(0, 100), + decay: Phenotypes.Range(1, 10), + learns: Phenotypes.Range(1, 200) + } } diff --git a/extensions/strategies/rsi/strategy.js b/extensions/strategies/rsi/strategy.js index 54ba26a7e2..0107f122fe 100644 --- a/extensions/strategies/rsi/strategy.js +++ b/extensions/strategies/rsi/strategy.js @@ -1,6 +1,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'rsi', @@ -69,6 +70,27 @@ module.exports = { cols.push(z(4, n(s.period.rsi).format('0'), ' ')[color]) } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + rsi_periods: Phenotypes.Range(1, 200), + oversold_rsi: Phenotypes.Range(1, 100), + overbought_rsi: Phenotypes.Range(1, 100), + rsi_recover: Phenotypes.Range(1, 100), + rsi_drop: Phenotypes.Range(0, 100), + rsi_divisor: Phenotypes.Range(1, 10) } } diff --git a/extensions/strategies/sar/strategy.js b/extensions/strategies/sar/strategy.js index ea56741729..a6d952d334 100644 --- a/extensions/strategies/sar/strategy.js +++ b/extensions/strategies/sar/strategy.js @@ -1,5 +1,6 @@ var z = require('zero-fill') , n = require('numbro') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'sar', @@ -90,6 +91,23 @@ module.exports = { cols.push(z(8, n(s.sar).subtract(s.period.close).divide(s.period.close).format('0.00%'), ' ').grey) } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(2, 100), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + sar_af: Phenotypes.RangeFloat(0.01, 1.0), + sar_max_af: Phenotypes.RangeFloat(0.01, 1.0) } } diff --git a/extensions/strategies/speed/strategy.js b/extensions/strategies/speed/strategy.js index ac161ebdad..cea53ab013 100644 --- a/extensions/strategies/speed/strategy.js +++ b/extensions/strategies/speed/strategy.js @@ -1,7 +1,8 @@ var z = require('zero-fill') , n = require('numbro') , ema = require('../../../lib/ema') - + , Phenotypes = require('../../../lib/phenotype') + module.exports = { name: 'speed', description: 'Trade when % change from last two 1m periods is higher than average.', @@ -51,6 +52,23 @@ module.exports = { cols.push(z(8, n(s.period.baseline).format('0.0000'), ' ').grey) } return cols + }, + + speed: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 100), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + baseline_periods: Phenotypes.Range(1, 5000), + trigger_factor: Phenotypes.RangeFloat(0.1, 10) } } diff --git a/extensions/strategies/srsi_macd/strategy.js b/extensions/strategies/srsi_macd/strategy.js index e4e99233b5..802193595d 100644 --- a/extensions/strategies/srsi_macd/strategy.js +++ b/extensions/strategies/srsi_macd/strategy.js @@ -2,6 +2,7 @@ let z = require('zero-fill') , n = require('numbro') , srsi = require('../../../lib/srsi') , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'srsi_macd', @@ -75,6 +76,31 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + rsi_periods: Phenotypes.Range(1, 200), + srsi_periods: Phenotypes.Range(1, 200), + srsi_k: Phenotypes.Range(1, 50), + srsi_d: Phenotypes.Range(1, 50), + oversold_rsi: Phenotypes.Range(1, 100), + overbought_rsi: Phenotypes.Range(1, 100), + ema_short_period: Phenotypes.Range(1, 20), + ema_long_period: Phenotypes.Range(20, 100), + signal_period: Phenotypes.Range(1, 20), + up_trend_threshold: Phenotypes.Range(0, 20), + down_trend_threshold: Phenotypes.Range(0, 20) } } - diff --git a/extensions/strategies/stddev/strategy.js b/extensions/strategies/stddev/strategy.js index 3e137b4173..f6b044fcd0 100644 --- a/extensions/strategies/stddev/strategy.js +++ b/extensions/strategies/stddev/strategy.js @@ -1,7 +1,8 @@ var z = require('zero-fill') -var stats = require('stats-lite') -var math = require('mathjs') -var ema = require('../../../lib/ema') + , stats = require('stats-lite') + , math = require('mathjs') + , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'stddev', @@ -32,7 +33,7 @@ module.exports = { if (s.sig1 === 'Down') { s.signal = 'sell' } - else if (s.sig0 === 'Up' && s.sig1 === 'Up') { + else if (s.sig0 === 'Up' && s.sig1 === 'Up') { s.signal = 'buy' } cb() @@ -42,5 +43,23 @@ module.exports = { cols.push(z(s.signal, ' ')[s.signal === false ? 'red' : 'green']) return cols }, + + phenotypes: { + // -- common + // reference in extensions is given in ms have not heard of an exchange that supports 500ms thru api so setting min at 1 second + period_length: Phenotypes.RangePeriod(1, 7200, 's'), + min_periods: Phenotypes.Range(1, 2500), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + trendtrades_1: Phenotypes.Range(2, 20), + trendtrades_2: Phenotypes.Range(4, 100) + } } diff --git a/extensions/strategies/ta_ema/strategy.js b/extensions/strategies/ta_ema/strategy.js index f9bda792d6..876e595c4c 100644 --- a/extensions/strategies/ta_ema/strategy.js +++ b/extensions/strategies/ta_ema/strategy.js @@ -3,6 +3,7 @@ var z = require('zero-fill') , ta_ema = require('../../../lib/ta_ema') , rsi = require('../../../lib/rsi') , stddev = require('../../../lib/stddev') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_ema', @@ -104,6 +105,24 @@ module.exports = { } } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 100), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + trend_ema: Phenotypes.Range(1, 40), + oversold_rsi_periods: Phenotypes.Range(5, 50), + oversold_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/ta_macd/strategy.js b/extensions/strategies/ta_macd/strategy.js index 9bc98520de..f930b1670e 100644 --- a/extensions/strategies/ta_macd/strategy.js +++ b/extensions/strategies/ta_macd/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ta_macd = require('../../../lib/ta_macd') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_macd', @@ -87,5 +88,28 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + // have to be minimum 2 because talib will throw an "TA_BAD_PARAM" error + ema_short_period: Phenotypes.Range(2, 20), + ema_long_period: Phenotypes.Range(20, 100), + signal_period: Phenotypes.Range(1, 20), + up_trend_threshold: Phenotypes.Range(0, 50), + down_trend_threshold: Phenotypes.Range(0, 50), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/ta_macd_ext/strategy.js b/extensions/strategies/ta_macd_ext/strategy.js index a2971040c7..53cdd570c5 100644 --- a/extensions/strategies/ta_macd_ext/strategy.js +++ b/extensions/strategies/ta_macd_ext/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ta_macd_ext = require('../../../lib/ta_macd_ext') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_macd_ext', @@ -118,5 +119,31 @@ module.exports = { } return cols }, + + ta_macd_ext: { + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 104), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // have to be minimum 2 because talib will throw an "TA_BAD_PARAM" error + ema_short_period: Phenotypes.Range(2, 20), + ema_long_period: Phenotypes.Range(20, 100), + signal_period: Phenotypes.Range(1, 20), + fast_ma_type: Phenotypes.RangeMaType(), + slow_ma_type: Phenotypes.RangeMaType(), + signal_ma_type: Phenotypes.RangeMaType(), + default_ma_type: Phenotypes.RangeMaType(), + // this.option('default_ma_type', 'set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type)', String, 'SMA') + up_trend_threshold: Phenotypes.Range(0, 50), + down_trend_threshold: Phenotypes.Range(0, 50), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) + } } diff --git a/extensions/strategies/ta_ppo/strategy.js b/extensions/strategies/ta_ppo/strategy.js index c2f9c5d67a..e450c2d46f 100644 --- a/extensions/strategies/ta_ppo/strategy.js +++ b/extensions/strategies/ta_ppo/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ta_ppo = require('../../../lib/ta_ppo') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_ppo', @@ -82,6 +83,26 @@ module.exports = { } return cols + }, + + phenotypes: { + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 104), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // have to be minimum 2 because talib will throw an "TA_BAD_PARAM" error + ema_short_period: Phenotypes.Range(2, 20), + ema_long_period: Phenotypes.Range(20, 100), + signal_period: Phenotypes.Range(1, 20), + ma_type: Phenotypes.RangeMaType(), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/ta_trix/strategy.js b/extensions/strategies/ta_trix/strategy.js index 6ab188238f..cf774da56a 100644 --- a/extensions/strategies/ta_trix/strategy.js +++ b/extensions/strategies/ta_trix/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ta_trix = require('../../../lib/ta_trix') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_trix', @@ -79,6 +80,22 @@ module.exports = { } return cols + }, + + phenotypes: { + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 104), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + timeperiod: Phenotypes.Range(1,60), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/ta_ultosc/strategy.js b/extensions/strategies/ta_ultosc/strategy.js index f64edaaf3c..ec6cc7870c 100644 --- a/extensions/strategies/ta_ultosc/strategy.js +++ b/extensions/strategies/ta_ultosc/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , rsi = require('../../../lib/rsi') , ultosc = require('../../../lib/ta_ultosc') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'ta_ultosc', @@ -128,6 +129,25 @@ module.exports = { } return cols + }, + + phenotypes: { + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 104), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + signal: Phenotypes.ListOption(['simple', 'low', 'trend']), + timeperiod1: Phenotypes.Range(1,50), + timeperiod2: Phenotypes.Range(1,50), + timeperiod3: Phenotypes.Range(1,50), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) } } diff --git a/extensions/strategies/trend_bollinger/strategy.js b/extensions/strategies/trend_bollinger/strategy.js index ccc65db868..e2432638da 100644 --- a/extensions/strategies/trend_bollinger/strategy.js +++ b/extensions/strategies/trend_bollinger/strategy.js @@ -1,6 +1,7 @@ var z = require('zero-fill') , n = require('numbro') , bollinger = require('../../../lib/bollinger') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'trend_bollinger', @@ -84,6 +85,24 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + bollinger_size: Phenotypes.Range(1, 40), + bollinger_time: Phenotypes.RangeFloat(1,6), + bollinger_upper_bound_pct: Phenotypes.RangeFloat(-1, 30), + bollinger_lower_bound_pct: Phenotypes.RangeFloat(-1, 30) } } diff --git a/extensions/strategies/trend_ema/strategy.js b/extensions/strategies/trend_ema/strategy.js index c7d5b762d8..8565ab0447 100644 --- a/extensions/strategies/trend_ema/strategy.js +++ b/extensions/strategies/trend_ema/strategy.js @@ -1,8 +1,9 @@ -var z = require('zero-fill'), - n = require('numbro'), - ema = require('../../../lib/ema'), - rsi = require('../../../lib/rsi'), - stddev = require('../../../lib/stddev') +var z = require('zero-fill') + , n = require('numbro') + , ema = require('../../../lib/ema') + , rsi = require('../../../lib/rsi') + , stddev = require('../../../lib/stddev') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'trend_ema', @@ -90,6 +91,24 @@ module.exports = { } } return cols - } + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 100), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + trend_ema: Phenotypes.Range(1, 40), + oversold_rsi_periods: Phenotypes.Range(5, 50), + oversold_rsi: Phenotypes.Range(20, 100) + }, } diff --git a/extensions/strategies/trendline/strategy.js b/extensions/strategies/trendline/strategy.js index e79af93158..8a09975aaf 100644 --- a/extensions/strategies/trendline/strategy.js +++ b/extensions/strategies/trendline/strategy.js @@ -1,10 +1,12 @@ -var math = require('mathjs') -var trend = require('trend') -var z = require('zero-fill') -var n = require('numbro') +let math = require('mathjs') + , trend = require('trend') + , z = require('zero-fill') + , n = require('numbro') + , stats = require('stats-lite') + , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') var oldgrowth = 1 -var stats = require('stats-lite') -var ema = require('../../../lib/ema') + module.exports = { name: 'trendline', description: 'Calculate a trendline and trade when trend is positive vs negative.', @@ -101,4 +103,23 @@ module.exports = { cols.push(z(8, n(s.options.markup_sell_pct).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red']) return cols }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 400, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + lastpoints: Phenotypes.Range(20, 500), + avgpoints: Phenotypes.Range(300, 3000), + lastpoints2: Phenotypes.Range(5, 300), + avgpoints2: Phenotypes.Range(50, 1000), + } } diff --git a/extensions/strategies/trust_distrust/strategy.js b/extensions/strategies/trust_distrust/strategy.js index e12f3c5fff..21eec3845f 100644 --- a/extensions/strategies/trust_distrust/strategy.js +++ b/extensions/strategies/trust_distrust/strategy.js @@ -1,5 +1,6 @@ var z = require('zero-fill') , n = require('numbro') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'trust_distrust', @@ -131,6 +132,27 @@ module.exports = { cols.push(z(8, n(s.period.high).format('0.0000'), ' ')[color]) cols.push(z(8, n(s.trust_distrust_start).format('0.0000'), ' ').grey) return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 100), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + sell_threshold: Phenotypes.Range(1, 100), + sell_threshold_max: Phenotypes.Range0(1, 100), + sell_min: Phenotypes.Range(1, 100), + buy_threshold: Phenotypes.Range(1, 100), + buy_threshold_max: Phenotypes.Range0(1, 100), + greed: Phenotypes.Range(1, 100) } } diff --git a/extensions/strategies/wavetrend/strategy.js b/extensions/strategies/wavetrend/strategy.js index 37848fb8fc..d1d7e7ddfc 100644 --- a/extensions/strategies/wavetrend/strategy.js +++ b/extensions/strategies/wavetrend/strategy.js @@ -2,6 +2,7 @@ var z = require('zero-fill') , n = require('numbro') , wto = require('../../../lib/wto') , ema = require('../../../lib/ema') + , Phenotypes = require('../../../lib/phenotype') module.exports = { name: 'wavetrend', @@ -168,6 +169,28 @@ module.exports = { cols.push(' ') } return cols + }, + + phenotypes: { + // -- common + period_length: Phenotypes.RangePeriod(1, 120, 'm'), + min_periods: Phenotypes.Range(1, 200), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + // -- strategy + wavetrend_channel_length: Phenotypes.Range(1,20), + wavetrend_average_length: Phenotypes.Range(1,42), + wavetrend_overbought_1: Phenotypes.Range(1, 100), + wavetrend_overbought_2: Phenotypes.Range(1,100), + wavetrend_oversold_1: Phenotypes.Range(-100,0), + wavetrend_oversold_2: Phenotypes.Range(-100,0), + wavetrend_trends: Phenotypes.ListOption([true, false]) } } diff --git a/lib/backtester.js b/lib/backtester.js new file mode 100644 index 0000000000..2da9398422 --- /dev/null +++ b/lib/backtester.js @@ -0,0 +1,573 @@ +let _ = require('lodash') + , moment = require('moment') + , argv = require('yargs').argv + , tb = require('timebucket') + , readline = require('readline') + , z = require('zero-fill') + , n = require('numbro') + , shell = require('shelljs') + , StripAnsi = require('strip-ansi') + , path = require('path') + , fs = require('fs') + , roundp = require('round-precision') + , Phenotypes = require('./phenotype') + + +const spawn = require('child_process').spawn + +let simArgs, simTotalCount, parallelLimit, writeFile + +let processOutput = function (output,taskStrategyName, pheno) { + let selector = pheno.selector || pheno.exchangeMarketPair + let tFileName = path.resolve(__dirname, '..', 'simulations','sim_'+taskStrategyName.replace('_','')+'_'+ selector.toLowerCase().replace('_','')+'_'+pheno.backtester_generation+'.json') + let simulationResults + + let params + let endBalance + let buyHold + let vsBuyHold + //let wlMatch + //let errMatch + let wins + let losses + let errorRate + let days + let start + let end + // This can retrieve the results from 2 different places. It defaults to reading it from the json file + // but if no file is found it will fall back to the older metheod of scraping the output of the sim process + // stdio scraping to be removed after full verification of functionality. + // todo: see above comment + if (fs.existsSync(tFileName)) + { + let jsonBuffer + jsonBuffer = fs.readFileSync(tFileName,{encoding:'utf8'}) + simulationResults = JSON.parse(jsonBuffer) + fs.unlinkSync(tFileName) + } + + // If somehow the sim file failed to write, this will most often recover it by parsing the last output + if (typeof(simulationResults) !== 'object' ) { + // Find everything between the first { and last } + outputArray = output.split("{") + outputArray.shift(); + output = outputArray.join('{') + + outputArray = output.split("}") + outputArray.pop(); + output = outputArray.join('}') + + simulationResults = JSON.parse(`{${output}}`) + } + + if (typeof(simulationResults) === 'object') { + params = simulationResults + endBalance = simulationResults.simresults.currency + buyHold = simulationResults.simresults.buy_hold + vsBuyHold = simulationResults.simresults.vs_buy_hold + //wlMatch = (simulationResults.simresults.total_sells - simulationResults.simresults.total_losses) +'/'+ simulationResults.simresults.total_losses + wins = simulationResults.simresults.total_sells - simulationResults.simresults.total_losses + losses = simulationResults.simresults.total_losses + errorRate = simulationResults.simresults.total_losses / simulationResults.simresults.total_sells + days = parseInt(simulationResults.days) + start = parseInt(simulationResults.start) + end = parseInt(simulationResults.end || null) + } + else { + console.log(`Couldn't find simulationResults for ${pheno.backtester_generation}`) + // this should return a general bad result but not throw an error + // our job here is to use the result. not diagnose an error at this point so a failing sim should just be ignored. + // idea here is to make the fitness of this calculation as bad as possible so darwin won't use the combonation of parameters again. + // todo: make the result its own object, and in this function just set the values don't define the result here. + return { + params: 'module.exports = {}', + endBalance: 0, + buyHold: 0, + vsBuyHold: 0, + wins: 0, + losses: -1, + errorRate: 100, + days: 0, + period_length: 0, + min_periods: 0, + markdown_buy_pct: 0, + markup_sell_pct: 0, + order_type: 'maker', + wlRatio: 'Infinity', + roi: -1000, + selector: params.selector, + strategy: params.strategy, + frequency: 0 + } + } + + if (typeof params === 'undefined') { + console.log('busted params') + console.log(`output: ${JSON.stringify(output)}`) + console.log(`simulationResults: ${JSON.stringify(simulationResults)}`) + } + + let roi + if (params.currency_capital == 0.0) + { + roi = roundp(endBalance, 3 ) + } + else + { + roi = roundp(((endBalance - params.currency_capital) / params.currency_capital) * 100, 3 ) + } + + //todo: figure out what this is trying to do. + let r = params + delete r.asset_capital + delete r.buy_pct + delete r.currency_capital + delete r.days + delete r.mode + delete r.order_adjust_time + delete r.population + delete r.population_data + delete r.sell_pct + delete r.start + delete r.end + delete r.stats + delete r.use_strategies + delete r.verbose + delete r.simresults + r.selector = r.selector.normalized + + if (start) { + r.start = moment(start).format('YYYYMMDDHHmm') + } + if (end) { + r.end = moment(end).format('YYYYMMDDHHmm') + } + if (!start && !end && params.days) { + r.days = params.days + } + if (!days) { + days = parseInt(argv.days, 10) + } + if (!days || days < 1) days = 1 + + let results = { + params: 'module.exports = ' + JSON.stringify(r), + endBalance: parseFloat(endBalance), + buyHold: parseFloat(buyHold), + vsBuyHold: parseFloat(vsBuyHold) || vsBuyHold, + wins: wins, + losses: losses, + errorRate: parseFloat(errorRate), + days: days, + period_length: params.period_length, + min_periods: params.min_periods, + markdown_buy_pct: params.markdown_buy_pct, + markup_sell_pct: params.markup_sell_pct, + order_type: params.order_type, + wlRatio: losses > 0 ? roundp(wins / losses, 3) : 'Infinity', + roi: roi, + selector: params.selector, + strategy: params.strategy, + frequency: roundp((wins + losses) / days, 3) + } + + + + return results +} + +let runUpdate = function (days, selector) { + let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' + let command = `${zenbot_cmd} backfill --days=${days} ${selector}` + console.log('Backfilling (might take some time) ...') + console.log(command) + + shell.exec(command, { + silent: true, + async: false + }) +} + +let ensureDirectoryExistence = function(filePath) { + var dirname = path.dirname(filePath) + if (fs.existsSync(dirname)) { + return true + } + ensureDirectoryExistence(dirname) + fs.mkdirSync(dirname) +} + +let monitor = { + periodDurations: [], + phenotypes: [], + + distanceOfTimeInWords: (timeA, timeB) => { + var hourDiff = timeA.diff(timeB, 'hours') + let minDiff = 0 + if (hourDiff == 0) { + minDiff = timeA.diff(timeB, 'minutes') + var secDiff = timeA.clone().subtract(minDiff, 'minutes').diff(timeB, 'seconds') + return `${minDiff}m ${secDiff}s` + } + else { + minDiff = timeA.clone().subtract(hourDiff, 'hours').diff(timeB, 'minutes') + return `${hourDiff}h ${minDiff}m` + } + }, + + actualRange: function(so) { + // Adapted from sim.js logic to similarly figure out how much time is being processed + if (so.start) { + so.start = moment(so.start, 'YYYYMMDDHHmm') + if (so.days && !so.end) { + so.end = so.start.clone().add(so.days, 'days') + } + } + if (so.end) { + so.end = moment(so.end, 'YYYYMMDDHHmm') + if (so.days && !so.start) { + so.start = so.end.clone().subtract(so.days, 'days') + } + } + if (!so.start && so.days) { + so.start = moment().subtract(so.days, 'days') + } + + if (so.days && !so.end) { + so.end = so.start.clone().add(so.days, 'days') + } + + if (so.start && so.end) { + var actualStart = moment( tb(so.start.valueOf()).resize(so.period_length).subtract(so.min_periods + 2).toMilliseconds() ) + return { + start: actualStart, + end: so.end + } + } + + return { start: so.start, end: so.end } + }, + + reportStatus: function() { + var genCompleted = 0 + // var genTotal = 0 + + var simsDone = 0 + var simsActive = 0 + var simsErrored = 0 + var simsAll = simTotalCount + var simsRemaining = simsAll + // var self = this + // console.log(`simsAll: ${simsAll}, this.phenotypes: ${this.phenotypes.length}`); + + readline.clearLine(process.stdout) + readline.cursorTo(process.stdout, 0) + + var inProgress = [] + var inProgressStr = [] + + var slowestP = null + var slowestEta = null + + var bestP = null + var bestBalance = null + + this.phenotypes.forEach(function(p) { + if ('sim' in p) { + if (Object.keys(p.sim).length === 0) { + simsActive++ + inProgress.push(p) + } + else { + simsDone++ + + if (!p.command || !p.command.result) + simsErrored++ + + if (p.command) { + let balance = p.command.result.endBalance + + if (bestP == null || bestBalance < balance) { + bestP = p + bestBalance = balance + } + else if (bestP && bestBalance == balance && bestP.command.iteration > p.command.iteration) { + // Always pick the earliest one so it doesn't look like the number is jumping all over the place + bestP = p + bestBalance = balance + } + } + } + simsRemaining-- + } + + }) + + var homeStretchMode = simsActive < (parallelLimit-1) && simsRemaining == 0 + + inProgress.forEach(function(p) { + var c = p.command + + var currentTime + if (c.currentTimeString) currentTime = moment(c.currentTimeString, 'YYYY-MM-DD HH:mm:ss') + if (currentTime && currentTime.isBefore(c.queryStart)) c.queryStart = currentTime + // console.log(`${c.iteration} currentTime: ${currentTime}, queryStart: ${c.queryStart}, queryEnd: ${c.queryEnd}, current: ${c.currentTimeString}`); + + // var timeSoFar = moment().diff(c.startTime); + // console.log(`remaining: ${time} - ${timeSoFar} = ${time - timeSoFar}`); + // timeLeft += time - timeSoFar; + if (currentTime && c.queryStart && c.queryEnd) { + var totalTime = c.queryEnd.diff(c.queryStart) + + // 2018-01-25 06:18:00 + var progress = currentTime.diff(c.queryStart) + + // console.log(`totalTime: ${totalTime} vs progress: ${progress}`); + var percentage = Math.min(progress/totalTime, 1) + genCompleted += percentage + + var now = moment() + var timeElapsed = now.diff(c.startTime) + // console.log(`startTime: ${c.startTime}, timeElapsed: ${timeElapsed}, adding: ${timeElapsed / percentage}ms`); + var eta = c.startTime.clone().add(timeElapsed / percentage, 'milliseconds') + + if (slowestP == null || slowestEta.isBefore(eta)) { + slowestP = p + slowestEta = eta + } + + if (homeStretchMode) + inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage*100).toFixed(1)}% ETA: ${monitor.distanceOfTimeInWords(eta, now)}`) + else + inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage*100).toFixed(1)}%`) + } + }) + + + // timeLeft /= simsActive; // how many run at one time + if (inProgressStr.length > 0) { + // process.stdout.write("\u001b[1000D") // Move left + process.stdout.write('\u001b[1A') + readline.clearLine(process.stdout) + readline.cursorTo(process.stdout, 0) + + process.stdout.write(inProgressStr.join(', ')) + process.stdout.write('\n') + } + + + var percentage = ((simsDone + genCompleted)/simsAll * 100).toFixed(1) + // z(8, n(s.period.trend_ema_rate).format('0.0000'), ' ')[color] + process.stdout.write(`Done: ${simsDone.toString().green}, Active: ${simsActive.toString().yellow}, Remaining: ${simsRemaining.toString().gray}, `) + if (simsErrored > 0) + process.stdout.write(`Errored: ${simsErrored.toString().red}, `) + + process.stdout.write(`Completion: ${z(5, (n(percentage).format('0.0') + '%'), ' ').green} `) + + let bestBColor = 'gray' + + if (bestP) { + if (argv.currency_capital) { + let cc = parseFloat(argv.currency_capital) + if (cc < 0.1) + bestBColor = 'green' + else if (cc > bestBalance) + bestBColor = 'red' + else + bestBColor = 'yellow' + } + } + + let bestBalanceString = z(5, n(bestBalance || 0).format('0.0000'), ' ')[bestBColor] + process.stdout.write(`Best Balance(${(bestP ? bestP.command.iteration.toString() : '?')[bestBColor]}): ${bestBalanceString}`) + + if (inProgressStr.length > 0) { + if (!homeStretchMode) + process.stdout.write(`, Slowest(${slowestP.command.iteration.toString().yellow}) ETA: ${monitor.distanceOfTimeInWords(slowestEta, moment()).yellow}`) + } + }, + + reset: function() { + this.phenotypes.length = 0 + }, + + start: function() { + process.stdout.write('\n\n') + this.generationStarted = moment() + + this.reportInterval = setInterval(() => { + this.reportStatus() + }, 1000) + }, + + stop: function(label) { + this.generationEnded = moment() + clearInterval(this.reportInterval) + var timeStr = this.distanceOfTimeInWords(this.generationEnded, this.generationStarted) + console.log(`\n\n${label} completed at ${this.generationEnded.format('YYYY-MM-DD HH:mm:ss')}, took ${timeStr}, results saved to:`) + } +} + +module.exports = { + + init: function(options) { + simArgs = options.simArgs + simTotalCount = options.simTotalCount + parallelLimit = options.parallelLimit + writeFile = options.writeFile + }, + + deLint: function() { + //Clean up any generation files left over in the simulation directory + //they will be overwritten, but best not to confuse the issue. + //if it fails. doesn't matter they will be overwritten anyways. not need to halt the system. + try { + let tDirName = path.resolve(__dirname, '..', 'simulations') + let tFileName = 'sim_' + let files = fs.readdirSync(tDirName) + + for(let i = 0; i < files.length; i++) { + if (files[i].lastIndexOf(tFileName) == 0) { + let filePath = path.resolve(__dirname, '..', 'simulations',files[i] ) + fs.unlinkSync(filePath) + } + + } + } catch (err) { + console.log('error deleting lint from prior run') + } + }, + + writeFileAndFolder: function(filePath, data) { + ensureDirectoryExistence(filePath) + fs.writeFileSync(filePath, data) + }, + + ensureBackfill: function() { + let days = argv.days + if (!days) { + if (argv.start) { + var start = moment(argv.start, 'YYYYMMDDHHmm') + days = Math.max(1, moment().diff(start, 'days')) + } + else { + var end = moment(argv.end, 'YYYYMMDDHHmm') + days = moment().diff(end, 'days') + 1 + } + } + runUpdate(days, argv.selector) + }, + + buildCommand: function(taskStrategyName, phenotype, filename) { + var cmdArgs = Object.assign({}, phenotype) + cmdArgs.strategy = taskStrategyName + Object.assign(cmdArgs, simArgs) + + var selector = cmdArgs.selector + delete cmdArgs.selector + delete cmdArgs.exchangeMarketPair + delete cmdArgs.sim + delete cmdArgs.command + delete cmdArgs.help + delete cmdArgs.version + + if (argv.include_html) + cmdArgs.filename = filename + + if (argv.silent) + cmdArgs.silent = true + + cmdArgs.backtester_generation = phenotype.backtester_generation + + let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' + let command = `${zenbot_cmd} sim ${selector}` + + for (const [ key, value ] of Object.entries(cmdArgs)) { + if(_.isBoolean(value)){ + command += ` --${value ? '' : 'no-'}${key}` + } else { + command += ` --${key}=${value}` + } + } + + var actualRange = monitor.actualRange({ + start: cmdArgs.start, end: cmdArgs.end, days: cmdArgs.days, + period_length: cmdArgs.period_length, min_periods: (cmdArgs.min_periods || 1) + }) + + return { + commandString: command, + queryStart: actualRange.start, + queryEnd: actualRange.end + } + }, + + runCommand: (taskStrategyName, phenotype, command, cb) => { + // console.log(`[ ${command.iteration}/${populationSize * selectedStrategies.length} ] ${command.commandString}`) + + var self = this + phenotype['sim'] = {} + phenotype['command'] = command + + command.startTime = moment() + var cmdArgs = command.commandString.split(' ') + var cmdName = cmdArgs.shift() + const proc = spawn(cmdName, cmdArgs) + var endData = '' + + proc.on('exit', () => { + let result = null + let stdout = endData.toString() + try { + result = processOutput(stdout,taskStrategyName,phenotype) + + command.endTime = moment() + command.result = result + + writeFile(command.iteration, JSON.stringify(command)) + + phenotype['sim'] = result + result['fitness'] = Phenotypes.fitness(phenotype) + + monitor.reportStatus() + + } catch (err) { + console.log(`Bad output detected on sim ${command.iteration} while running:`) + console.log(command.commandString) + console.log(err.toString()) + console.log(stdout) + console.log(err.stack) + } + + cb(null, result) + }) + proc.stdout.on('data', (data) => { + if (data.length > 500) { + endData = data + // console.log(`${command.iteration}: ${data}`) + } + else { + var str = StripAnsi(data.toString()), lines = str.split(/(\r?\n)/g) + for (var i=0; i monitor.start(), + stopMonitor: (label) => monitor.stop(label), + resetMonitor: () => monitor.reset(), + reportStatus: () => monitor.reportStatus(), + trackPhenotype: function(phenotype) { + monitor.phenotypes.push(phenotype) + } + +} diff --git a/scripts/genetic_backtester/phenotype.js b/lib/phenotype.js similarity index 53% rename from scripts/genetic_backtester/phenotype.js rename to lib/phenotype.js index be9dffc559..156cbc0d3f 100644 --- a/scripts/genetic_backtester/phenotype.js +++ b/lib/phenotype.js @@ -25,32 +25,49 @@ module.exports = { else r[k] = Math.round((Math.random() * (v.max - v.min + 1)/v.factor)*v.factor) } else if (v.type === 'float') { r[k] = (Math.random() * (v.max - v.min)) + v.min - } else if (v.type === 'makertaker') { - r[k] = (Math.random() > 0.5) ? 'maker' : 'taker' - } else if (v.type === 'sigmoidtanhrelu') { - let items = ['sigmoid', 'tanh', 'relu'] - let index = Math.floor(Math.random() * items.length) - r[k] = items[index] } else if (v.type === 'period_length') { var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min) r[k] = s + v.period_length - } else if (v.type === 'truefalse') { - r[k] = (Math.random() > 0.5) ? true : false + } else if (v.type === 'listOption') { + let index = Math.floor(Math.random() * v.options.length) + r[k] = v.options[index] } - else if (v.type === 'maType') { - let items = ['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3'] - let index = Math.floor(Math.random() * items.length) - r[k] = items[index] - } else if (v.type === 'uscSignalType') { - let items = ['simple', 'low', 'trend'] - let index = Math.floor(Math.random() * items.length) - r[k] = items[index] - } - + } return r }, + range: function(v, step, stepSize) { + var scale = step / (stepSize - 1) + + if (v.type === 'int') { + return Math.floor((scale * (v.max - v.min)) + v.min) + } + else if (v.type === 'int0') { + if (step == 0) + return 0 + + scale = (step-1) / (stepSize-2) + return Math.floor((scale * (v.max - v.min)) + v.min) + } + else if (v.type === 'intfactor') { + let val = Math.floor((scale * (v.max - v.min)) + v.min) + return Math.floor(val / v.factor) * v.factor + } + else if (v.type === 'float') { + return (scale * (v.max - v.min)) + v.min + } + else if (v.type === 'period_length') { + var s = Math.floor((scale * (v.max - v.min)) + v.min) + return s + v.period_length + } + else if (v.type === 'listOption') { + scale = step / stepSize + let index = Math.floor(scale * v.options.length) + return v.options[index] + } + }, + mutation: function(oldPhenotype, strategy) { var r = module.exports.create(strategy) for (var k in oldPhenotype) { @@ -78,7 +95,7 @@ module.exports = { fitness: function(phenotype) { if (typeof phenotype.sim === 'undefined') return 0 - + var vsBuyHoldRate = (phenotype.sim.vsBuyHold / 50) var wlRatio = phenotype.sim.wins / phenotype.sim.losses if(isNaN(wlRatio)) { // zero trades will result in 0/0 which is NaN @@ -92,5 +109,69 @@ module.exports = { competition: function(phenotypeA, phenotypeB) { // TODO: Refer to geneticalgorithm documentation on how to improve this with diverstiy return module.exports.fitness(phenotypeA) >= module.exports.fitness(phenotypeB) + }, + + Range: function(min, max) { + var r = { + type: 'int', + min: min, + max: max + } + return r + }, + + Range0: function(min, max) { + var r = { + type: 'int0', + min: min, + max: max + } + return r + }, + + RangeFactor: function(min, max, factor) { + var r = { + type: 'intfactor', + min: min, + max: max, + factor: factor + } + return r + }, + + RangeFloat: function(min, max) { + var r = { + type: 'float', + min: min, + max: max + } + return r + }, + + RangePeriod: function(min, max, period_length) { + var r = { + type: 'period_length', + min: min, + max: max, + period_length: period_length + } + return r + }, + + RangeMaType: function() { + var r = { + type: 'listOption', + options: ['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3'] + } + return r + }, + + ListOption: function(options) { + var r ={ + type: 'listOption', + options: options + } + return r } + } diff --git a/scripts/auto_backtester/backtester.js b/scripts/auto_backtester/backtester.js index 8789809958..91a6185a85 100755 --- a/scripts/auto_backtester/backtester.js +++ b/scripts/auto_backtester/backtester.js @@ -1,351 +1,279 @@ #!/usr/bin/env node -/* Zenbot 4.04 Backtester v0.2 - * Ali Anari - * 05/30/2017 +/* Zenbot 4 Auto Backtester v2.0 + * glennfu * * Usage: Pass in the same parameters as you would to "zenbot sim", EXCEPT for: - * EMA Parameters: "trend_ema", "neutral_rate" - * RSI Parameters: "oversold_rsi", "oversold_rsi_periods" + * 2 parameters you want to be backtested * - * Example: ./backtester.js gdax.ETH-USD --days=10 --currency_capital=5 + * Imagine you've just run: + * + * ./scripts/genetic_backtester/darwin.js --days=1 --asset_capital=0 --currency_capital=500 --selector="binance.EOS-BTC" --population=20 --use_strategies=trend_ema + * + * and got the following result: + * + * ./zenbot.sh sim binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --order_type=maker --oversold_rsi=78 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500 + * + * which performs like: + * end balance: 500.34778000 (0.06%) + * buy hold: 500.98047787 (0.19%) + * vs. buy hold: -0.13% + * 2 trades over 3 days (avg 0.66 trades/day) + * win/loss: 1/0 + * error rate: 0.00% + * + * To use the Auto Backtester, simply remove one or two parameters that are in strategies/trend_ema/strategy.js's phenotype definition. + * Let's remove `order_type` and `oversold_rsi` + * + * ./zenbot.sh sim binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500 + * + * Now pass this to backtester.js and add a step_size, like 10, and re-add days=1 from darwin + * + * ./scripts/auto_backtester/backtester.js --step_size=10 --days=1 --selector=binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500 + * + * See output: + * + * Auto Backtest of order_type and oversold_rsi completed at 2018-02-27 15:43:28, took 0m 7s, results saved to: + * simulations/auto_backtest_201802271543/results_auto_backtest_201802271543.csv + * + * + * Best Result had order_type=taker and oversold_rsi=73 + * (trend_ema) Result Fitness 0.006083518953845421, VS Buy and Hold: 0.3% BuyAndHold Balance: 500.980477 End Balance: 502.504339, Wins/Losses 1/0, ROI 0.000000. + * ./zenbot.sh sim binance.EOS-BTC --period_length=73m --min_periods=7 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --order_type=taker --sell_stop_pct=0 --buy_stop_pct=40 --profit_stop_enable_pct=2 --profit_stop_pct=5 --trend_ema=4 --oversold_rsi_periods=15 --oversold_rsi=73 --backtester_generation=16 --strategy=trend_ema --days=1 --avg_slippage_pct=0.045 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --neutral_rate=auto --order_poll_time=5000 --rsi_periods=15 --start=201802251900 --asset_capital=0 --currency_capital=500 + * + * So you can see our vsBuyHold has gone from -0.13% to 0.30%, an improvement! */ -let shell = require('shelljs') -let parallel = require('run-parallel-limit') -let json2csv = require('json2csv') -let roundp = require('round-precision') -let fs = require('fs') -let path = require('path') - -let VERSION = 'Zenbot 4.04 Backtester v0.2' +let Phenotypes = require('../../lib/phenotype') + , Backtester = require('../../lib/backtester') + , argv = require('yargs').argv + , moment = require('moment') + , path = require('path') + , parallel = require('run-parallel-limit') + , colors = require('colors') + , z = require('zero-fill') + , n = require('numbro') + , _ = require('underscore') + , json2csv = require('json2csv') let PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length -let TREND_EMA_MIN = 20 -let TREND_EMA_MAX = 20 - -let OVERSOLD_RSI_MIN = 20 -let OVERSOLD_RSI_MAX = 35 - -let OVERSOLD_RSI_PERIODS_MIN = 15 -let OVERSOLD_RSI_PERIODS_MAX = 25 - -let NEUTRAL_RATE_MIN = 10 -let NEUTRAL_RATE_MAX = 10 +simArgs = Object.assign({}, argv) +if (simArgs.period) + simArgs.period_length = simArgs.period +delete simArgs.period +delete simArgs['$0'] // This comes in to argv all by itself +delete simArgs['_'] // This comes in to argv all by itself -let NEUTRAL_RATE_AUTO = false +let debug = simArgs.debug +delete simArgs.debug -let countArr = [] +if (simArgs.maxCores) { + if (simArgs.maxCores < 1) + PARALLEL_LIMIT = 1 + else + PARALLEL_LIMIT = simArgs.maxCores -let range = (start, end, step) => { - if (!step) step = 1 - var r = [] - for (var i=start; i<=end; i+=step) { - r = r.concat(i) - } - return r + delete simArgs.maxCores } -let product = args => { - if(!args.length) - return [[]] - var prod = product(args.slice(1)), r = [] - args[0].forEach(function(x) { - prod.forEach(function(p) { - r.push([x].concat(p)) - }) - }) - return r +let population_data = `auto_backtest_${moment().format('YYYYMMDDHHmm')}` +let iterationCount = 0 + +if (simArgs.help || !simArgs.selector || !simArgs.step_size || simArgs.step_size < 2) { + console.log('--strategy= only one strategy') + console.log('--step_size= number of sims for each parameter, minimum 2') + console.log('--maxCores= maximum processes to execute at a time default is # of cpu cores in system') + console.log('--selector= ') + console.log('--asset_capital= amount coin to start sim with ') + console.log('--currency_capital= amount of capital/base currency to start sim with'), + console.log('--days= amount of days to use when backfilling') + console.log('--sort_results add if you want results.csv sorted by fitness') + process.exit(0) } -let objectProduct = obj => { - var keys = Object.keys(obj), - values = keys.map(function(x) { return obj[x] }) +var timeCount = 0 +if (simArgs.days) timeCount++ +if (simArgs.start) timeCount++ +if (simArgs.end) timeCount++ - return product(values).map(function(p) { - var e = {} - keys.forEach(function(k, n) { e[k] = p[n] }) - return e - }) +if (timeCount < 2) { + console.log('need at least 2 of: days, start, end') + process.exit(1) } -let runCommand = (strategy, exchangeMarketPair,strategyName, cb) => { - countArr.push(1) - let strategyArgs = { - cci_srsi: `--cci_periods=${strategy.rsi_periods} --rsi_periods=${strategy.srsi_periods} --srsi_periods=${strategy.srsi_periods} --srsi_k=${strategy.srsi_k} --srsi_d=${strategy.srsi_d} --oversold_rsi=${strategy.oversold_rsi} --overbought_rsi=${strategy.overbought_rsi} --oversold_cci=${strategy.oversold_cci} --overbought_cci=${strategy.overbought_cci} --constant=${strategy.constant}`, - srsi_macd: `--rsi_periods=${strategy.rsi_periods} --srsi_periods=${strategy.srsi_periods} --srsi_k=${strategy.srsi_k} --srsi_d=${strategy.srsi_d} --oversold_rsi=${strategy.oversold_rsi} --overbought_rsi=${strategy.overbought_rsi} --ema_short_period=${strategy.ema_short_period} --ema_long_period=${strategy.ema_long_period} --signal_period=${strategy.signal_period} --up_trend_threshold=${strategy.up_trend_threshold} --down_trend_threshold=${strategy.down_trend_threshold}`, - macd: `--ema_short_period=${strategy.ema_short_period} --ema_long_period=${strategy.ema_long_period} --signal_period=${strategy.signal_period} --up_trend_threshold=${strategy.up_trend_threshold} --down_trend_threshold=${strategy.down_trend_threshold} --overbought_rsi_periods=${strategy.overbought_rsi_periods} --overbought_rsi=${strategy.overbought_rsi}`, - rsi: `--rsi_periods=${strategy.rsi_periods} --oversold_rsi=${strategy.oversold_rsi} --overbought_rsi=${strategy.overbought_rsi} --rsi_recover=${strategy.rsi_recover} --rsi_drop=${strategy.rsi_drop} --rsi_divisor=${strategy.rsi_divisor}`, - sar: `--sar_af=${strategy.sar_af} --sar_max_af=${strategy.sar_max_af}`, - speed: `--baseline_periods=${strategy.baseline_periods} --trigger_factor=${strategy.trigger_factor}`, - trend_ema: `--trend_ema=${strategy.trend_ema} --oversold_rsi=${strategy.oversold_rsi} --oversold_rsi_periods=${strategy.oversold_rsi_periods} --neutral_rate=${strategy.neutral_rate}` +function runAutoBacktester () { + + let strategyName = simArgs.strategy + let strategyData = require(path.resolve(__dirname, `../../extensions/strategies/${strategyName}/strategy`)) + let strategyPhenotypes = strategyData.phenotypes + if (!strategyPhenotypes) { + console.log(`No phenotypes definition found for strategy ${strategyName}`) + process.exit(1) } - let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' // Use 'win32' for 64 bit windows too - let localGen = countArr.length - strategy.backtester_generation = localGen - - let command = `${zenbot_cmd} sim ${simArgs} ${strategyArgs[strategyName]} --period_length=${strategy.period_length} --min_periods=${strategy.min_periods} --backtester_generation=${localGen}` - console.log(`[ ${localGen}/${strategies[strategyName].length} ] ${command}`) - - shell.exec(command, {silent:true, async:true}, (code, stdout, stderr) => { - if (code) { - console.error(command) - console.error(stderr) - return cb(null, null) + + var pData = Object.assign({}, strategyPhenotypes) + var unsetKeys = [] + Object.keys(strategyPhenotypes).forEach(function (key) { + if (key in simArgs) { + pData[key] = simArgs[key] + } + else { + unsetKeys.push(key) } - cb(null, processOutput(stdout,localGen,strategyName, exchangeMarketPair)) }) -} -let processOutput = (output,generation,strategyName, exchangeMarketPair) => { - - let tFileName = path.resolve(__dirname, '..','..', 'simulations','sim_'+strategyName.replace('_','')+'_'+exchangeMarketPair.replace(' ','')+'_'+generation+'.json') - let simulationResults - if (fs.existsSync(tFileName)) - { - let jsonBuffer - jsonBuffer = fs.readFileSync(tFileName,{encoding:'utf8'}) - simulationResults = JSON.parse(jsonBuffer) - fs.unlinkSync(tFileName) + if (unsetKeys.length > 2) { + console.log(`You omitted values for keys: ${unsetKeys.join(', ')}. You can have at most 2 unset keys`) + process.exit(1) + } + else if (unsetKeys.length <= 0) { + console.log(`You must omit at least one key in ${strategyName}'s phenotype for backtesting`) + process.exit(1) } - let endBalance = simulationResults.simresults.currency - let buyHold = simulationResults.simresults.buy_hold - let vsBuyHold = simulationResults.simresults.vs_buy_hold - let wins = simulationResults.simresults.total_sells - let losses = simulationResults.simresults.total_losses - let errorRate = simulationResults.simresults.total_losses / simulationResults.simresults.total_sells - let days = parseInt(simulationResults.days) - let roi = roundp( - ((endBalance - simulationResults.currency_capital) / simulationResults.currency_capital) * 100, - 3 - ) - - return { - params: JSON.stringify(simulationResults), - endBalance: parseFloat(endBalance), - buyHold: parseFloat(buyHold), - vsBuyHold: parseFloat(vsBuyHold), - wins: wins, - losses: losses, - errorRate: parseFloat(errorRate), - - // cci_srsi - cciPeriods: simulationResults.cci_periods, - rsiPeriods: simulationResults.rsi_periods, - srsiPeriods: simulationResults.srsi_periods, - srsiK: simulationResults.srsi_k, - srsiD: simulationResults.srsi_d, - oversoldRsi: simulationResults.oversold_rsi, - overboughtRsi: simulationResults.overbought_rsi, - oversoldCci: simulationResults.oversold_cci, - overboughtCci: simulationResults.overbought_cci, - constant: simulationResults.consant, - - // srsi_macd - //rsiPeriods: simulationResults.rsi_periods, - //srsiPeriods: simulationResults.srsi_periods, - //srsiK: simulationResults.srsi_k, - //srsiD: simulationResults.srsi_d, - //oversoldRsi: simulationResults.oversold_rsi, - //overboughtRsi: simulationResults.overbought_rsi, - emaShortPeriod: simulationResults.ema_short_period, - emaLongPeriod: simulationResults.ema_long_period, - signalPeriod: simulationResults.signal_period, - upTrendThreshold: simulationResults.up_trend_threshold, - downTrendThreshold: simulationResults.down_trend_threshold, - - // macd - //emaShortPeriod: simulationResults.ema_short_period, - //emaLongPeriod: simulationResults.ema_long_period, - //signalPeriod: simulationResults.signal_period, - //upTrendThreshold: simulationResults.up_trend_threshold, - //downTrendThreshold: simulationResults.down_trend_threshold, - overboughtRsiPeriods: simulationResults.overbought_rsi_periods, - //overboughtRsi: simulationResults.overbought_rsi, - - // rsi - //rsiPeriods: simulationResults.rsi_periods, - //oversoldRsi: simulationResults.oversold_rsi, - //overboughtRsi: simulationResults.overbought_rsi, - rsiRecover: simulationResults.rsi_recover, - rsiDrop: simulationResults.rsi_drop, - rsiDivsor: simulationResults.rsi_divisor, - - // sar - sarAf: simulationResults.sar_af, - sarMaxAf: simulationResults.sar_max_af, - - // speed - baselinePeriods: simulationResults.baseline_periods, - triggerFactor: simulationResults.trigger_factor, - - // trend_ema - trendEma: simulationResults.trend_ema, - neutralRate: simulationResults.neutral_rate, - oversoldRsiPeriods: simulationResults.oversold_rsi_periods, - //oversoldRsi: simulationResults.oversold_rsi, - - days: days, - period_length: simulationResults.period_length, - min_periods: simulationResults.min_periods, - roi: roi, - wlRatio: losses > 0 ? roundp(wins / losses, 3) : 'Infinity', - frequency: roundp((wins + losses) / days, 3) + console.log(`\n\n=== Running Auto Backtester on ${unsetKeys.join(' and ').blue} ===\n`) + + Backtester.resetMonitor() + Backtester.ensureBackfill() + + let step_size = simArgs.step_size + delete simArgs.step_size + + let phenotypes = [] + + let step_size_1 = step_size + , step_size_2 = step_size + , key1 = unsetKeys[0] + , key2 = unsetKeys[1] + , p1 = strategyPhenotypes[key1] + , p2 = strategyPhenotypes[key2] + + // If you're iterating through a set, do the whole set regardless of step_size + if (p1 && p1.type === 'listOption') + step_size_1 = p1.options.length + if (p2 && p2.type === 'listOption') + step_size_2 = p2.options.length + + // If we have 2 keys, build all combinations of both, otherwise just loop through the 1 key values + if (unsetKeys.length == 2) { + for (let i = 0; i < step_size_1; i++) { + for (let j = 0; j < step_size_2; j++) { + var phenotype = Object.assign({}, pData) + phenotype[key1] = Phenotypes.range(p1, i, step_size_1) + phenotype[key2] = Phenotypes.range(p2, j, step_size_2) + phenotypes.push(phenotype) + } + } + } + else { + for (let i = 0; i < step_size_1; i++) { + var phenotype = Object.assign({}, pData) + phenotype[key1] = Phenotypes.range(p1, i, step_size_1) + phenotypes.push(phenotype) + } } -} -let strategies = { - cci_srsi: objectProduct({ - period_length: ['20m'], - min_periods: [52, 200], - rsi_periods: [14, 20], - srsi_periods: [14, 20], - srsi_k: [3, 9], - srsi_d: [3, 9], - oversold_rsi: [22], - overbought_rsi: [85], - oversold_cci: [-90], - overbought_cci: [140], - constant: [0.015] - }), - srsi_macd: objectProduct({ - period_length: ['30m'], - min_periods: [52, 200], - rsi_periods: [14, 20], - srsi_periods: [14, 20], - srsi_k: [3, 9], - srsi_d: [3, 9], - oversold_rsi: [18], - overbought_rsi: [82], - ema_short_period: [12, 24], - ema_long_period: [26, 200], - signal_period: [9, 14], - up_trend_threshold: [0], - down_trend_threshold: [0] - }), - macd: objectProduct({ - period_length: ['1h'], - min_periods: [52], - ema_short_period: range(10, 15), - ema_long_period: range(20, 30), - signal_period: range(9, 9), - up_trend_threshold: range(0, 0), - down_trend_threshold: range(0, 0), - overbought_rsi_periods: range(15, 25), - overbought_rsi: range(70, 70) - }), - rsi: objectProduct({ - period_length: ['2m'], - min_periods: [52], - rsi_periods: range(10, 30), - oversold_rsi: range(20, 35), - overbought_rsi: range(82, 82), - rsi_recover: range(3, 3), - rsi_drop: range(0, 0), - rsi_divisor: range(2, 2) - }), - sar: objectProduct({ - period_length: ['2m'], - min_periods: [52], - sar_af: range(0.01, 0.055, 0.005), - sar_max_af: range(0.1, 0.55, 0.05) - }), - speed: objectProduct({ - period_length: ['1m'], - min_periods: [52], - baseline_periods: range(1000, 5000, 200), - trigger_factor: range(1.0, 2.0, 0.1) - }), - trend_ema: objectProduct({ - period_length: ['2m'], - min_periods: [52], - trend_ema: range(TREND_EMA_MIN, TREND_EMA_MAX), - neutral_rate: (NEUTRAL_RATE_AUTO ? new Array('auto') : []).concat(range(NEUTRAL_RATE_MIN, NEUTRAL_RATE_MAX).map(r => r / 100)), - oversold_rsi_periods: range(OVERSOLD_RSI_PERIODS_MIN, OVERSOLD_RSI_PERIODS_MAX), - oversold_rsi: range(OVERSOLD_RSI_MIN, OVERSOLD_RSI_MAX) + if (debug) + console.log(`Running options:`) + + // Remove duplicates in case something is screwy in combination with step_size higher than the number of options. + // No sense in re-running the same thing multiple times + phenotypes = _.uniq(phenotypes, function(p, key, a) { + if (debug) + console.log(`${key1}: ${p[key1]}, ${key2}: ${p[key2]}`) // print all combinations of options + return JSON.stringify(p); + }); + + Backtester.init({ + simArgs: simArgs, + simTotalCount: phenotypes.length, + parallelLimit: PARALLEL_LIMIT, + writeFile: writeSimDataFile }) -} -let args = process.argv -let exchangeMarketPair = args[2].toLowerCase() -args.shift() -args.shift() -let simArgs = args.join(' ') -let strategyName = 'trend_ema' -if (args.indexOf('--strategy') !== -1) { - strategyName = args[args.indexOf('--strategy') + 1] -} + let tasks = phenotypes.map(phenotype => { -let tasks = strategies[strategyName].map(strategy => { - return cb => { - runCommand(strategy,exchangeMarketPair,strategyName.toLowerCase(), cb) - } -}) - -console.log(`\n--==${VERSION}==--`) -console.log(new Date().toUTCString()) -console.log(`\nBacktesting [${strategies[strategyName].length}] iterations for strategy ${strategyName}...\n`) - -//Clean up any generation files left over in the simulation directory -//they will be overwritten, but best not to confuse the issue. -//if it fails. doesn't matter they will be overwritten anyways. not need to halt the system. -try -{ - let tDirName = path.resolve(__dirname, '..','..', 'simulations') - let tFileName = 'sim_' - let files = fs.readdirSync(tDirName) - - for(let i = 0; i < files.length; i++) - { - if (files[i].lastIndexOf(tFileName) == 0) - { - let filePath = path.resolve(__dirname, '..','..', 'simulations',files[i] ) - fs.unlinkSync(filePath) - } + return cb => { + phenotype.backtester_generation = iterationCount + phenotype.selector = argv.selector + Backtester.trackPhenotype(phenotype) - } -} catch (err) -{ - console.log('error deleting lint from prior run') -} + var command = Backtester.buildCommand(strategyName, phenotype, `simulations/${population_data}/sim_${iterationCount}_result.html`) + command.iteration = iterationCount + writeSimDataFile(iterationCount, JSON.stringify(command)) -parallel(tasks, PARALLEL_LIMIT, (err, results) => { - console.log('\nBacktesting complete, saving results...') - results = results.filter(function (r) { - return !!r - }) - results.sort((a,b) => (a.roi < b.roi) ? 1 : ((b.roi < a.roi) ? -1 : 0)) - let fileName = `backtesting_${Math.round(+new Date()/1000)}.csv` - let filedsGeneral = ['roi', 'vsBuyHold', 'errorRate', 'wlRatio', 'frequency', 'endBalance', 'buyHold', 'wins', 'losses', 'period', 'min_periods', 'days'] - let filedNamesGeneral = ['ROI (%)', 'VS Buy Hold (%)', 'Error Rate (%)', 'Win/Loss Ratio', '# Trades/Day', 'Ending Balance ($)', 'Buy Hold ($)', '# Wins', '# Losses', 'Period', 'Min Periods', '# Days'] - let fields = { - cci_srsi: filedsGeneral.concat(['cciPeriods', 'rsiPeriods', 'srsiPeriods', 'srsiK', 'srsiD', 'oversoldRsi', 'overboughtRsi', 'oversoldCci', 'overboughtCci', 'Constant', 'params']), - srsi_macd: filedsGeneral.concat(['rsiPeriods', 'srsiPeriods', 'srsiK', 'srsiD', 'oversoldRsi', 'overboughtRsi', 'emaShortPeriod', 'emaLongPeriod', 'signalPeriod', 'upTrendThreshold', 'downTrendThreshold', 'params']), - macd: filedsGeneral.concat([ 'emaShortPeriod', 'emaLongPeriod', 'signalPeriod', 'upTrendThreshold', 'downTrendThreshold', 'overboughtRsiPeriods', 'overboughtRsi', 'params']), - rsi: filedsGeneral.concat(['rsiPeriods', 'oversoldRsi', 'overboughtRsi', 'rsiRecover', 'rsiDrop', 'rsiDivsor', 'params']), - sar: filedsGeneral.concat(['sarAf', 'sarMaxAf', 'params']), - speed: filedsGeneral.concat(['baselinePeriods', 'triggerFactor', 'params']), - trend_ema: filedsGeneral.concat(['trendEma', 'neutralRate', 'oversoldRsiPeriods', 'oversoldRsi', 'params']) - } - let fieldNames = { - cci_srsi: filedNamesGeneral.concat(['CCI Periods', 'RSI Periods', 'SRSI Periods', 'SRSI K', 'SRSI D', 'Oversold RSI', 'Overbought RSI', 'Oversold CCI', 'Overbought CCI', 'Constant', 'Full Parameters']), - srsi_macd: filedNamesGeneral.concat(['RSI Periods', 'SRSI Periods', 'SRSI K', 'SRSI D', 'Oversold RSI', 'Overbought RSI', 'EMA Short Period', 'EMA Long Period', 'Signal Period', 'Up Trend Threshold', 'Down Trend Threshold', 'Full Parameters']), - macd: filedNamesGeneral.concat(['EMA Short Period', 'EMA Long Period', 'Signal Period', 'Up Trend Threshold', 'Down Trend Threshold', 'Overbought Rsi Periods', 'Overbought Rsi', 'Full Parameters']), - rsi: filedNamesGeneral.concat(['RSI Periods', 'Oversold RSI', 'Overbought RSI', 'RSI Recover', 'RSI Drop', 'RSI Divisor', 'Full Parameters']), - sar: filedNamesGeneral.concat(['SAR AF', 'SAR MAX AF', 'Full Parameters']), - speed: filedNamesGeneral.concat(['Baseline Periods', 'Trigger Factor', 'Full Parameters']), - trend_ema: filedNamesGeneral.concat(['Trend EMA', 'Neutral Rate', 'Oversold RSI Periods', 'Oversold RSI', 'Full Parameters']) - } - let csv = json2csv({ - data: results, - fields: fields[strategyName], - fieldNames: fieldNames[strategyName] + iterationCount++ + Backtester.runCommand(strategyName, phenotype, command, cb) + } }) - fs.writeFile(fileName, csv, err => { - if (err) throw err - console.log(`\nResults successfully saved to ${fileName}!\n`) + Backtester.startMonitor() + + parallel(tasks, PARALLEL_LIMIT, (err, results) => { + Backtester.stopMonitor(`Auto Backtest of ${unsetKeys.join(' and ').blue}`) + + results = results.filter(function(r) { + return !!r + }) + + if (argv.sort_results) + results.sort((a, b) => (Number(a.fitness) < Number(b.fitness)) ? 1 : ((Number(b.fitness) < Number(a.fitness)) ? -1 : 0)) + + // console.log(`results(${results.length}): ${JSON.stringify(results)}`) + + results.forEach(function(result) { + let it = result.params.match(/backtester_generation\":(\d+),/) + let phenotype = phenotypes[parseInt(it[1], 10)] + result.commandString = phenotype.command.commandString + + unsetKeys.forEach(function(key) { + result[key] = phenotype[key] + }) + // console.log(`it: ${JSON.stringify(it)}`) + }) + + let fieldsGeneral = unsetKeys.slice(0) + let fieldNamesGeneral = unsetKeys.slice(0) + + fieldsGeneral = fieldsGeneral.concat(['selector', 'fitness', 'vsBuyHold', 'wlRatio', 'frequency', 'strategy', 'order_type', 'endBalance', 'buyHold', 'wins', 'losses', 'period_length', 'min_periods', 'days', 'commandString']) + fieldNamesGeneral = fieldNamesGeneral.concat(['Selector', 'Fitness', 'VS Buy Hold (%)', 'Win/Loss Ratio', '# Trades/Day', 'Strategy', 'Order Type', 'Ending Balance ($)', 'Buy Hold ($)', '# Wins', '# Losses', 'Period', 'Min Periods', '# Days', 'Command']) + + let dataCSV = json2csv({ + data: results, + fields: fieldsGeneral, + fieldNames: fieldNamesGeneral + }) + let csvFileName = `simulations/${population_data}/results_${population_data}.csv` // MS Word whines about opening multiple files of the same name + console.log(csvFileName) + Backtester.writeFileAndFolder(csvFileName, dataCSV) + + + // If we didn't sort them before, definitely sort them now to get the best one + if (!argv.sort_results) + results.sort((a, b) => (Number(a.fitness) < Number(b.fitness)) ? 1 : ((Number(b.fitness) < Number(a.fitness)) ? -1 : 0)) + let best = results[0] + + // Display best of the generation + let best_string = [] + unsetKeys.forEach(function(key) { + best_string.push(`${key}=${best[key]}`) + }) + console.log(`\n\nBest Result had ${best_string.join(' and ').green}`) + + console.log(`(${best.strategy}) Result Fitness ${best.fitness}, VS Buy and Hold: ${z(5, (n(best.vsBuyHold).format('0.0') + '%'), ' ').yellow} BuyAndHold Balance: ${z(5, (n(best.buyHold).format('0.000000')), ' ').yellow} End Balance: ${z(5, (n(best.endBalance).format('0.000000')), ' ').yellow}, Wins/Losses ${best.wins}/${best.losses}, ROI ${z(5, (n(results.roi).format('0.000000') ), ' ').yellow}.`) + console.log(best.commandString + '\n') }) -}) + +} + +let writeSimDataFile = (iteration, data) => { + let jsonFileName = `simulations/${population_data}/sim_${iteration}.json` + Backtester.writeFileAndFolder(jsonFileName, data) +} + + +Backtester.deLint() +runAutoBacktester() + + diff --git a/scripts/genetic_backtester/darwin.js b/scripts/genetic_backtester/darwin.js index 11b29ea614..b41c066e34 100755 --- a/scripts/genetic_backtester/darwin.js +++ b/scripts/genetic_backtester/darwin.js @@ -5,42 +5,37 @@ * 07/01/2017 * * Example: ./darwin.js --selector="bitfinex.ETH-USD" --days="10" --currency_capital="5000" --use_strategies="all | macd,trend_ema,etc" --population="101" --population_data="simulations/generation_data_NUMBERS" - * Params: + * Params: * --use_strategies=,, Min one strategy, can include more than one * --population_data= filename used for continueing backtesting from previous run * --generateLaunch=| will generate .sh and .bat file using the best generation discovered - * --ignoreLaunchFitness=| if used with --generateLaunch it will always write a new launch file regardless if latest fitness is greater - * --floatScanWindow Time widow used for analyzing data be adjusted every generation - * --population= populate per strategy + * --ignoreLaunchFitness=| if used with --generateLaunch it will always write a new launch file regardless if latest fitness is greater + * --floatScanWindow Time widow used for analyzing data be adjusted every generation + * --population= populate per strategy * --maxCores= maximum processes to execute at a time default is # of cpu cores in system - * --selector= - * --asset_capital= amount coin to start sim with + * --selector= + * --asset_capital= amount coin to start sim with * --currency_capital= amount of capital/base currency to start sim with * --days= amount of days to use when backfilling * --noStatSave=| true:no statistics are saved to the simulation folder * --silent=| true:can improve performance - * - * - * any parameters for sim and or strategy can be passed in and will override the genetic test generated parameter + * + * + * any parameters for sim and or strategy can be passed in and will override the genetic test generated parameter * i.e. if --period_length=1m is passed all test will be performed using --period_length=1m instead of trying to find that parameter * */ -let shell = require('shelljs') let parallel = require('run-parallel-limit') let json2csv = require('json2csv') -let roundp = require('round-precision') let fs = require('fs') let GeneticAlgorithmCtor = require('geneticalgorithm') -let StripAnsi = require('strip-ansi') let moment = require('moment') -let tb = require('timebucket') let path = require('path') // eslint-disable-next-line no-unused-vars let colors = require('colors') -let readline = require('readline') -const spawn = require('child_process').spawn -let Phenotypes = require('./phenotype.js') +let Phenotypes = require('../../lib/phenotype') +let Backtester = require('../../lib/backtester') let argv = require('yargs').argv let z = require('zero-fill') let n = require('numbro') @@ -70,276 +65,7 @@ let floatScanWindow = false let ignoreLaunchFitness = false -let darwinMonitor = { - periodDurations: [], - phenotypes: [], - - actualRange: function(so) { - // Adapted from sim.js logic to similarly figure out how much time is being processed - if (so.start) { - so.start = moment(so.start, 'YYYYMMDDHHmm') - if (so.days && !so.end) { - so.end = so.start.clone().add(so.days, 'days') - } - } - if (so.end) { - so.end = moment(so.end, 'YYYYMMDDHHmm') - if (so.days && !so.start) { - so.start = so.end.clone().subtract(so.days, 'days') - } - } - if (!so.start && so.days) { - so.start = moment().subtract(so.days, 'days') - } - - if (so.days && !so.end) { - so.end = so.start.clone().add(so.days, 'days') - } - - if (so.start && so.end) { - var actualStart = moment( tb(so.start.valueOf()).resize(so.period_length).subtract(so.min_periods + 2).toMilliseconds() ) - return { - start: actualStart, - end: so.end - } - } - - return { start: so.start, end: so.end } - }, - - reset: function() { - this.phenotypes.length = 0 - }, - - reportStatus: function() { - var genCompleted = 0 - // var genTotal = 0 - - var simsDone = 0 - var simsActive = 0 - var simsErrored = 0 - var simsAll = populationSize * selectedStrategies.length - var simsRemaining = simsAll - // var self = this - // console.log(`populationSize: ${populationSize}, this.phenotypes: ${this.phenotypes.length}`); - - readline.clearLine(process.stdout) - readline.cursorTo(process.stdout, 0) - - var inProgress = [] - var inProgressStr = [] - - var slowestP = null - var slowestEta = null - - var bestP = null - var bestBalance = null - - this.phenotypes.forEach(function(p) { - if ('sim' in p) { - if (Object.keys(p.sim).length === 0) { - simsActive++ - inProgress.push(p) - } - else { - simsDone++ - - if (!p.command || !p.command.result) - simsErrored++ - - if (p.command) { - let balance = p.command.result.endBalance - - if (bestP == null || bestBalance < balance) { - bestP = p - bestBalance = balance - } - else if (bestP && bestBalance == balance && bestP.command.iteration > p.command.iteration) { - // Always pick the earliest one so it doesn't look like the number is jumping all over the place - bestP = p - bestBalance = balance - } - } - } - simsRemaining-- - } - - }) - - var homeStretchMode = simsActive < (PARALLEL_LIMIT-1) && simsRemaining == 0 - - inProgress.forEach(function(p) { - var c = p.command - - var currentTime - if (c.currentTimeString) currentTime = moment(c.currentTimeString, 'YYYY-MM-DD HH:mm:ss') - if (currentTime && currentTime.isBefore(c.queryStart)) c.queryStart = currentTime - // console.log(`${c.iteration} currentTime: ${currentTime}, queryStart: ${c.queryStart}, queryEnd: ${c.queryEnd}, current: ${c.currentTimeString}`); - - // var timeSoFar = moment().diff(c.startTime); - // console.log(`remaining: ${time} - ${timeSoFar} = ${time - timeSoFar}`); - // timeLeft += time - timeSoFar; - if (currentTime && c.queryStart && c.queryEnd) { - var totalTime = c.queryEnd.diff(c.queryStart) - - // 2018-01-25 06:18:00 - var progress = currentTime.diff(c.queryStart) - - // console.log(`totalTime: ${totalTime} vs progress: ${progress}`); - var percentage = progress/totalTime - genCompleted += percentage - - var now = moment() - var timeElapsed = now.diff(c.startTime) - // console.log(`startTime: ${c.startTime}, timeElapsed: ${timeElapsed}, adding: ${timeElapsed / percentage}ms`); - var eta = c.startTime.clone().add(timeElapsed / percentage, 'milliseconds') - - if (slowestP == null || slowestEta.isBefore(eta)) { - slowestP = p - slowestEta = eta - } - - if (homeStretchMode) - inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage*100).toFixed(1)}% ETA: ${distanceOfTimeInWords(eta, now)}`) - else - inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage*100).toFixed(1)}%`) - } - }) - - - // timeLeft /= simsActive; // how many run at one time - if (inProgressStr.length > 0) { - // process.stdout.write("\u001b[1000D") // Move left - process.stdout.write('\u001b[1A') - readline.clearLine(process.stdout) - readline.cursorTo(process.stdout, 0) - - process.stdout.write(inProgressStr.join(', ')) - process.stdout.write('\n') - } - - - var percentage = ((simsDone + genCompleted)/simsAll * 100).toFixed(1) - // z(8, n(s.period.trend_ema_rate).format('0.0000'), ' ')[color] - process.stdout.write(`Done: ${simsDone.toString().green}, Active: ${simsActive.toString().yellow}, Remaining: ${simsRemaining.toString().gray}, `) - if (simsErrored > 0) - process.stdout.write(`Errored: ${simsErrored.toString().red}, `) - - process.stdout.write(`Completion: ${z(5, (n(percentage).format('0.0') + '%'), ' ').green} `) - let bestBColor = 'gray' - - if (bestP) { - if (argv.currency_capital) { - let cc = parseFloat(argv.currency_capital) - if (cc < 0.1) - bestBColor = 'green' - else if (cc > bestBalance) - bestBColor = 'red' - else - bestBColor = 'yellow' - } - } - - let bestBalanceString = z(5, n(bestBalance || 0).format('0.0000'), ' ')[bestBColor] - process.stdout.write(`Best Balance(${(bestP ? bestP.command.iteration.toString() : '?')[bestBColor]}): ${bestBalanceString}`) - - if (inProgressStr.length > 0) { - if (!homeStretchMode) - process.stdout.write(`, Slowest(${slowestP.command.iteration.toString().yellow}) ETA: ${distanceOfTimeInWords(slowestEta, moment()).yellow}`) - - } - }, - - startMonitor: function() { - process.stdout.write('\n\n') - this.generationStarted = moment() - - this.reportInterval = setInterval(() => { - this.reportStatus() - }, 1000) - }, - - stopMonitor: function() { - this.generationEnded = moment() - clearInterval(this.reportInterval) - var timeStr = distanceOfTimeInWords(this.generationEnded, this.generationStarted) - console.log(`\n\nGeneration ${generationCount} completed at ${this.generationEnded.format('YYYY-MM-DD HH:mm:ss')}, took ${timeStr}, results saved to:`) - } -} - -let distanceOfTimeInWords = (timeA, timeB) => { - var hourDiff = timeA.diff(timeB, 'hours') - let minDiff = 0 - if (hourDiff == 0) { - minDiff = timeA.diff(timeB, 'minutes') - var secDiff = timeA.clone().subtract(minDiff, 'minutes').diff(timeB, 'seconds') - return `${minDiff}m ${secDiff}s` - } - else { - minDiff = timeA.clone().subtract(hourDiff, 'hours').diff(timeB, 'minutes') - return `${hourDiff}h ${minDiff}m` - } -} - -let ensureDirectoryExistence = (filePath) => { - var dirname = path.dirname(filePath) - if (fs.existsSync(dirname)) { - return true - } - ensureDirectoryExistence(dirname) - fs.mkdirSync(dirname) -} - -let writeFileAndFolder = (filePath, data) => { - ensureDirectoryExistence(filePath) - fs.writeFile(filePath, data, err => { - if (err) throw err - }) -} - -let buildCommand = (taskStrategyName, phenotype) => { - var iteration = iterationCount - - var cmdArgs = Object.assign({}, phenotype) - cmdArgs.strategy = taskStrategyName - Object.assign(cmdArgs, simArgs) - - var selector = cmdArgs.selector - delete cmdArgs.selector - delete cmdArgs.exchangeMarketPair - delete cmdArgs.sim - delete cmdArgs.command - - if (argv.include_html) - cmdArgs.filename = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}_result.html` - - if (argv.silent) - cmdArgs.silent = true - - let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh' - let command = `${zenbot_cmd} sim ${selector}` - - for (const [ key, value ] of Object.entries(cmdArgs)) { - if(_.isBoolean(value)){ - command += ` --${value ? '' : 'no-'}${key}` - } else { - command += ` --${key}=${value}` - } - } - - var actualRange = darwinMonitor.actualRange({ - start: cmdArgs.start, end: cmdArgs.end, days: cmdArgs.days, - period_length: cmdArgs.period_length, min_periods: (cmdArgs.min_periods || 1) - }) - - return { - iteration: iteration, - commandString: command, - queryStart: actualRange.start, - queryEnd: actualRange.end - } -} let readSimDataFile = (iteration) => { let jsonFileName = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}.json` @@ -355,760 +81,15 @@ let readSimDataFile = (iteration) => { let writeSimDataFile = (iteration, data) => { let jsonFileName = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}.json` - if (!noStatSave) - writeFileAndFolder(jsonFileName, data) + Backtester.writeFileAndFolder(jsonFileName, data) } -let runCommand = (taskStrategyName, phenotype, command, cb) => { - // console.log(`[ ${command.iteration}/${populationSize * selectedStrategies.length} ] ${command.commandString}`) - - phenotype['sim'] = {} - phenotype['command'] = command - - command.startTime = moment() - var cmdArgs = command.commandString.split(' ') - var cmdName = cmdArgs.shift() - const proc = spawn(cmdName, cmdArgs) - var endData = '' - - proc.on('exit', () => { - let result = null - let stdout = endData.toString() - try { - result = processOutput(stdout,taskStrategyName,phenotype) - if (!result) { - throw 'Error during execution' - } - command.endTime = moment() - command.result = result - - writeSimDataFile(command.iteration, JSON.stringify(command)) - - phenotype['sim'] = result - result['fitness'] = Phenotypes.fitness(phenotype) - - darwinMonitor.reportStatus() - - } catch (err) { - console.log('Bad output detected', err.toString()) - console.log(stdout) - console.log(err.stack) - } - - cb(null, result) - }) - proc.stdout.on('data', (data) => { - if (data.length > 500) { - endData = data - } - else { - var str = StripAnsi(data.toString()), lines = str.split(/(\r?\n)/g) - for (var i=0; i 2) + if (lines.length > 2) if (lines[1].includes('fitness=')) { let th = lines[1].split('=') @@ -1191,7 +172,7 @@ function saveLaunchFiles(saveLauchFile, configuration ){ { let lFileCont = fs.readFileSync(lFinenamewin32,{encoding:'utf8',flag:'r'}) let lines = lFileCont.split('\n') - if (lines.length > 1) + if (lines.length > 1) if (lines[1].includes('fitness=')) { let th = lines[1].split('=') @@ -1201,12 +182,12 @@ function saveLaunchFiles(saveLauchFile, configuration ){ //write Nix Version let lNixContents = '#!/bin/bash\n'.concat('#fitness=',configuration.fitness,'\n', - 'env node zenbot.js trade ', + 'env node zenbot.js trade ', bestOverallCommand,' $@\n') let lWin32Contents = '@echo off\n'.concat('rem fitness=',configuration.fitness,'\n', - 'node zenbot.js trade ', + 'node zenbot.js trade ', bestOverallCommand,' %*\n') - + if ( ((Number(configuration.fitness) > Number(lastFitnessLevel)) || (ignoreLaunchFitness)) && Number(configuration.fitness) > 0.0 ) { fs.writeFileSync(lFilenameNix, lNixContents) @@ -1229,32 +210,18 @@ function simulateGeneration (generateLaunchFile) { generationCount = cycleCount } + iterationCount = 0 generationProcessing = true console.log(`\n\n=== Simulating generation ${++generationCount} ===\n`) - darwinMonitor.reset() - - let days = argv.days - if (!days) { - if (argv.start) { - var start = moment(argv.start, 'YYYYMMDDHHmm') - days = Math.max(1, moment().diff(start, 'days')) - } - else { - var end = moment(argv.end, 'YYYYMMDDHHmm') - days = moment().diff(end, 'days') + 1 - } - } - iterationCount = 1 - if (iterationCount == 1) - runUpdate(days, argv.selector) + Backtester.resetMonitor() + Backtester.ensureBackfill() let tasks = selectedStrategies.map(v => pools[v]['pool'].population().map(phenotype => { - return cb => { phenotype.backtester_generation = iterationCount phenotype.exchangeMarketPair = argv.selector - darwinMonitor.phenotypes.push(phenotype) + Backtester.trackPhenotype(phenotype) var command let simData = readSimDataFile(iterationCount) @@ -1277,19 +244,20 @@ function simulateGeneration (generateLaunchFile) { if (!command) { // Default flow, build the command to run, and cache it so there's no need to duplicate work when resuming - command = buildCommand(v, phenotype) + command = Backtester.buildCommand(v, phenotype, `simulations/${population_data}/gen_${generationCount}/sim_${iterationCount}_result.html`) + command.iteration = iterationCount writeSimDataFile(iterationCount, JSON.stringify(command)) } iterationCount++ - runCommand(v, phenotype, command, cb) + Backtester.runCommand(v, phenotype, command, cb) } })).reduce((a, b) => a.concat(b)) - darwinMonitor.startMonitor() + Backtester.startMonitor() parallel(tasks, PARALLEL_LIMIT, (err, results) => { - darwinMonitor.stopMonitor() + Backtester.stopMonitor(`Generation ${generationCount}`) results = results.filter(function(r) { return !!r @@ -1346,11 +314,11 @@ function simulateGeneration (generateLaunchFile) { // if (selectedStrategies.length > 1){ // } - + let bestOverallCommand = generateCommandParams(bestOverallResult[0]) bestOverallCommand = prefix + bestOverallCommand bestOverallCommand = bestOverallCommand + ' --asset_capital=' + argv.asset_capital + ' --currency_capital=' + argv.currency_capital - + saveLaunchFiles(generateLaunchFile, bestOverallResult[0]) @@ -1384,7 +352,7 @@ if (!simArgs.selector) if (!simArgs.filename) simArgs.filename = 'none' -if (simArgs.help || !(simArgs.use_strategies)) +if (simArgs.help || !(simArgs.use_strategies)) { console.log('--use_strategies=,, Min one strategy, can include more than one') console.log('--population_data= filename used for continueing backtesting from previous run') @@ -1406,11 +374,9 @@ delete simArgs.population delete simArgs['$0'] // This comes in to argv all by itself delete simArgs['_'] // This comes in to argv all by itself -if (simArgs.maxCores) -{ +if (simArgs.maxCores) { if (simArgs.maxCores < 1) PARALLEL_LIMIT = 1 - else - PARALLEL_LIMIT = simArgs.maxCores + else PARALLEL_LIMIT = simArgs.maxCores } let generateLaunchFile = (simArgs.generateLaunch) ? true : false @@ -1429,58 +395,50 @@ console.log(`Creating population of ${populationSize} ...\n`) selectedStrategies = (strategyName === 'all') ? allStrategyNames() : strategyName.split(',') -//Clean up any generation files left over in the simulation directory -//they will be overwritten, but best not to confuse the issue. -//if it fails. doesn't matter they will be overwritten anyways. not need to halt the system. -try -{ - let tDirName = path.resolve(__dirname, '..','..', 'simulations') - let tFileName = 'sim_' - let files = fs.readdirSync(tDirName) - - for(let i = 0; i < files.length; i++) - { - if (files[i].lastIndexOf(tFileName) == 0) - { - let filePath = path.resolve(__dirname, '..','..', 'simulations',files[i] ) - fs.unlinkSync(filePath) - } +Backtester.deLint() - } -} catch (err) -{ - console.log('error deleting lint from prior run') -} - -for (var i = 0; i < selectedStrategies.length; i++) -{ +for (var i = 0; i < selectedStrategies.length; i++) { let v = selectedStrategies[i] let strategyPool = pools[v] = {} + let strategyData = require(path.resolve(__dirname, `../../extensions/strategies/${v}/strategy`)) + let strategyPhenotypes = strategyData.phenotypes + if (strategyPhenotypes) { + let evolve = true + let population = [] + for (var i2 = population.length; i2 < populationSize; ++i2) { + population.push(Phenotypes.create(strategyPhenotypes)) + evolve = false + } - let evolve = true - let population = [] - for (var i2 = population.length; i2 < populationSize; ++i2) { - population.push(Phenotypes.create(strategies[v])) - evolve = false - } + strategyPool['config'] = { + mutationFunction: function(phenotype) { + return Phenotypes.mutation(phenotype, strategyPhenotypes) + }, + crossoverFunction: function(phenotypeA, phenotypeB) { + return Phenotypes.crossover(phenotypeA, phenotypeB, strategyPhenotypes) + }, + fitnessFunction: Phenotypes.fitness, + doesABeatBFunction: Phenotypes.competition, + population: population, + populationSize: populationSize + } - strategyPool['config'] = { - mutationFunction: function(phenotype) { - return Phenotypes.mutation(phenotype, strategies[v]) - }, - crossoverFunction: function(phenotypeA, phenotypeB) { - return Phenotypes.crossover(phenotypeA, phenotypeB, strategies[v]) - }, - fitnessFunction: Phenotypes.fitness, - doesABeatBFunction: Phenotypes.competition, - population: population, - populationSize: populationSize + strategyPool['pool'] = GeneticAlgorithmCtor(strategyPool.config) + if (evolve) { + strategyPool['pool'].evolve() + } } - - strategyPool['pool'] = GeneticAlgorithmCtor(strategyPool.config) - if (evolve) { - strategyPool['pool'].evolve() + else { + if (strategyName === 'all') { + // skip it, probably just something like forex_analytics + selectedStrategies.splice(i, 1) + i-- + } + else { + console.log(`No phenotypes definition found for strategy ${v}`) + process.exit(1) + } } } @@ -1523,6 +481,12 @@ process.on('uncaughtException', exitHandler.bind(null, {exit:true})) // END - exitHandler +Backtester.init({ + simArgs: simArgs, + simTotalCount: populationSize * selectedStrategies.length, + parallelLimit: PARALLEL_LIMIT, + writeFile: writeSimDataFile +}) setInterval( ()=>{ if (generationProcessing == false) simulateGeneration(generateLaunchFile) },1000) From a430809586afca9b4f50fd4e1aac1e85a8f827df Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Mon, 5 Mar 2018 05:52:25 -0500 Subject: [PATCH 222/236] Add Lolex for better simming of timing (#1456) --- extensions/exchanges/sim/exchange.js | 272 ++++++++++++++++----------- lib/engine.js | 73 +++---- package-lock.json | 5 + package.json | 5 +- 4 files changed, 198 insertions(+), 157 deletions(-) diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js index 5cb53df4f3..59e0e771b8 100644 --- a/extensions/exchanges/sim/exchange.js +++ b/extensions/exchanges/sim/exchange.js @@ -2,20 +2,34 @@ let path = require('path') , n = require('numbro') , _ = require('lodash') - module.exports = function sim (conf, s) { + let latency = 100 // In milliseconds, enough to be realistic without being disruptive let so = s.options let exchange_id = so.selector.exchange_id let real_exchange = require(path.resolve(__dirname, `../${exchange_id}/exchange`))(conf) var now - var balance = { asset: so.asset_capital, currency: so.currency_capital } + var balance = { asset: so.asset_capital, currency: so.currency_capital, asset_hold: 0, currency_hold: 0 } var last_order_id = 1001 var orders = {} var openOrders = {} - var last_trade + let debug = false // debug output specific to the sim exchange + + // When orders change in any way, it's likely our "_hold" values have changed. Recalculate them + function recalcHold() { + balance.currency_hold = 0 + balance.asset_hold = 0 + _.each(openOrders, function(order) { + if (order.tradetype === 'buy') { + balance.currency_hold += n(order.remaining_size).multiply(n(order.price)).value() + } + else { + balance.asset_hold += n(order.remaining_size).value() + } + }) + } var exchange = { name: 'sim', @@ -37,7 +51,9 @@ module.exports = function sim (conf, s) { }, getBalance: function (opts, cb) { - return cb(null, balance) + setTimeout(function() { + return cb(null, balance) + }, latency) }, getQuote: function (opts, cb) { @@ -45,85 +61,104 @@ module.exports = function sim (conf, s) { return real_exchange.getQuote(opts, cb) } else { - if (last_trade) { - return cb(null, { - bid: last_trade.price, - ask: last_trade.price - }) - } - else { + setTimeout(function() { return cb(null, { bid: s.period.close, ask: s.period.close }) - } + }, latency) } }, cancelOrder: function (opts, cb) { - var order_id = '~' + opts.order_id - var order = orders[order_id] - - if (order.status === 'open') { - order.status = 'cancelled' - delete openOrders[order_id] - } + setTimeout(function() { + var order_id = '~' + opts.order_id + var order = orders[order_id] + + if (order.status === 'open') { + order.status = 'cancelled' + delete openOrders[order_id] + recalcHold() + } - cb(null) + cb(null) + }, latency) }, buy: function (opts, cb) { - var result = { - id: last_order_id++ - } + setTimeout(function() { + if (debug) console.log(`buying ${opts.size * opts.price} vs on hold: ${balance.currency} - ${balance.currency_hold} = ${balance.currency - balance.currency_hold}`) + if (opts.size * opts.price > (balance.currency - balance.currency_hold)) { + if (debug) console.log('nope') + return cb(null, { status: 'rejected', reject_reason: 'balance'}) + } - var order = { - id: result.id, - status: 'open', - price: opts.price, - size: opts.size, - orig_size: opts.size, - post_only: !!opts.post_only, - filled_size: '0', - ordertype: opts.order_type, - tradetype: 'buy', - orig_time: now, - time: now, - created_at: now + var result = { + id: last_order_id++ + } - } - orders['~' + result.id] = order - openOrders['~' + result.id] = order - cb(null, order) + var order = { + id: result.id, + status: 'open', + price: opts.price, + size: opts.size, + orig_size: opts.size, + remaining_size: opts.size, + post_only: !!opts.post_only, + filled_size: 0, + ordertype: opts.order_type, + tradetype: 'buy', + orig_time: now, + time: now, + created_at: now + } + + orders['~' + result.id] = order + openOrders['~' + result.id] = order + recalcHold() + cb(null, order) + }, latency) }, sell: function (opts, cb) { - var result = { - id: last_order_id++ - } + setTimeout(function() { + if (debug) console.log(`selling ${opts.size} vs on hold: ${balance.asset} - ${balance.asset_hold} = ${balance.asset - balance.asset_hold}`) + if (opts.size > (balance.asset - balance.asset_hold)) { + if (debug) console.log('nope') + return cb(null, { status: 'rejected', reject_reason: 'balance'}) + } - var order = { - id: result.id, - status: 'open', - price: opts.price, - size: opts.size, - orig_size: opts.size, - post_only: !!opts.post_only, - filled_size: '0', - ordertype: opts.order_type, - tradetype: 'sell', - orig_time: now, - time: now, - created_at: now - } - orders['~' + result.id] = order - openOrders['~' + result.id] = order - cb(null, order) + var result = { + id: last_order_id++ + } + + var order = { + id: result.id, + status: 'open', + price: opts.price, + size: opts.size, + orig_size: opts.size, + remaining_size: opts.size, + post_only: !!opts.post_only, + filled_size: 0, + ordertype: opts.order_type, + tradetype: 'sell', + orig_time: now, + time: now, + created_at: now + } + orders['~' + result.id] = order + openOrders['~' + result.id] = order + recalcHold() + cb(null, order) + }, latency) }, getOrder: function (opts, cb) { - var order = orders['~' + opts.order_id] - cb(null, order) + setTimeout(function() { + var order = orders['~' + opts.order_id] + cb(null, order) + }, latency) }, getCursor: real_exchange.getCursor, @@ -133,103 +168,126 @@ module.exports = function sim (conf, s) { }, processTrade: function(trade) { - last_trade = trade - now = trade.time + var orders_changed = false - _.each(openOrders, function(order, order_id) { + _.each(openOrders, function(order) { if (order.tradetype === 'buy') { - if (trade.time - order.time < so.order_adjust_time) { - // Not time yet - } - else if (trade.price <= Number(order.price)) { - processBuy(order) - order.done_at = trade.time - delete openOrders[order_id] + if (trade.price <= Number(order.price)) { + processBuy(order, trade) + orders_changed = true } } else if (order.tradetype === 'sell') { - if (trade.time - order.time < so.order_adjust_time) { - // Not time yet - } - else if (trade.price >= order.price) { - processSell(order) - order.done_at = trade.time - delete openOrders[order_id] + if (trade.price >= order.price) { + processSell(order, trade) + orders_changed = true } } }) + + if (orders_changed) + recalcHold() } } - function processBuy (buy_order) { - let fee + function processBuy (buy_order, trade) { + let fee = 0 + let size = Math.min(buy_order.remaining_size, trade.size) let price = buy_order.price + + // Buying, so add asset + balance.asset = n(balance.asset).add(size).format('0.00000000') + + // Process balance changes if (so.order_type === 'maker') { if (exchange.makerFee) { - fee = n(buy_order.size).multiply(exchange.makerFee / 100).value() + fee = n(size).multiply(exchange.makerFee / 100).value() } } - if (so.order_type === 'taker') { + else if (so.order_type === 'taker') { if (s.exchange.takerFee) { - fee = n(buy_order.size).multiply(exchange.takerFee / 100).value() + fee = n(size).multiply(exchange.takerFee / 100).value() } } - - balance.asset = n(balance.asset).add(buy_order.size).format('0.00000000') if (so.order_type === 'maker') { - price = n(buy_order.price).add(n(buy_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') + price = n(price).add(n(price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (exchange.makerFee) { balance.asset = n(balance.asset).subtract(fee).format('0.00000000') } } - if (so.order_type === 'taker') { + else if (so.order_type === 'taker') { if (exchange.takerFee) { balance.asset = n(balance.asset).subtract(fee).format('0.00000000') } } - let total = n(price).multiply(buy_order.size) + let total = n(price).multiply(size) balance.currency = n(balance.currency).subtract(total).format('0.00000000') + // Process existing order size changes + let order = buy_order + order.filled_size = order.filled_size + size + order.remaining_size = order.size - order.filled_size - buy_order.status = 'done' - buy_order.filled_size = buy_order.size - buy_order.remaining_size = 0 + if (order.remaining_size <= 0) { + if (debug) console.log('full fill bought') + order.status = 'done' + order.done_at = trade.time + delete openOrders['~' + order.id] + } + else { + if (debug) console.log('partial fill buy') + } } - function processSell (sell_order) { - let fee + function processSell (sell_order, trade) { + let fee = 0 + let size = Math.min(sell_order.remaining_size, trade.size) let price = sell_order.price + // Selling, so subtract asset + balance.asset = n(balance.asset).subtract(size).value() + + // Process balance changes if (so.order_type === 'maker') { if (exchange.makerFee) { - fee = n(sell_order.size).multiply(exchange.makerFee / 100).multiply(price).value() + fee = n(size).multiply(exchange.makerFee / 100).value() } } - if (so.order_type === 'taker') { + else if (so.order_type === 'taker') { if (exchange.takerFee) { - fee = n(sell_order.size).multiply(exchange.takerFee / 100).multiply(price).value() + fee = n(size).multiply(exchange.takerFee / 100).value() } } - - balance.asset = n(balance.asset).subtract(sell_order.size).value() if (so.order_type === 'maker') { - price = n(sell_order.price).subtract(n(sell_order.price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') + price = n(price).subtract(n(price).multiply(so.avg_slippage_pct / 100)).format('0.00000000') if (exchange.makerFee) { - fee = n(sell_order.size).multiply(exchange.makerFee / 100).multiply(price).value() + fee = n(size).multiply(exchange.makerFee / 100).multiply(price).value() balance.currency = n(balance.currency).subtract(fee).format('0.00000000') } } - if (so.order_type === 'taker') { + else if (so.order_type === 'taker') { if (exchange.takerFee) { balance.currency = n(balance.currency).subtract(fee).format('0.00000000') } } - let total = n(price).multiply(sell_order.size) - balance.currency = n(balance.currency).add(total).value() - sell_order.status = 'done' - sell_order.filled_size = sell_order.size - sell_order.remaining_size = 0 + let total = n(price).multiply(size) + balance.currency = n(balance.currency).add(total).format('0.00000000') + + // Process existing order size changes + let order = sell_order + order.filled_size = order.filled_size + size + order.remaining_size = order.size - order.filled_size + + if (order.remaining_size <= 0) { + if (debug) console.log('full fill sold') + order.status = 'done' + order.done_at = trade.time + delete openOrders['~' + order.id] + } + else { + if (debug) console.log('partial fill sell') + } } return exchange diff --git a/lib/engine.js b/lib/engine.js index 6c33664dad..fccb139edf 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -11,7 +11,9 @@ let tb = require('timebucket') , notify = require('./notify') , rsi = require('./rsi') , async = require('async') + , lolex = require('lolex') +let clock let nice_errors = new RegExp(/(slippage protection|loss protection)/) module.exports = function (s, conf) { @@ -108,12 +110,7 @@ module.exports = function (s, conf) { function msg (str) { if (so.debug) { - if (lastTickCheckOrder) { - console.error('\n' + moment(lastTickCheckOrder).format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) - } - else { - console.error('\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) - } + console.error('\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - ' + str) } } @@ -321,7 +318,7 @@ module.exports = function (s, conf) { order.status = api_order.status //console.log('\ncreated ' + order.status + ' ' + type + ' order: ' + fa(order.size) + ' at ' + fc(order.price) + ' (total ' + fc(n(order.price).multiply(order.size)) + ')\n') - queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time) }) } @@ -664,10 +661,7 @@ module.exports = function (s, conf) { } function now () { - if (so.mode === 'live') - return new Date().getTime() - else - return s.exchange.getTime() + return new Date().getTime() } function writeReport (is_progress, blink_off) { @@ -777,6 +771,8 @@ module.exports = function (s, conf) { } function withOnPeriod (trade, period_id, cb) { + if (!clock && so.mode !== 'live') clock = lolex.install({ shouldAdvanceTime: false, now: trade.time }) + updatePeriod(trade) if (!s.in_preroll) { if (so.mode !== 'live') @@ -794,7 +790,18 @@ module.exports = function (s, conf) { } if (!so.manual) { executeStop() - tickCheckOrder(trade.time) + + if (clock) { + var diff = trade.time - now() + + // Allow some catch-up if trades are too far apart. Don't want all calls happening at the same time + while (diff > 5000) { + clock.tick(5000) + diff -= 5000 + } + clock.tick(diff) + } + if (s.signal) { executeSignal(s.signal) s.signal = null @@ -805,36 +812,6 @@ module.exports = function (s, conf) { cb() } - // Instead of using setTimeout, this gives a consistent way between sim and live - // to manage calling functions that need to happen in the future - var eventQueue = [] - function queueEvent(func, duration) { - eventQueue.push({func: func, time: lastTickCheckOrder + duration}) - } - var lastTickCheckOrder = null - function tickCheckOrder(time) { - if (!lastTickCheckOrder) { - lastTickCheckOrder = time - return - } - - for (let i = 0, len = eventQueue.length; i < len; i++) { - let func_data = eventQueue[i] - let func = func_data.func - let func_time = func_data.time - - if (time > func_time) { - - func.call() - - eventQueue.splice(i, 1) - i-- - len-- - } - } - lastTickCheckOrder = time - } - function cancelOrder (order, type, do_reorder, cb) { s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function () { function checkHold (do_reorder, cb) { @@ -863,7 +840,7 @@ module.exports = function (s, conf) { if (on_hold && s.balance.currency_hold > 0) { // wait a bit for settlement msg('funds on hold after cancel, waiting 5s') - queueEvent(function() { checkHold(do_reorder, cb) }, conf.wait_for_settlement) + setTimeout(function() { checkHold(do_reorder, cb) }, conf.wait_for_settlement) } else { cb(null, do_reorder ? null : false) @@ -919,8 +896,8 @@ module.exports = function (s, conf) { cancelOrder(order, type, true, cb) } else { - order.local_time = lastTickCheckOrder - queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + order.local_time = now() + setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time) } } else { @@ -934,14 +911,14 @@ module.exports = function (s, conf) { cancelOrder(order, type, true, cb) } else { - order.local_time = lastTickCheckOrder - queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + order.local_time = now() + setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time) } } }) } else { - queueEvent(function() { checkOrder(order, type, cb) }, so.order_poll_time) + setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time) } }) } diff --git a/package-lock.json b/package-lock.json index 65d1c016f9..02f31b761e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7826,6 +7826,11 @@ } } }, + "lolex": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", + "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==" + }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", diff --git a/package.json b/package.json index bf230996ca..4cef128d70 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "kraken-api": "^1.0.0", "lint-staged": "^7.0.0", "lodash": "^4.17.4", + "lolex": "^2.3.2", "mathjs": "^4.0.0", "micro-request": "^666.0.10", "mime": "^2.2.0", @@ -102,10 +103,10 @@ "uuid": "^3.1.0", "waypoints": "^4.0.1", "webpack": "^4.0.0", + "webpack-cli": "^2.0.9", "wexnz": "^0.1.3", "ws": "^4.0.0", - "zero-fill": "^2.2.3", - "webpack-cli": "^2.0.9" + "zero-fill": "^2.2.3" }, "devDependencies": { "eslint": "^4.7.1", From a46c9fbbf012ab2dfe7ee66b26ef1fc51f21cff3 Mon Sep 17 00:00:00 2001 From: Chae Suyeong Date: Mon, 5 Mar 2018 19:53:02 +0900 Subject: [PATCH 223/236] Add option to using separated asset to pay for fees. Such as binance's BNB or Huobi's HT (#1439) * Add option to using separated asset to pay for fees. Such as binance's BNB or Huobi's HT * Set fee to 0 when use_fee_asset is true --- README.md | 68 +++++++++++++++++++++++++---------------------- commands/trade.js | 1 + conf-sample.js | 2 ++ lib/engine.js | 5 +++- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 20fefe7322..2501e694cc 100644 --- a/README.md +++ b/README.md @@ -254,38 +254,42 @@ zenbot trade --help Options: - --conf path to optional conf overrides file - --strategy strategy to use - --order_type order type to use (maker/taker) - --paper use paper trading mode (no real trades will take place) - --manual watch price and account balance, but do not perform trades automatically - --currency_capital for paper trading, amount of start capital in currency - --asset_capital for paper trading, amount of start capital in asset - --avg_slippage_pct avg. amount of slippage to apply to paper trades - --buy_pct buy with this % of currency balance - --buy_max_amt buy with up to this amount of currency balance - --sell_pct sell with this % of asset balance - --markdown_buy_pct % to mark down buy price (previously the --markup_pct property) - --markup_sell_pct % to mark up sell price (previously the --markup_pct property) - --order_adjust_time adjust bid/ask on this interval to keep orders competitive - --order_poll_time poll order status on this interval - --sell_stop_pct sell if price drops below this % of bought price - --buy_stop_pct buy if price surges above this % of sold price - --profit_stop_enable_pct enable trailing sell stop when reaching this % profit - --profit_stop_pct maintain a trailing stop this % below the high-water mark of profit - --max_sell_loss_pct avoid selling at a loss pct under this float - --max_buy_loss_pct avoid buying at a loss pct over this float - --max_slippage_pct avoid selling at a slippage pct above this float - --rsi_periods number of periods to calculate RSI at - --poll_trades poll new trades at this interval in ms - --currency_increment Currency increment, if different than the asset increment; e.g. 0.000001 - --use_prev_trades load and use previous trades for stop-order triggers and loss protection - --exact_buy_orders instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all - --exact_sell_orders instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all - --disable_stats disable printing order stats - --reset_profit start new profit calculation from 0 - --debug output detailed debug info - -h, --help output usage information + --conf path to optional conf overrides file + --strategy strategy to use + --order_type order type to use (maker/taker) + --paper use paper trading mode (no real trades will take place) + --manual watch price and account balance, but do not perform trades automatically + --non_interactive disable keyboard inputs to the bot + --currency_capital for paper trading, amount of start capital in currency + --asset_capital for paper trading, amount of start capital in asset + --avg_slippage_pct avg. amount of slippage to apply to paper trades + --buy_pct buy with this % of currency balance + --buy_max_amt buy with up to this amount of currency balance + --sell_pct sell with this % of asset balance + --markdown_buy_pct % to mark down buy price + --markup_sell_pct % to mark up sell price + --order_adjust_time adjust bid/ask on this interval to keep orders competitive + --order_poll_time poll order status on this interval + --sell_stop_pct sell if price drops below this % of bought price + --buy_stop_pct buy if price surges above this % of sold price + --profit_stop_enable_pct enable trailing sell stop when reaching this % profit + --profit_stop_pct maintain a trailing stop this % below the high-water mark of profit + --max_sell_loss_pct avoid selling at a loss pct under this float + --max_buy_loss_pct avoid buying at a loss pct over this float + --max_slippage_pct avoid selling at a slippage pct above this float + --rsi_periods number of periods to calculate RSI at + --poll_trades poll new trades at this interval in ms + --currency_increment Currency increment, if different than the asset increment + --keep_lookback_periods Keep this many lookback periods max. + --exact_buy_orders instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all + --exact_sell_orders instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all + --use_prev_trades load and use previous trades for stop-order triggers and loss protection + --disable_stats disable printing order stats + --reset_profit start new profit calculation from 0 + --use_fee_asset Using separated asset to pay for fees. Such as binance's BNB or Huobi's HT + --run_for Execute for a period of minutes then exit with status 0 (default: null) + --debug output detailed debug info + -h, --help output usage information ``` and also: diff --git a/commands/trade.js b/commands/trade.js index 6bae0ea902..f1a2166a3e 100644 --- a/commands/trade.js +++ b/commands/trade.js @@ -52,6 +52,7 @@ module.exports = function (program, conf) { .option('--use_prev_trades', 'load and use previous trades for stop-order triggers and loss protection') .option('--disable_stats', 'disable printing order stats') .option('--reset_profit', 'start new profit calculation from 0') + .option('--use_fee_asset', 'Using separated asset to pay for fees. Such as binance\'s BNB or Huobi\'s HT', Boolean, false) .option('--run_for ', 'Execute for a period of minutes then exit with status 0', String, null) .option('--debug', 'output detailed debug info') .action(function (selector, cmd) { diff --git a/conf-sample.js b/conf-sample.js index fc616018b3..79065ef1e4 100644 --- a/conf-sample.js +++ b/conf-sample.js @@ -143,6 +143,8 @@ c.markup_sell_pct = 0 c.order_type = 'maker' // when supported by the exchange, use post only type orders. c.post_only = true +// use separated fee currency such as binance's BNB. +c.use_fee_asset = false // Misc options: diff --git a/lib/engine.js b/lib/engine.js index fccb139edf..089b83f6b8 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -411,7 +411,10 @@ module.exports = function (s, conf) { let to_buy_pct = n(buy_pct).subtract(held_pct).value() buy_pct = to_buy_pct } - if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { + + if (so.use_fee_asset) { + fee = 0 + } else if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { fee = s.exchange.makerFee } else { fee = s.exchange.takerFee From 0799b1b69e39f241c131fc9d20a30c6f265f98d1 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Mon, 5 Mar 2018 10:56:24 +0000 Subject: [PATCH 224/236] Exchanges: update-products 744 --- extensions/exchanges/binance/products.json | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index eb5cdc51c3..aae3eef016 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -2728,5 +2728,35 @@ "increment": "0.00001", "asset_increment": "0.01", "label": "POA/BNB" + }, + { + "id": "ZILBTC", + "asset": "ZIL", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "ZIL/BTC" + }, + { + "id": "ZILETH", + "asset": "ZIL", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "ZIL/ETH" + }, + { + "id": "ZILBNB", + "asset": "ZIL", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.00001", + "asset_increment": "0.01", + "label": "ZIL/BNB" } ] \ No newline at end of file From 93452e6e842c180a5b13540e65c61c0c0176a837 Mon Sep 17 00:00:00 2001 From: Chase Date: Mon, 5 Mar 2018 12:10:52 +0100 Subject: [PATCH 225/236] fix(package): update url-loader to version 1.0.1 (#1462) * fix(package): update url-loader to version 1.0.1 Closes #1461 * update package-lock * fix linter --- lib/backtester.js | 10 +++++----- package-lock.json | 25 +++++-------------------- package.json | 2 +- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/lib/backtester.js b/lib/backtester.js index 2da9398422..782e9b6058 100644 --- a/lib/backtester.js +++ b/lib/backtester.js @@ -22,6 +22,7 @@ let processOutput = function (output,taskStrategyName, pheno) { let tFileName = path.resolve(__dirname, '..', 'simulations','sim_'+taskStrategyName.replace('_','')+'_'+ selector.toLowerCase().replace('_','')+'_'+pheno.backtester_generation+'.json') let simulationResults + let outputArray let params let endBalance let buyHold @@ -49,12 +50,12 @@ let processOutput = function (output,taskStrategyName, pheno) { // If somehow the sim file failed to write, this will most often recover it by parsing the last output if (typeof(simulationResults) !== 'object' ) { // Find everything between the first { and last } - outputArray = output.split("{") - outputArray.shift(); + outputArray = output.split('{') + outputArray.shift() output = outputArray.join('{') - outputArray = output.split("}") - outputArray.pop(); + outputArray = output.split('}') + outputArray.pop() output = outputArray.join('}') simulationResults = JSON.parse(`{${output}}`) @@ -505,7 +506,6 @@ module.exports = { runCommand: (taskStrategyName, phenotype, command, cb) => { // console.log(`[ ${command.iteration}/${populationSize * selectedStrategies.length} ] ${command.commandString}`) - var self = this phenotype['sim'] = {} phenotype['command'] = command diff --git a/package-lock.json b/package-lock.json index 02f31b761e..c5b803abce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12920,28 +12920,13 @@ "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=" }, "url-loader": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz", + "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==", "requires": { "loader-utils": "1.1.0", - "mime": "1.6.0", - "schema-utils": "0.3.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "5.5.2" - } - } + "mime": "2.2.0", + "schema-utils": "0.4.5" } }, "url-parse-lax": { diff --git a/package.json b/package.json index 4cef128d70..6d17872c61 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "talib": "^1.0.4", "timebucket": "^0.4.0", "trend": "0.3.0", - "url-loader": "^0.6.2", + "url-loader": "^1.0.1", "uuid": "^3.1.0", "waypoints": "^4.0.1", "webpack": "^4.0.0", From 6e4f03d6de0c89d973b3ac320fd010df445fe659 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 6 Mar 2018 10:55:34 +0000 Subject: [PATCH 226/236] Exchanges: update-products 753 --- extensions/exchanges/bittrex/products.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/extensions/exchanges/bittrex/products.json b/extensions/exchanges/bittrex/products.json index 756217a145..a3226ca8d6 100644 --- a/extensions/exchanges/bittrex/products.json +++ b/extensions/exchanges/bittrex/products.json @@ -2174,5 +2174,13 @@ "max_size": "1000000", "increment": "0.00000001", "label": "ETH/TRX" + }, + { + "asset": "TUSD", + "currency": "BTC", + "min_size": "0.00000001", + "max_size": "1000000", + "increment": "0.00000001", + "label": "BTC/TUSD" } ] \ No newline at end of file From 4a47bda98e37af505709cee6d82005d6a2742388 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Tue, 6 Mar 2018 18:41:57 +0100 Subject: [PATCH 227/236] gdax exchange code format and provide some more debug information (#1475) --- extensions/exchanges/gdax/exchange.js | 134 ++++++++++++++++++++------ 1 file changed, 106 insertions(+), 28 deletions(-) diff --git a/extensions/exchanges/gdax/exchange.js b/extensions/exchanges/gdax/exchange.js index c2395d8f29..07ee460706 100644 --- a/extensions/exchanges/gdax/exchange.js +++ b/extensions/exchanges/gdax/exchange.js @@ -24,9 +24,16 @@ module.exports = function gdax (conf) { passphrase: conf.gdax.passphrase } } + var channels = ['matches', 'ticker'] - if(auth) { channels.push('user') } + + // subscribe to user channels which need fully auth data + if (auth) { + channels.push('user') + } + websocket_client[product_id] = new Gdax.WebsocketClient([product_id], conf.gdax.websocketURI, auth, {channels}) + // initialize a cache for the websocket connection websocket_cache[product_id] = { trades: [], @@ -36,12 +43,18 @@ module.exports = function gdax (conf) { } websocket_client[product_id].on('open', () => { - if(so.debug) console.log('websocket connection to '+product_id+' opened') + if (so.debug) { + console.log('websocket connection to ' + product_id + ' opened') + } }) websocket_client[product_id].on('message', (message) => { // all messages with user_id are related to trades for current authenticated user if(message.user_id){ + if (so.debug) { + console.log('websocket user channel income', message) + } + switch (message.type) { case 'open': handleOrderOpen(message, product_id) @@ -59,6 +72,7 @@ module.exports = function gdax (conf) { break } } + switch (message.type) { case 'open': break @@ -79,7 +93,11 @@ module.exports = function gdax (conf) { websocket_client[product_id].on('error', (err) => { client_state.errored = true - if(so.debug) console.error('websocket error: ', err, 'restarting websocket connection') + + if (so.debug) { + console.error('websocket error: ', err, 'restarting websocket connection') + } + websocket_client[product_id].disconnect() websocket_client[product_id] = null websocket_cache[product_id] = null @@ -87,11 +105,15 @@ module.exports = function gdax (conf) { }) websocket_client[product_id].on('close', () => { - if(client_state.errored){ + if (client_state.errored){ client_state.errored = false return } - if(so.debug) console.error('websocket connection to '+product_id+' closed, attempting reconnect') + + if (so.debug) { + console.error('websocket connection to '+product_id+' closed, attempting reconnect') + } + websocket_client[product_id] = null websocket_client[product_id] = websocketClient(product_id) }) @@ -247,7 +269,11 @@ module.exports = function gdax (conf) { getBalance: function (opts, cb) { var func_args = [].slice.call(arguments) var client = authedClient() - if(so.debug) console.log('getaccounts call') + + if (so.debug) { + console.log('getaccounts call') + } + client.getAccounts(function (err, resp, body) { if (!err) err = statusErr(resp, body) if (err) return retry('getBalance', func_args, err) @@ -291,11 +317,24 @@ module.exports = function gdax (conf) { cancelOrder: function (opts, cb) { var func_args = [].slice.call(arguments) var client = authedClient() - if(so.debug) console.log('cancelorder call') + + if (so.debug) { + console.log('cancelorder call') + } + client.cancelOrder(opts.order_id, function (err, resp, body) { - if (body && (body.message === 'Order already done' || body.message === 'order not found')) return cb() - if (!err) err = statusErr(resp, body) - if (err) return retry('cancelOrder', func_args, err) + if (body && (body.message === 'Order already done' || body.message === 'order not found')) { + return cb() + } + + if (!err) { + err = statusErr(resp, body) + } + + if (err) { + return retry('cancelOrder', func_args, err) + } + cb() }) }, @@ -316,17 +355,27 @@ module.exports = function gdax (conf) { opts.time_in_force = 'GTT' } delete opts.order_type - if(so.debug) console.log('buy call') + + if (so.debug) { + console.log('buy call') + } + client.buy(opts, function (err, resp, body) { if (body && body.message === 'Insufficient funds') { - var order = { + return cb(null, { status: 'rejected', reject_reason: 'balance' - } - return cb(null, order) + }) } - if (!err) err = statusErr(resp, body) - if (err) return retry('buy', func_args, err) + + if (!err) { + err = statusErr(resp, body) + } + + if (err) { + return retry('buy', func_args, err) + } + orders['~' + body.id] = body cb(null, body) }) @@ -335,9 +384,11 @@ module.exports = function gdax (conf) { sell: function (opts, cb) { var func_args = [].slice.call(arguments) var client = authedClient() + if (typeof opts.post_only === 'undefined') { opts.post_only = true } + if (opts.order_type === 'taker') { delete opts.price delete opts.post_only @@ -348,40 +399,67 @@ module.exports = function gdax (conf) { opts.time_in_force = 'GTT' } delete opts.order_type - if(so.debug) console.log('sell call') + + if (so.debug) { + console.log('sell call') + } + client.sell(opts, function (err, resp, body) { if (body && body.message === 'Insufficient funds') { - var order = { + return cb(null, { status: 'rejected', reject_reason: 'balance' - } - return cb(null, order) + }) } - if (!err) err = statusErr(resp, body) - if (err) return retry('sell', func_args, err) + + if (!err) { + err = statusErr(resp, body) + } + + if (err) { + return retry('sell', func_args, err) + } + orders['~' + body.id] = body cb(null, body) }) }, getOrder: function (opts, cb) { - if(websocket_cache[opts.product_id] && - websocket_cache[opts.product_id].orders['~'+opts.order_id]){ - cb(null, websocket_cache[opts.product_id].orders['~'+opts.order_id]) + if(websocket_cache[opts.product_id] && websocket_cache[opts.product_id].orders['~' + opts.order_id]) { + let order_cache = websocket_cache[opts.product_id].orders['~' + opts.order_id] + + if (so.debug) { + console.log('getOrder websocket cache', order_cache) + } + + cb(null, order_cache) return } + var func_args = [].slice.call(arguments) var client = authedClient() - if(so.debug) console.log('getorder call') + + if (so.debug) { + console.log('getorder call') + } + client.getOrder(opts.order_id, function (err, resp, body) { - if (!err && resp.statusCode !== 404) err = statusErr(resp, body) - if (err) return retry('getOrder', func_args, err) + if (!err && resp.statusCode !== 404) { + err = statusErr(resp, body) + } + + if (err) { + return retry('getOrder', func_args, err) + } + if (resp.statusCode === 404) { // order was cancelled. recall from cache body = orders['~' + opts.order_id] body.status = 'done' body.done_reason = 'canceled' } + cb(null, body) }) }, From 235e8d06ecea0a6342afb987c94ac949bd53ae05 Mon Sep 17 00:00:00 2001 From: Chase Date: Wed, 7 Mar 2018 08:51:02 +0100 Subject: [PATCH 228/236] therock: solve problem with backfilling (#1477) --- extensions/exchanges/therock/exchange.js | 34 +++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/extensions/exchanges/therock/exchange.js b/extensions/exchanges/therock/exchange.js index 474fd5a67e..439659440c 100644 --- a/extensions/exchanges/therock/exchange.js +++ b/extensions/exchanges/therock/exchange.js @@ -51,20 +51,28 @@ module.exports = function container(conf) { let _this = this let client = publicClient() let market = client.market(args.id) - client.request( - `funds/${args.id}/trades?after=${args.after}&per_page=${args.per_page}&page=${args.page}&id=${args.id}`, - 'public', 'GET', args - ).then(function(response) { - console.log(`Fetched page ${args.page} of ${response['meta'].last.page}`) - trades = trades.concat(response['trades']) - if (response['meta'].current.page < response['meta'].last.page) { - args['page'] = response['meta'].next.page - return _this.getTradesTheRock(args, cb, trades) - } - else { + + try { + client.request( + `funds/${args.id}/trades?after=${args.after}&per_page=${args.per_page}&page=${args.page}&id=${args.id}`, + 'public', 'GET', args + ).then(function(response) { + trades = trades.concat(response['trades']) + + if (response['trades'].length > 0 && response['meta'].current.page < response['meta'].next.page) { + args['page'] = response['meta'].next.page + return _this.getTradesTheRock(args, cb, trades) + } + return cb(client.parseTrades (trades, market)) - } - }) + }).catch(function(error) { + console.log('Retrying...', error) + return _this.getTradesTheRock(args, cb, trades) + }) + } catch(error) { + console.log('Retrying...', error) + return _this.getTradesTheRock(args, cb, trades) + } }, getTrades: function (opts, cb) { From 39be71854959f1c6c6bd2b36f25b95a95e27c75c Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 7 Mar 2018 09:24:40 +0100 Subject: [PATCH 229/236] =?UTF-8?q?Update=20ws=20to=20the=20latest=20versi?= =?UTF-8?q?on=20=F0=9F=9A=80=20(#1473)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(package): update ws to version 5.0.0 * update package-lock.json --- package-lock.json | 2343 +++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 1101 insertions(+), 1244 deletions(-) diff --git a/package-lock.json b/package-lock.json index c5b803abce..8290aa1ae7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,27 +17,27 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "esutils": "2.0.2", "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -46,15 +46,20 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } } } }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, "@slack/client": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz", @@ -134,16 +139,16 @@ } }, "acorn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.0.tgz", - "integrity": "sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.1.tgz", + "integrity": "sha512-D/KGiCpM/VOtTMDS+wfjywEth926WUrArrzYov4N4SI7t+3y8747dPpCmmAvrm/Z3ygqMHnyPxvYYO0yTdn/nQ==" }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "5.5.0" + "acorn": "5.5.1" } }, "acorn-globals": { @@ -151,7 +156,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.5.0" + "acorn": "5.5.1" } }, "acorn-jsx": { @@ -172,9 +177,9 @@ } }, "adjust-sourcemap-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", - "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz", + "integrity": "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ==", "requires": { "assert": "1.4.1", "camelcase": "1.2.1", @@ -310,7 +315,7 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "argparse": { @@ -473,7 +478,7 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000813", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.18", @@ -485,8 +490,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.34" + "caniuse-db": "1.0.30000813", + "electron-to-chromium": "1.3.36" } } } @@ -708,9 +713,9 @@ } }, "babel-loader": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.3.tgz", - "integrity": "sha512-PeN29YvOynPMvNk7QCzsHqxpmfXwKAC+uxkiSNFQsmXBBVltzEkVWmv/Ip3tx7yk149dQUwk497bTXNu+DZjLA==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", + "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", "requires": { "find-cache-dir": "1.0.0", "loader-utils": "1.1.0", @@ -1412,7 +1417,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "requires": { - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "block-stream": { @@ -1591,8 +1596,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "requires": { - "caniuse-lite": "1.0.30000810", - "electron-to-chromium": "1.3.34" + "caniuse-lite": "1.0.30000813", + "electron-to-chromium": "1.3.36" } }, "bson": { @@ -1680,6 +1685,55 @@ } } }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "2.0.0", + "query-string": "5.1.0", + "sort-keys": "2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "query-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", + "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "1.1.0" + } + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1722,7 +1776,7 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000813", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" }, @@ -1732,21 +1786,21 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.34" + "caniuse-db": "1.0.30000813", + "electron-to-chromium": "1.3.36" } } } }, "caniuse-db": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000810.tgz", - "integrity": "sha1-vSWDDEHvq2Qzmi44H0lnc0PIRQk=" + "version": "1.0.30000813", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000813.tgz", + "integrity": "sha1-4KHGA/iICteHsqNWUrJzPzKl4po=" }, "caniuse-lite": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz", - "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==" + "version": "1.0.30000813", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz", + "integrity": "sha512-A8ITSmH5SFdMFdC704ggjg+x2z5PzQmVlG8tavwnfvbC33Q1UYrj0+G+Xm0SNAnd4He36fwUE/KEWytOEchw+A==" }, "caseless": { "version": "0.11.0", @@ -1754,9 +1808,9 @@ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "ccxt": { - "version": "1.10.1265", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.10.1265.tgz", - "integrity": "sha512-HBkKDLeCfTxL9+AFkgoEEFm+ZtcusseWGzKrqCgKf3qJrfYPgs9lU5smd3GYmX657CghH86vKST814EC5DOLsQ==", + "version": "1.11.36", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.11.36.tgz", + "integrity": "sha512-lOJx4NgLm1N+gY54MyYGiBDfuM188YogZCR4Ch3k+OpaBHuQLI7XWkEygMNq29zEepJ7vtymwx55lNIQE0o4qg==", "requires": { "cloudscraper": "1.4.1", "crypto-js": "3.1.9-1", @@ -1778,7 +1832,7 @@ "integrity": "sha512-vqt4NxuDJbmCHXnKr1J0viefmJfW0BAo1vqHXXcVIJcYMs6Qs9TXztvlkqanGOq09h9mVQ3Y+xj/GWOdwuvunQ==", "requires": { "debug": "3.1.0", - "moment": "2.20.1", + "moment": "2.21.0", "request": "2.83.0", "underscore": "1.8.3", "ws": "3.3.3" @@ -2399,14 +2453,14 @@ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-deep": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", - "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", "requires": { "for-own": "1.0.0", "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "shallow-clone": "0.1.2" + "kind-of": "6.0.2", + "shallow-clone": "1.0.0" }, "dependencies": { "for-own": { @@ -2416,13 +2470,26 @@ "requires": { "for-in": "1.0.2" } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "1.0.0" + } + }, "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "cloneable-readable": { "version": "1.0.0", @@ -2643,12 +2710,12 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "typedarray": "0.0.6" } }, @@ -2744,7 +2811,7 @@ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "requires": { "is-directory": "0.3.1", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "parse-json": "4.0.0", "require-from-string": "2.0.1" }, @@ -2755,9 +2822,9 @@ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "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==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "requires": { "argparse": "1.0.10", "esprima": "4.0.0" @@ -3219,9 +3286,9 @@ } }, "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" }, "diffie-hellman": { "version": "5.0.2", @@ -3266,13 +3333,13 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "stream-shift": "1.0.0" } }, @@ -3309,9 +3376,9 @@ "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" }, "electron-to-chromium": { - "version": "1.3.34", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz", - "integrity": "sha1-2TSY9AORuwwWpgPYJBuZUUBBV+0=" + "version": "1.3.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.36.tgz", + "integrity": "sha1-Dqv3Gp6+qQE/scw1o5DgaGJPJ+g=" }, "elegant-spinner": { "version": "1.0.1", @@ -3456,21 +3523,21 @@ } }, "eslint": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.1.tgz", - "integrity": "sha512-gPSfpSRCHre1GLxGmO68tZNxOlL2y7xBd95VcLD+Eo4S2js31YoMum3CAQIOaxY24hqYOMksMvW38xuuWKQTgw==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "dev": true, "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.3.1", - "concat-stream": "1.6.0", + "chalk": "2.3.2", + "concat-stream": "1.6.1", "cross-spawn": "5.1.0", "debug": "3.1.0", "doctrine": "2.1.0", "eslint-scope": "3.7.1", "eslint-visitor-keys": "1.0.0", - "espree": "3.5.3", + "espree": "3.5.4", "esquery": "1.0.0", "esutils": "2.0.2", "file-entry-cache": "2.0.0", @@ -3481,7 +3548,7 @@ "imurmurhash": "0.1.4", "inquirer": "3.0.6", "is-resolvable": "1.1.0", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", "lodash": "4.17.5", @@ -3496,7 +3563,7 @@ "semver": "5.5.0", "strip-ansi": "4.0.0", "strip-json-comments": "2.0.1", - "table": "4.0.3", + "table": "4.0.2", "text-table": "0.2.0" }, "dependencies": { @@ -3507,23 +3574,23 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "debug": { @@ -3554,9 +3621,9 @@ "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==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { "argparse": "1.0.10", @@ -3573,9 +3640,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -3599,12 +3666,12 @@ "dev": true }, "espree": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.3.tgz", - "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.0", + "acorn": "5.5.1", "acorn-jsx": "3.0.1" } }, @@ -3717,7 +3784,7 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", "integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "jest-diff": "22.4.0", "jest-get-type": "22.1.0", "jest-matcher-utils": "22.4.0", @@ -3726,9 +3793,9 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } @@ -3914,9 +3981,9 @@ } }, "file-loader": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.10.tgz", - "integrity": "sha512-dNnT4yJgUPtGDg0+m03kQ0b/PZi3Y12EnqYuRPNCsbYkBZc6j+fwVWy40jWzZjn5kIzQ4BLIxzJimbwAYlnPGw==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "requires": { "loader-utils": "1.1.0", "schema-utils": "0.4.5" @@ -3986,7 +4053,7 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "flat-cache": { @@ -4007,9 +4074,9 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, "flow-parser": { - "version": "0.66.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.66.0.tgz", - "integrity": "sha1-vlg/77ARkqpRZEFdMaYkGzVxiYM=" + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.67.0.tgz", + "integrity": "sha1-OTXa9jO7tKJxT81lIzKzHNlsDqg=" }, "flush-write-stream": { "version": "1.0.2", @@ -4017,7 +4084,7 @@ "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "follow-redirects": { @@ -4111,7 +4178,7 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "fs-write-stream-atomic": { @@ -4122,7 +4189,7 @@ "graceful-fs": "4.1.11", "iferr": "0.1.5", "imurmurhash": "0.1.4", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "fs.realpath": { @@ -4142,14 +4209,12 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "optional": true, "requires": { "co": "4.6.0", @@ -4158,19 +4223,16 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -4179,43 +4241,36 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "optional": 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=", + "bundled": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -4223,24 +4278,21 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -4248,61 +4300,51 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "bundled": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": 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=" + "bundled": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4310,16 +4352,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -4327,31 +4367,26 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4359,25 +4394,21 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "bundled": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -4387,13 +4418,11 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -4403,8 +4432,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -4414,8 +4442,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -4430,8 +4457,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -4439,16 +4465,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4460,19 +4484,16 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -4481,14 +4502,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -4498,13 +4517,11 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "bundled": 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=", + "bundled": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -4514,8 +4531,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4523,44 +4539,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -4568,20 +4577,17 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -4589,20 +4595,17 @@ }, "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=", + "bundled": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -4613,56 +4616,48 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "bundled": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -4680,8 +4675,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -4690,8 +4684,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4702,45 +4695,38 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4749,36 +4735,30 @@ }, "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=" + "bundled": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "optional": true }, "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=" + "bundled": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4789,16 +4769,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4811,8 +4789,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4841,47 +4818,40 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "bundled": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -4897,16 +4867,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4915,36 +4883,31 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4953,8 +4916,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "optional": true, "requires": { "debug": "2.6.8", @@ -4969,8 +4931,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -4978,8 +4939,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4987,31 +4947,26 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -5019,8 +4974,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -5028,8 +4982,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true } } }, @@ -5244,6 +5197,15 @@ "requires": { "safe-buffer": "5.1.1" } + }, + "ws": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1" + } } } }, @@ -5742,6 +5704,11 @@ "whatwg-encoding": "1.0.3" } }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, "http-errors": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", @@ -5824,21 +5791,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -5851,9 +5818,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -5862,9 +5829,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -5983,6 +5950,15 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "requires": { + "from2": "2.3.0", + "p-is-promise": "1.1.0" + } + }, "invariant": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", @@ -6424,7 +6400,7 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.2.tgz", "integrity": "sha512-oG31qYO73/3vj/Q8aM2RgzmHndTkz9nRk8ISybfuJqqbf0RW7OUjHVOZPLOUiwLWtz52Yq2HkjIblsyhbA7vrg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "glob": "7.1.2", "jest-environment-jsdom": "22.4.1", "jest-environment-node": "22.4.1", @@ -6438,21 +6414,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6461,9 +6437,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6475,28 +6451,28 @@ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz", "integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==", "requires": { - "chalk": "2.3.1", - "diff": "3.4.0", + "chalk": "2.3.2", + "diff": "3.5.0", "jest-get-type": "22.1.0", "pretty-format": "22.4.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6505,9 +6481,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6543,7 +6519,7 @@ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz", "integrity": "sha512-KZaIHpXQ0AIlvQJFCU0uoXxtz5GG47X14r9upMe7VXE55UazoMZBFnQb9TX2HoYX2/AxJYnjHuvwKVCFqOrEtw==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "co": "4.6.0", "expect": "22.4.0", "graceful-fs": "4.1.11", @@ -6557,21 +6533,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6593,9 +6569,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6607,27 +6583,27 @@ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz", "integrity": "sha512-03m3issxUXpWMwDYTfmL8hRNewUB0yCRTeXPm+eq058rZxLHD9f5NtSSO98CWHqe4UyISIxd9Ao9iDVjHWd2qg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "jest-get-type": "22.1.0", "pretty-format": "22.4.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6636,9 +6612,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6651,28 +6627,28 @@ "integrity": "sha512-eyCJB0T3hrlpFF2FqQoIB093OulP+1qvATQmD3IOgJgMGqPL6eYw8TbC5P/VCWPqKhGL51xvjIIhow5eZ2wHFw==", "requires": { "@babel/code-frame": "7.0.0-beta.40", - "chalk": "2.3.1", + "chalk": "2.3.2", "micromatch": "2.3.11", "slash": "1.0.0", "stack-utils": "1.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6722,9 +6698,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6747,25 +6723,25 @@ "integrity": "sha512-P1hSfcc2HJYT5t+WPu/11OfFMa7m8pBb2Gf2vm6W9OVs7YTXQ5RCC3nDqaYZQaTqxEM1ZZaTcQGcE6U2xMOsqQ==", "requires": { "browser-resolve": "1.11.2", - "chalk": "2.3.1" + "chalk": "2.3.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6774,9 +6750,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6788,7 +6764,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.0.tgz", "integrity": "sha512-6Zz4F9G1Nbr93kfm5h3A2+OkE+WGpgJlskYE4iSNN2uYfoTL5b9W6aB9Orpx+ueReHyqmy7HET7Z3EmYlL3hKw==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "jest-diff": "22.4.0", "jest-matcher-utils": "22.4.0", "mkdirp": "0.5.1", @@ -6797,21 +6773,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6820,9 +6796,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6835,7 +6811,7 @@ "integrity": "sha512-9ySBdJY2qVWpg0OvZbGcFXE2NgwccpZVj384E9bx7brKFc7l5anpqah15mseWcz7FLDk7/N+LyYgqFme7Rez2Q==", "requires": { "callsites": "2.0.0", - "chalk": "2.3.1", + "chalk": "2.3.2", "graceful-fs": "4.1.11", "is-ci": "1.1.0", "jest-message-util": "22.4.0", @@ -6844,21 +6820,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6872,9 +6848,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6886,7 +6862,7 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.2.tgz", "integrity": "sha512-TLOgc/EULFBjMCAqZp5OdVvjxV16DZpfthd/UyPzM6lRmgWluohNVemAdnL3JvugU1s2Q2npcIqtbOtiPjaZ0A==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "jest-config": "22.4.2", "jest-get-type": "22.1.0", "leven": "2.1.0", @@ -6894,21 +6870,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -6917,9 +6893,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -6968,7 +6944,7 @@ "babel-register": "6.26.0", "babylon": "6.18.0", "colors": "1.1.2", - "flow-parser": "0.66.0", + "flow-parser": "0.67.0", "lodash": "4.17.5", "micromatch": "2.3.11", "node-dir": "0.1.8", @@ -7054,7 +7030,7 @@ "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", "requires": { "abab": "1.0.4", - "acorn": "5.5.0", + "acorn": "5.5.1", "acorn-globals": "4.1.0", "array-equal": "1.0.0", "browser-process-hrtime": "0.1.2", @@ -7216,6 +7192,15 @@ "requires": { "safe-buffer": "5.1.1" } + }, + "ws": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1" + } } } }, @@ -7224,6 +7209,11 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "json-parse-better-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", @@ -7259,9 +7249,9 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json2csv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.0.0.tgz", - "integrity": "sha512-o2H+rcS+Thi4omzQPALOi9TK4ItNMeZHjkKxFQSbI+Nu1dVUXJvmyZ/6rJaPRgTtCn5j1ExwyTKM5VRGSkqJ1Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.0.1.tgz", + "integrity": "sha512-pMVLgfRrYULd3Y8XhTUWPX+VJIpVHlfNr29w0HakkF73+vGdJ+LYCWP53wGQa/weF2qNEWbcT8TvLGS60/MsQw==", "dev": true, "requires": { "cli-table2": "0.2.0", @@ -7316,6 +7306,14 @@ } } }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -7381,7 +7379,7 @@ "integrity": "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==", "requires": { "app-root-path": "2.0.1", - "chalk": "2.3.1", + "chalk": "2.3.2", "commander": "2.14.1", "cosmiconfig": "4.0.0", "debug": "3.1.0", @@ -7404,21 +7402,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "debug": { @@ -7435,9 +7433,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -7757,25 +7755,25 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "2.3.1" + "chalk": "2.3.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -7784,9 +7782,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -7956,28 +7954,6 @@ "through2": "2.0.3", "vinyl": "1.2.0", "vinyl-file": "2.0.0" - }, - "dependencies": { - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - } - } } }, "mem-fs-editor": { @@ -7995,6 +7971,36 @@ "rimraf": "2.6.2", "through2": "2.0.3", "vinyl": "2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "requires": { + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.0.0", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" + } + } } }, "memory-fs": { @@ -8003,7 +8009,7 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { "errno": "0.1.7", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "meow": { @@ -8345,8 +8351,8 @@ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.3", + "concat-stream": "1.6.1", + "duplexify": "3.5.4", "end-of-stream": "1.4.1", "flush-write-stream": "1.0.2", "from2": "2.3.0", @@ -8416,22 +8422,22 @@ } }, "moment": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", - "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" }, "mongodb": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.3.tgz", - "integrity": "sha512-BuYbPwjrIS/Ik/AUegjnYb8ncOa4dj8tzP4eSCsaqjP9yjmIWzzKrAXBY+s8xy6xkTJxgvbuTFub6cIwpmHRXQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.4.tgz", + "integrity": "sha512-90YIIs7A4ko4kCGafxxXj3foexCAlJBC0YLwwIKgSLoE7Vni2IqUMz6HSsZ3zbXOfR1KWtxfnc0RyAMAY/ViLg==", "requires": { - "mongodb-core": "3.0.3" + "mongodb-core": "3.0.4" } }, "mongodb-core": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.3.tgz", - "integrity": "sha512-AkEiYeq4PZrgoKPZ32q2nL2xFe9iswOgefMipS2YHJHX8DCFAXmYr1aFxefAWisinxI/nd57nBMSe4mrm3yV1g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.4.tgz", + "integrity": "sha512-OTH267FjfwBdEufSnrgd+u8HuLWRuQ6p8DR0XirPl2BdlLEMh4XwjJf1RTlruILp5p2m1w8dDC8rCxibC3W8qQ==", "requires": { "bson": "1.0.5", "require_optional": "1.0.1" @@ -8532,6 +8538,11 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==" }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==" + }, "node-bittrex-api": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/node-bittrex-api/-/node-bittrex-api-0.8.3.tgz", @@ -8559,9 +8570,9 @@ } }, "node-forge": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.2.tgz", - "integrity": "sha512-XTBoBY8NoeGAqQywTM8BjBz/Ro37eTmVF657yf6JumfOhxW9eET43Hve5+6L4+lo3hTDx7kTbC1WfasTHinDpg==" + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.3.tgz", + "integrity": "sha512-UGP1kI3GWGcvOgODS7o1YodpkE9RzJHMv1nlSH35iBjPZM/702cWZ1Z2wFBGYkgvzG0vfMp7scs9+gKjHQ3DlA==" }, "node-gyp": { "version": "3.6.2", @@ -8609,7 +8620,7 @@ "process": "0.11.10", "punycode": "1.4.1", "querystring-es3": "0.2.1", - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "stream-browserify": "2.0.1", "stream-http": "2.8.0", "string_decoder": "1.0.3", @@ -9348,6 +9359,11 @@ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + }, "p-lazy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", @@ -9404,7 +9420,7 @@ "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "parse-asn1": { @@ -10003,21 +10019,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -10030,9 +10046,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -10041,9 +10057,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -10085,8 +10101,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.34" + "caniuse-db": "1.0.30000813", + "electron-to-chromium": "1.3.36" } } } @@ -10146,21 +10162,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -10173,9 +10189,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -10184,9 +10200,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -10203,21 +10219,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -10230,9 +10246,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -10241,9 +10257,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -10260,21 +10276,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -10287,9 +10303,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -10298,9 +10314,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -10317,21 +10333,21 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -10344,9 +10360,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "source-map": { @@ -10355,9 +10371,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } @@ -10496,7 +10512,7 @@ "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", "requires": { "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-styles": "3.2.1" }, "dependencies": { "ansi-regex": { @@ -10505,9 +10521,9 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } @@ -10584,7 +10600,7 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "requires": { - "duplexify": "3.5.3", + "duplexify": "3.5.4", "inherits": "2.0.3", "pump": "2.0.1" } @@ -10601,7 +10617,7 @@ "requires": { "clone": "2.1.1", "mime": "1.6.0", - "node-forge": "0.7.2", + "node-forge": "0.7.3", "request": "2.83.0", "websocket": "1.0.25" }, @@ -10928,9 +10944,9 @@ } }, "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -10948,25 +10964,25 @@ "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "set-immediate-shim": "1.0.1" } }, "recast": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.13.2.tgz", - "integrity": "sha512-Xqo0mKljGUWGUhnkdbODk7oJGFrMcpgKQ9cCyZ4y+G9VfoTKdum8nHbf/SxIdKx5aBSZ29VpVy20bTyt7jyC8w==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.4.tgz", + "integrity": "sha512-b6fRXujYf8mTIyljymL3rglje1LfuGKdD44CuKs6o1B18MmZ+mEEpD5gsaxGVABZHyPvYwPLcyBTA/SvxtiyFg==", "requires": { - "ast-types": "0.10.2", + "ast-types": "0.11.2", "esprima": "4.0.0", "private": "0.1.8", "source-map": "0.6.1" }, "dependencies": { "ast-types": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.2.tgz", - "integrity": "sha512-ufWX953VU1eIuWqxS0nRDMYlGyFH+yxln5CsmIHlpzEt3fdYqUnRtsFt0XAsQot8OaVCwFqxT1RiwvtzYjeYeg==" + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.2.tgz", + "integrity": "sha512-aL+pcOQ+6dpWd0xrUe+Obo2CgdkFvsntkXEmzZKqEN4cR0PStF+1MBuc4V+YZsv4Q36luvyjG7F4lc+wH2bmag==" }, "esprima": { "version": "4.0.0", @@ -11147,9 +11163,9 @@ } }, "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "request": { "version": "2.76.0", @@ -11307,11 +11323,11 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "resolve-url-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.2.1.tgz", - "integrity": "sha512-ywToZt/yttp4qG/SiiGMLAgaGuSaWSujAaf3WCadXehvQLxIgKFmMOSegaoH9Laa70Ayl4kti0zCAqLR48H/Mw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz", + "integrity": "sha512-RaEUWgF/B6aTg9VKaOv2o6dfm5f75/lGh8S+SQwoMcBm48WkA2nhLR+V7KEawkxXjU4lLB16IVeHCe7F69nyVw==", "requires": { - "adjust-sourcemap-loader": "1.1.0", + "adjust-sourcemap-loader": "1.2.0", "camelcase": "4.1.0", "convert-source-map": "1.5.1", "loader-utils": "1.1.0", @@ -11329,6 +11345,14 @@ } } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -11539,14 +11563,14 @@ } }, "sass-loader": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", - "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", "requires": { - "async": "2.6.0", - "clone-deep": "0.3.0", + "clone-deep": "2.0.2", "loader-utils": "1.1.0", "lodash.tail": "4.1.1", + "neo-async": "2.5.0", "pify": "3.0.0" } }, @@ -11560,14 +11584,14 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "requires": { - "ajv": "6.2.0", + "ajv": "6.2.1", "ajv-keywords": "3.1.0" }, "dependencies": { "ajv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", - "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", + "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", "requires": { "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", @@ -11712,28 +11736,19 @@ } }, "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "requires": { "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", + "kind-of": "5.1.0", "mixin-object": "2.0.1" }, "dependencies": { "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -11976,7 +11991,7 @@ "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.1", "os-shim": "0.1.3" } }, @@ -12154,7 +12169,7 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "requires": { - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "stealthy-require": { @@ -12168,7 +12183,7 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" } }, "stream-each": { @@ -12187,7 +12202,7 @@ "requires": { "builtin-status-codes": "3.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "to-arraybuffer": "1.0.1", "xtend": "4.0.1" } @@ -12326,7 +12341,7 @@ "methods": "1.1.2", "mime": "1.6.0", "qs": "6.5.1", - "readable-stream": "2.3.4" + "readable-stream": "2.3.5" }, "dependencies": { "debug": { @@ -12389,48 +12404,43 @@ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" }, "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "6.2.0", - "ajv-keywords": "3.1.0", - "chalk": "2.3.1", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.2", "lodash": "4.17.5", "slice-ansi": "1.0.0", "string-width": "2.1.1" }, "dependencies": { - "ajv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", - "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", - "dev": true, - "requires": { - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "has-flag": { @@ -12449,9 +12459,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -12518,7 +12528,7 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.4", + "readable-stream": "2.3.5", "xtend": "4.0.1" } }, @@ -12527,7 +12537,7 @@ "resolved": "https://registry.npmjs.org/timebucket/-/timebucket-0.4.0.tgz", "integrity": "sha1-2H9xqMhrjqq95zX3qcSzJc6ZhXw=", "requires": { - "moment": "2.20.1" + "moment": "2.21.0" } }, "timed-out": { @@ -12708,9 +12718,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", - "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.4.tgz", + "integrity": "sha512-JTZPwvf+dXFWkljvE3oDjTZ6DFg+bbBhB9yA4Xx3JN4Ol9jfMjXuLn/o2gmgt+BJJwJ4MIzrTBz+UbwVMi9vcA==", "requires": { "is-typedarray": "1.0.0" } @@ -12881,12 +12891,9 @@ } }, "untildify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", - "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", - "requires": { - "os-homedir": "1.0.2" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=" }, "upath": { "version": "1.0.4", @@ -13095,23 +13102,13 @@ } }, "vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" - } + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" } }, "vinyl-file": { @@ -13127,30 +13124,10 @@ "vinyl": "1.2.0" }, "dependencies": { - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - } } } }, @@ -13191,13 +13168,13 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.0.1.tgz", - "integrity": "sha512-jHQNMmKPElreOYLCxR7SHfPnbhcqRT9O7lYPOMDR6Gt5XueJ7tH7JReXm4uMFstBKf7rj2Y7AD3LiMKR2zexYA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.1.0.tgz", + "integrity": "sha512-ZFYcAZ44kOT+xsS5MS2H1fQr0PJkwQdYem/d17wacDkkupzsAkBJ3hDShWHdPVvWluFs6pfhHWw/dVso1m0rsA==", "requires": { - "acorn": "5.5.0", + "acorn": "5.5.1", "acorn-dynamic-import": "3.0.0", - "ajv": "6.2.0", + "ajv": "6.2.1", "ajv-keywords": "3.1.0", "chrome-trace-event": "0.1.2", "enhanced-resolve": "4.0.0", @@ -13217,9 +13194,9 @@ }, "dependencies": { "ajv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", - "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", + "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", "requires": { "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", @@ -13237,39 +13214,39 @@ } }, "webpack-cli": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.9.tgz", - "integrity": "sha512-KIkOFHhrq8W7ovg5u8M7Xbduzr1aQ1Ch1aGGY0TvL5neO81T6/aCZ/NeG7R92UaXIF/BK4KCkla35wtoOoxyDQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.0.10.tgz", + "integrity": "sha512-PQWEOoXkhjBV4svPuESghZRc80VvDoSSRPaLiInWifDlRJgoPWpiLCFXyMLQTTaug7ApLrSEW7BcuwwY6DEv5w==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "codecov": "3.0.0", - "cross-spawn": "5.1.0", - "diff": "3.4.0", - "enhanced-resolve": "3.4.1", + "cross-spawn": "6.0.5", + "diff": "3.5.0", + "enhanced-resolve": "4.0.0", "glob-all": "3.1.0", "global": "4.3.2", "global-modules": "1.0.0", - "got": "7.1.0", - "inquirer": "3.3.0", + "got": "8.2.0", + "inquirer": "5.1.0", "interpret": "1.1.0", "jscodeshift": "0.4.1", - "listr": "0.12.0", + "listr": "0.13.0", "loader-utils": "1.1.0", "lodash": "4.17.5", - "log-symbols": "2.1.0", + "log-symbols": "2.2.0", "mkdirp": "0.5.1", "p-each-series": "1.0.0", "p-lazy": "1.0.0", "prettier": "1.11.1", - "recast": "0.13.2", + "recast": "0.14.4", "resolve-cwd": "2.0.0", - "supports-color": "4.5.0", + "supports-color": "5.3.0", "uglifyjs-webpack-plugin": "1.2.2", "v8-compile-cache": "1.1.2", "webpack-addons": "1.1.5", - "webpack-fork-yeoman-generator": "1.1.1", "yargs": "9.0.1", - "yeoman-environment": "2.0.5" + "yeoman-environment": "2.0.5", + "yeoman-generator": "github:ev1stensberg/generator#9e24fa31c85302ca1145ae34fc68b4f133251ca0" }, "dependencies": { "ansi-escapes": { @@ -13283,9 +13260,9 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } @@ -13296,34 +13273,25 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - }, - "dependencies": { - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "requires": { - "has-flag": "3.0.0" - } - } + "supports-color": "5.3.0" } }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" } }, "execa": { @@ -13338,6 +13306,42 @@ "p-finally": "1.0.0", "signal-exit": "3.0.2", "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "got": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/got/-/got-8.2.0.tgz", + "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", + "requires": { + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "mimic-response": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" } }, "has-flag": { @@ -13346,12 +13350,12 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.1.0.tgz", + "integrity": "sha512-kn7N70US1MSZHZHSGJLiZ7iCwwncc7b0gc68YtlX29OjI3Mp0tSVV+snVXpZ1G+ONS3Ac9zd1m6hve2ibLDYfA==", "requires": { "ansi-escapes": "3.0.0", - "chalk": "2.3.1", + "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "2.1.0", @@ -13359,164 +13363,12 @@ "lodash": "4.17.5", "mute-stream": "0.0.7", "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", + "rxjs": "5.5.6", "string-width": "2.1.1", "strip-ansi": "4.0.0", "through": "2.3.8" } }, - "listr": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", - "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", - "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.2.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.6", - "stream-to-observable": "0.1.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "requires": { - "chalk": "1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "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=" - } - } - }, - "listr-update-renderer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", - "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", - "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "elegant-spinner": "1.0.1", - "figures": "1.7.0", - "indent-string": "3.2.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "requires": { - "chalk": "1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "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=" - } - } - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -13526,14 +13378,13 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" - } - }, - "log-symbols": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz", - "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", - "requires": { - "chalk": "2.3.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "os-locale": { @@ -13546,6 +13397,14 @@ "mem": "1.1.0" } }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "1.0.0" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -13560,12 +13419,19 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "read-pkg": { "version": "2.0.0", @@ -13586,11 +13452,6 @@ "read-pkg": "2.0.0" } }, - "stream-to-observable": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", - "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -13605,24 +13466,20 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { - "has-flag": "2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - } + "has-flag": "3.0.0" } }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "2.0.0" + } }, "which-module": { "version": "2.0.0", @@ -13659,265 +13516,13 @@ } } }, - "webpack-fork-yeoman-generator": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webpack-fork-yeoman-generator/-/webpack-fork-yeoman-generator-1.1.1.tgz", - "integrity": "sha512-TrLT6Bw6gl9rJA7iZw+YJ+4xHhEUzfOQB3tHpyINBFdZDmO0tlDW9MtMSMZ5rsUNjHxcEba5yuGaAW86J84j/w==", + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "requires": { - "async": "2.6.0", - "chalk": "1.1.3", - "cli-table": "0.3.1", - "cross-spawn": "5.1.0", - "dargs": "5.1.0", - "dateformat": "2.2.0", - "debug": "2.6.9", - "detect-conflict": "1.0.1", - "error": "7.0.2", - "find-up": "2.1.0", - "github-username": "4.1.0", - "istextorbinary": "2.2.1", - "lodash": "4.17.5", - "mem-fs-editor": "3.0.2", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "pretty-bytes": "4.0.2", - "read-chunk": "2.1.0", - "read-pkg-up": "2.0.0", - "rimraf": "2.6.2", - "run-async": "2.3.0", - "shelljs": "0.7.8", - "text-table": "0.2.0", - "through2": "2.0.3", - "yeoman-environment": "1.6.6" - }, - "dependencies": { - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "requires": { - "restore-cursor": "1.0.1" - } - }, - "diff": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", - "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=" - }, - "external-editor": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", - "requires": { - "extend": "3.0.1", - "spawn-sync": "1.0.15", - "tmp": "0.0.29" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "globby": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "6.0.4", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - } - } - }, - "inquirer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", - "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", - "requires": { - "ansi-escapes": "1.4.0", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "external-editor": "1.1.1", - "figures": "1.7.0", - "lodash": "4.17.5", - "mute-stream": "0.0.6", - "pinkie-promise": "2.0.1", - "run-async": "2.3.0", - "rx": "4.1.0", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "requires": { - "chalk": "1.1.3" - } - }, - "mute-stream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", - "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=" - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "2.3.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" - } - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "tmp": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "yeoman-environment": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz", - "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=", - "requires": { - "chalk": "1.1.3", - "debug": "2.6.9", - "diff": "2.2.3", - "escape-string-regexp": "1.0.5", - "globby": "4.1.0", - "grouped-queue": "0.3.3", - "inquirer": "1.2.3", - "lodash": "4.17.5", - "log-symbols": "1.0.2", - "mem-fs": "1.1.3", - "text-table": "0.2.0", - "untildify": "2.1.0" - } - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "2.0.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -13934,7 +13539,7 @@ "requires": { "debug": "2.6.9", "nan": "2.9.2", - "typedarray-to-buffer": "3.1.2", + "typedarray-to-buffer": "3.1.4", "yaeti": "0.0.6" } }, @@ -14114,12 +13719,11 @@ } }, "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.0.0.tgz", + "integrity": "sha512-XXG4S0b771C68AeTHebBsJJBZMguxj7Em+D657RViuj6ppRd3tfuOhIK8eGwZGNb76C8MjQfCTfH2NN50rJN4w==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" + "async-limiter": "1.0.0" } }, "xml-name-validator": { @@ -14275,9 +13879,9 @@ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.0.5.tgz", "integrity": "sha512-6/W7/B54OPHJXob0n0+pmkwFsirC8cokuQkPSmT/D0lCcSxkKtg/BA6ZnjUBIwjuGqmw3DTrT4en++htaUju5g==", "requires": { - "chalk": "2.3.1", + "chalk": "2.3.2", "debug": "3.1.0", - "diff": "3.4.0", + "diff": "3.5.0", "escape-string-regexp": "1.0.5", "globby": "6.1.0", "grouped-queue": "0.3.3", @@ -14301,21 +13905,21 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "debug": { @@ -14337,7 +13941,7 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { "ansi-escapes": "3.0.0", - "chalk": "2.3.1", + "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "2.1.0", @@ -14361,17 +13965,270 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { "has-flag": "3.0.0" } + } + } + }, + "yeoman-generator": { + "version": "github:ev1stensberg/generator#9e24fa31c85302ca1145ae34fc68b4f133251ca0", + "requires": { + "async": "2.6.0", + "chalk": "1.1.3", + "cli-table": "0.3.1", + "cross-spawn": "5.1.0", + "dargs": "5.1.0", + "dateformat": "2.2.0", + "debug": "2.6.9", + "detect-conflict": "1.0.1", + "error": "7.0.2", + "find-up": "2.1.0", + "github-username": "4.1.0", + "istextorbinary": "2.2.1", + "lodash": "4.17.5", + "mem-fs-editor": "3.0.2", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "pretty-bytes": "4.0.2", + "read-chunk": "2.1.0", + "read-pkg-up": "2.0.0", + "rimraf": "2.6.2", + "run-async": "2.3.0", + "shelljs": "0.7.8", + "text-table": "0.2.0", + "through2": "2.0.3", + "yeoman-environment": "1.6.6" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "1.0.1" + } + }, + "diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=" + }, + "external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "requires": { + "extend": "3.0.1", + "spawn-sync": "1.0.15", + "tmp": "0.0.29" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "6.0.4", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "inquirer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", + "requires": { + "ansi-escapes": "1.4.0", + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-width": "2.2.0", + "external-editor": "1.1.1", + "figures": "1.7.0", + "lodash": "4.17.5", + "mute-stream": "0.0.6", + "pinkie-promise": "2.0.1", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "through": "2.3.8" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "requires": { + "chalk": "1.1.3" + } + }, + "mute-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=" + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "requires": { + "exit-hook": "1.1.1", + "onetime": "1.1.0" + } + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "requires": { + "glob": "7.1.2", + "interpret": "1.1.0", + "rechoir": "0.6.2" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", + "requires": { + "os-tmpdir": "1.0.2" + } }, "untildify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", - "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", + "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", + "requires": { + "os-homedir": "1.0.2" + } + }, + "yeoman-environment": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz", + "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=", + "requires": { + "chalk": "1.1.3", + "debug": "2.6.9", + "diff": "2.2.3", + "escape-string-regexp": "1.0.5", + "globby": "4.1.0", + "grouped-queue": "0.3.3", + "inquirer": "1.2.3", + "lodash": "4.17.5", + "log-symbols": "1.0.2", + "mem-fs": "1.1.3", + "text-table": "0.2.0", + "untildify": "2.1.0" + } } } }, diff --git a/package.json b/package.json index 6d17872c61..259b6834d7 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "webpack": "^4.0.0", "webpack-cli": "^2.0.9", "wexnz": "^0.1.3", - "ws": "^4.0.0", + "ws": "^5.0.0", "zero-fill": "^2.2.3" }, "devDependencies": { From 745a43e4fdeb27fb5944da79ec4d0a44a55c8673 Mon Sep 17 00:00:00 2001 From: Glenn Sidney Date: Wed, 7 Mar 2018 04:16:55 -0500 Subject: [PATCH 230/236] Partial fills (#1432) * Support partial fill orders * Fix bug with buying/selling into negative balance * Remove unused param to make jslint happy --- extensions/exchanges/sim/exchange.js | 11 +++- lib/engine.js | 75 ++++++++++++++-------------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/extensions/exchanges/sim/exchange.js b/extensions/exchanges/sim/exchange.js index 59e0e771b8..c0bdb9b883 100644 --- a/extensions/exchanges/sim/exchange.js +++ b/extensions/exchanges/sim/exchange.js @@ -172,13 +172,19 @@ module.exports = function sim (conf, s) { _.each(openOrders, function(order) { if (order.tradetype === 'buy') { - if (trade.price <= Number(order.price)) { + if (trade.time - order.time < so.order_adjust_time) { + // Not time yet + } + else if (trade.price <= Number(order.price)) { processBuy(order, trade) orders_changed = true } } else if (order.tradetype === 'sell') { - if (trade.price >= order.price) { + if (trade.time - order.time < so.order_adjust_time) { + // Not time yet + } + else if (trade.price >= order.price) { processSell(order, trade) orders_changed = true } @@ -220,6 +226,7 @@ module.exports = function sim (conf, s) { balance.asset = n(balance.asset).subtract(fee).format('0.00000000') } } + let total = n(price).multiply(size) balance.currency = n(balance.currency).subtract(total).format('0.00000000') diff --git a/lib/engine.js b/lib/engine.js index 089b83f6b8..0d63f05f51 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -394,40 +394,39 @@ module.exports = function (s, conf) { } if (signal === 'buy') { price = nextBuyForQuote(s, quote) - if (!size) { - if (is_reorder) { - buy_pct = reorder_pct - } else { - buy_pct = so.buy_pct - } - if (so.buy_max_amt) { // account for held assets as buy_max - let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() - if(adjusted_buy_max_amt < s.balance.currency){ - let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() - buy_pct = buy_max_as_pct - } - } else { // account for held assets as % - let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() - let to_buy_pct = n(buy_pct).subtract(held_pct).value() - buy_pct = to_buy_pct - } - if (so.use_fee_asset) { - fee = 0 - } else if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { - fee = s.exchange.makerFee - } else { - fee = s.exchange.takerFee - } - trade_balance = n(s.balance.currency).divide(100).multiply(buy_pct) - tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) - expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too - if (buy_pct + fee < 100) { - size = n(tradeable_balance).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') - } else { - size = n(trade_balance).subtract(expected_fee).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') + if (is_reorder) { + buy_pct = reorder_pct + } else { + buy_pct = so.buy_pct + } + if (so.buy_max_amt) { // account for held assets as buy_max + let adjusted_buy_max_amt = n(so.buy_max_amt).subtract(s.asset_capital).value() + if(adjusted_buy_max_amt < s.balance.currency){ + let buy_max_as_pct = n(adjusted_buy_max_amt).divide(s.balance.currency).multiply(100).value() + buy_pct = buy_max_as_pct } + } else { // account for held assets as % + let held_pct = n(s.asset_capital).divide(s.balance.currency).multiply(100).value() + let to_buy_pct = n(buy_pct).subtract(held_pct).value() + buy_pct = to_buy_pct + } + if (so.use_fee_asset) { + fee = 0 + } else if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) { + fee = s.exchange.makerFee + } else { + fee = s.exchange.takerFee } + trade_balance = n(s.balance.currency).divide(100).multiply(buy_pct) + tradeable_balance = n(s.balance.currency).divide(100 + fee).multiply(buy_pct) + expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too + if (buy_pct + fee < 100) { + size = n(tradeable_balance).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') + } else { + size = n(trade_balance).subtract(expected_fee).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') + } + if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || ('min_total' in s.product && s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { size = s.product.max_size @@ -474,14 +473,14 @@ module.exports = function (s, conf) { } else if (signal === 'sell') { price = nextSellForQuote(s, quote) - if (!size) { - if (is_reorder) { - sell_pct = reorder_pct - } else { - sell_pct = so.sell_pct - } - size = n(s.balance.asset).multiply(sell_pct / 100).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') + + if (is_reorder) { + sell_pct = reorder_pct + } else { + sell_pct = so.sell_pct } + size = n(s.balance.asset).multiply(sell_pct / 100).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000') + if ((s.product.min_size && Number(size) >= Number(s.product.min_size)) || (s.product.min_total && n(size).multiply(price).value() >= Number(s.product.min_total))) { if (s.product.max_size && Number(size) > Number(s.product.max_size)) { size = s.product.max_size From 3d93554d4d906db7bb831130a4f16b2554fb86a9 Mon Sep 17 00:00:00 2001 From: fuzzyTew Date: Wed, 7 Mar 2018 04:17:40 -0500 Subject: [PATCH 231/236] Bring back missing help text. Fixes #1362. (#1363) --- .../{backfill/backfill.js => new_backfill.js} | 8 +++--- zenbot.js | 26 +++++++------------ 2 files changed, 13 insertions(+), 21 deletions(-) rename commands/{backfill/backfill.js => new_backfill.js} (90%) diff --git a/commands/backfill/backfill.js b/commands/new_backfill.js similarity index 90% rename from commands/backfill/backfill.js rename to commands/new_backfill.js index 86f55a59ae..31bd3fa7b0 100644 --- a/commands/backfill/backfill.js +++ b/commands/new_backfill.js @@ -1,12 +1,12 @@ var minimist = require('minimist') , tb = require('timebucket') - , exchangeService = require('../../lib/services/exchange-service') - , objectifySelector = require('../../lib/objectify-selector') - , backfillFunction = require('./backfill.function') + , exchangeService = require('../lib/services/exchange-service') + , objectifySelector = require('../lib/objectify-selector') + , backfillFunction = require('./backfill/backfill.function') module.exports = function(program, conf) { program - .command('backfill [selector]') + .command('new_backfill [selector]') .description('download historical trades for analysis') .option('-d, --days ', 'number of days to acquire (default: ' + conf.days + ')', Number, conf.days) .action(function (selector, cmd) { diff --git a/zenbot.js b/zenbot.js index cde4bc0205..7f668f65b7 100644 --- a/zenbot.js +++ b/zenbot.js @@ -20,8 +20,6 @@ boot(function (err, zenbot) { } program.version(zenbot.version) - var command_name = process.argv[2] - var command_directory = './commands' fs.readdir(command_directory, function(err, files){ if (err) { @@ -33,24 +31,18 @@ boot(function (err, zenbot) { }).filter((file)=>{ return fs.statSync(file).isFile() }) - - if(command_name) - var command_found = (commands.indexOf(path.join(command_directory, command_name)+'.js') !== -1) - if(command_found) { - var command = require(path.resolve(__dirname, `./commands/${command_name}`)) - command(program, zenbot.conf) - } + commands.forEach((file)=>{ + require(path.resolve(__dirname, file.replace('.js','')))(program, zenbot.conf) + }) - if(command_name === 'new_backfill'){ - command_found = true - command = require(path.resolve(__dirname,'./commands/backfill/backfill')) - command(program, zenbot.conf) - } + program + .command('*', 'Display help', { noHelp: true }) + .action((cmd)=>{ + console.log('Invalid command: ' + cmd) + program.help() + }) - if (!command_name || !command_found && (!process.argv[2] || !process.argv[2].match(/^-V|--version$/))) { - program.help() - } program.parse(process.argv) }) }) From 620257cb422d2c7f2971d75feb83de396cf5be0d Mon Sep 17 00:00:00 2001 From: Trivalik Date: Wed, 7 Mar 2018 10:20:21 +0100 Subject: [PATCH 232/236] update windows installation FAQ (#1226) * update windows installation FAQ * Update FAQ.md --- docs/FAQ.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index 33bdb27f19..a285d06dba 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -90,18 +90,22 @@ There is also a shared Google Doc spreadsheet containing community sim results a Yes, Zenbot can be installed on Windows, although it is recommended that Linux or macOS is used instead. -To install Zenbot on Windows: +Please note that these instructions are for Windows 10. + +To install Zenbot on Windows it is currently required to have Visual Studio 2015 installed (because of the analytic-forex package). 1. Install the "Bash on Windows subsystem" (see https://msdn.microsoft.com/en-us/commandline/wsl/about for more information) -> Note: This will change soon, seeing that Microsoft decided to have Ubuntu, Fedora and OpenSUSE available. They will also drop the requirement for requiring dev mode enabled on windows soon. Source: https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/ and https://blogs.msdn.microsoft.com/commandline/2017/06/08/developer-mode-no-longer-required-for-windows-subsystem-for-linux/ +> Note: You can then choose between Ubuntu, Fedora and OpenSUSE in the Windows store. -2. Open the terminal window, your disks will now be mounted under `/mnt/*`. So for example navigate to your directory (example: `cd /mnt/c/zenbot`) +2. Open a terminal window, your disks will now be mounted under `/mnt/*`. So for example navigate to your directory (example: `cd /mnt/c/zenbot`) 3. Install node (`curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -; sudo apt-get install nodejs`) 4. Run zenbot as you would otherwise +> Note: MongoDB is not working in this subsystem, please use the Windows version! + **How do I update Zenbot?** From 49ab7582d5a0830638d4caa738c8ec2ec770540d Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 8 Mar 2018 10:56:53 +0000 Subject: [PATCH 233/236] Exchanges: update-products 775 --- extensions/exchanges/binance/products.json | 30 ++++++++++++ extensions/exchanges/bitfinex/products.json | 54 ++++++++++----------- extensions/exchanges/wexnz/products.json | 8 +++ 3 files changed, 65 insertions(+), 27 deletions(-) diff --git a/extensions/exchanges/binance/products.json b/extensions/exchanges/binance/products.json index aae3eef016..9a6a840607 100644 --- a/extensions/exchanges/binance/products.json +++ b/extensions/exchanges/binance/products.json @@ -2758,5 +2758,35 @@ "increment": "0.00001", "asset_increment": "0.01", "label": "ZIL/BNB" + }, + { + "id": "ONTBTC", + "asset": "ONT", + "currency": "BTC", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "ONT/BTC" + }, + { + "id": "ONTETH", + "asset": "ONT", + "currency": "ETH", + "min_size": "1.00000000", + "max_size": "100000.00000000", + "increment": "0.00000001", + "asset_increment": "1.", + "label": "ONT/ETH" + }, + { + "id": "ONTBNB", + "asset": "ONT", + "currency": "BNB", + "min_size": "0.01000000", + "max_size": "10000.00000000", + "increment": "0.00001", + "asset_increment": "0.01", + "label": "ONT/BNB" } ] \ No newline at end of file diff --git a/extensions/exchanges/bitfinex/products.json b/extensions/exchanges/bitfinex/products.json index 6e327e276f..f55617d984 100644 --- a/extensions/exchanges/bitfinex/products.json +++ b/extensions/exchanges/bitfinex/products.json @@ -402,7 +402,7 @@ { "asset": "DAT", "currency": "USD", - "min_size": "120.0", + "min_size": "122.0", "max_size": "250000.0", "increment": "0.000001", "label": "DAT/USD" @@ -410,7 +410,7 @@ { "asset": "DAT", "currency": "BTC", - "min_size": "120.0", + "min_size": "122.0", "max_size": "250000.0", "increment": "0.000000001", "label": "DAT/BTC" @@ -418,7 +418,7 @@ { "asset": "DAT", "currency": "ETH", - "min_size": "120.0", + "min_size": "122.0", "max_size": "250000.0", "increment": "0.000000001", "label": "DAT/ETH" @@ -450,7 +450,7 @@ { "asset": "YYW", "currency": "USD", - "min_size": "84.0", + "min_size": "106.0", "max_size": "50000.0", "increment": "0.000001", "label": "YYW/USD" @@ -458,7 +458,7 @@ { "asset": "YYW", "currency": "BTC", - "min_size": "84.0", + "min_size": "106.0", "max_size": "50000.0", "increment": "0.000000001", "label": "YYW/BTC" @@ -466,7 +466,7 @@ { "asset": "YYW", "currency": "ETH", - "min_size": "84.0", + "min_size": "106.0", "max_size": "50000.0", "increment": "0.000000001", "label": "YYW/ETH" @@ -530,25 +530,25 @@ { "asset": "BAT", "currency": "USD", - "min_size": "30.0", + "min_size": "32.0", "max_size": "200000.0", - "increment": "0.00001", + "increment": "0.000001", "label": "BAT/USD" }, { "asset": "BAT", "currency": "BTC", - "min_size": "30.0", + "min_size": "32.0", "max_size": "200000.0", - "increment": "0.00000001", + "increment": "0.000000001", "label": "BAT/BTC" }, { "asset": "BAT", "currency": "ETH", - "min_size": "30.0", + "min_size": "32.0", "max_size": "200000.0", - "increment": "0.00000001", + "increment": "0.000000001", "label": "BAT/ETH" }, { @@ -602,7 +602,7 @@ { "asset": "ZRX", "currency": "USD", - "min_size": "12.0", + "min_size": "14.0", "max_size": "200000.0", "increment": "0.00001", "label": "ZRX/USD" @@ -610,7 +610,7 @@ { "asset": "ZRX", "currency": "BTC", - "min_size": "12.0", + "min_size": "14.0", "max_size": "200000.0", "increment": "0.00000001", "label": "ZRX/BTC" @@ -618,7 +618,7 @@ { "asset": "ZRX", "currency": "ETH", - "min_size": "12.0", + "min_size": "14.0", "max_size": "200000.0", "increment": "0.00000001", "label": "ZRX/ETH" @@ -626,7 +626,7 @@ { "asset": "TNB", "currency": "USD", - "min_size": "192.0", + "min_size": "284.0", "max_size": "200000.0", "increment": "0.0000001", "label": "TNB/USD" @@ -634,7 +634,7 @@ { "asset": "TNB", "currency": "BTC", - "min_size": "192.0", + "min_size": "284.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/BTC" @@ -642,7 +642,7 @@ { "asset": "TNB", "currency": "ETH", - "min_size": "192.0", + "min_size": "284.0", "max_size": "200000.0", "increment": "0.0000000001", "label": "TNB/ETH" @@ -698,7 +698,7 @@ { "asset": "RCN", "currency": "USD", - "min_size": "72.0", + "min_size": "80.0", "max_size": "200000.0", "increment": "0.000001", "label": "RCN/USD" @@ -706,7 +706,7 @@ { "asset": "RCN", "currency": "BTC", - "min_size": "72.0", + "min_size": "80.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/BTC" @@ -714,7 +714,7 @@ { "asset": "RCN", "currency": "ETH", - "min_size": "72.0", + "min_size": "80.0", "max_size": "200000.0", "increment": "0.000000001", "label": "RCN/ETH" @@ -770,7 +770,7 @@ { "asset": "SNG", "currency": "USD", - "min_size": "94.0", + "min_size": "124.0", "max_size": "200000.0", "increment": "0.000001", "label": "SNG/USD" @@ -778,7 +778,7 @@ { "asset": "SNG", "currency": "BTC", - "min_size": "94.0", + "min_size": "124.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNG/BTC" @@ -786,7 +786,7 @@ { "asset": "SNG", "currency": "ETH", - "min_size": "94.0", + "min_size": "124.0", "max_size": "200000.0", "increment": "0.000000001", "label": "SNG/ETH" @@ -818,7 +818,7 @@ { "asset": "ELF", "currency": "USD", - "min_size": "8.0", + "min_size": "12.0", "max_size": "25000.0", "increment": "0.00001", "label": "ELF/USD" @@ -826,7 +826,7 @@ { "asset": "ELF", "currency": "BTC", - "min_size": "8.0", + "min_size": "12.0", "max_size": "25000.0", "increment": "0.00000001", "label": "ELF/BTC" @@ -834,7 +834,7 @@ { "asset": "ELF", "currency": "ETH", - "min_size": "8.0", + "min_size": "12.0", "max_size": "25000.0", "increment": "0.00000001", "label": "ELF/ETH" diff --git a/extensions/exchanges/wexnz/products.json b/extensions/exchanges/wexnz/products.json index df33c5e9f1..008e969088 100644 --- a/extensions/exchanges/wexnz/products.json +++ b/extensions/exchanges/wexnz/products.json @@ -406,5 +406,13 @@ "max_size": "1", "increment": "0.0001", "label": "BCHET/BCH" + }, + { + "asset": "USDT", + "currency": "USD", + "min_size": "0.01", + "max_size": "2", + "increment": "0.0001", + "label": "USDT/USD" } ] \ No newline at end of file From 109411b46ced8d364faa8867e693775fc86a7c8d Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 8 Mar 2018 20:46:31 +0000 Subject: [PATCH 234/236] fix(package): update @slack/client to version 4.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 259b6834d7..fec4913a97 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ] }, "dependencies": { - "@slack/client": "^3.14.0", + "@slack/client": "^4.0.0", "async": "^2.5.0", "babel-core": "^6.26.0", "babel-loader": "^7.1.2", From 6f6f8b50d74898075199e834978584c398443f32 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Fri, 9 Mar 2018 09:40:27 +0100 Subject: [PATCH 235/236] add "Hull Moving Average Indicator" based on tulind library #1426 (#1480) --- README.md | 10 +++ extensions/strategies/ti_hma/strategy.js | 108 +++++++++++++++++++++++ lib/ti_hma.js | 30 +++++++ package.json | 1 + 4 files changed, 149 insertions(+) create mode 100644 extensions/strategies/ti_hma/strategy.js create mode 100644 lib/ti_hma.js diff --git a/README.md b/README.md index 2501e694cc..fbdb2f56d6 100644 --- a/README.md +++ b/README.md @@ -563,6 +563,16 @@ ta_ultosc --overbought_rsi_periods= number of periods for overbought RSI (default: 25) --overbought_rsi= sold when RSI exceeds this value (default: 90) +ti_hma + description: + HMA - Hull Moving Average + options: + --period= period length eg 10m (default: 15m) + --min_periods= min. number of history periods (default: 52) + --trend_hma= number of periods for trend hma (default: 36) + --overbought_rsi_periods= number of periods for overbought RSI (default: 25) + --overbought_rsi= sold when RSI exceeds this value (default: 70) + trendline description: Calculate a trendline and trade when trend is positive vs negative. diff --git a/extensions/strategies/ti_hma/strategy.js b/extensions/strategies/ti_hma/strategy.js new file mode 100644 index 0000000000..5a2fd4d457 --- /dev/null +++ b/extensions/strategies/ti_hma/strategy.js @@ -0,0 +1,108 @@ +var z = require('zero-fill') + , n = require('numbro') + , rsi = require('../../../lib/rsi') + , ti_hma = require('../../../lib/ti_hma') + , Phenotypes = require('../../../lib/phenotype') + +module.exports = { + name: 'ti_hma', + description: 'HMA - Hull Moving Average', + + getOptions: function () { + this.option('period', 'period length eg 10m', String, '15m') + this.option('min_periods', 'min. number of history periods', Number, 52) + this.option('trend_hma', 'number of periods for trend hma', Number, 36) + this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25) + this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70) + }, + + calculate: function (s) { + if (s.options.overbought_rsi) { + // sync RSI display with overbought RSI periods + s.options.rsi_periods = s.options.overbought_rsi_periods + rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods) + if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) { + s.overbought = true + + if (s.options.mode === 'sim' && s.options.verbose) { + console.log(('\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\n').cyan) + } + } + } + }, + + onPeriod: function (s, cb) { + if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') { + if (s.overbought) { + s.overbought = false + s.signal = 'sell' + return cb() + } + } + + ti_hma(s, s.options.min_periods, s.options.trend_hma).then(function(signal) { + s.period['trend_hma'] = signal + + // percentage change + if (s.period.trend_hma && s.lookback[0] && s.lookback[0].trend_hma) { + s.period.trend_hma_rate = (s.period.trend_hma - s.lookback[0].trend_hma) / s.lookback[0].trend_hma * 100 + } + + if (s.period.trend_hma_rate > 0) { + if (s.trend !== 'up') { + s.acted_on_trend = false + } + s.trend = 'up' + s.signal = !s.acted_on_trend ? 'buy' : null + s.cancel_down = false + } else if (!s.cancel_down && s.period.trend_hma_rate < 0) { + if (s.trend !== 'down') { + s.acted_on_trend = false + } + s.trend = 'down' + s.signal = !s.acted_on_trend ? 'sell' : null + } + + cb() + }).catch(function(error) { + console.log(error) + cb() + }) + }, + + onReport: function (s) { + var cols = [] + + if (typeof s.period.trend_hma === 'number') { + var color = 'grey' + + if (s.period.trend_hma_rate > 0) { + color = 'green' + } else if (s.period.trend_hma_rate < 0) { + color = 'red' + } + + cols.push(z(8, n(s.period.trend_hma).format('0.0000'), ' ')[color]) + cols.push(z(6, n(s.period.trend_hma_rate).format('0.00'), ' ')[color]) + } + + return cols + }, + + phenotypes: { + period_length: Phenotypes.RangePeriod(5, 120, 'm'), + min_periods: Phenotypes.Range(20, 104), + markdown_buy_pct: Phenotypes.RangeFloat(-1, 5), + markup_sell_pct: Phenotypes.RangeFloat(-1, 5), + order_type: Phenotypes.ListOption(['maker', 'taker']), + sell_stop_pct: Phenotypes.Range0(1, 50), + buy_stop_pct: Phenotypes.Range0(1, 50), + profit_stop_enable_pct: Phenotypes.Range0(1, 20), + profit_stop_pct: Phenotypes.Range(1,20), + + trend_hma: Phenotypes.Range(6, 72), + overbought_rsi_periods: Phenotypes.Range(1, 50), + overbought_rsi: Phenotypes.Range(20, 100) + } +} + diff --git a/lib/ti_hma.js b/lib/ti_hma.js new file mode 100644 index 0000000000..08275c2d6a --- /dev/null +++ b/lib/ti_hma.js @@ -0,0 +1,30 @@ +// Hull Moving Average: +// https://tulipindicators.org/hma + +var ti = require('tulind') + +module.exports = function hma(s, min_periods, trend_full) { + return new Promise(function(resolve) { + if (!s.marketData) { + s.marketData = { close: [] } + } + + if (s.lookback.length > s.marketData.close.length) { + for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) { + s.marketData.close.push(s.lookback[i].close) + } + } + + if (s.marketData.close.length < min_periods) { + resolve() + return + } + + let tmpClose = s.marketData.close.slice() + tmpClose.push(s.period.close) + + ti.indicators.hma.indicator([tmpClose], [trend_full], function(err, results) { + resolve(results[0][results[0].length-1]) + }) + }) +} diff --git a/package.json b/package.json index 259b6834d7..397b4386c7 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "talib": "^1.0.4", "timebucket": "^0.4.0", "trend": "0.3.0", + "tulind": "^0.8.9", "url-loader": "^1.0.1", "uuid": "^3.1.0", "waypoints": "^4.0.1", From 6a84cc9d05ba9a9f2ca6d5d644796530fbbc9500 Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Fri, 9 Mar 2018 09:44:36 +0100 Subject: [PATCH 236/236] update package-lock.json --- package-lock.json | 2094 ++++++++++++++++++++------------------------- 1 file changed, 915 insertions(+), 1179 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8290aa1ae7..394b5de877 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,40 +61,132 @@ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" }, "@slack/client": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz", - "integrity": "sha512-CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==", - "requires": { - "async": "1.5.2", - "bluebird": "3.5.1", - "eventemitter3": "1.2.0", - "https-proxy-agent": "1.0.0", - "inherits": "2.0.3", - "lodash": "4.17.5", - "pkginfo": "0.4.1", - "request": "2.76.0", - "retry": "0.9.0", - "url-join": "0.0.1", - "winston": "2.4.0", - "ws": "1.1.5" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@slack/client/-/client-4.0.0.tgz", + "integrity": "sha512-Je7iFG10xmOGtndLIMLOuoP61xD3plikWxtAmUUI6AxgZk97I+8xxRIODZzgLqpYt2dyJctHL/50hx1jewYIkQ==", + "requires": { + "@types/delay": "2.0.1", + "@types/form-data": "2.2.1", + "@types/got": "7.1.7", + "@types/is-stream": "1.1.0", + "@types/loglevel": "1.5.3", + "@types/p-cancelable": "0.3.0", + "@types/p-queue": "2.3.1", + "@types/p-retry": "1.0.1", + "@types/retry": "0.10.2", + "@types/url-join": "0.8.2", + "@types/ws": "4.0.1", + "delay": "2.0.0", + "eventemitter3": "3.0.1", + "finity": "0.5.4", + "form-data": "2.3.2", + "got": "8.2.0", + "is-stream": "1.1.0", + "loglevel": "1.6.1", + "object.entries": "1.0.4", + "object.getownpropertydescriptors": "2.0.3", + "object.values": "1.0.4", + "p-cancelable": "0.3.0", + "p-queue": "2.3.1", + "p-retry": "1.0.0", + "pjson": "1.0.9", + "retry": "0.10.1", + "url-join": "4.0.0", + "ws": "4.1.0" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, "ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1" } } } }, + "@types/delay": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/delay/-/delay-2.0.1.tgz", + "integrity": "sha512-D1/YuYOcdOIdaQnaiUJ77VcilVvESkynw79CtGqpjkXyv4OUezEVZtdXnSOwXL8Zcelu66QbyC8QQcVQ/ZPdig==" + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" + }, + "@types/form-data": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/got": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/got/-/got-7.1.7.tgz", + "integrity": "sha512-quhlNPGIkaRyO4PnEuP9pEkUPktjfrvPESENGOhiEzgOUNbunETSQXY5bkZY+Bb/J9V5p/f50Rh1eDklD4Z2FQ==", + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==", + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/loglevel": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/loglevel/-/loglevel-1.5.3.tgz", + "integrity": "sha512-TzzIZihV+y9kxSg5xJMkyIkaoGkXi50isZTtGHObNHRqAAwjGNjSCNPI7AUAv0tZUKTq9f2cdkCUd/2JVZUTrA==" + }, + "@types/node": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==" + }, + "@types/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@types/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-sP+9Ivnpil7cdmvr5O+145aXm65YX8Y+Lrul1ojdYz6yaE05Dqonn6Z9v5eqJCQ0UeSGcTRtepMlZDh9ywdKgw==" + }, + "@types/p-queue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/p-queue/-/p-queue-2.3.1.tgz", + "integrity": "sha512-JyO7uMAtkcMMULmsTQ4t/lCC8nxirTtweGG1xAFNNIAoC1RemmeIxq8PiKghuEy99XdbS6Lwx4zpbXUjfeSSAA==" + }, + "@types/p-retry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/p-retry/-/p-retry-1.0.1.tgz", + "integrity": "sha512-HgQPG9kkUb4EpTeUv2taH2nBZsVUb5aOTSw3X2YozcTG1ttmGcLaLKx1MbAz1evVfUEDTCAPmdz2HiFztIyWrw==", + "requires": { + "@types/retry": "0.10.2" + } + }, + "@types/retry": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.10.2.tgz", + "integrity": "sha512-LqJkY4VQ7S09XhI7kA3ON71AxauROhSv74639VsNXC9ish4IWHnIi98if+nP1MxQV3RMPqXSCYgpPsDHjlg9UQ==" + }, + "@types/url-join": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@types/url-join/-/url-join-0.8.2.tgz", + "integrity": "sha1-EYHsvh2XtwNODqHjXmLobMJrQi0=" + }, + "@types/ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-4.0.1.tgz", + "integrity": "sha512-J56Wn8j7ovzmlrkUSPXnVRH+YXUCGoVokiB49QIjz+yq0234guOrBvF/HHrqrJjnY4p5oq+q6xAxT/7An6SeWQ==", + "requires": { + "@types/events": "1.2.0", + "@types/node": "9.4.7" + } + }, "@xmpp/jid": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/@xmpp/jid/-/jid-0.0.2.tgz", @@ -139,16 +231,16 @@ } }, "acorn": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.1.tgz", - "integrity": "sha512-D/KGiCpM/VOtTMDS+wfjywEth926WUrArrzYov4N4SI7t+3y8747dPpCmmAvrm/Z3ygqMHnyPxvYYO0yTdn/nQ==" + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==" }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "5.5.1" + "acorn": "5.5.3" } }, "acorn-globals": { @@ -156,7 +248,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.5.1" + "acorn": "5.5.3" } }, "acorn-jsx": { @@ -218,22 +310,6 @@ } } }, - "agent-base": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", - "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", - "requires": { - "extend": "3.0.1", - "semver": "5.0.3" - }, - "dependencies": { - "semver": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", - "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=" - } - } - }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -425,9 +501,9 @@ } }, "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=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -497,9 +573,9 @@ } }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.6.0", @@ -1370,6 +1446,11 @@ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==" }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, "bintrees": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", @@ -1382,16 +1463,11 @@ "requires": { "debug": "2.6.9", "lodash": "4.17.5", - "request": "2.76.0", + "request": "2.83.0", "request-promise": "4.2.2", "ws": "3.3.3" }, "dependencies": { - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", @@ -1453,13 +1529,6 @@ "qs": "6.5.1", "raw-body": "2.3.2", "type-is": "1.6.16" - }, - "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } } }, "bollinger-bands": { @@ -1473,11 +1542,11 @@ } }, "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "2.16.3" + "hoek": "4.2.1" } }, "bootstrap": { @@ -1644,7 +1713,7 @@ "chownr": "1.0.1", "glob": "7.1.2", "graceful-fs": "4.1.11", - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "mississippi": "2.0.0", "mkdirp": "0.5.1", "move-concurrently": "1.0.1", @@ -1697,41 +1766,6 @@ "lowercase-keys": "1.0.0", "normalize-url": "2.0.1", "responselike": "1.0.2" - }, - "dependencies": { - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.0", - "sort-keys": "2.0.0" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "query-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", - "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", - "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "1.1.0" - } - } } }, "caller-path": { @@ -1803,27 +1837,20 @@ "integrity": "sha512-A8ITSmH5SFdMFdC704ggjg+x2z5PzQmVlG8tavwnfvbC33Q1UYrj0+G+Xm0SNAnd4He36fwUE/KEWytOEchw+A==" }, "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "ccxt": { - "version": "1.11.36", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.11.36.tgz", - "integrity": "sha512-lOJx4NgLm1N+gY54MyYGiBDfuM188YogZCR4Ch3k+OpaBHuQLI7XWkEygMNq29zEepJ7vtymwx55lNIQE0o4qg==", + "version": "1.11.53", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.11.53.tgz", + "integrity": "sha512-yiQj956pOB8o6AqqY7ie4bQ6Jnw7rckPuy86ss4GyphvXH9X3Ha7b64wQNB15LQ+TeHxBupw32eqtuPeOXIV8A==", "requires": { "cloudscraper": "1.4.1", "crypto-js": "3.1.9-1", "fetch-ponyfill": "4.1.0", "opencollective": "1.0.3", "qs": "6.5.1" - }, - "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } } }, "cexio-api-node": { @@ -1838,47 +1865,6 @@ "ws": "3.3.3" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -1887,106 +1873,6 @@ "ms": "2.0.0" } }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", @@ -2374,41 +2260,10 @@ "winston": "0.8.3" }, "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=" - }, - "winston": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "pkginfo": "0.3.1", - "stack-trace": "0.0.10" - }, - "dependencies": { - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" - } - } } } }, @@ -2492,20 +2347,13 @@ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "cloneable-readable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.1.tgz", + "integrity": "sha512-DNNEq6JdqBFPzS29TaoqZFPNLn5Xn3XyPFqLIhyBT8Xou4lHQEWzD6FinXoJUfhIfWX3aE1JkRa3cbWCHFbt1g==", "requires": { "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "through2": "2.0.3" - }, - "dependencies": { - "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=" - } + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.5" } }, "cloudscraper": { @@ -2513,7 +2361,7 @@ "resolved": "https://registry.npmjs.org/cloudscraper/-/cloudscraper-1.4.1.tgz", "integrity": "sha1-8rRDHzFyhtgZsTVyZso0Y7ES68o=", "requires": { - "request": "2.76.0" + "request": "2.83.0" } }, "co": { @@ -2553,10 +2401,41 @@ "json-stable-stringify": "1.0.1" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "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=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } }, "har-schema": { "version": "1.0.5", @@ -2572,10 +2451,36 @@ "har-schema": "1.0.5" } }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "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=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, "qs": { "version": "6.4.0", @@ -2611,12 +2516,12 @@ "uuid": "3.2.1" } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "safe-buffer": "5.1.1" + "hoek": "2.16.3" } } } @@ -2685,9 +2590,9 @@ } }, "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", + "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==" }, "commondir": { "version": "1.0.1", @@ -2879,17 +2784,27 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "shebang-command": "1.2.0", "which": "1.3.0" } }, "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "2.10.1" + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.1" + } + } } }, "crypto-browserify": { @@ -3106,13 +3021,6 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "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=" - } } }, "date-fns": { @@ -3243,6 +3151,14 @@ } } }, + "delay": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-2.0.0.tgz", + "integrity": "sha1-kRLq3APk7H4AKXM3iW8nO72R+uU=", + "requires": { + "p-defer": "1.0.0" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3285,6 +3201,11 @@ "repeating": "2.0.1" } }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -3671,7 +3592,7 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.1", + "acorn": "5.5.3", "acorn-jsx": "3.0.1" } }, @@ -3713,9 +3634,9 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.1.tgz", + "integrity": "sha512-QOCPu979MMWX9XNlfRZoin+Wm+bK1SP7vv3NGUniYwuSJK/+cPA10blMaeRgzg31RvoSFk6FsCDVa4vNryBTGA==" }, "events": { "version": "1.1.1", @@ -3858,13 +3779,6 @@ "type-is": "1.6.16", "utils-merge": "1.0.1", "vary": "1.1.2" - }, - "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } } }, "extend": { @@ -4048,6 +3962,11 @@ "locate-path": "2.0.0" } }, + "finity": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/finity/-/finity-0.5.4.tgz", + "integrity": "sha512-3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==" + }, "first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -4074,9 +3993,9 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, "flow-parser": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.67.0.tgz", - "integrity": "sha1-OTXa9jO7tKJxT81lIzKzHNlsDqg=" + "version": "0.67.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.67.1.tgz", + "integrity": "sha1-GR/tVsz9jQl9ydSH8to7Da50WEk=" }, "flush-write-stream": { "version": "1.0.2", @@ -4135,9 +4054,9 @@ } }, "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.6", @@ -4145,9 +4064,9 @@ } }, "formidable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.0.tgz", + "integrity": "sha512-hr9aT30rAi7kf8Q2aaTpSP7xGMhlJ+MdrUDVZs3rxbD3L/K46A86s2VY7qC2D2kGYGBtiT/3j6wTx1eeUq5xAQ==" }, "forwarded": { "version": "0.1.2", @@ -4997,6 +4916,16 @@ "rimraf": "2.6.2" } }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -5062,142 +4991,6 @@ "ws": "4.1.0" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } - }, "ws": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", @@ -5221,21 +5014,11 @@ "ws": "2.3.1" }, "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, "safe-buffer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, "ws": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", @@ -5297,13 +5080,6 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "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=" - } } }, "gh-got": { @@ -5313,6 +5089,50 @@ "requires": { "got": "7.1.0", "is-plain-obj": "1.1.0" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + } } }, "github-username": { @@ -5480,23 +5300,26 @@ } }, "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/got/-/got-8.2.0.tgz", + "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "requires": { + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", "decompress-response": "3.3.0", "duplexer3": "0.1.4", "get-stream": "3.0.0", - "is-plain-obj": "1.1.0", + "into-stream": "3.1.0", "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", "isurl": "1.0.0", "lowercase-keys": "1.0.0", + "mimic-response": "1.0.0", "p-cancelable": "0.3.0", - "p-timeout": "1.2.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", "safe-buffer": "5.1.1", "timed-out": "4.0.1", - "url-parse-lax": "1.0.0", + "url-parse-lax": "3.0.0", "url-to-options": "1.0.1" } }, @@ -5644,14 +5467,14 @@ } }, "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" } }, "hmac-drbg": { @@ -5665,9 +5488,9 @@ } }, "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "home-or-tmp": { "version": "2.0.0", @@ -5687,9 +5510,9 @@ } }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "html-comment-regex": { "version": "1.1.1", @@ -5733,16 +5556,16 @@ } }, "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.11.tgz", + "integrity": "sha512-QCR5O2AjjMW8Mo4HyI1ctFcv+O99j/0g367V3YoVnrNw5hkDvAWZD0lWGcc+F4yN3V55USPCVix4efb75HxFfA==" }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "0.2.0", + "assert-plus": "1.0.0", "jsprim": "1.4.1", "sshpk": "1.13.1" } @@ -5752,16 +5575,6 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, - "https-proxy-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", - "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" - } - }, "husky": { "version": "0.14.3", "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", @@ -5843,7 +5656,7 @@ "resolved": "https://registry.npmjs.org/idgen/-/idgen-2.0.2.tgz", "integrity": "sha1-ZFpO6n7bUz2UH1jt2UMVVUWPwqg=", "requires": { - "commander": "2.14.1" + "commander": "2.15.0" } }, "ieee754": { @@ -6944,7 +6757,7 @@ "babel-register": "6.26.0", "babylon": "6.18.0", "colors": "1.1.2", - "flow-parser": "0.67.0", + "flow-parser": "0.67.1", "lodash": "4.17.5", "micromatch": "2.3.11", "node-dir": "0.1.8", @@ -7030,7 +6843,7 @@ "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", "requires": { "abab": "1.0.4", - "acorn": "5.5.1", + "acorn": "5.5.3", "acorn-globals": "4.1.0", "array-equal": "1.0.0", "browser-process-hrtime": "0.1.2", @@ -7057,149 +6870,13 @@ "xml-name-validator": "3.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=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "ws": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1" } } } @@ -7255,7 +6932,7 @@ "dev": true, "requires": { "cli-table2": "0.2.0", - "commander": "2.14.1", + "commander": "2.15.0", "jsonparse": "1.3.1", "lodash.clonedeep": "4.5.0", "lodash.get": "4.4.2", @@ -7297,13 +6974,6 @@ "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=" - } } }, "keyv": { @@ -7331,10 +7001,47 @@ "qs": "6.5.1" }, "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } } } }, @@ -7380,7 +7087,7 @@ "requires": { "app-root-path": "2.0.1", "chalk": "2.3.2", - "commander": "2.14.1", + "commander": "2.15.0", "cosmiconfig": "4.0.0", "debug": "3.1.0", "dedent": "0.7.0", @@ -7824,6 +7531,11 @@ } } }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" + }, "lolex": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", @@ -7852,9 +7564,9 @@ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "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==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -7996,7 +7708,7 @@ "clone": "2.1.1", "clone-buffer": "1.0.0", "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", + "cloneable-readable": "1.1.1", "remove-trailing-separator": "1.1.0", "replace-ext": "1.0.0" } @@ -8323,6 +8035,11 @@ "dom-walk": "0.1.1" } }, + "minctest": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/minctest/-/minctest-0.0.2.tgz", + "integrity": "sha1-mDOxA3vZWrkIYzrQ3Fkn0Ocq3tM=" + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -8551,7 +8268,7 @@ "cloudscraper": "1.4.1", "jsonic": "0.3.0", "object-assign": "4.1.1", - "request": "2.76.0", + "request": "2.83.0", "signalr-client": "0.0.17" } }, @@ -8570,9 +8287,9 @@ } }, "node-forge": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.3.tgz", - "integrity": "sha512-UGP1kI3GWGcvOgODS7o1YodpkE9RzJHMv1nlSH35iBjPZM/702cWZ1Z2wFBGYkgvzG0vfMp7scs9+gKjHQ3DlA==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz", + "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==" }, "node-gyp": { "version": "3.6.2", @@ -8587,7 +8304,7 @@ "nopt": "3.0.6", "npmlog": "4.1.2", "osenv": "0.1.5", - "request": "2.76.0", + "request": "2.83.0", "rimraf": "2.6.2", "semver": "5.3.0", "tar": "2.2.1", @@ -8631,6 +8348,167 @@ "vm-browserify": "0.0.4" } }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "requires": { + "detect-libc": "1.0.3", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.2", + "rc": "1.2.5", + "request": "2.81.0", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "2.2.1", + "tar-pack": "3.4.1" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "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=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "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=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "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.18", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + } + } + }, "node-prowl": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/node-prowl/-/node-prowl-0.1.7.tgz", @@ -8673,26 +8551,98 @@ "true-case-path": "1.0.2" }, "dependencies": { + "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=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "which": "1.3.0" } }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { "chalk": "1.1.3", - "commander": "2.14.1", + "commander": "2.15.0", "is-my-json-valid": "2.17.2", "pinkie-promise": "2.0.1" } }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "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=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", @@ -8719,6 +8669,19 @@ "tunnel-agent": "0.4.3", "uuid": "3.2.1" } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" } } }, @@ -8740,47 +8703,6 @@ "request-promise": "4.2.2" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -8789,110 +8711,10 @@ "ms": "2.0.0" } }, - "eventemitter3": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.1.tgz", - "integrity": "sha512-QOCPu979MMWX9XNlfRZoin+Wm+bK1SP7vv3NGUniYwuSJK/+cPA10blMaeRgzg31RvoSFk6FsCDVa4vNryBTGA==" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } } } }, @@ -8906,10 +8728,15 @@ "md5.js": "1.3.4", "minimist": "1.2.0", "node-xmpp-core": "5.0.9", - "request": "2.76.0", + "request": "2.83.0", "ws": "1.1.5" }, "dependencies": { + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + }, "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", @@ -8995,7 +8822,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", "validate-npm-package-license": "3.0.3" @@ -9012,14 +8839,13 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "prepend-http": "2.0.0", + "query-string": "5.1.0", + "sort-keys": "2.0.0" } }, "npm-path": { @@ -9043,7 +8869,7 @@ "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", "requires": { - "commander": "2.14.1", + "commander": "2.15.0", "npm-path": "2.0.4", "which": "1.3.0" } @@ -9170,6 +8996,26 @@ } } }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -9194,6 +9040,17 @@ } } }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -9346,6 +9203,11 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, "p-each-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", @@ -9390,15 +9252,28 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" }, + "p-queue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-2.3.1.tgz", + "integrity": "sha512-MJGD2eVNHhtCsGLBDsfNzhBDlWxBFb5BvVXhJFbmlXH76Llo792ylwqEYJguLo+BnxZpos/Qw9dq0voyQRD3pg==" + }, "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" }, + "p-retry": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-1.0.0.tgz", + "integrity": "sha1-OSczKkt9cCabU1UVEX/FR9oaaWg=", + "requires": { + "retry": "0.10.1" + } + }, "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "requires": { "p-finally": "1.0.0" } @@ -9586,6 +9461,11 @@ "pinkie": "2.0.4" } }, + "pjson": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/pjson/-/pjson-1.0.9.tgz", + "integrity": "sha512-4hRJH3YzkUpOlShRzhyxAmThSNnAaIlWZCAb27hd0pVUAXNUAHAO7XZbsPPvsCYwBFEScTmCCL6DGE8NyZ8BdQ==" + }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", @@ -9595,9 +9475,9 @@ } }, "pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=" }, "please-upgrade-node": { "version": "3.0.1", @@ -10397,6 +10277,41 @@ "normalize-url": "1.9.1", "postcss": "5.2.18", "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "1.1.0" + } + } } }, "postcss-ordered-values": { @@ -10487,9 +10402,9 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "preserve": { "version": "0.2.0", @@ -10617,156 +10532,20 @@ "requires": { "clone": "2.1.1", "mime": "1.6.0", - "node-forge": "0.7.3", + "node-forge": "0.7.4", "request": "2.83.0", "websocket": "1.0.25" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } } } }, @@ -10790,23 +10569,24 @@ "integrity": "sha1-6A8NxdCfhp2IghaMP2asjdKEDwI=" }, "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "quadrigacx": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/quadrigacx/-/quadrigacx-0.0.7.tgz", "integrity": "sha1-vptrBG28vDpNqRbBpQtJ2kiulsQ=", "requires": { - "request": "2.76.0" + "request": "2.83.0" } }, "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", + "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", "requires": { + "decode-uri-component": "0.2.0", "object-assign": "4.1.1", "strict-uri-encode": "1.1.0" } @@ -10896,6 +10676,17 @@ "unpipe": "1.0.0" } }, + "rc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz", + "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, "read-chunk": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", @@ -11168,47 +10959,42 @@ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "request": { - "version": "2.76.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz", - "integrity": "sha1-vkRQWv73A2CgQ2lVEGvjlF2VVg4=", + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { - "aws-sign2": "0.6.0", + "aws-sign2": "0.7.0", "aws4": "1.6.0", - "caseless": "0.11.0", + "caseless": "0.12.0", "combined-stream": "1.0.6", "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", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", "mime-types": "2.1.18", - "node-uuid": "1.4.8", "oauth-sign": "0.8.2", - "qs": "6.3.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", "stringstream": "0.0.5", "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3" + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" }, "dependencies": { "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "chalk": "1.1.3", - "commander": "2.14.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "ajv": "5.5.2", + "har-schema": "2.0.0" } - }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" } } }, @@ -11368,9 +11154,9 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz", - "integrity": "sha1-b2l+UKDk3cjI9/tUeptg3q1DZ40=" + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rework": { "version": "1.0.1", @@ -11936,17 +11722,17 @@ } }, "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "2.16.3" + "hoek": "4.2.1" } }, "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "requires": { "is-plain-obj": "1.1.0" } @@ -12049,13 +11835,6 @@ "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=" - } } }, "ssri": { @@ -12315,8 +12094,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { "version": "0.20.2", @@ -12337,7 +12115,7 @@ "debug": "3.1.0", "extend": "3.0.1", "form-data": "2.3.2", - "formidable": "1.1.1", + "formidable": "1.2.0", "methods": "1.1.2", "mime": "1.6.0", "qs": "6.5.1", @@ -12352,25 +12130,10 @@ "ms": "2.0.0" } }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" } } }, @@ -12492,6 +12255,21 @@ "inherits": "2.0.3" } }, + "tar-pack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", + "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "requires": { + "debug": "2.6.9", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.3.5", + "rimraf": "2.6.2", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, "temp": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", @@ -12679,10 +12457,24 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, + "tulind": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/tulind/-/tulind-0.8.9.tgz", + "integrity": "sha1-1wnbFUPLWufnVMXUuedYjMHS5xA=", + "requires": { + "bindings": "1.3.0", + "minctest": "0.0.2", + "nan": "2.9.2", + "node-pre-gyp": "0.6.39" + } + }, "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -12718,9 +12510,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.4.tgz", - "integrity": "sha512-JTZPwvf+dXFWkljvE3oDjTZ6DFg+bbBhB9yA4Xx3JN4Ol9jfMjXuLn/o2gmgt+BJJwJ4MIzrTBz+UbwVMi9vcA==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "requires": { "is-typedarray": "1.0.0" } @@ -12758,7 +12550,7 @@ "source-map": "0.6.1", "uglify-es": "3.3.9", "webpack-sources": "1.1.0", - "worker-farm": "1.5.4" + "worker-farm": "1.6.0" }, "dependencies": { "source-map": { @@ -12768,10 +12560,15 @@ } } }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" + }, "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "underscore": { "version": "1.4.4", @@ -12922,9 +12719,9 @@ } }, "url-join": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", - "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=" }, "url-loader": { "version": "1.0.1", @@ -12937,11 +12734,11 @@ } }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "2.0.0" } }, "url-to-options": { @@ -13092,13 +12889,6 @@ "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=" - } } }, "vinyl": { @@ -13168,11 +12958,11 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.1.0.tgz", - "integrity": "sha512-ZFYcAZ44kOT+xsS5MS2H1fQr0PJkwQdYem/d17wacDkkupzsAkBJ3hDShWHdPVvWluFs6pfhHWw/dVso1m0rsA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.1.1.tgz", + "integrity": "sha512-PwxKH81yLjbPyBSZvPj/Ji9pT99XOGFA0t6zipoOKOMNRZ+09N39J5Uzcx3rYKnsHgKwDnfGkvzac4MF2Taknw==", "requires": { - "acorn": "5.5.1", + "acorn": "5.5.3", "acorn-dynamic-import": "3.0.0", "ajv": "6.2.1", "ajv-keywords": "3.1.0", @@ -13313,37 +13103,13 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "shebang-command": "1.2.0", "which": "1.3.0" } } } }, - "got": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/got/-/got-8.2.0.tgz", - "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", - "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.0", - "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.1", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -13378,13 +13144,6 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "os-locale": { @@ -13397,14 +13156,6 @@ "mem": "1.1.0" } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "1.0.0" - } - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -13419,19 +13170,12 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "read-pkg": { "version": "2.0.0", @@ -13473,14 +13217,6 @@ "has-flag": "3.0.0" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "2.0.0" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -13539,7 +13275,7 @@ "requires": { "debug": "2.6.9", "nan": "2.9.2", - "typedarray-to-buffer": "3.1.4", + "typedarray-to-buffer": "3.1.5", "yaeti": "0.0.6" } }, @@ -13548,7 +13284,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.10", + "http-parser-js": "0.4.11", "websocket-extensions": "0.1.3" } }, @@ -13627,27 +13363,28 @@ } }, "winston": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", - "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", "requires": { - "async": "1.0.0", - "colors": "1.0.3", + "async": "0.2.10", + "colors": "0.6.2", "cycle": "1.0.3", "eyes": "0.1.8", "isstream": "0.1.2", + "pkginfo": "0.3.1", "stack-trace": "0.0.10" }, "dependencies": { "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" } } }, @@ -13657,12 +13394,11 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "worker-farm": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.4.tgz", - "integrity": "sha512-ITyClEvcfv0ozqJl1vmWFWhvI+OIrkbInYqkEPE50wFPXj8J9Gd3FYf8+CkZJXJJsQBYe+2DvmoK9Zhx5w8W+w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "requires": { - "errno": "0.1.7", - "xtend": "4.0.1" + "errno": "0.1.7" } }, "wrap-ansi": {