diff --git a/README.md b/README.md index f2f35b2a..1a90580a 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ Instructions are coming at [lbry-docker] to install your own chainquery instance ## Settings There are a number of settings available for customizing the behavior of your installation. -_INSERT LINK TO SETTINGS.MD_ +[Here](https://github.com/lbryio/spee.ch/blob/master/docs/settings.md) is some documentation on them. ## API diff --git a/cli/defaults/siteConfig.json b/cli/defaults/siteConfig.json index 27275abc..b7ff5337 100644 --- a/cli/defaults/siteConfig.json +++ b/cli/defaults/siteConfig.json @@ -46,10 +46,7 @@ "customByContentType": { "application/octet-stream": 50000000 } - }, - "maxSizeImage": 10000000, - "maxSizeGif": 50000000, - "maxSizeVideo": 50000000 + } }, "serving": { "markdownSettings": { @@ -92,18 +89,18 @@ "disallowedTypesExample": ["image", "html"] }, "customFileExtensions": { - "application/x-troff-man": ".man", - "application/x-troff-me": ".me", - "application/x-mif": ".mif", - "application/x-troff-ms": ".ms", - "application/x-troff": ".roff", - "application/x-python-code": ".pyc", - "text/x-python": ".py", - "application/x-pn-realaudio": ".ram", - "application/x-sgml": ".sgm", - "model/stl": ".stl", - "image/pict": ".pct", - "text/xul": ".xul", + "application/x-troff-man": "man", + "application/x-troff-me": "me", + "application/x-mif": "mif", + "application/x-troff-ms": "ms", + "application/x-troff": "roff", + "application/x-python-code": "pyc", + "text/x-python": "py", + "application/x-pn-realaudio": "ram", + "application/x-sgml": "sgm", + "model/stl": "stl", + "image/pict": "pct", + "text/xul": "xul", "text/x-go": "go" } }, diff --git a/client/scss/_asset-preview.scss b/client/scss/_asset-preview.scss index 0c5742b2..78f26e4b 100644 --- a/client/scss/_asset-preview.scss +++ b/client/scss/_asset-preview.scss @@ -8,7 +8,7 @@ height: 280px; &:hover { border: 1px solid $highlight-border-color; - color: #000000; + color: $primary-color; } } diff --git a/client/scss/_input.scss b/client/scss/_input.scss index 8cfedf4b..27a9d9ba 100644 --- a/client/scss/_input.scss +++ b/client/scss/_input.scss @@ -8,6 +8,7 @@ input { border: 0; background-color: $background-color; display: inline-block; + color: $text-color } .input-slider { diff --git a/client/scss/_link.scss b/client/scss/_link.scss index bda60bc7..0bc2e57b 100644 --- a/client/scss/_link.scss +++ b/client/scss/_link.scss @@ -9,7 +9,6 @@ a, a:visited { .link--nav { color: $text-color; - border-bottom: 2px solid white; &:hover { color: $primary-color; } @@ -18,4 +17,4 @@ a, a:visited { .link--nav-active { border-bottom: 2px solid $primary-color; -} \ No newline at end of file +} diff --git a/client/scss/_nav-bar.scss b/client/scss/_nav-bar.scss index 18e2adbf..69371e73 100644 --- a/client/scss/_nav-bar.scss +++ b/client/scss/_nav-bar.scss @@ -1,15 +1,24 @@ .nav-bar { box-sizing: border-box; padding: $thin-padding $primary-padding; - background: $base-color; + background: $chrome-color; flex: 0 1 auto; width: 100%; border-bottom: $subtle-border; + color: $primary-color; @media (max-width: $break-point-mobile) { margin-left: 15px; margin-right: 15px; } + input { + background: $chrome-color; + + } + select { + background: $chrome-color; + color: $text-color; + } } .nav-bar-link { diff --git a/client/scss/_variables.scss b/client/scss/_variables.scss index 0722103d..60d93577 100644 --- a/client/scss/_variables.scss +++ b/client/scss/_variables.scss @@ -1,7 +1,7 @@ //backgrounds $base-color: white; //default white $card-color: white; //default white -$chrome-color: lightgray; //default white (navbar) +$chrome-color: white; //default white (navbar) $blockquote-background: #EEEEFF; $background-color: $base-color; @@ -19,7 +19,7 @@ $blockquote-text: $text-color; $grey: #9095A5; $help-color: $grey; $subtle-border-color: #DDD; -$highlight-border-color: #333; +$highlight-border-color: #777; $shadow-color: rgba(169, 173, 186, 0.2); $subtle-border: 1px dashed $subtle-border-color; $grey-border: $subtle-border-color; //factor this out for all customers diff --git a/client/src/containers/AssetInfo/view.jsx b/client/src/containers/AssetInfo/view.jsx index ea095b0d..49dfeedc 100644 --- a/client/src/containers/AssetInfo/view.jsx +++ b/client/src/containers/AssetInfo/view.jsx @@ -151,7 +151,7 @@ class AssetInfo extends React.Component { Download diff --git a/docs/settings.md b/docs/settings.md index 981132a3..1bf06aa3 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -39,10 +39,18 @@ PUBLISHING: "publishingChannelWhitelist": [], "channelClaimBidAmount": "0.1", - When creating a channel, how much you deposit to control the name "fileClaimBidAmount": "0.01", - When publishing content, how much you deposit to control the name - "maxSizeImage": 10000000, - You may not want people uploading 50GB files. 1000000 = 1MB - "maxSizeGif": 50000000, - "maxSizeVideo": 50000000 - + "fileSizeLimits": { + "image": 50000000, + "video": 50000000, + "audio": 50000000, + "text": 10000000, + "model": 50000000, + "application": 500000000, + "customByContentType": { + "application/octet-stream": 50000000 + } + } + SERVING: "markdownSettings": { @@ -80,9 +88,6 @@ SERVING: "html", - potentially DANGEROUS, intended for `serveOnlyApproved = true` environments, includes iframes, divs. "parsedHtml" ], - "disallowedTypesMain": [], - not implemented - "disallowedTypesDescriptions": ["image", "html"], - not implemented - "disallowedTypesExample": ["image", "html"] - not implemented }, "customFileExtensions": { - suggest a file extension for experimental content types you may be publishing "application/example-type": "example" diff --git a/docs/ubuntuinstall.md b/docs/ubuntuinstall.md index 54c83e7f..7ee8954e 100644 --- a/docs/ubuntuinstall.md +++ b/docs/ubuntuinstall.md @@ -163,7 +163,7 @@ Log in as username@domainname or username@ip_address `mysql -u root -p` and then entering your_mysql_password should give you the mysql> shell -# 5 Get Lbrynet Daemon +# 5 Get Lbrynet SDK Daemon ## Start tmux @@ -174,11 +174,34 @@ tmux allows you to run multiple things in different sessions. Useful for manuall * `tmux`, reenters tmux, then * `Ctrl+b`, `(` goes back to through sessions -## Get the daemon +## Get the SDK `wget -O ~/latest_daemon.zip https://lbry.io/get/lbrynet.linux.zip` `unzip -o -u ~/latest_daemon.zip` +## Customize SDK settings + + These settings will prevent you and your users from spending your server's LBC on paid content. Full documentation is [here](https://lbry.tech/resources/daemon-settings). + + ~$ + `mkdir .lbrynet` + + `cd .lbrynet` + + `nano daemon_settings.yml` + + copy and paste in the following code (Ctrl+Shift V) + + ``` + run_reflector_server: false + disable_max_key_fee: false + max_key_fee: {amount: 0, currency: LBC} + use_upnp: false + auto_re_reflect_interval: 0 + ``` + + `CONTROL+O` then `CONTROL+X` to save and exit + ## Start the daemon `./lbrynet start` diff --git a/package-lock.json b/package-lock.json index a1413b3f..c8dace28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1660,6 +1660,16 @@ "es-abstract": "^1.7.0" } }, + "array-parallel": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz", + "integrity": "sha1-j3hTCJJu1apHjEfmTRszS2wMlH0=" + }, + "array-series": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz", + "integrity": "sha1-3103v8XC7wdV4qpPkv6ufUtaly8=" + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -6474,6 +6484,28 @@ } } }, + "gm": { + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz", + "integrity": "sha1-Lt7rlYCE0PjqeYjl2ZWxx9/BR3c=", + "requires": { + "array-parallel": "~0.1.3", + "array-series": "~0.1.5", + "cross-spawn": "^4.0.0", + "debug": "^3.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + } + } + }, "got": { "version": "6.7.1", "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -9306,7 +9338,7 @@ "dependencies": { "JSONStream": { "version": "1.3.4", - "resolved": false, + "resolved": "", "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", "requires": { "jsonparse": "^1.2.0", @@ -9315,12 +9347,12 @@ }, "abbrev": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "agent-base": { "version": "4.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "^5.0.0" @@ -9328,7 +9360,7 @@ }, "agentkeepalive": { "version": "3.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", "requires": { "humanize-ms": "^1.2.1" @@ -9336,7 +9368,7 @@ }, "ajv": { "version": "5.5.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { "co": "^4.6.0", @@ -9347,7 +9379,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "^2.0.0" @@ -9355,12 +9387,12 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "3.2.1", - "resolved": false, + "resolved": "", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" @@ -9368,27 +9400,27 @@ }, "ansicolors": { "version": "0.3.2", - "resolved": false, + "resolved": "", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, "ansistyles": { "version": "0.1.3", - "resolved": false, + "resolved": "", "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" }, "aproba": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archy": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "^1.0.0", @@ -9397,12 +9429,12 @@ }, "asap": { "version": "2.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { "version": "0.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { "safer-buffer": "~2.1.0" @@ -9410,32 +9442,32 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "asynckit": { "version": "0.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sign2": { "version": "0.7.0", - "resolved": false, + "resolved": "", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.8.0", - "resolved": false, + "resolved": "", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "balanced-match": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { @@ -9444,7 +9476,7 @@ }, "bin-links": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", "requires": { "bluebird": "^3.5.0", @@ -9456,7 +9488,7 @@ }, "block-stream": { "version": "0.0.9", - "resolved": false, + "resolved": "", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "~2.0.0" @@ -9464,12 +9496,12 @@ }, "bluebird": { "version": "3.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, "boxen": { "version": "1.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "requires": { "ansi-align": "^2.0.0", @@ -9483,7 +9515,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", @@ -9492,32 +9524,32 @@ }, "buffer-from": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" }, "builtin-modules": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "builtins": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "byline": { "version": "5.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" }, "byte-size": { "version": "4.0.3", - "resolved": false, + "resolved": "", "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==" }, "cacache": { "version": "11.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", "requires": { "bluebird": "^3.5.1", @@ -9538,27 +9570,27 @@ }, "call-limit": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=" }, "camelcase": { "version": "4.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "capture-stack-trace": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" }, "caseless": { "version": "0.12.0", - "resolved": false, + "resolved": "", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { "ansi-styles": "^3.2.1", @@ -9568,17 +9600,17 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "ci-info": { "version": "1.4.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==" }, "cidr-regex": { "version": "2.0.9", - "resolved": false, + "resolved": "", "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", "requires": { "ip-regex": "^2.1.0" @@ -9586,12 +9618,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-columns": { "version": "3.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", "requires": { "string-width": "^2.0.0", @@ -9600,7 +9632,7 @@ }, "cli-table3": { "version": "0.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", "requires": { "colors": "^1.1.2", @@ -9610,7 +9642,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { "string-width": "^2.1.1", @@ -9620,12 +9652,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -9635,12 +9667,12 @@ }, "clone": { "version": "1.0.4", - "resolved": false, + "resolved": "", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "cmd-shim": { "version": "2.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "requires": { "graceful-fs": "^4.1.2", @@ -9649,17 +9681,17 @@ }, "co": { "version": "4.6.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "code-point-at": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "1.9.1", - "resolved": false, + "resolved": "", "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { "color-name": "^1.1.1" @@ -9667,18 +9699,18 @@ }, "color-name": { "version": "1.1.3", - "resolved": false, + "resolved": "", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "optional": true }, "columnify": { "version": "1.5.4", - "resolved": false, + "resolved": "", "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "requires": { "strip-ansi": "^3.0.0", @@ -9687,7 +9719,7 @@ }, "combined-stream": { "version": "1.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { "delayed-stream": "~1.0.0" @@ -9695,12 +9727,12 @@ }, "concat-map": { "version": "0.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", - "resolved": false, + "resolved": "", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { "buffer-from": "^1.0.0", @@ -9711,7 +9743,7 @@ }, "config-chain": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "requires": { "ini": "^1.3.4", @@ -9720,7 +9752,7 @@ }, "configstore": { "version": "3.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "requires": { "dot-prop": "^4.1.0", @@ -9733,12 +9765,12 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "copy-concurrently": { "version": "1.0.5", - "resolved": false, + "resolved": "", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { "aproba": "^1.1.1", @@ -9751,19 +9783,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" } } }, "core-util-is": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-error-class": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "^1.0.0" @@ -9771,7 +9803,7 @@ }, "cross-spawn": { "version": "5.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "^4.0.1", @@ -9781,17 +9813,17 @@ }, "crypto-random-string": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, "cyclist": { "version": "0.2.2", - "resolved": false, + "resolved": "", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" }, "dashdash": { "version": "1.14.1", - "resolved": false, + "resolved": "", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" @@ -9799,7 +9831,7 @@ }, "debug": { "version": "3.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" @@ -9807,34 +9839,34 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "debuglog": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" }, "decamelize": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "deep-extend": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" }, "defaults": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -9842,27 +9874,27 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "detect-indent": { "version": "5.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" }, "detect-newline": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" }, "dezalgo": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "requires": { "asap": "^2.0.0", @@ -9871,7 +9903,7 @@ }, "dot-prop": { "version": "4.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "requires": { "is-obj": "^1.0.0" @@ -9879,17 +9911,17 @@ }, "dotenv": { "version": "5.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==" }, "duplexer3": { "version": "0.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.6.0", - "resolved": false, + "resolved": "", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { "end-of-stream": "^1.0.0", @@ -9900,7 +9932,7 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { @@ -9910,12 +9942,12 @@ }, "editor": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" }, "encoding": { "version": "0.1.12", - "resolved": false, + "resolved": "", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "~0.4.13" @@ -9923,7 +9955,7 @@ }, "end-of-stream": { "version": "1.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "^1.4.0" @@ -9931,12 +9963,12 @@ }, "err-code": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errno": { "version": "0.1.7", - "resolved": false, + "resolved": "", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "~1.0.1" @@ -9944,12 +9976,12 @@ }, "es6-promise": { "version": "4.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" }, "es6-promisify": { "version": "5.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "^4.0.3" @@ -9957,12 +9989,12 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": false, + "resolved": "", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "execa": { "version": "0.7.0", - "resolved": false, + "resolved": "", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "^5.0.1", @@ -9976,37 +10008,37 @@ }, "extend": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extsprintf": { "version": "1.3.0", - "resolved": false, + "resolved": "", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "1.1.0", - "resolved": false, + "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", - "resolved": false, + "resolved": "", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "figgy-pudding": { "version": "3.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-j1SAT641cerGuOvoSBoaE9LbSzh1N/E5ufk9oMpOKuyK8MyW3sGg4rh+4qhLmVTEAzipO5XTHYT4gjb6JYLE8g==" }, "find-npm-prefix": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" }, "find-up": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "^2.0.0" @@ -10014,7 +10046,7 @@ }, "flush-write-stream": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "requires": { "inherits": "^2.0.1", @@ -10023,12 +10055,12 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": false, + "resolved": "", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.2", - "resolved": false, + "resolved": "", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { "asynckit": "^0.4.0", @@ -10038,7 +10070,7 @@ }, "from2": { "version": "2.3.0", - "resolved": false, + "resolved": "", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "^2.0.1", @@ -10047,7 +10079,7 @@ }, "fs-minipass": { "version": "1.2.5", - "resolved": false, + "resolved": "", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "requires": { "minipass": "^2.2.1" @@ -10055,7 +10087,7 @@ }, "fs-vacuum": { "version": "1.2.10", - "resolved": false, + "resolved": "", "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "requires": { "graceful-fs": "^4.1.2", @@ -10065,7 +10097,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": false, + "resolved": "", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { "graceful-fs": "^4.1.2", @@ -10076,19 +10108,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" } } }, "fs.realpath": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", - "resolved": false, + "resolved": "", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "^4.1.2", @@ -10099,7 +10131,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": false, + "resolved": "", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "^1.0.3", @@ -10114,7 +10146,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -10126,12 +10158,12 @@ }, "genfun": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" }, "gentle-fs": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", "requires": { "aproba": "^1.1.2", @@ -10146,24 +10178,24 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" } } }, "get-caller-file": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "getpass": { "version": "0.1.7", - "resolved": false, + "resolved": "", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" @@ -10171,7 +10203,7 @@ }, "glob": { "version": "7.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "^1.0.0", @@ -10184,7 +10216,7 @@ }, "global-dirs": { "version": "0.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { "ini": "^1.3.4" @@ -10192,7 +10224,7 @@ }, "got": { "version": "6.7.1", - "resolved": false, + "resolved": "", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "^3.0.0", @@ -10210,12 +10242,12 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": false, + "resolved": "", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { @@ -10252,27 +10284,27 @@ }, "has-flag": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-unicode": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hosted-git-info": { "version": "2.7.1", - "resolved": false, + "resolved": "", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "http-cache-semantics": { "version": "3.8.1", - "resolved": false, + "resolved": "", "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, "http-proxy-agent": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { "agent-base": "4", @@ -10281,7 +10313,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -10291,7 +10323,7 @@ }, "https-proxy-agent": { "version": "2.2.1", - "resolved": false, + "resolved": "", "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "requires": { "agent-base": "^4.1.0", @@ -10300,7 +10332,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": false, + "resolved": "", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -10308,7 +10340,7 @@ }, "iconv-lite": { "version": "0.4.23", - "resolved": false, + "resolved": "", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -10316,12 +10348,12 @@ }, "iferr": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg==" }, "ignore-walk": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "requires": { "minimatch": "^3.0.4" @@ -10329,17 +10361,17 @@ }, "import-lazy": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -10348,17 +10380,17 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "resolved": false, + "resolved": "", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "init-package-json": { "version": "1.10.3", - "resolved": false, + "resolved": "", "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", "requires": { "glob": "^7.1.1", @@ -10373,22 +10405,22 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ip": { "version": "1.1.5", - "resolved": false, + "resolved": "", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ip-regex": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" }, "is-builtin-module": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { "builtin-modules": "^1.0.0" @@ -10396,7 +10428,7 @@ }, "is-ci": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "requires": { "ci-info": "^1.0.0" @@ -10404,7 +10436,7 @@ }, "is-cidr": { "version": "2.0.6", - "resolved": false, + "resolved": "", "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", "requires": { "cidr-regex": "^2.0.8" @@ -10412,7 +10444,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -10420,7 +10452,7 @@ }, "is-installed-globally": { "version": "0.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "^0.1.0", @@ -10429,17 +10461,17 @@ }, "is-npm": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-obj": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-path-inside": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { "path-is-inside": "^1.0.1" @@ -10447,73 +10479,73 @@ }, "is-redirect": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-retry-allowed": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-stream": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "isarray": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isstream": { "version": "0.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jsbn": { "version": "0.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-schema": { "version": "0.2.3", - "resolved": false, + "resolved": "", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.3.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stringify-safe": { "version": "5.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonparse": { "version": "1.3.1", - "resolved": false, + "resolved": "", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "jsprim": { "version": "1.4.1", - "resolved": false, + "resolved": "", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -10524,7 +10556,7 @@ }, "latest-version": { "version": "3.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "requires": { "package-json": "^4.0.0" @@ -10532,12 +10564,12 @@ }, "lazy-property": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=" }, "lcid": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "^1.0.0" @@ -10545,7 +10577,7 @@ }, "libcipm": { "version": "2.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", "requires": { "bin-links": "^1.1.2", @@ -10566,7 +10598,7 @@ }, "libnpmhook": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", "requires": { "figgy-pudding": "^3.1.0", @@ -10575,7 +10607,7 @@ "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", "requires": { "bluebird": "^3.5.1", @@ -10589,7 +10621,7 @@ }, "libnpx": { "version": "10.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", "requires": { "dotenv": "^5.0.1", @@ -10604,7 +10636,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "^2.0.0", @@ -10613,7 +10645,7 @@ }, "lock-verify": { "version": "2.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", "requires": { "npm-package-arg": "^5.1.2 || 6", @@ -10622,7 +10654,7 @@ }, "lockfile": { "version": "1.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", "requires": { "signal-exit": "^3.0.2" @@ -10630,12 +10662,12 @@ }, "lodash._baseindexof": { "version": "3.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=" }, "lodash._baseuniq": { "version": "4.6.0", - "resolved": false, + "resolved": "", "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "requires": { "lodash._createset": "~4.0.0", @@ -10644,17 +10676,17 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" }, "lodash._cacheindexof": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=" }, "lodash._createcache": { "version": "3.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "requires": { "lodash._getnative": "^3.0.0" @@ -10662,52 +10694,52 @@ }, "lodash._createset": { "version": "4.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" }, "lodash._getnative": { "version": "3.9.1", - "resolved": false, + "resolved": "", "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" }, "lodash._root": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": false, + "resolved": "", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, "lodash.restparam": { "version": "3.6.1", - "resolved": false, + "resolved": "", "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" }, "lodash.union": { "version": "4.6.0", - "resolved": false, + "resolved": "", "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, "lodash.uniq": { "version": "4.5.0", - "resolved": false, + "resolved": "", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "lodash.without": { "version": "4.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=" }, "lowercase-keys": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "4.1.3", - "resolved": false, + "resolved": "", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "^1.0.2", @@ -10716,7 +10748,7 @@ }, "make-dir": { "version": "1.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "^3.0.0" @@ -10724,7 +10756,7 @@ }, "make-fetch-happen": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", "requires": { "agentkeepalive": "^3.4.1", @@ -10742,12 +10774,12 @@ }, "meant": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" }, "mem": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "^1.0.0" @@ -10755,12 +10787,12 @@ }, "mime-db": { "version": "1.35.0", - "resolved": false, + "resolved": "", "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" }, "mime-types": { "version": "2.1.19", - "resolved": false, + "resolved": "", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { "mime-db": "~1.35.0" @@ -10768,12 +10800,12 @@ }, "mimic-fn": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "minimatch": { "version": "3.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" @@ -10781,12 +10813,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, + "resolved": "", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.3.3", - "resolved": false, + "resolved": "", "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", "requires": { "safe-buffer": "^5.1.2", @@ -10795,14 +10827,14 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "minizlib": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "requires": { "minipass": "^2.2.1" @@ -10810,7 +10842,7 @@ }, "mississippi": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "requires": { "concat-stream": "^1.5.0", @@ -10827,7 +10859,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -10835,7 +10867,7 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "^1.1.1", @@ -10848,17 +10880,17 @@ }, "ms": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, "mute-stream": { "version": "0.0.7", - "resolved": false, + "resolved": "", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "node-fetch-npm": { "version": "2.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "requires": { "encoding": "^0.1.11", @@ -10868,7 +10900,7 @@ }, "node-gyp": { "version": "3.8.0", - "resolved": false, + "resolved": "", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "requires": { "fstream": "^1.0.0", @@ -10887,7 +10919,7 @@ "dependencies": { "nopt": { "version": "3.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { "abbrev": "1" @@ -10895,12 +10927,12 @@ }, "semver": { "version": "5.3.0", - "resolved": false, + "resolved": "", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" }, "tar": { "version": "2.2.1", - "resolved": false, + "resolved": "", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "*", @@ -10912,7 +10944,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { "abbrev": "1", @@ -10921,7 +10953,7 @@ }, "normalize-package-data": { "version": "2.4.0", - "resolved": false, + "resolved": "", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "^2.1.4", @@ -10932,7 +10964,7 @@ }, "npm-audit-report": { "version": "1.3.1", - "resolved": false, + "resolved": "", "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", "requires": { "cli-table3": "^0.5.0", @@ -10941,17 +10973,17 @@ }, "npm-bundled": { "version": "1.0.5", - "resolved": false, + "resolved": "", "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==" }, "npm-cache-filename": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=" }, "npm-install-checks": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "requires": { "semver": "^2.3.0 || 3.x || 4 || 5" @@ -10959,7 +10991,7 @@ }, "npm-lifecycle": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", "requires": { "byline": "^5.0.0", @@ -10974,12 +11006,12 @@ }, "npm-logical-tree": { "version": "1.2.1", - "resolved": false, + "resolved": "", "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" }, "npm-package-arg": { "version": "6.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "requires": { "hosted-git-info": "^2.6.0", @@ -10990,7 +11022,7 @@ }, "npm-packlist": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", "requires": { "ignore-walk": "^3.0.1", @@ -10999,7 +11031,7 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", "requires": { "npm-package-arg": "^6.0.0", @@ -11008,7 +11040,7 @@ }, "npm-profile": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", "requires": { "aproba": "^1.1.2 || 2", @@ -11017,7 +11049,7 @@ }, "npm-registry-client": { "version": "8.6.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", "requires": { "concat-stream": "^1.5.2", @@ -11036,12 +11068,12 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, + "resolved": "", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "ssri": { "version": "5.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "requires": { "safe-buffer": "^5.1.1" @@ -11051,7 +11083,7 @@ }, "npm-registry-fetch": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", "requires": { "bluebird": "^3.5.1", @@ -11064,7 +11096,7 @@ "dependencies": { "cacache": { "version": "10.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "requires": { "bluebird": "^3.5.1", @@ -11084,7 +11116,7 @@ "dependencies": { "mississippi": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { "concat-stream": "^1.5.0", @@ -11103,12 +11135,12 @@ }, "figgy-pudding": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==" }, "make-fetch-happen": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", "requires": { "agentkeepalive": "^3.4.1", @@ -11126,7 +11158,7 @@ }, "pump": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "^1.1.0", @@ -11135,12 +11167,12 @@ }, "smart-buffer": { "version": "1.1.15", - "resolved": false, + "resolved": "", "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" }, "socks": { "version": "1.1.10", - "resolved": false, + "resolved": "", "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { "ip": "^1.1.4", @@ -11149,7 +11181,7 @@ }, "socks-proxy-agent": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "requires": { "agent-base": "^4.1.0", @@ -11158,7 +11190,7 @@ }, "ssri": { "version": "5.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "requires": { "safe-buffer": "^5.1.1" @@ -11168,7 +11200,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" @@ -11176,12 +11208,12 @@ }, "npm-user-validate": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=" }, "npmlog": { "version": "4.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "~1.1.2", @@ -11192,22 +11224,22 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", - "resolved": false, + "resolved": "", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -11215,17 +11247,17 @@ }, "opener": { "version": "1.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MD4s/o61y2slS27zm2s4229V2gAUHX0/e3/XOmY/jsXwhysjjCIHN8lx7gqZCrZk19ym+HjCUWHeMKD7YJtKCQ==" }, "os-homedir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "^0.7.0", @@ -11235,12 +11267,12 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "^1.0.0", @@ -11249,12 +11281,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { "p-try": "^1.0.0" @@ -11262,7 +11294,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "^1.1.0" @@ -11270,12 +11302,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "package-json": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "requires": { "got": "^6.7.1", @@ -11286,7 +11318,7 @@ }, "pacote": { "version": "8.1.6", - "resolved": false, + "resolved": "", "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", "requires": { "bluebird": "^3.5.1", @@ -11318,7 +11350,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "~0.2.2", @@ -11328,52 +11360,52 @@ }, "path-exists": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "performance-now": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "prepend-http": { "version": "1.0.4", - "resolved": false, + "resolved": "", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "promise-inflight": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "^1.0.0", @@ -11382,14 +11414,14 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, + "resolved": "", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" } } }, "promzard": { "version": "0.3.0", - "resolved": false, + "resolved": "", "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { "read": "1" @@ -11397,12 +11429,12 @@ }, "proto-list": { "version": "1.2.4", - "resolved": false, + "resolved": "", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" }, "protoduck": { "version": "5.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "requires": { "genfun": "^4.0.1" @@ -11410,22 +11442,22 @@ }, "prr": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { "version": "1.1.29", - "resolved": false, + "resolved": "", "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" }, "pump": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", @@ -11434,7 +11466,7 @@ }, "pumpify": { "version": "1.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { "duplexify": "^3.6.0", @@ -11444,7 +11476,7 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "^1.1.0", @@ -11455,22 +11487,22 @@ }, "punycode": { "version": "1.4.1", - "resolved": false, + "resolved": "", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qrcode-terminal": { "version": "0.12.0", - "resolved": false, + "resolved": "", "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" }, "qs": { "version": "6.5.2", - "resolved": false, + "resolved": "", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "query-string": { "version": "6.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", "requires": { "decode-uri-component": "^0.2.0", @@ -11479,12 +11511,12 @@ }, "qw": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=" }, "rc": { "version": "1.2.7", - "resolved": false, + "resolved": "", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "requires": { "deep-extend": "^0.5.1", @@ -11495,14 +11527,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "read": { "version": "1.0.7", - "resolved": false, + "resolved": "", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "~0.0.4" @@ -11510,7 +11542,7 @@ }, "read-cmd-shim": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "requires": { "graceful-fs": "^4.1.2" @@ -11518,7 +11550,7 @@ }, "read-installed": { "version": "4.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "requires": { "debuglog": "^1.0.1", @@ -11532,7 +11564,7 @@ }, "read-package-json": { "version": "2.0.13", - "resolved": false, + "resolved": "", "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", "requires": { "glob": "^7.1.1", @@ -11544,7 +11576,7 @@ }, "read-package-tree": { "version": "5.2.1", - "resolved": false, + "resolved": "", "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", "requires": { "debuglog": "^1.0.1", @@ -11556,7 +11588,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, + "resolved": "", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "~1.0.0", @@ -11570,7 +11602,7 @@ }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "requires": { "debuglog": "^1.0.1", @@ -11581,7 +11613,7 @@ }, "registry-auth-token": { "version": "3.3.2", - "resolved": false, + "resolved": "", "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "requires": { "rc": "^1.1.6", @@ -11590,7 +11622,7 @@ }, "registry-url": { "version": "3.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { "rc": "^1.0.1" @@ -11598,7 +11630,7 @@ }, "request": { "version": "2.88.0", - "resolved": false, + "resolved": "", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { "aws-sign2": "~0.7.0", @@ -11625,27 +11657,27 @@ }, "require-directory": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve-from": { "version": "4.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "retry": { "version": "0.12.0", - "resolved": false, + "resolved": "", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "rimraf": { "version": "2.6.2", - "resolved": false, + "resolved": "", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "^7.0.5" @@ -11653,7 +11685,7 @@ }, "run-queue": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "^1.1.1" @@ -11661,22 +11693,22 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "5.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "semver-diff": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { "semver": "^5.0.3" @@ -11684,12 +11716,12 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "sha": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "requires": { "graceful-fs": "^4.1.2", @@ -11698,7 +11730,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -11706,32 +11738,32 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slide": { "version": "1.1.6", - "resolved": false, + "resolved": "", "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "smart-buffer": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" }, "socks": { "version": "2.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", "requires": { "ip": "^1.1.5", @@ -11740,7 +11772,7 @@ }, "socks-proxy-agent": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "requires": { "agent-base": "~4.2.0", @@ -11749,12 +11781,12 @@ }, "sorted-object": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=" }, "sorted-union-stream": { "version": "2.1.3", - "resolved": false, + "resolved": "", "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "requires": { "from2": "^1.3.0", @@ -11763,7 +11795,7 @@ "dependencies": { "from2": { "version": "1.3.0", - "resolved": false, + "resolved": "", "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "requires": { "inherits": "~2.0.1", @@ -11772,12 +11804,12 @@ }, "isarray": { "version": "0.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": false, + "resolved": "", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", @@ -11788,14 +11820,14 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": false, + "resolved": "", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, "spdx-correct": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { "spdx-expression-parse": "^3.0.0", @@ -11804,12 +11836,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { "spdx-exceptions": "^2.1.0", @@ -11818,12 +11850,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "sshpk": { "version": "1.14.2", - "resolved": false, + "resolved": "", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { "asn1": "~0.2.3", @@ -11839,12 +11871,12 @@ }, "ssri": { "version": "6.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==" }, "stream-each": { "version": "1.2.2", - "resolved": false, + "resolved": "", "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { "end-of-stream": "^1.1.0", @@ -11853,7 +11885,7 @@ }, "stream-iterate": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "requires": { "readable-stream": "^2.1.5", @@ -11862,17 +11894,17 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "strict-uri-encode": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" }, "string-width": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -11881,17 +11913,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "strip-ansi": { "version": "4.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -11901,7 +11933,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" @@ -11909,12 +11941,12 @@ }, "stringify-package": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g==" }, "strip-ansi": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -11922,17 +11954,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "5.4.0", - "resolved": false, + "resolved": "", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { "has-flag": "^3.0.0" @@ -11940,7 +11972,7 @@ }, "tar": { "version": "4.4.6", - "resolved": false, + "resolved": "", "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", "requires": { "chownr": "^1.0.1", @@ -11954,14 +11986,14 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "term-size": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "^0.7.0" @@ -11969,17 +12001,17 @@ }, "text-table": { "version": "0.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "through": { "version": "2.3.8", - "resolved": false, + "resolved": "", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "^2.1.5", @@ -11988,17 +12020,17 @@ }, "timed-out": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tiny-relative-date": { "version": "1.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==" }, "tough-cookie": { "version": "2.4.3", - "resolved": false, + "resolved": "", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { "psl": "^1.1.24", @@ -12007,7 +12039,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": false, + "resolved": "", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -12015,28 +12047,28 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": false, + "resolved": "", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "typedarray": { "version": "0.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "uid-number": { "version": "0.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" }, "umask": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" }, "unique-filename": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "requires": { "unique-slug": "^2.0.0" @@ -12044,7 +12076,7 @@ }, "unique-slug": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "requires": { "imurmurhash": "^0.1.4" @@ -12052,7 +12084,7 @@ }, "unique-string": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "requires": { "crypto-random-string": "^1.0.0" @@ -12060,17 +12092,17 @@ }, "unpipe": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unzip-response": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "update-notifier": { "version": "2.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "requires": { "boxen": "^1.2.1", @@ -12087,7 +12119,7 @@ }, "url-parse-lax": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "^1.0.1" @@ -12095,22 +12127,22 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util-extend": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" }, "uuid": { "version": "3.3.2", - "resolved": false, + "resolved": "", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { "spdx-correct": "^3.0.0", @@ -12119,7 +12151,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -12127,7 +12159,7 @@ }, "verror": { "version": "1.10.0", - "resolved": false, + "resolved": "", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -12137,7 +12169,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -12145,7 +12177,7 @@ }, "which": { "version": "1.3.1", - "resolved": false, + "resolved": "", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { "isexe": "^2.0.0" @@ -12153,12 +12185,12 @@ }, "which-module": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "^1.0.2" @@ -12166,7 +12198,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -12178,7 +12210,7 @@ }, "widest-line": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "requires": { "string-width": "^2.1.1" @@ -12186,7 +12218,7 @@ }, "worker-farm": { "version": "1.6.0", - "resolved": false, + "resolved": "", "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "requires": { "errno": "~0.1.7" @@ -12194,7 +12226,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -12203,7 +12235,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -12215,12 +12247,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.3.0", - "resolved": false, + "resolved": "", "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "requires": { "graceful-fs": "^4.1.11", @@ -12230,27 +12262,27 @@ }, "xdg-basedir": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" }, "xtend": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "4.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "2.1.2", - "resolved": false, + "resolved": "", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "11.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "requires": { "cliui": "^4.0.0", @@ -12269,14 +12301,14 @@ "dependencies": { "y18n": { "version": "3.2.1", - "resolved": false, + "resolved": "", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" } } }, "yargs-parser": { "version": "9.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { "camelcase": "^4.1.0" diff --git a/package.json b/package.json index 19a168ba..7e1f7ca2 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "express-http-context": "^1.2.0", "generate-password": "^1.4.1", "get-video-dimensions": "^1.0.0", + "gm": "^1.23.1", "helmet": "^3.15.0", "image-size": "^0.6.3", "inquirer": "^5.2.0", diff --git a/server/controllers/api/claim/update/index.js b/server/controllers/api/claim/update/index.js index 4a2524c5..74ad8c9a 100644 --- a/server/controllers/api/claim/update/index.js +++ b/server/controllers/api/claim/update/index.js @@ -1,6 +1,9 @@ const logger = require('winston'); const db = require('server/models'); -const { details, publishing: { disabled, disabledMessage, primaryClaimAddress } } = require('@config/siteConfig'); +const { + details, + publishing: { disabled, disabledMessage, primaryClaimAddress }, +} = require('@config/siteConfig'); const { resolveUri } = require('server/lbrynet'); const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js'); const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); @@ -16,7 +19,7 @@ const createCanonicalLink = require('@globalutils/createCanonicalLink'); route to update a claim through the daemon */ -const updateMetadata = ({nsfw, license, title, description}) => { +const updateMetadata = ({ nsfw, license, title, description }) => { const update = {}; if (nsfw) update['nsfw'] = nsfw; if (license) update['license'] = license; @@ -76,11 +79,19 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) gaStartTime = Date.now(); try { - ({name, nsfw, license, title, description, thumbnail} = parsePublishApiRequestBody(body)); - ({fileName, filePath, fileExtension, fileType, thumbnailFileName, thumbnailFilePath, thumbnailFileType} = parsePublishApiRequestFiles(files, true)); - ({channelName, channelId, channelPassword} = body); + ({ name, nsfw, license, title, description, thumbnail } = parsePublishApiRequestBody(body)); + ({ + fileName, + filePath, + fileExtension, + fileType, + thumbnailFileName, + thumbnailFilePath, + thumbnailFileType, + } = parsePublishApiRequestFiles(files, true)); + ({ channelName, channelId, channelPassword } = body); } catch (error) { - return res.status(400).json({success: false, message: error.message}); + return res.status(400).json({ success: false, message: error.message }); } // check channel authorization @@ -89,7 +100,9 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) if (!channelId) { channelId = channelClaimId; } - return chainquery.claim.queries.resolveClaimInChannel(name, channelClaimId).then(claim => claim.dataValues); + return chainquery.claim.queries + .resolveClaimInChannel(name, channelClaimId) + .then(claim => claim.dataValues); }) .then(claim => { claimRecord = claim; @@ -107,20 +120,24 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) return [null, null]; }) .then(([fileResult, resolution]) => { - metadata = Object.assign({}, { - title : claimRecord.title, - description: claimRecord.description, - nsfw : claimRecord.nsfw, - license : claimRecord.license, - language : 'en', - author : details.title, - }, updateMetadata({title, description, nsfw, license})); + metadata = Object.assign( + {}, + { + title: claimRecord.title, + description: claimRecord.description, + nsfw: claimRecord.nsfw, + license: claimRecord.license, + language: 'en', + author: details.title, + }, + updateMetadata({ title, description, nsfw, license }) + ); const publishParams = { name, - bid : '0.01', + bid: '0.01', claim_address: primaryClaimAddress, - channel_name : channelName, - channel_id : channelId, + channel_name: channelName, + channel_id: channelId, metadata, }; @@ -128,19 +145,24 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) if (thumbnailUpdate) { // publish new thumbnail const newThumbnailName = `${name}-${rando()}`; - const newThumbnailParams = createThumbnailPublishParams(filePath, newThumbnailName, license, nsfw); + const newThumbnailParams = createThumbnailPublishParams( + filePath, + newThumbnailName, + license, + nsfw + ); newThumbnailParams['file_path'] = filePath; publish(newThumbnailParams, fileName, fileType); - publishParams['sources'] = resolution.claim.value.stream.source; - publishParams['thumbnail'] = `${details.host}/${newThumbnailParams.channel_name}:${newThumbnailParams.channel_id}/${newThumbnailName}-thumb.jpg`; + publishParams['thumbnail'] = `${details.host}/${newThumbnailParams.channel_name}:${ + newThumbnailParams.channel_id + }/${newThumbnailName}-thumb.jpg`; } else { publishParams['file_path'] = filePath; } } else { fileName = fileResult.fileName; fileType = fileResult.fileType; - publishParams['sources'] = resolution.claim.value.stream.source; publishParams['thumbnail'] = claimRecord.thumbnail_url; } @@ -151,17 +173,24 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) publishResult = result; if (channelName) { - return chainquery.claim.queries.getShortClaimIdFromLongClaimId(result.certificateId, channelName); + return chainquery.claim.queries.getShortClaimIdFromLongClaimId( + result.certificateId, + channelName + ); } else { - return chainquery.claim.queries.getShortClaimIdFromLongClaimId(result.claimId, name, result).catch(() => { - return result.claimId.slice(0, 1); - }); + return chainquery.claim.queries + .getShortClaimIdFromLongClaimId(result.claimId, name, result) + .catch(() => { + return result.claimId.slice(0, 1); + }); } }) .then(shortId => { let canonicalUrl; if (channelName) { - canonicalUrl = createCanonicalLink({ asset: { ...publishResult, channelShortId: shortId } }); + canonicalUrl = createCanonicalLink({ + asset: { ...publishResult, channelShortId: shortId }, + }); } else { canonicalUrl = createCanonicalLink({ asset: { ...publishResult, shortId } }); } @@ -173,17 +202,17 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res) }); } - const {claimId} = publishResult; + const { claimId } = publishResult; res.status(200).json({ success: true, message: 'update successful', - data : { + data: { name, claimId, - url : `${details.host}${canonicalUrl}`, // for backwards compatability with app - showUrl : `${details.host}${canonicalUrl}`, - serveUrl : `${details.host}${canonicalUrl}${fileExtension}`, - pushTo : canonicalUrl, + url: `${details.host}${canonicalUrl}`, // for backwards compatability with app + showUrl: `${details.host}${canonicalUrl}`, + serveUrl: `${details.host}${canonicalUrl}${fileExtension}`, + pushTo: canonicalUrl, claimData: publishResult, }, }); diff --git a/server/controllers/assets/utils/getClaimIdAndServeAsset.js b/server/controllers/assets/utils/getClaimIdAndServeAsset.js index cd1d88ba..00639321 100644 --- a/server/controllers/assets/utils/getClaimIdAndServeAsset.js +++ b/server/controllers/assets/utils/getClaimIdAndServeAsset.js @@ -15,9 +15,20 @@ const BLOCKED_CLAIM = 'BLOCKED_CLAIM'; const NO_FILE = 'NO_FILE'; const CONTENT_UNAVAILABLE = 'CONTENT_UNAVAILABLE'; -const { publishing: { serveOnlyApproved, approvedChannels } } = require('@config/siteConfig'); +const { + publishing: { serveOnlyApproved, approvedChannels }, +} = require('@config/siteConfig'); -const getClaimIdAndServeAsset = (channelName, channelClaimId, claimName, claimId, originalUrl, ip, res, headers) => { +const getClaimIdAndServeAsset = ( + channelName, + channelClaimId, + claimName, + claimId, + originalUrl, + ip, + res, + headers +) => { getClaimId(channelName, channelClaimId, claimName, claimId) .then(fullClaimId => { claimId = fullClaimId; @@ -39,19 +50,27 @@ const getClaimIdAndServeAsset = (channelName, channelClaimId, claimName, claimId .then(claim => { let claimDataValues = claim.dataValues; - if (serveOnlyApproved && !isApprovedChannel({ longId: claimDataValues.publisher_id || claimDataValues.certificateId }, approvedChannels)) { + if ( + serveOnlyApproved && + !isApprovedChannel( + { longId: claimDataValues.publisher_id || claimDataValues.certificateId }, + approvedChannels + ) + ) { throw new Error(CONTENT_UNAVAILABLE); } - let outpoint = claimDataValues.outpoint || `${claimDataValues.transaction_hash_id}:${claimDataValues.vout}`; + let outpoint = + claimDataValues.outpoint || + `${claimDataValues.transaction_hash_id}:${claimDataValues.vout}`; logger.debug('Outpoint:', outpoint); return db.Blocked.isNotBlocked(outpoint).then(() => { // If content was found, is approved, and not blocked - log a view. if (headers && headers['user-agent'] && /LBRY/.test(headers['user-agent']) === false) { db.Views.create({ - time : Date.now(), - isChannel : false, - claimId : claimDataValues.claim_id || claimDataValues.claimId, + time: Date.now(), + isChannel: false, + claimId: claimDataValues.claim_id || claimDataValues.claimId, publisherId: claimDataValues.publisher_id || claimDataValues.certificateId, ip, }); @@ -70,7 +89,7 @@ const getClaimIdAndServeAsset = (channelName, channelClaimId, claimName, claimId if (!fileRecord) { throw NO_FILE; } - serveFile(fileRecord.dataValues, res); + serveFile(fileRecord.dataValues, res, originalUrl); }) .catch(error => { if (error === NO_CLAIM) { @@ -98,7 +117,8 @@ const getClaimIdAndServeAsset = (channelName, channelClaimId, claimName, claimId logger.debug('claim was blocked'); return res.status(451).json({ success: false, - message: 'In response to a complaint we received under the US Digital Millennium Copyright Act, we have blocked access to this content from our applications. For more details, see https://lbry.io/faq/dmca', + message: + 'In response to a complaint we received under the US Digital Millennium Copyright Act, we have blocked access to this content from our applications. For more details, see https://lbry.io/faq/dmca', }); } if (error === NO_FILE) { diff --git a/server/controllers/assets/utils/serveFile.js b/server/controllers/assets/utils/serveFile.js index 8500dbe6..dce8f984 100644 --- a/server/controllers/assets/utils/serveFile.js +++ b/server/controllers/assets/utils/serveFile.js @@ -1,19 +1,46 @@ const logger = require('winston'); +const transformImage = require('./transformImage'); +const serveFile = async ({ filePath, fileType }, res, originalUrl) => { + const queryObject = {}; + // TODO: replace quick/dirty try catch with better practice + try { + originalUrl + .split('?')[1] + .split('&') + .map(pair => { + if (pair.includes('=')) { + let parr = pair.split('='); + queryObject[parr[0]] = parr[1]; + } else queryObject[pair] = true; + }); + } catch (e) {} -const serveFile = ({ filePath, fileType }, res) => { if (!fileType) { logger.error(`no fileType provided for ${filePath}`); } + + let mediaType = fileType ? fileType.substr(0, fileType.indexOf('/')) : ''; + const transform = + mediaType === 'image' && queryObject.hasOwnProperty('h') && queryObject.hasOwnProperty('w'); + const sendFileOptions = { headers: { - 'X-Content-Type-Options' : 'nosniff', - 'Content-Type' : fileType, - 'Access-Control-Allow-Origin' : '*', + 'X-Content-Type-Options': 'nosniff', + 'Content-Type': fileType, + 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept', }, }; logger.debug(`fileOptions for ${filePath}:`, sendFileOptions); - res.status(200).sendFile(filePath, sendFileOptions); + if (transform) { + logger.debug(`transforming and sending file`); + + let xformed = await transformImage(filePath, queryObject); + res.status(200).set(sendFileOptions.headers); + res.end(xformed, 'binary'); + } else { + res.status(200).sendFile(filePath, sendFileOptions); + } }; module.exports = serveFile; diff --git a/server/controllers/assets/utils/transformImage.js b/server/controllers/assets/utils/transformImage.js new file mode 100644 index 00000000..2d8408b4 --- /dev/null +++ b/server/controllers/assets/utils/transformImage.js @@ -0,0 +1,76 @@ +const gm = require('gm'); +const logger = require('winston'); +const imageMagick = gm.subClass({ imageMagick: true }); +const { getImageHeightAndWidth } = require('../../../utils/imageProcessing'); + +module.exports = function transformImage(path, queryObj) { + return new Promise((resolve, reject) => { + let { h: cHeight = null } = queryObj; + let { w: cWidth = null } = queryObj; + let { t: transform = null } = queryObj; + let { x: xOrigin = null } = queryObj; + let { y: yOrigin = null } = queryObj; + let oHeight, + oWidth = null; + try { + getImageHeightAndWidth(path).then(hwarr => { + oHeight = hwarr[0]; + oWidth = hwarr[1]; + // conditional logic here + if (transform === 'crop') { + resolve(_cropCenter(path, cWidth, cHeight, oWidth, oHeight)); + } else if (transform === 'stretch') { + imageMagick(path) + .resize(cWidth, cHeight, '!') + .toBuffer(null, (err, buf) => { + resolve(buf); + }); + } else { + // resize scaled + imageMagick(path) + .resize(cWidth, cHeight) + .toBuffer(null, (err, buf) => { + resolve(buf); + }); + } + }); + } catch (e) { + logger.error(e); + reject(e); + } + }); +}; + +function _cropCenter(path, cropWidth, cropHeight, originalWidth, originalHeight) { + let oAspect = originalWidth / originalHeight; + let cAspect = cropWidth / cropHeight; + let resizeX, + resizeY, + xpoint, + ypoint = null; + + if (oAspect >= cAspect) { + // if crop is narrower aspect than original + resizeY = cropHeight; + xpoint = (oAspect * cropHeight) / 2 - cropWidth / 2; + ypoint = 0; + } else { + // if crop is wider aspect than original + resizeX = cropWidth; + xpoint = 0; + ypoint = cropWidth / oAspect / 2 - cropHeight / 2; + } + return new Promise((resolve, reject) => { + try { + imageMagick(path) + .resize(resizeX, resizeY) + .crop(cropWidth, cropHeight, xpoint, ypoint) + .toBuffer(null, (err, buf) => { + resolve(buf); + }); + } catch (e) { + logger.error(e); + reject(e); + } + }); +} diff --git a/server/lbrynet/index.js b/server/lbrynet/index.js index 5d8c24c2..52633e07 100644 --- a/server/lbrynet/index.js +++ b/server/lbrynet/index.js @@ -93,7 +93,7 @@ module.exports = { axios .post(lbrynetUri, { method: 'resolve', - params: { uri }, + params: { urls: uri }, }) .then(({ data }) => { sendGATimingEvent('lbrynet', 'resolveUri', 'RESOLVE', gaStartTime, Date.now());