├── .gitignore ├── LICENSE ├── README.md ├── index.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | hypercore-archiver 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Mathias Buus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # hypercore-archiver-bot 2 | 3 | IRC bot that is an interface to [hypercore-archiver](https://github.com/mafintosh/hypercore-archiver) 4 | 5 | ``` 6 | npm install -g hypercore-archiver-bot 7 | hypercore-archiver-bot --channel=#your-irc-channel --port=8000 8 | ``` 9 | 10 | ### options 11 | 12 | to run in paged storage mode use `--paged` 13 | 14 | ### commands 15 | 16 | ``` 17 | !add 18 | !remove /!rm 19 | !status 20 | !status 21 | !import 22 | ``` 23 | 24 | ## License 25 | 26 | MIT 27 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var archiver = require('hypercore-archiver') 4 | var swarm = require('hypercore-archiver/swarm') 5 | var irc = require('irc') 6 | var mkdirp = require('mkdirp') 7 | var minimist = require('minimist') 8 | var pump = require('pump') 9 | var prettyBytes = require('pretty-bytes') 10 | var prettyTime = require('pretty-time') 11 | var extend = require('xtend') 12 | var pages = require('random-access-page-files') 13 | var version = require('./package').version 14 | var archiverVersion = require('hypercore-archiver/package').version 15 | 16 | var argv = minimist(process.argv.slice(2), { 17 | alias: { 18 | channel: 'c', 19 | cwd: 'd', 20 | server: 's', 21 | name: 'n', 22 | ircPort: 'irc-port' 23 | // port: 'p', 24 | // announce: 'a' 25 | }, 26 | default: { 27 | // port: 3282, TODO: add option to hyeprcore-archiver/swarm.js 28 | cwd: 'hypercore-archiver', 29 | name: 'archive-bot', 30 | server: 'irc.freenode.net' 31 | // announce: false TODO: Not applicable anymore? 32 | }, 33 | boolean: 'paged' 34 | }) 35 | 36 | mkdirp.sync(argv.cwd) 37 | 38 | var pagedStorage = function pagedStorage (file) { 39 | return pages(argv.cwd + '/' + file) 40 | } 41 | 42 | var started = process.hrtime() 43 | var ar = archiver(argv.paged ? pagedStorage : argv.cwd) 44 | var server = swarm(ar) 45 | var client = null 46 | var pending = {} 47 | 48 | ar.on('sync', archiveSync) 49 | ar.on('changes', function () { 50 | console.log('Changes feed available at', ar.changes.key.toString('hex')) 51 | }) 52 | ar.on('remove', function (feed) { 53 | console.log('Removing', feed.key.toString('hex')) 54 | }) 55 | ar.on('add', function (feed) { 56 | console.log('Adding', feed.key.toString('hex')) 57 | }) 58 | 59 | if (argv.channel) { 60 | var ircOpts = extend({}, argv, { 61 | channels: [argv.channel], 62 | retryCount: 1000, 63 | autoRejoin: true 64 | }) 65 | ircOpts.port = argv.ircPort 66 | 67 | console.log('Connecting to IRC', argv.server, 'as', argv.name) 68 | client = new irc.Client(argv.server, argv.name, ircOpts) 69 | 70 | client.on('registered', function (msg) { 71 | console.log('Connected to IRC, listening for messages') 72 | }) 73 | 74 | client.on('message', function (from, to, message) { 75 | var op = parse(message) 76 | if (!op) return 77 | var channel = (to === argv.name) ? from : argv.channel 78 | var key = op.key 79 | switch (op.command) { 80 | case 'track': 81 | sendMessage(new Error('TODO: Not implemented in hypercore-archiver yet. PR please =).'), channel) 82 | // ar.add(new Buffer(key, 'hex'), {content: false}, function (err) { 83 | // if (err) return sendMessage(err, channel) 84 | // sendMessage(null, channel, 'Tracking ' + key) 85 | // }) 86 | return 87 | case 'add': 88 | pending[key] = {channel: channel} 89 | ar.add(new Buffer(key, 'hex'), function (err) { 90 | if (err) return sendMessage(err, channel) 91 | sendMessage(null, channel, 'Adding ' + key) 92 | }) 93 | return 94 | case 'import': 95 | ar.import(new Buffer(key, 'hex'), function (err) { 96 | if (err) return sendMessage(err, channel) 97 | sendMessage(null, channel, 'Added all feeds from remote archiver instance ' + key) 98 | }) 99 | return 100 | case 'rm': 101 | case 'remove': 102 | if (pending[key]) delete pending[key] 103 | ar.remove(new Buffer(key, 'hex'), function (err) { 104 | if (err) return sendMessage(err, channel) 105 | sendMessage(null, channel, 'Removing ' + key) 106 | }) 107 | return 108 | case 'status': 109 | if (key) { 110 | return ar.status(key, function (err, status) { 111 | if (err) return sendMessage(err, channel) 112 | var need = status.need 113 | var have = status.have 114 | var progress = (have / need) * 100 115 | sendMessage(null, channel, `Status ${key}: ${progress.toFixed(2)}% archived (${have} of ${need} blocks)`) 116 | }) 117 | } 118 | return status(function (err, msg) { 119 | sendMessage(err, channel, msg) 120 | }) 121 | } 122 | }) 123 | } 124 | 125 | function sendMessage (err, channel, msg) { 126 | if (err) return client.say(channel, 'Error: ' + err.message) 127 | client.say(channel, msg) 128 | } 129 | 130 | function archiveSync (feed) { 131 | var key = feed.key.toString('hex') 132 | var channel = pending[key] ? pending[key].channel : null 133 | delete pending[key] 134 | 135 | console.log('Feed archived', key) 136 | if (client && channel) { 137 | var size = feed.content ? content.byteLength : feed.byteLength 138 | var msg = key + ' has been fully archived (' + prettyBytes(size) + ')' 139 | sendMessage(null, channel, msg) 140 | } 141 | } 142 | 143 | function status (cb) { 144 | ar.list(function (err, keys) { 145 | if (err) return cb(err) 146 | var msg = `Archiving ${keys.length} hypercores. ` 147 | msg += `Uptime: ${prettyTime(process.hrtime(started))}. ` 148 | msg += `bot version: ${version}, hypercore-archiver version: ${archiverVersion}.` 149 | cb(null, msg) 150 | }) 151 | } 152 | 153 | function parse (message) { 154 | message = message.trim() 155 | 156 | if (message[0] === '!') { 157 | message = message.slice(1) 158 | } else { 159 | var name = (message.indexOf(':') > -1 ? message.split(':')[0] : '').trim().replace(/\d+$/, '') 160 | if (name !== argv.name) return null 161 | } 162 | 163 | message = message.split(':').pop().trim() 164 | if (message.indexOf(' ') === -1) return {command: message, key: null} 165 | var parts = message.split(' ') 166 | if (!/^[0-9a-f]{64}$/.test(parts[1])) return null 167 | return { 168 | command: parts[0], 169 | key: parts[1] 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hypercore-archiver-bot", 3 | "version": "3.3.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "acorn": { 8 | "version": "5.1.1", 9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", 10 | "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==" 11 | }, 12 | "acorn-jsx": { 13 | "version": "3.0.1", 14 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 15 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 16 | "dev": true, 17 | "requires": { 18 | "acorn": "3.3.0" 19 | }, 20 | "dependencies": { 21 | "acorn": { 22 | "version": "3.3.0", 23 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 24 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 25 | "dev": true 26 | } 27 | } 28 | }, 29 | "ajv": { 30 | "version": "4.11.8", 31 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 32 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 33 | "dev": true, 34 | "requires": { 35 | "co": "4.6.0", 36 | "json-stable-stringify": "1.0.1" 37 | } 38 | }, 39 | "ajv-keywords": { 40 | "version": "1.5.1", 41 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 42 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 43 | "dev": true 44 | }, 45 | "amdefine": { 46 | "version": "1.0.1", 47 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 48 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 49 | "optional": true 50 | }, 51 | "ansi-escapes": { 52 | "version": "1.4.0", 53 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 54 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 55 | "dev": true 56 | }, 57 | "ansi-regex": { 58 | "version": "2.1.1", 59 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 60 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 61 | "dev": true 62 | }, 63 | "ansi-styles": { 64 | "version": "2.2.1", 65 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 66 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 67 | "dev": true 68 | }, 69 | "argparse": { 70 | "version": "1.0.9", 71 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 72 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 73 | "dev": true, 74 | "requires": { 75 | "sprintf-js": "1.0.3" 76 | } 77 | }, 78 | "array-lru": { 79 | "version": "1.1.1", 80 | "resolved": "https://registry.npmjs.org/array-lru/-/array-lru-1.1.1.tgz", 81 | "integrity": "sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc=" 82 | }, 83 | "array-union": { 84 | "version": "1.0.2", 85 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 86 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 87 | "dev": true, 88 | "requires": { 89 | "array-uniq": "1.0.3" 90 | } 91 | }, 92 | "array-uniq": { 93 | "version": "1.0.3", 94 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 95 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 96 | "dev": true 97 | }, 98 | "arrify": { 99 | "version": "1.0.1", 100 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 101 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 102 | "dev": true 103 | }, 104 | "atomic-batcher": { 105 | "version": "1.0.2", 106 | "resolved": "https://registry.npmjs.org/atomic-batcher/-/atomic-batcher-1.0.2.tgz", 107 | "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=" 108 | }, 109 | "babel-code-frame": { 110 | "version": "6.22.0", 111 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", 112 | "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", 113 | "dev": true, 114 | "requires": { 115 | "chalk": "1.1.3", 116 | "esutils": "2.0.2", 117 | "js-tokens": "3.0.2" 118 | }, 119 | "dependencies": { 120 | "esutils": { 121 | "version": "2.0.2", 122 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 123 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 124 | "dev": true 125 | } 126 | } 127 | }, 128 | "balanced-match": { 129 | "version": "1.0.0", 130 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 131 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 132 | "dev": true 133 | }, 134 | "base64-to-uint8array": { 135 | "version": "1.0.0", 136 | "resolved": "https://registry.npmjs.org/base64-to-uint8array/-/base64-to-uint8array-1.0.0.tgz", 137 | "integrity": "sha512-drjWQcees55+XQSVHYxiUF05Fj6ko3XJUoxykZEXbm0BMmNz2ieWiZGJ+6TFWnjN2saucG6pI13LS92O4kaiAg==" 138 | }, 139 | "bencode": { 140 | "version": "1.0.0", 141 | "resolved": "https://registry.npmjs.org/bencode/-/bencode-1.0.0.tgz", 142 | "integrity": "sha512-N+VOSP5MkoX+xgnp6Y056iCY5TmCZg9rgPNPQe0bIiXchxYFP4vs/Tf0dTdQ+qQhP7HM2gvfFq+sUVjQsGy5Zw==", 143 | "requires": { 144 | "safe-buffer": "5.1.1" 145 | } 146 | }, 147 | "bitfield-rle": { 148 | "version": "2.1.0", 149 | "resolved": "https://registry.npmjs.org/bitfield-rle/-/bitfield-rle-2.1.0.tgz", 150 | "integrity": "sha1-rinpOCp7pImN6fSLsj/TOMT73Pg=", 151 | "requires": { 152 | "varint": "4.0.1" 153 | }, 154 | "dependencies": { 155 | "varint": { 156 | "version": "4.0.1", 157 | "resolved": "https://registry.npmjs.org/varint/-/varint-4.0.1.tgz", 158 | "integrity": "sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk=" 159 | } 160 | } 161 | }, 162 | "bittorrent-dht": { 163 | "version": "7.6.0", 164 | "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-7.6.0.tgz", 165 | "integrity": "sha512-KinBmIQo4wL742f+4QjMjRHrW6GzDLUeeO+JK5dcGWyOeSKhkPQ7wditN/h0hK88wYjatIAYOC1fEU/WUI3ecw==", 166 | "requires": { 167 | "bencode": "1.0.0", 168 | "buffer-equals": "1.0.4", 169 | "debug": "2.6.8", 170 | "inherits": "2.0.3", 171 | "k-bucket": "3.2.1", 172 | "k-rpc": "4.1.0", 173 | "lru": "3.1.0", 174 | "safe-buffer": "5.1.1" 175 | } 176 | }, 177 | "blake2b": { 178 | "version": "2.1.2", 179 | "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.2.tgz", 180 | "integrity": "sha1-aIDt3KNc/t6SxPsnJCITNPmJFFo=", 181 | "requires": { 182 | "blake2b-wasm": "1.1.3", 183 | "nanoassert": "1.1.0" 184 | } 185 | }, 186 | "blake2b-wasm": { 187 | "version": "1.1.3", 188 | "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-1.1.3.tgz", 189 | "integrity": "sha512-4Wt1zsffEytMMGkRxjs5Ttm2mw+0vJgWnQlE1vdA3RcL8JKddajtnKbXv8yj1Hjciqeu9JMh07gVp77kiHK+Yg==", 190 | "requires": { 191 | "base64-to-uint8array": "1.0.0", 192 | "brfs": "1.4.3", 193 | "nanoassert": "1.1.0" 194 | } 195 | }, 196 | "brace-expansion": { 197 | "version": "1.1.8", 198 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 199 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 200 | "dev": true, 201 | "requires": { 202 | "balanced-match": "1.0.0", 203 | "concat-map": "0.0.1" 204 | } 205 | }, 206 | "brfs": { 207 | "version": "1.4.3", 208 | "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.4.3.tgz", 209 | "integrity": "sha1-22ddb16SPm3wh/ylhZyQkKrtMhY=", 210 | "requires": { 211 | "quote-stream": "1.0.2", 212 | "resolve": "1.4.0", 213 | "static-module": "1.4.0", 214 | "through2": "2.0.3" 215 | } 216 | }, 217 | "buffer-alloc-unsafe": { 218 | "version": "1.0.0", 219 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.0.0.tgz", 220 | "integrity": "sha1-R0qojzTnvHX6MR0uZFdAnFhGw/4=" 221 | }, 222 | "buffer-equal": { 223 | "version": "0.0.1", 224 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 225 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" 226 | }, 227 | "buffer-equals": { 228 | "version": "1.0.4", 229 | "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", 230 | "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" 231 | }, 232 | "buffer-indexof": { 233 | "version": "1.1.0", 234 | "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.0.tgz", 235 | "integrity": "sha1-9U9kfE9OJSKLqmVqLlfkPV8nCYI=" 236 | }, 237 | "bulk-write-stream": { 238 | "version": "1.1.3", 239 | "resolved": "https://registry.npmjs.org/bulk-write-stream/-/bulk-write-stream-1.1.3.tgz", 240 | "integrity": "sha1-0pyjhfvVPzV67lvT0wKHMrYq4nU=", 241 | "requires": { 242 | "inherits": "2.0.3", 243 | "readable-stream": "2.3.3" 244 | } 245 | }, 246 | "caller-path": { 247 | "version": "0.1.0", 248 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 249 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 250 | "dev": true, 251 | "requires": { 252 | "callsites": "0.2.0" 253 | } 254 | }, 255 | "callsites": { 256 | "version": "0.2.0", 257 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 258 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 259 | "dev": true 260 | }, 261 | "chalk": { 262 | "version": "1.1.3", 263 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 264 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 265 | "dev": true, 266 | "requires": { 267 | "ansi-styles": "2.2.1", 268 | "escape-string-regexp": "1.0.5", 269 | "has-ansi": "2.0.0", 270 | "strip-ansi": "3.0.1", 271 | "supports-color": "2.0.0" 272 | } 273 | }, 274 | "circular-json": { 275 | "version": "0.3.3", 276 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 277 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 278 | "dev": true 279 | }, 280 | "cli-cursor": { 281 | "version": "1.0.2", 282 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 283 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 284 | "dev": true, 285 | "requires": { 286 | "restore-cursor": "1.0.1" 287 | } 288 | }, 289 | "cli-width": { 290 | "version": "2.1.0", 291 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 292 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 293 | "dev": true 294 | }, 295 | "co": { 296 | "version": "4.6.0", 297 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 298 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 299 | "dev": true 300 | }, 301 | "code-point-at": { 302 | "version": "1.1.0", 303 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 304 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 305 | "dev": true 306 | }, 307 | "codecs": { 308 | "version": "1.2.0", 309 | "resolved": "https://registry.npmjs.org/codecs/-/codecs-1.2.0.tgz", 310 | "integrity": "sha1-UUhUnj0VbF+gU9fLtBlxWgz0PRY=" 311 | }, 312 | "concat-map": { 313 | "version": "0.0.1", 314 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 315 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 316 | "dev": true 317 | }, 318 | "concat-stream": { 319 | "version": "1.6.0", 320 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 321 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 322 | "requires": { 323 | "inherits": "2.0.3", 324 | "readable-stream": "2.3.3", 325 | "typedarray": "0.0.6" 326 | } 327 | }, 328 | "connections": { 329 | "version": "1.4.2", 330 | "resolved": "https://registry.npmjs.org/connections/-/connections-1.4.2.tgz", 331 | "integrity": "sha1-eJBIK/XHGvbFyhkr4xNq7XRCiq0=" 332 | }, 333 | "core-util-is": { 334 | "version": "1.0.2", 335 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 336 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 337 | }, 338 | "d": { 339 | "version": "1.0.0", 340 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 341 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 342 | "dev": true, 343 | "requires": { 344 | "es5-ext": "0.10.24" 345 | } 346 | }, 347 | "dat-swarm-defaults": { 348 | "version": "1.0.0", 349 | "resolved": "https://registry.npmjs.org/dat-swarm-defaults/-/dat-swarm-defaults-1.0.0.tgz", 350 | "integrity": "sha1-un1YwwnPYMOSSvrYabdRkrYf41Q=", 351 | "requires": { 352 | "xtend": "4.0.1" 353 | } 354 | }, 355 | "datland-swarm-defaults": { 356 | "version": "1.0.2", 357 | "resolved": "https://registry.npmjs.org/datland-swarm-defaults/-/datland-swarm-defaults-1.0.2.tgz", 358 | "integrity": "sha1-J3uJWjnxqn+WpJWgL7NmKl7Z8uA=", 359 | "requires": { 360 | "xtend": "4.0.1" 361 | } 362 | }, 363 | "debug": { 364 | "version": "2.6.8", 365 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 366 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 367 | "requires": { 368 | "ms": "2.0.0" 369 | } 370 | }, 371 | "debug-log": { 372 | "version": "1.0.1", 373 | "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", 374 | "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", 375 | "dev": true 376 | }, 377 | "deep-is": { 378 | "version": "0.1.3", 379 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 380 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 381 | "dev": true 382 | }, 383 | "deglob": { 384 | "version": "2.1.0", 385 | "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz", 386 | "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=", 387 | "dev": true, 388 | "requires": { 389 | "find-root": "1.1.0", 390 | "glob": "7.1.2", 391 | "ignore": "3.3.3", 392 | "pkg-config": "1.1.1", 393 | "run-parallel": "1.1.6", 394 | "uniq": "1.0.1" 395 | } 396 | }, 397 | "del": { 398 | "version": "2.2.2", 399 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 400 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 401 | "dev": true, 402 | "requires": { 403 | "globby": "5.0.0", 404 | "is-path-cwd": "1.0.0", 405 | "is-path-in-cwd": "1.0.0", 406 | "object-assign": "4.1.1", 407 | "pify": "2.3.0", 408 | "pinkie-promise": "2.0.1", 409 | "rimraf": "2.6.1" 410 | } 411 | }, 412 | "discovery-channel": { 413 | "version": "5.4.4", 414 | "resolved": "https://registry.npmjs.org/discovery-channel/-/discovery-channel-5.4.4.tgz", 415 | "integrity": "sha1-M2MZazS61fQj4T8AE31s23yQJys=", 416 | "requires": { 417 | "bittorrent-dht": "7.6.0", 418 | "debug": "2.6.8", 419 | "dns-discovery": "5.6.0", 420 | "pretty-hash": "1.0.1", 421 | "thunky": "0.1.0" 422 | } 423 | }, 424 | "discovery-swarm": { 425 | "version": "4.4.2", 426 | "resolved": "https://registry.npmjs.org/discovery-swarm/-/discovery-swarm-4.4.2.tgz", 427 | "integrity": "sha1-XTFgpGAZ5Q6HQZV2XffWAe5VqBM=", 428 | "requires": { 429 | "buffer-equals": "1.0.4", 430 | "connections": "1.4.2", 431 | "debug": "2.6.8", 432 | "discovery-channel": "5.4.4", 433 | "length-prefixed-message": "3.0.3", 434 | "pump": "1.0.2", 435 | "to-buffer": "1.1.0", 436 | "utp-native": "1.5.4" 437 | } 438 | }, 439 | "dns-discovery": { 440 | "version": "5.6.0", 441 | "resolved": "https://registry.npmjs.org/dns-discovery/-/dns-discovery-5.6.0.tgz", 442 | "integrity": "sha1-hZT1/zUzfA7y5Jegf1xAwMWGtuQ=", 443 | "requires": { 444 | "debug": "2.6.8", 445 | "dns-socket": "1.6.2", 446 | "dns-txt": "2.0.2", 447 | "lru": "2.0.1", 448 | "minimist": "1.2.0", 449 | "multicast-dns": "6.1.1", 450 | "network-address": "1.1.2", 451 | "unordered-set": "1.1.0" 452 | }, 453 | "dependencies": { 454 | "lru": { 455 | "version": "2.0.1", 456 | "resolved": "https://registry.npmjs.org/lru/-/lru-2.0.1.tgz", 457 | "integrity": "sha1-+XmHHhYuP1yiVL5GhExT1MU2RUQ=", 458 | "requires": { 459 | "inherits": "2.0.3" 460 | } 461 | } 462 | } 463 | }, 464 | "dns-packet": { 465 | "version": "1.1.1", 466 | "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.1.1.tgz", 467 | "integrity": "sha1-I2nUUDivBF84mOb6VoYq7T9AKWw=", 468 | "requires": { 469 | "ip": "1.1.5", 470 | "safe-buffer": "5.1.1" 471 | } 472 | }, 473 | "dns-socket": { 474 | "version": "1.6.2", 475 | "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-1.6.2.tgz", 476 | "integrity": "sha512-Ztbaf5fToBfm/4+sVEJi7mT2mJOLYYpI+TpgOhxwp5l28UwunTpHMccVhTe9L0F6pQ2cUF0ja9ukuTCtzYq2Ig==", 477 | "requires": { 478 | "dns-packet": "1.1.1" 479 | } 480 | }, 481 | "dns-txt": { 482 | "version": "2.0.2", 483 | "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", 484 | "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", 485 | "requires": { 486 | "buffer-indexof": "1.1.0" 487 | } 488 | }, 489 | "doctrine": { 490 | "version": "1.5.0", 491 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 492 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 493 | "dev": true, 494 | "requires": { 495 | "esutils": "2.0.2", 496 | "isarray": "1.0.0" 497 | }, 498 | "dependencies": { 499 | "esutils": { 500 | "version": "2.0.2", 501 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 502 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 503 | "dev": true 504 | } 505 | } 506 | }, 507 | "duplexer2": { 508 | "version": "0.0.2", 509 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", 510 | "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", 511 | "requires": { 512 | "readable-stream": "1.1.14" 513 | }, 514 | "dependencies": { 515 | "isarray": { 516 | "version": "0.0.1", 517 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 518 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 519 | }, 520 | "readable-stream": { 521 | "version": "1.1.14", 522 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 523 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 524 | "requires": { 525 | "core-util-is": "1.0.2", 526 | "inherits": "2.0.3", 527 | "isarray": "0.0.1", 528 | "string_decoder": "0.10.31" 529 | } 530 | }, 531 | "string_decoder": { 532 | "version": "0.10.31", 533 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 534 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 535 | } 536 | } 537 | }, 538 | "end-of-stream": { 539 | "version": "1.4.0", 540 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", 541 | "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", 542 | "requires": { 543 | "once": "1.4.0" 544 | } 545 | }, 546 | "es5-ext": { 547 | "version": "0.10.24", 548 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz", 549 | "integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=", 550 | "dev": true, 551 | "requires": { 552 | "es6-iterator": "2.0.1", 553 | "es6-symbol": "3.1.1" 554 | } 555 | }, 556 | "es6-iterator": { 557 | "version": "2.0.1", 558 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", 559 | "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", 560 | "dev": true, 561 | "requires": { 562 | "d": "1.0.0", 563 | "es5-ext": "0.10.24", 564 | "es6-symbol": "3.1.1" 565 | } 566 | }, 567 | "es6-map": { 568 | "version": "0.1.5", 569 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 570 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 571 | "dev": true, 572 | "requires": { 573 | "d": "1.0.0", 574 | "es5-ext": "0.10.24", 575 | "es6-iterator": "2.0.1", 576 | "es6-set": "0.1.5", 577 | "es6-symbol": "3.1.1", 578 | "event-emitter": "0.3.5" 579 | } 580 | }, 581 | "es6-set": { 582 | "version": "0.1.5", 583 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 584 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 585 | "dev": true, 586 | "requires": { 587 | "d": "1.0.0", 588 | "es5-ext": "0.10.24", 589 | "es6-iterator": "2.0.1", 590 | "es6-symbol": "3.1.1", 591 | "event-emitter": "0.3.5" 592 | } 593 | }, 594 | "es6-symbol": { 595 | "version": "3.1.1", 596 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 597 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 598 | "dev": true, 599 | "requires": { 600 | "d": "1.0.0", 601 | "es5-ext": "0.10.24" 602 | } 603 | }, 604 | "es6-weak-map": { 605 | "version": "2.0.2", 606 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 607 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 608 | "dev": true, 609 | "requires": { 610 | "d": "1.0.0", 611 | "es5-ext": "0.10.24", 612 | "es6-iterator": "2.0.1", 613 | "es6-symbol": "3.1.1" 614 | } 615 | }, 616 | "escape-string-regexp": { 617 | "version": "1.0.5", 618 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 619 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 620 | "dev": true 621 | }, 622 | "escodegen": { 623 | "version": "1.3.3", 624 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", 625 | "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", 626 | "requires": { 627 | "esprima": "1.1.1", 628 | "estraverse": "1.5.1", 629 | "esutils": "1.0.0", 630 | "source-map": "0.1.43" 631 | } 632 | }, 633 | "escope": { 634 | "version": "3.6.0", 635 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 636 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 637 | "dev": true, 638 | "requires": { 639 | "es6-map": "0.1.5", 640 | "es6-weak-map": "2.0.2", 641 | "esrecurse": "4.2.0", 642 | "estraverse": "4.2.0" 643 | }, 644 | "dependencies": { 645 | "estraverse": { 646 | "version": "4.2.0", 647 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 648 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 649 | "dev": true 650 | } 651 | } 652 | }, 653 | "eslint": { 654 | "version": "3.10.2", 655 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.10.2.tgz", 656 | "integrity": "sha1-yaEOi/bp1lZRIEd4xQM0Hx6sPOc=", 657 | "dev": true, 658 | "requires": { 659 | "babel-code-frame": "6.22.0", 660 | "chalk": "1.1.3", 661 | "concat-stream": "1.6.0", 662 | "debug": "2.6.8", 663 | "doctrine": "1.5.0", 664 | "escope": "3.6.0", 665 | "espree": "3.4.3", 666 | "estraverse": "4.2.0", 667 | "esutils": "2.0.2", 668 | "file-entry-cache": "2.0.0", 669 | "glob": "7.1.2", 670 | "globals": "9.18.0", 671 | "ignore": "3.3.3", 672 | "imurmurhash": "0.1.4", 673 | "inquirer": "0.12.0", 674 | "is-my-json-valid": "2.16.0", 675 | "is-resolvable": "1.0.0", 676 | "js-yaml": "3.9.0", 677 | "json-stable-stringify": "1.0.1", 678 | "levn": "0.3.0", 679 | "lodash": "4.17.4", 680 | "mkdirp": "0.5.1", 681 | "natural-compare": "1.4.0", 682 | "optionator": "0.8.2", 683 | "path-is-inside": "1.0.2", 684 | "pluralize": "1.2.1", 685 | "progress": "1.1.8", 686 | "require-uncached": "1.0.3", 687 | "shelljs": "0.7.8", 688 | "strip-bom": "3.0.0", 689 | "strip-json-comments": "1.0.4", 690 | "table": "3.8.3", 691 | "text-table": "0.2.0", 692 | "user-home": "2.0.0" 693 | }, 694 | "dependencies": { 695 | "estraverse": { 696 | "version": "4.2.0", 697 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 698 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 699 | "dev": true 700 | }, 701 | "esutils": { 702 | "version": "2.0.2", 703 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 704 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 705 | "dev": true 706 | } 707 | } 708 | }, 709 | "eslint-config-standard": { 710 | "version": "6.2.1", 711 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz", 712 | "integrity": "sha1-06aKr8cZFjnn7kQec0hzkCY1QpI=", 713 | "dev": true 714 | }, 715 | "eslint-config-standard-jsx": { 716 | "version": "3.2.0", 717 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-3.2.0.tgz", 718 | "integrity": "sha1-wkDibtkZoRpCqk3oBZRys4Jo1iA=", 719 | "dev": true 720 | }, 721 | "eslint-plugin-promise": { 722 | "version": "3.4.2", 723 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.4.2.tgz", 724 | "integrity": "sha1-G+J5Pq/i0YtbEjuBNsJp+AT+cSI=", 725 | "dev": true 726 | }, 727 | "eslint-plugin-react": { 728 | "version": "6.7.1", 729 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.7.1.tgz", 730 | "integrity": "sha1-Gvlq6lRYVoJRV9l8G1DVqPtkpac=", 731 | "dev": true, 732 | "requires": { 733 | "doctrine": "1.5.0", 734 | "jsx-ast-utils": "1.4.1" 735 | } 736 | }, 737 | "eslint-plugin-standard": { 738 | "version": "2.0.1", 739 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz", 740 | "integrity": "sha1-NYlpn/nJF/LCX3apFmh/ZBw2n/M=", 741 | "dev": true 742 | }, 743 | "espree": { 744 | "version": "3.4.3", 745 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", 746 | "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", 747 | "dev": true, 748 | "requires": { 749 | "acorn": "5.1.1", 750 | "acorn-jsx": "3.0.1" 751 | } 752 | }, 753 | "esprima": { 754 | "version": "1.1.1", 755 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", 756 | "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=" 757 | }, 758 | "esrecurse": { 759 | "version": "4.2.0", 760 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 761 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 762 | "dev": true, 763 | "requires": { 764 | "estraverse": "4.2.0", 765 | "object-assign": "4.1.1" 766 | }, 767 | "dependencies": { 768 | "estraverse": { 769 | "version": "4.2.0", 770 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 771 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 772 | "dev": true 773 | } 774 | } 775 | }, 776 | "estraverse": { 777 | "version": "1.5.1", 778 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", 779 | "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" 780 | }, 781 | "esutils": { 782 | "version": "1.0.0", 783 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", 784 | "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" 785 | }, 786 | "event-emitter": { 787 | "version": "0.3.5", 788 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 789 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 790 | "dev": true, 791 | "requires": { 792 | "d": "1.0.0", 793 | "es5-ext": "0.10.24" 794 | } 795 | }, 796 | "exit-hook": { 797 | "version": "1.1.1", 798 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 799 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 800 | "dev": true 801 | }, 802 | "falafel": { 803 | "version": "2.1.0", 804 | "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", 805 | "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", 806 | "requires": { 807 | "acorn": "5.1.1", 808 | "foreach": "2.0.5", 809 | "isarray": "0.0.1", 810 | "object-keys": "1.0.11" 811 | }, 812 | "dependencies": { 813 | "isarray": { 814 | "version": "0.0.1", 815 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 816 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 817 | } 818 | } 819 | }, 820 | "fast-levenshtein": { 821 | "version": "2.0.6", 822 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 823 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 824 | "dev": true 825 | }, 826 | "figures": { 827 | "version": "1.7.0", 828 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 829 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 830 | "dev": true, 831 | "requires": { 832 | "escape-string-regexp": "1.0.5", 833 | "object-assign": "4.1.1" 834 | } 835 | }, 836 | "file-entry-cache": { 837 | "version": "2.0.0", 838 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 839 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 840 | "dev": true, 841 | "requires": { 842 | "flat-cache": "1.2.2", 843 | "object-assign": "4.1.1" 844 | } 845 | }, 846 | "find-root": { 847 | "version": "1.1.0", 848 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 849 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 850 | "dev": true 851 | }, 852 | "flat-cache": { 853 | "version": "1.2.2", 854 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 855 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 856 | "dev": true, 857 | "requires": { 858 | "circular-json": "0.3.3", 859 | "del": "2.2.2", 860 | "graceful-fs": "4.1.11", 861 | "write": "0.2.1" 862 | } 863 | }, 864 | "flat-tree": { 865 | "version": "1.6.0", 866 | "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.6.0.tgz", 867 | "integrity": "sha1-/KMM3bkAb7ZW6168ea6ydOf96e0=" 868 | }, 869 | "foreach": { 870 | "version": "2.0.5", 871 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 872 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" 873 | }, 874 | "from2": { 875 | "version": "2.3.0", 876 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 877 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 878 | "requires": { 879 | "inherits": "2.0.3", 880 | "readable-stream": "2.3.3" 881 | } 882 | }, 883 | "fs.realpath": { 884 | "version": "1.0.0", 885 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 886 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 887 | "dev": true 888 | }, 889 | "function-bind": { 890 | "version": "1.1.0", 891 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", 892 | "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" 893 | }, 894 | "generate-function": { 895 | "version": "2.0.0", 896 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 897 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" 898 | }, 899 | "generate-object-property": { 900 | "version": "1.2.0", 901 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 902 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 903 | "requires": { 904 | "is-property": "1.0.2" 905 | } 906 | }, 907 | "get-stdin": { 908 | "version": "5.0.1", 909 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", 910 | "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", 911 | "dev": true 912 | }, 913 | "glob": { 914 | "version": "7.1.2", 915 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 916 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 917 | "dev": true, 918 | "requires": { 919 | "fs.realpath": "1.0.0", 920 | "inflight": "1.0.6", 921 | "inherits": "2.0.3", 922 | "minimatch": "3.0.4", 923 | "once": "1.4.0", 924 | "path-is-absolute": "1.0.1" 925 | } 926 | }, 927 | "globals": { 928 | "version": "9.18.0", 929 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 930 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 931 | "dev": true 932 | }, 933 | "globby": { 934 | "version": "5.0.0", 935 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 936 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 937 | "dev": true, 938 | "requires": { 939 | "array-union": "1.0.2", 940 | "arrify": "1.0.1", 941 | "glob": "7.1.2", 942 | "object-assign": "4.1.1", 943 | "pify": "2.3.0", 944 | "pinkie-promise": "2.0.1" 945 | } 946 | }, 947 | "graceful-fs": { 948 | "version": "4.1.11", 949 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 950 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 951 | "dev": true 952 | }, 953 | "has": { 954 | "version": "1.0.1", 955 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 956 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 957 | "requires": { 958 | "function-bind": "1.1.0" 959 | } 960 | }, 961 | "has-ansi": { 962 | "version": "2.0.0", 963 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 964 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 965 | "dev": true, 966 | "requires": { 967 | "ansi-regex": "2.1.1" 968 | } 969 | }, 970 | "home-or-tmp": { 971 | "version": "2.0.0", 972 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 973 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 974 | "dev": true, 975 | "requires": { 976 | "os-homedir": "1.0.2", 977 | "os-tmpdir": "1.0.2" 978 | } 979 | }, 980 | "hypercore": { 981 | "version": "6.6.6", 982 | "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-6.6.6.tgz", 983 | "integrity": "sha512-qpbBL2is30y4biThZUkA66VHkfgQNY8IueMT9jblHu0tq/6z4x6gxh8MAkAe3yUKOhDqId/+4m5wCYW5P+8KCg==", 984 | "requires": { 985 | "array-lru": "1.1.1", 986 | "atomic-batcher": "1.0.2", 987 | "bitfield-rle": "2.1.0", 988 | "buffer-equals": "1.0.4", 989 | "bulk-write-stream": "1.1.3", 990 | "codecs": "1.2.0", 991 | "flat-tree": "1.6.0", 992 | "from2": "2.3.0", 993 | "hypercore-protocol": "6.4.0", 994 | "inherits": "2.0.3", 995 | "last-one-wins": "1.0.4", 996 | "memory-pager": "1.0.3", 997 | "merkle-tree-stream": "3.0.3", 998 | "process-nextick-args": "1.0.7", 999 | "random-access-file": "1.8.1", 1000 | "sodium-universal": "1.4.0", 1001 | "sparse-bitfield": "3.0.3", 1002 | "thunky": "1.0.2", 1003 | "uint64be": "2.0.1", 1004 | "unordered-array-remove": "1.0.2", 1005 | "unordered-set": "2.0.0" 1006 | }, 1007 | "dependencies": { 1008 | "thunky": { 1009 | "version": "1.0.2", 1010 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", 1011 | "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" 1012 | }, 1013 | "unordered-set": { 1014 | "version": "2.0.0", 1015 | "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.0.tgz", 1016 | "integrity": "sha1-mFon6XW6oguCY66np5HpMAlBqew=" 1017 | } 1018 | } 1019 | }, 1020 | "hypercore-archiver": { 1021 | "version": "4.1.3", 1022 | "resolved": "https://registry.npmjs.org/hypercore-archiver/-/hypercore-archiver-4.1.3.tgz", 1023 | "integrity": "sha512-5NgRDl7Wk/eA1O6yEkKOYgxpG9t3X4esOwmRnzMNrdDXmwf2N6ZVGnxDLMP9nN6wWlF20a/JBJNLUrykLQd6TQ==", 1024 | "requires": { 1025 | "datland-swarm-defaults": "1.0.2", 1026 | "debug": "2.6.8", 1027 | "discovery-swarm": "4.4.2", 1028 | "hypercore": "6.6.6", 1029 | "hypercore-protocol": "6.4.0", 1030 | "random-access-file": "1.8.1", 1031 | "thunky": "1.0.2", 1032 | "to-buffer": "1.1.0", 1033 | "xtend": "4.0.1" 1034 | }, 1035 | "dependencies": { 1036 | "thunky": { 1037 | "version": "1.0.2", 1038 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", 1039 | "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" 1040 | } 1041 | } 1042 | }, 1043 | "hypercore-protocol": { 1044 | "version": "6.4.0", 1045 | "resolved": "https://registry.npmjs.org/hypercore-protocol/-/hypercore-protocol-6.4.0.tgz", 1046 | "integrity": "sha1-iXpvoLeSa0iZXdp+A9qtB31jODg=", 1047 | "requires": { 1048 | "brfs": "1.4.3", 1049 | "inherits": "2.0.3", 1050 | "protocol-buffers": "3.2.1", 1051 | "readable-stream": "2.3.3", 1052 | "sodium-universal": "1.4.0", 1053 | "sorted-indexof": "1.0.0", 1054 | "varint": "5.0.0" 1055 | }, 1056 | "dependencies": { 1057 | "varint": { 1058 | "version": "5.0.0", 1059 | "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", 1060 | "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" 1061 | } 1062 | } 1063 | }, 1064 | "iconv": { 1065 | "version": "2.2.3", 1066 | "resolved": "https://registry.npmjs.org/iconv/-/iconv-2.2.3.tgz", 1067 | "integrity": "sha1-4ITWDut9c9p/CpwJbkyKvgkL+u0=", 1068 | "optional": true, 1069 | "requires": { 1070 | "nan": "2.6.2" 1071 | } 1072 | }, 1073 | "ignore": { 1074 | "version": "3.3.3", 1075 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", 1076 | "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", 1077 | "dev": true 1078 | }, 1079 | "imurmurhash": { 1080 | "version": "0.1.4", 1081 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1082 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1083 | "dev": true 1084 | }, 1085 | "inflight": { 1086 | "version": "1.0.6", 1087 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1088 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1089 | "dev": true, 1090 | "requires": { 1091 | "once": "1.4.0", 1092 | "wrappy": "1.0.2" 1093 | } 1094 | }, 1095 | "inherits": { 1096 | "version": "2.0.3", 1097 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1098 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1099 | }, 1100 | "inquirer": { 1101 | "version": "0.12.0", 1102 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", 1103 | "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", 1104 | "dev": true, 1105 | "requires": { 1106 | "ansi-escapes": "1.4.0", 1107 | "ansi-regex": "2.1.1", 1108 | "chalk": "1.1.3", 1109 | "cli-cursor": "1.0.2", 1110 | "cli-width": "2.1.0", 1111 | "figures": "1.7.0", 1112 | "lodash": "4.17.4", 1113 | "readline2": "1.0.1", 1114 | "run-async": "0.1.0", 1115 | "rx-lite": "3.1.2", 1116 | "string-width": "1.0.2", 1117 | "strip-ansi": "3.0.1", 1118 | "through": "2.3.8" 1119 | } 1120 | }, 1121 | "interpret": { 1122 | "version": "1.0.3", 1123 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", 1124 | "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", 1125 | "dev": true 1126 | }, 1127 | "ip": { 1128 | "version": "1.1.5", 1129 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", 1130 | "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" 1131 | }, 1132 | "irc": { 1133 | "version": "0.5.2", 1134 | "resolved": "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz", 1135 | "integrity": "sha1-NxT0doNlqW0LL3dryRFmvrJGS7w=", 1136 | "requires": { 1137 | "iconv": "2.2.3", 1138 | "irc-colors": "1.3.3" 1139 | } 1140 | }, 1141 | "irc-colors": { 1142 | "version": "1.3.3", 1143 | "resolved": "https://registry.npmjs.org/irc-colors/-/irc-colors-1.3.3.tgz", 1144 | "integrity": "sha1-Fvj6YTCjiC/fT6uAHFtPWDKKM5E=" 1145 | }, 1146 | "is-buffer": { 1147 | "version": "1.1.5", 1148 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 1149 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" 1150 | }, 1151 | "is-fullwidth-code-point": { 1152 | "version": "1.0.0", 1153 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1154 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1155 | "dev": true, 1156 | "requires": { 1157 | "number-is-nan": "1.0.1" 1158 | } 1159 | }, 1160 | "is-my-json-valid": { 1161 | "version": "2.16.0", 1162 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", 1163 | "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", 1164 | "dev": true, 1165 | "requires": { 1166 | "generate-function": "2.0.0", 1167 | "generate-object-property": "1.2.0", 1168 | "jsonpointer": "4.0.1", 1169 | "xtend": "4.0.1" 1170 | } 1171 | }, 1172 | "is-number": { 1173 | "version": "2.1.0", 1174 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1175 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1176 | "requires": { 1177 | "kind-of": "3.2.2" 1178 | } 1179 | }, 1180 | "is-path-cwd": { 1181 | "version": "1.0.0", 1182 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 1183 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 1184 | "dev": true 1185 | }, 1186 | "is-path-in-cwd": { 1187 | "version": "1.0.0", 1188 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 1189 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 1190 | "dev": true, 1191 | "requires": { 1192 | "is-path-inside": "1.0.0" 1193 | } 1194 | }, 1195 | "is-path-inside": { 1196 | "version": "1.0.0", 1197 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 1198 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 1199 | "dev": true, 1200 | "requires": { 1201 | "path-is-inside": "1.0.2" 1202 | } 1203 | }, 1204 | "is-property": { 1205 | "version": "1.0.2", 1206 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 1207 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" 1208 | }, 1209 | "is-resolvable": { 1210 | "version": "1.0.0", 1211 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 1212 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 1213 | "dev": true, 1214 | "requires": { 1215 | "tryit": "1.0.3" 1216 | } 1217 | }, 1218 | "isarray": { 1219 | "version": "1.0.0", 1220 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1221 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1222 | }, 1223 | "js-tokens": { 1224 | "version": "3.0.2", 1225 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1226 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1227 | "dev": true 1228 | }, 1229 | "js-yaml": { 1230 | "version": "3.9.0", 1231 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", 1232 | "integrity": "sha512-0LoUNELX4S+iofCT8f4uEHIiRBR+c2AINyC8qRWfC6QNruLtxVZRJaPcu/xwMgFIgDxF25tGHaDjvxzJCNE9yw==", 1233 | "dev": true, 1234 | "requires": { 1235 | "argparse": "1.0.9", 1236 | "esprima": "4.0.0" 1237 | }, 1238 | "dependencies": { 1239 | "esprima": { 1240 | "version": "4.0.0", 1241 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1242 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1243 | "dev": true 1244 | } 1245 | } 1246 | }, 1247 | "json-stable-stringify": { 1248 | "version": "1.0.1", 1249 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 1250 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1251 | "dev": true, 1252 | "requires": { 1253 | "jsonify": "0.0.0" 1254 | } 1255 | }, 1256 | "jsonify": { 1257 | "version": "0.0.0", 1258 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 1259 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 1260 | "dev": true 1261 | }, 1262 | "jsonpointer": { 1263 | "version": "4.0.1", 1264 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 1265 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 1266 | "dev": true 1267 | }, 1268 | "jsx-ast-utils": { 1269 | "version": "1.4.1", 1270 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", 1271 | "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", 1272 | "dev": true 1273 | }, 1274 | "k-bucket": { 1275 | "version": "3.2.1", 1276 | "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-3.2.1.tgz", 1277 | "integrity": "sha1-IA0H8CATQ27WcmWVDsmPYrspL2I=", 1278 | "requires": { 1279 | "buffer-equals": "1.0.4", 1280 | "inherits": "2.0.3", 1281 | "randombytes": "2.0.5" 1282 | } 1283 | }, 1284 | "k-rpc": { 1285 | "version": "4.1.0", 1286 | "resolved": "https://registry.npmjs.org/k-rpc/-/k-rpc-4.1.0.tgz", 1287 | "integrity": "sha512-Qvetvl34ZXrOWDXMMeP/WQMN3/ep3SASGxcJhUZLgQb1U7VA+/SzwxhDi9KRZWBEqrU0FUWr/yqLP44TfzSwzw==", 1288 | "requires": { 1289 | "buffer-equals": "1.0.4", 1290 | "k-bucket": "3.2.1", 1291 | "k-rpc-socket": "1.7.1", 1292 | "safe-buffer": "5.1.1" 1293 | } 1294 | }, 1295 | "k-rpc-socket": { 1296 | "version": "1.7.1", 1297 | "resolved": "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.1.tgz", 1298 | "integrity": "sha512-FmHDmrT6sIs2MM/uMYW0Jmjd01wk2NxzPd6+9iH7onvutqhWXZ8PoZ9p/mVS58SQILC7jKZacC72V5QNkvAXew==", 1299 | "requires": { 1300 | "bencode": "1.0.0", 1301 | "safe-buffer": "5.1.1" 1302 | } 1303 | }, 1304 | "kind-of": { 1305 | "version": "3.2.2", 1306 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1307 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1308 | "requires": { 1309 | "is-buffer": "1.1.5" 1310 | } 1311 | }, 1312 | "last-one-wins": { 1313 | "version": "1.0.4", 1314 | "resolved": "https://registry.npmjs.org/last-one-wins/-/last-one-wins-1.0.4.tgz", 1315 | "integrity": "sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=" 1316 | }, 1317 | "length-prefixed-message": { 1318 | "version": "3.0.3", 1319 | "resolved": "https://registry.npmjs.org/length-prefixed-message/-/length-prefixed-message-3.0.3.tgz", 1320 | "integrity": "sha1-JFR01pq8BhTco2jcNaqAdJgqI6w=", 1321 | "requires": { 1322 | "varint": "3.0.1" 1323 | } 1324 | }, 1325 | "levn": { 1326 | "version": "0.3.0", 1327 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1328 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1329 | "dev": true, 1330 | "requires": { 1331 | "prelude-ls": "1.1.2", 1332 | "type-check": "0.3.2" 1333 | } 1334 | }, 1335 | "lodash": { 1336 | "version": "4.17.4", 1337 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1338 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1339 | "dev": true 1340 | }, 1341 | "lru": { 1342 | "version": "3.1.0", 1343 | "resolved": "https://registry.npmjs.org/lru/-/lru-3.1.0.tgz", 1344 | "integrity": "sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=", 1345 | "requires": { 1346 | "inherits": "2.0.3" 1347 | } 1348 | }, 1349 | "memory-pager": { 1350 | "version": "1.0.3", 1351 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.0.3.tgz", 1352 | "integrity": "sha1-A3gSAD5mq+3MhMynIsQlWQ6Pqog=" 1353 | }, 1354 | "merkle-tree-stream": { 1355 | "version": "3.0.3", 1356 | "resolved": "https://registry.npmjs.org/merkle-tree-stream/-/merkle-tree-stream-3.0.3.tgz", 1357 | "integrity": "sha1-+KBkdg0355eK1fn208EZpJT1cIE=", 1358 | "requires": { 1359 | "flat-tree": "1.6.0", 1360 | "readable-stream": "2.3.3" 1361 | } 1362 | }, 1363 | "minimatch": { 1364 | "version": "3.0.4", 1365 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1366 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1367 | "dev": true, 1368 | "requires": { 1369 | "brace-expansion": "1.1.8" 1370 | } 1371 | }, 1372 | "minimist": { 1373 | "version": "1.2.0", 1374 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1375 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 1376 | }, 1377 | "mkdirp": { 1378 | "version": "0.5.1", 1379 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1380 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1381 | "requires": { 1382 | "minimist": "0.0.8" 1383 | }, 1384 | "dependencies": { 1385 | "minimist": { 1386 | "version": "0.0.8", 1387 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1388 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 1389 | } 1390 | } 1391 | }, 1392 | "ms": { 1393 | "version": "2.0.0", 1394 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1395 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1396 | }, 1397 | "multicast-dns": { 1398 | "version": "6.1.1", 1399 | "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", 1400 | "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", 1401 | "requires": { 1402 | "dns-packet": "1.1.1", 1403 | "thunky": "0.1.0" 1404 | } 1405 | }, 1406 | "mute-stream": { 1407 | "version": "0.0.5", 1408 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", 1409 | "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", 1410 | "dev": true 1411 | }, 1412 | "nan": { 1413 | "version": "2.6.2", 1414 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 1415 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 1416 | "optional": true 1417 | }, 1418 | "nanoassert": { 1419 | "version": "1.1.0", 1420 | "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz", 1421 | "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=" 1422 | }, 1423 | "nanoseconds": { 1424 | "version": "0.1.0", 1425 | "resolved": "https://registry.npmjs.org/nanoseconds/-/nanoseconds-0.1.0.tgz", 1426 | "integrity": "sha1-aew5/NAOd6s6ct4KQzQoJM15Izo=" 1427 | }, 1428 | "natural-compare": { 1429 | "version": "1.4.0", 1430 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1431 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1432 | "dev": true 1433 | }, 1434 | "network-address": { 1435 | "version": "1.1.2", 1436 | "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", 1437 | "integrity": "sha1-Sqe/1D8D8LgclwKxPWqFjdsybz4=" 1438 | }, 1439 | "node-gyp-build": { 1440 | "version": "3.2.2", 1441 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.2.2.tgz", 1442 | "integrity": "sha512-t8W/0UqFGl1c+5ORA3NoT3npU+PxWBL9iPhY7ZySSTszodj3RWexmu8niayWBE0v+0DLARvOXsjaAvfmSEQOyQ==", 1443 | "optional": true 1444 | }, 1445 | "number-is-nan": { 1446 | "version": "1.0.1", 1447 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1448 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1449 | "dev": true 1450 | }, 1451 | "object-assign": { 1452 | "version": "4.1.1", 1453 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1454 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1455 | "dev": true 1456 | }, 1457 | "object-inspect": { 1458 | "version": "0.4.0", 1459 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", 1460 | "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=" 1461 | }, 1462 | "object-keys": { 1463 | "version": "1.0.11", 1464 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 1465 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" 1466 | }, 1467 | "once": { 1468 | "version": "1.4.0", 1469 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1470 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1471 | "requires": { 1472 | "wrappy": "1.0.2" 1473 | } 1474 | }, 1475 | "onetime": { 1476 | "version": "1.1.0", 1477 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 1478 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 1479 | "dev": true 1480 | }, 1481 | "optionator": { 1482 | "version": "0.8.2", 1483 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1484 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1485 | "dev": true, 1486 | "requires": { 1487 | "deep-is": "0.1.3", 1488 | "fast-levenshtein": "2.0.6", 1489 | "levn": "0.3.0", 1490 | "prelude-ls": "1.1.2", 1491 | "type-check": "0.3.2", 1492 | "wordwrap": "1.0.0" 1493 | } 1494 | }, 1495 | "os-homedir": { 1496 | "version": "1.0.2", 1497 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1498 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1499 | "dev": true 1500 | }, 1501 | "os-tmpdir": { 1502 | "version": "1.0.2", 1503 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1504 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1505 | "dev": true 1506 | }, 1507 | "path-is-absolute": { 1508 | "version": "1.0.1", 1509 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1510 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1511 | "dev": true 1512 | }, 1513 | "path-is-inside": { 1514 | "version": "1.0.2", 1515 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1516 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1517 | "dev": true 1518 | }, 1519 | "path-parse": { 1520 | "version": "1.0.5", 1521 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 1522 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" 1523 | }, 1524 | "pify": { 1525 | "version": "2.3.0", 1526 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1527 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1528 | "dev": true 1529 | }, 1530 | "pinkie": { 1531 | "version": "2.0.4", 1532 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1533 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1534 | "dev": true 1535 | }, 1536 | "pinkie-promise": { 1537 | "version": "2.0.1", 1538 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1539 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1540 | "dev": true, 1541 | "requires": { 1542 | "pinkie": "2.0.4" 1543 | } 1544 | }, 1545 | "pkg-config": { 1546 | "version": "1.1.1", 1547 | "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", 1548 | "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", 1549 | "dev": true, 1550 | "requires": { 1551 | "debug-log": "1.0.1", 1552 | "find-root": "1.1.0", 1553 | "xtend": "4.0.1" 1554 | } 1555 | }, 1556 | "pluralize": { 1557 | "version": "1.2.1", 1558 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", 1559 | "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", 1560 | "dev": true 1561 | }, 1562 | "prelude-ls": { 1563 | "version": "1.1.2", 1564 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1565 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1566 | "dev": true 1567 | }, 1568 | "pretty-bytes": { 1569 | "version": "4.0.2", 1570 | "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", 1571 | "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" 1572 | }, 1573 | "pretty-hash": { 1574 | "version": "1.0.1", 1575 | "resolved": "https://registry.npmjs.org/pretty-hash/-/pretty-hash-1.0.1.tgz", 1576 | "integrity": "sha1-FuBXkYje9WvbVliSvNBaXWUySAc=" 1577 | }, 1578 | "pretty-time": { 1579 | "version": "0.2.0", 1580 | "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-0.2.0.tgz", 1581 | "integrity": "sha1-ejvexAScYgzXxCt/NCt01W5z104=", 1582 | "requires": { 1583 | "is-number": "2.1.0", 1584 | "nanoseconds": "0.1.0" 1585 | } 1586 | }, 1587 | "process-nextick-args": { 1588 | "version": "1.0.7", 1589 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1590 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 1591 | }, 1592 | "progress": { 1593 | "version": "1.1.8", 1594 | "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", 1595 | "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", 1596 | "dev": true 1597 | }, 1598 | "protocol-buffers": { 1599 | "version": "3.2.1", 1600 | "resolved": "https://registry.npmjs.org/protocol-buffers/-/protocol-buffers-3.2.1.tgz", 1601 | "integrity": "sha1-NyWOF+JKCC8G67F3MekoUdHHaIk=", 1602 | "requires": { 1603 | "brfs": "1.4.3", 1604 | "generate-function": "2.0.0", 1605 | "generate-object-property": "1.2.0", 1606 | "protocol-buffers-schema": "3.3.1", 1607 | "signed-varint": "2.0.1", 1608 | "varint": "5.0.0" 1609 | }, 1610 | "dependencies": { 1611 | "varint": { 1612 | "version": "5.0.0", 1613 | "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", 1614 | "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" 1615 | } 1616 | } 1617 | }, 1618 | "protocol-buffers-schema": { 1619 | "version": "3.3.1", 1620 | "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.1.tgz", 1621 | "integrity": "sha1-rRURQYd8aviChkeFGvZqDbaSdfU=" 1622 | }, 1623 | "pump": { 1624 | "version": "1.0.2", 1625 | "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", 1626 | "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", 1627 | "requires": { 1628 | "end-of-stream": "1.4.0", 1629 | "once": "1.4.0" 1630 | } 1631 | }, 1632 | "quote-stream": { 1633 | "version": "1.0.2", 1634 | "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", 1635 | "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", 1636 | "requires": { 1637 | "buffer-equal": "0.0.1", 1638 | "minimist": "1.2.0", 1639 | "through2": "2.0.3" 1640 | } 1641 | }, 1642 | "random-access-file": { 1643 | "version": "1.8.1", 1644 | "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-1.8.1.tgz", 1645 | "integrity": "sha512-+Uhk0Of+dWHWjpbL2hizcwSV1UomcN3S0iUGV6BTZ2Js1BP9jHx3E5CT7y0eLbqTQNkVi4iehkHmia7Mdqa47w==", 1646 | "requires": { 1647 | "buffer-alloc-unsafe": "1.0.0", 1648 | "debug": "2.6.8", 1649 | "inherits": "2.0.3", 1650 | "mkdirp": "0.5.1", 1651 | "thunky": "1.0.2" 1652 | }, 1653 | "dependencies": { 1654 | "thunky": { 1655 | "version": "1.0.2", 1656 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", 1657 | "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" 1658 | } 1659 | } 1660 | }, 1661 | "randombytes": { 1662 | "version": "2.0.5", 1663 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", 1664 | "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", 1665 | "requires": { 1666 | "safe-buffer": "5.1.1" 1667 | } 1668 | }, 1669 | "readable-stream": { 1670 | "version": "2.3.3", 1671 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 1672 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 1673 | "requires": { 1674 | "core-util-is": "1.0.2", 1675 | "inherits": "2.0.3", 1676 | "isarray": "1.0.0", 1677 | "process-nextick-args": "1.0.7", 1678 | "safe-buffer": "5.1.1", 1679 | "string_decoder": "1.0.3", 1680 | "util-deprecate": "1.0.2" 1681 | } 1682 | }, 1683 | "readline2": { 1684 | "version": "1.0.1", 1685 | "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", 1686 | "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", 1687 | "dev": true, 1688 | "requires": { 1689 | "code-point-at": "1.1.0", 1690 | "is-fullwidth-code-point": "1.0.0", 1691 | "mute-stream": "0.0.5" 1692 | } 1693 | }, 1694 | "rechoir": { 1695 | "version": "0.6.2", 1696 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 1697 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 1698 | "dev": true, 1699 | "requires": { 1700 | "resolve": "1.4.0" 1701 | } 1702 | }, 1703 | "require-uncached": { 1704 | "version": "1.0.3", 1705 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 1706 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 1707 | "dev": true, 1708 | "requires": { 1709 | "caller-path": "0.1.0", 1710 | "resolve-from": "1.0.1" 1711 | } 1712 | }, 1713 | "resolve": { 1714 | "version": "1.4.0", 1715 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", 1716 | "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", 1717 | "requires": { 1718 | "path-parse": "1.0.5" 1719 | } 1720 | }, 1721 | "resolve-from": { 1722 | "version": "1.0.1", 1723 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 1724 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 1725 | "dev": true 1726 | }, 1727 | "restore-cursor": { 1728 | "version": "1.0.1", 1729 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 1730 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 1731 | "dev": true, 1732 | "requires": { 1733 | "exit-hook": "1.1.1", 1734 | "onetime": "1.1.0" 1735 | } 1736 | }, 1737 | "rimraf": { 1738 | "version": "2.6.1", 1739 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 1740 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 1741 | "dev": true, 1742 | "requires": { 1743 | "glob": "7.1.2" 1744 | } 1745 | }, 1746 | "run-async": { 1747 | "version": "0.1.0", 1748 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", 1749 | "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", 1750 | "dev": true, 1751 | "requires": { 1752 | "once": "1.4.0" 1753 | } 1754 | }, 1755 | "run-parallel": { 1756 | "version": "1.1.6", 1757 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz", 1758 | "integrity": "sha1-KQA8miFj4B4tLfyQV18sbB1hoDk=", 1759 | "dev": true 1760 | }, 1761 | "rx-lite": { 1762 | "version": "3.1.2", 1763 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", 1764 | "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", 1765 | "dev": true 1766 | }, 1767 | "safe-buffer": { 1768 | "version": "5.1.1", 1769 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1770 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 1771 | }, 1772 | "shallow-copy": { 1773 | "version": "0.0.1", 1774 | "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", 1775 | "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" 1776 | }, 1777 | "shelljs": { 1778 | "version": "0.7.8", 1779 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", 1780 | "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", 1781 | "dev": true, 1782 | "requires": { 1783 | "glob": "7.1.2", 1784 | "interpret": "1.0.3", 1785 | "rechoir": "0.6.2" 1786 | } 1787 | }, 1788 | "signed-varint": { 1789 | "version": "2.0.1", 1790 | "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", 1791 | "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", 1792 | "requires": { 1793 | "varint": "5.0.0" 1794 | }, 1795 | "dependencies": { 1796 | "varint": { 1797 | "version": "5.0.0", 1798 | "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", 1799 | "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" 1800 | } 1801 | } 1802 | }, 1803 | "siphash24": { 1804 | "version": "1.0.2", 1805 | "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.0.2.tgz", 1806 | "integrity": "sha512-/yUF5S4+z46QxpT/mW/wdlsQQTdO1yl3H36aql6u2m3Ve6u9iATS+yHN+rMXr4jm1qQ0wJUDK2ofdkZeQjMmig==", 1807 | "requires": { 1808 | "base64-to-uint8array": "1.0.0", 1809 | "brfs": "1.4.3", 1810 | "nanoassert": "1.1.0" 1811 | } 1812 | }, 1813 | "slice-ansi": { 1814 | "version": "0.0.4", 1815 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 1816 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 1817 | "dev": true 1818 | }, 1819 | "sodium-javascript": { 1820 | "version": "0.5.1", 1821 | "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.5.1.tgz", 1822 | "integrity": "sha512-M8H34jbD8WPaNVx7LfLyk3fabujOppnjEskJYXSlYqJ83BMFyO3wYFzvhSW3/yL4j0JFgYRYm5c/dzGK1AqxFA==", 1823 | "requires": { 1824 | "blake2b": "2.1.2", 1825 | "nanoassert": "1.1.0", 1826 | "siphash24": "1.0.2", 1827 | "xsalsa20": "1.0.2" 1828 | } 1829 | }, 1830 | "sodium-native": { 1831 | "version": "1.10.3", 1832 | "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-1.10.3.tgz", 1833 | "integrity": "sha512-FIeYaG5cc0YZjsAaWP/BCXDNO2xusbtDJbCbEvXrf6/6+dRo/8XCiEG0kwlRcR0wr56sgsZ327BId3ifFe2WYw==", 1834 | "optional": true, 1835 | "requires": { 1836 | "nan": "2.6.2", 1837 | "node-gyp-build": "3.2.2" 1838 | } 1839 | }, 1840 | "sodium-universal": { 1841 | "version": "1.4.0", 1842 | "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-1.4.0.tgz", 1843 | "integrity": "sha512-hMQ4uoqoyUES9Q8CAeUFYcc2ODq72cq+riSTO+XsuZZjYDTvKlvFIK+v/wMTbv5woa/omMwFvsxib5gVz0qEXg==", 1844 | "requires": { 1845 | "sodium-javascript": "0.5.1", 1846 | "sodium-native": "1.10.3" 1847 | } 1848 | }, 1849 | "sorted-indexof": { 1850 | "version": "1.0.0", 1851 | "resolved": "https://registry.npmjs.org/sorted-indexof/-/sorted-indexof-1.0.0.tgz", 1852 | "integrity": "sha1-F8dC/3zxh+L1mhXfm4HxemLOCJk=" 1853 | }, 1854 | "source-map": { 1855 | "version": "0.1.43", 1856 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", 1857 | "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", 1858 | "optional": true, 1859 | "requires": { 1860 | "amdefine": "1.0.1" 1861 | } 1862 | }, 1863 | "sparse-bitfield": { 1864 | "version": "3.0.3", 1865 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1866 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1867 | "requires": { 1868 | "memory-pager": "1.0.3" 1869 | } 1870 | }, 1871 | "sprintf-js": { 1872 | "version": "1.0.3", 1873 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1874 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1875 | "dev": true 1876 | }, 1877 | "standard": { 1878 | "version": "8.6.0", 1879 | "resolved": "https://registry.npmjs.org/standard/-/standard-8.6.0.tgz", 1880 | "integrity": "sha1-Y1Eyvnv7VnwpIQBfMPnjUOR1Kq0=", 1881 | "dev": true, 1882 | "requires": { 1883 | "eslint": "3.10.2", 1884 | "eslint-config-standard": "6.2.1", 1885 | "eslint-config-standard-jsx": "3.2.0", 1886 | "eslint-plugin-promise": "3.4.2", 1887 | "eslint-plugin-react": "6.7.1", 1888 | "eslint-plugin-standard": "2.0.1", 1889 | "standard-engine": "5.2.0" 1890 | } 1891 | }, 1892 | "standard-engine": { 1893 | "version": "5.2.0", 1894 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-5.2.0.tgz", 1895 | "integrity": "sha1-QAZgrlrM6K/U22D/IhSpGQrXkKM=", 1896 | "dev": true, 1897 | "requires": { 1898 | "deglob": "2.1.0", 1899 | "find-root": "1.1.0", 1900 | "get-stdin": "5.0.1", 1901 | "home-or-tmp": "2.0.0", 1902 | "minimist": "1.2.0", 1903 | "pkg-config": "1.1.1" 1904 | } 1905 | }, 1906 | "static-eval": { 1907 | "version": "0.2.4", 1908 | "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", 1909 | "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", 1910 | "requires": { 1911 | "escodegen": "0.0.28" 1912 | }, 1913 | "dependencies": { 1914 | "escodegen": { 1915 | "version": "0.0.28", 1916 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", 1917 | "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", 1918 | "requires": { 1919 | "esprima": "1.0.4", 1920 | "estraverse": "1.3.2", 1921 | "source-map": "0.1.43" 1922 | } 1923 | }, 1924 | "esprima": { 1925 | "version": "1.0.4", 1926 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", 1927 | "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" 1928 | }, 1929 | "estraverse": { 1930 | "version": "1.3.2", 1931 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", 1932 | "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=" 1933 | } 1934 | } 1935 | }, 1936 | "static-module": { 1937 | "version": "1.4.0", 1938 | "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.4.0.tgz", 1939 | "integrity": "sha1-vvDZtviVhfbyNZuBYb7qsGBV29I=", 1940 | "requires": { 1941 | "concat-stream": "1.6.0", 1942 | "duplexer2": "0.0.2", 1943 | "escodegen": "1.3.3", 1944 | "falafel": "2.1.0", 1945 | "has": "1.0.1", 1946 | "object-inspect": "0.4.0", 1947 | "quote-stream": "0.0.0", 1948 | "readable-stream": "1.0.34", 1949 | "shallow-copy": "0.0.1", 1950 | "static-eval": "0.2.4", 1951 | "through2": "0.4.2" 1952 | }, 1953 | "dependencies": { 1954 | "isarray": { 1955 | "version": "0.0.1", 1956 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1957 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 1958 | }, 1959 | "minimist": { 1960 | "version": "0.0.8", 1961 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1962 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 1963 | }, 1964 | "object-keys": { 1965 | "version": "0.4.0", 1966 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 1967 | "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" 1968 | }, 1969 | "quote-stream": { 1970 | "version": "0.0.0", 1971 | "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", 1972 | "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", 1973 | "requires": { 1974 | "minimist": "0.0.8", 1975 | "through2": "0.4.2" 1976 | } 1977 | }, 1978 | "readable-stream": { 1979 | "version": "1.0.34", 1980 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1981 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 1982 | "requires": { 1983 | "core-util-is": "1.0.2", 1984 | "inherits": "2.0.3", 1985 | "isarray": "0.0.1", 1986 | "string_decoder": "0.10.31" 1987 | } 1988 | }, 1989 | "string_decoder": { 1990 | "version": "0.10.31", 1991 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1992 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 1993 | }, 1994 | "through2": { 1995 | "version": "0.4.2", 1996 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", 1997 | "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", 1998 | "requires": { 1999 | "readable-stream": "1.0.34", 2000 | "xtend": "2.1.2" 2001 | } 2002 | }, 2003 | "xtend": { 2004 | "version": "2.1.2", 2005 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 2006 | "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", 2007 | "requires": { 2008 | "object-keys": "0.4.0" 2009 | } 2010 | } 2011 | } 2012 | }, 2013 | "string_decoder": { 2014 | "version": "1.0.3", 2015 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2016 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2017 | "requires": { 2018 | "safe-buffer": "5.1.1" 2019 | } 2020 | }, 2021 | "string-width": { 2022 | "version": "1.0.2", 2023 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2024 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2025 | "dev": true, 2026 | "requires": { 2027 | "code-point-at": "1.1.0", 2028 | "is-fullwidth-code-point": "1.0.0", 2029 | "strip-ansi": "3.0.1" 2030 | } 2031 | }, 2032 | "strip-ansi": { 2033 | "version": "3.0.1", 2034 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2035 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2036 | "dev": true, 2037 | "requires": { 2038 | "ansi-regex": "2.1.1" 2039 | } 2040 | }, 2041 | "strip-bom": { 2042 | "version": "3.0.0", 2043 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2044 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2045 | "dev": true 2046 | }, 2047 | "strip-json-comments": { 2048 | "version": "1.0.4", 2049 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", 2050 | "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", 2051 | "dev": true 2052 | }, 2053 | "supports-color": { 2054 | "version": "2.0.0", 2055 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2056 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2057 | "dev": true 2058 | }, 2059 | "table": { 2060 | "version": "3.8.3", 2061 | "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", 2062 | "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", 2063 | "dev": true, 2064 | "requires": { 2065 | "ajv": "4.11.8", 2066 | "ajv-keywords": "1.5.1", 2067 | "chalk": "1.1.3", 2068 | "lodash": "4.17.4", 2069 | "slice-ansi": "0.0.4", 2070 | "string-width": "2.1.1" 2071 | }, 2072 | "dependencies": { 2073 | "ansi-regex": { 2074 | "version": "3.0.0", 2075 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2076 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2077 | "dev": true 2078 | }, 2079 | "is-fullwidth-code-point": { 2080 | "version": "2.0.0", 2081 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2082 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2083 | "dev": true 2084 | }, 2085 | "string-width": { 2086 | "version": "2.1.1", 2087 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2088 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2089 | "dev": true, 2090 | "requires": { 2091 | "is-fullwidth-code-point": "2.0.0", 2092 | "strip-ansi": "4.0.0" 2093 | } 2094 | }, 2095 | "strip-ansi": { 2096 | "version": "4.0.0", 2097 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2098 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2099 | "dev": true, 2100 | "requires": { 2101 | "ansi-regex": "3.0.0" 2102 | } 2103 | } 2104 | } 2105 | }, 2106 | "text-table": { 2107 | "version": "0.2.0", 2108 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2109 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2110 | "dev": true 2111 | }, 2112 | "through": { 2113 | "version": "2.3.8", 2114 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2115 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2116 | "dev": true 2117 | }, 2118 | "through2": { 2119 | "version": "2.0.3", 2120 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 2121 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 2122 | "requires": { 2123 | "readable-stream": "2.3.3", 2124 | "xtend": "4.0.1" 2125 | } 2126 | }, 2127 | "thunky": { 2128 | "version": "0.1.0", 2129 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", 2130 | "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=" 2131 | }, 2132 | "to-buffer": { 2133 | "version": "1.1.0", 2134 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.0.tgz", 2135 | "integrity": "sha1-N1vAPtrlw1qPoLP+laHzmF2x3Po=" 2136 | }, 2137 | "tryit": { 2138 | "version": "1.0.3", 2139 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 2140 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 2141 | "dev": true 2142 | }, 2143 | "type-check": { 2144 | "version": "0.3.2", 2145 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2146 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2147 | "dev": true, 2148 | "requires": { 2149 | "prelude-ls": "1.1.2" 2150 | } 2151 | }, 2152 | "typedarray": { 2153 | "version": "0.0.6", 2154 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2155 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" 2156 | }, 2157 | "uint64be": { 2158 | "version": "2.0.1", 2159 | "resolved": "https://registry.npmjs.org/uint64be/-/uint64be-2.0.1.tgz", 2160 | "integrity": "sha1-oxDZTk5eCwKpXWeOMzI/gCvchCg=" 2161 | }, 2162 | "uniq": { 2163 | "version": "1.0.1", 2164 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", 2165 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", 2166 | "dev": true 2167 | }, 2168 | "unordered-array-remove": { 2169 | "version": "1.0.2", 2170 | "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", 2171 | "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" 2172 | }, 2173 | "unordered-set": { 2174 | "version": "1.1.0", 2175 | "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-1.1.0.tgz", 2176 | "integrity": "sha1-K6fvMW7dC5WQzFR8dPdqLxZP7Mo=" 2177 | }, 2178 | "user-home": { 2179 | "version": "2.0.0", 2180 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", 2181 | "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", 2182 | "dev": true, 2183 | "requires": { 2184 | "os-homedir": "1.0.2" 2185 | } 2186 | }, 2187 | "util-deprecate": { 2188 | "version": "1.0.2", 2189 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2190 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2191 | }, 2192 | "utp-native": { 2193 | "version": "1.5.4", 2194 | "resolved": "https://registry.npmjs.org/utp-native/-/utp-native-1.5.4.tgz", 2195 | "integrity": "sha512-cOzS0kJlMC9LScG9Rl0W6j4y8DimC1ZQQniNwJuUKwnCwuBG3jj3tTYjudTCmEGZoGnYrRTf8MZ0IrTL4hls2w==", 2196 | "optional": true, 2197 | "requires": { 2198 | "nan": "2.6.2", 2199 | "node-gyp-build": "3.2.2", 2200 | "readable-stream": "2.3.3" 2201 | } 2202 | }, 2203 | "varint": { 2204 | "version": "3.0.1", 2205 | "resolved": "https://registry.npmjs.org/varint/-/varint-3.0.1.tgz", 2206 | "integrity": "sha1-nT9T4DbAqxIACnS8LSTL8JOlgdk=" 2207 | }, 2208 | "wordwrap": { 2209 | "version": "1.0.0", 2210 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2211 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2212 | "dev": true 2213 | }, 2214 | "wrappy": { 2215 | "version": "1.0.2", 2216 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2217 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2218 | }, 2219 | "write": { 2220 | "version": "0.2.1", 2221 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 2222 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 2223 | "dev": true, 2224 | "requires": { 2225 | "mkdirp": "0.5.1" 2226 | } 2227 | }, 2228 | "xsalsa20": { 2229 | "version": "1.0.2", 2230 | "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.0.2.tgz", 2231 | "integrity": "sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw==" 2232 | }, 2233 | "xtend": { 2234 | "version": "4.0.1", 2235 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2236 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 2237 | } 2238 | } 2239 | } 2240 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hypercore-archiver-bot", 3 | "version": "3.3.0", 4 | "description": "IRC bot that is an interface to hypercore-archiver", 5 | "main": "index.js", 6 | "bin": { 7 | "hypercore-archiver-bot": "./index.js" 8 | }, 9 | "dependencies": { 10 | "dat-swarm-defaults": "^1.0.0", 11 | "discovery-channel": "^5.3.0", 12 | "hypercore-archiver": "^4.1.0", 13 | "irc": "^0.5.0", 14 | "minimist": "^1.2.0", 15 | "mkdirp": "^0.5.1", 16 | "pretty-bytes": "^4.0.2", 17 | "pretty-time": "^0.2.0", 18 | "pump": "^1.0.1", 19 | "random-access-page-files": "^1.0.1", 20 | "xtend": "^4.0.1" 21 | }, 22 | "devDependencies": { 23 | "standard": "^8.5.0" 24 | }, 25 | "scripts": { 26 | "test": "standard" 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "https://github.com/mafintosh/hypercore-archiver-bot.git" 31 | }, 32 | "author": "Mathias Buus (@mafintosh)", 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/mafintosh/hypercore-archiver-bot/issues" 36 | }, 37 | "homepage": "https://github.com/mafintosh/hypercore-archiver-bot" 38 | } 39 | --------------------------------------------------------------------------------