├── .gitignore ├── .travis.yml ├── LICENSE.md ├── README.md ├── cli.js ├── example ├── archive.js ├── index.js └── verify.js ├── index.js ├── lib └── const.js ├── package-lock.json ├── package.json └── test └── index.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '4' 4 | - '6' 5 | cache: 6 | directories: 7 | - node_modules 8 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # [MIT License](https://spdx.org/licenses/MIT) 2 | 3 | Copyright (c) 2017 Joe Hand 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # bagit-fs 2 | 3 | node fs implementation for the [bagit spec](https://tools.ietf.org/html/draft-kunze-bagit-14). 4 | 5 | [![npm][npm-image]][npm-url] 6 | [![travis][travis-image]][travis-url] 7 | [![standard][standard-image]][standard-url] 8 | 9 | ## Install 10 | 11 | ``` 12 | npm install bagit-fs 13 | ``` 14 | 15 | ## Usage 16 | 17 | ```js 18 | var BagIt = require('bagit-fs') 19 | 20 | var bag = BagIt('/put/my/bag/here', 'sha256', {'Contact-Name': 'Joe Hand'}) 21 | 22 | // write files to bag's data folder 23 | fs.createReadStream('readme.md').pipe(bag.createWriteStream('/readme.md')) 24 | 25 | // ... LATER after all files are written 26 | bag.finalize(function () { 27 | console.log('finalized') 28 | }) 29 | ``` 30 | 31 | See `example/index.js` for an example usage with [mirror-folder](https://github.com/mafintosh/mirror-folder). 32 | 33 | ## API 34 | 35 | ### `var bag = BagIt(dest, algorithm, [bagInfo])` 36 | 37 | * `dest` is the destination directory for the bag 38 | * `algorithm` is a string specifying which checksum algorithms to use. Default is `sha256`. 39 | * `bagInfo` is a object with data to be written to `bag-info.txt`, e.g. `bagInfo = {'Contact-Name': 'Joe Hand'}`. See below for details on `bag-info.txt`. 40 | 41 | ### `bag.finalize(cb)` 42 | 43 | Finalize the bag, writing `bag-info.txt` and `bagit.txt`. Date and size are automatically written to the info. This should only be called when the bag is complete. 44 | 45 | ### Using Finalized Bags 46 | 47 | #### `bag.readFile(name, [opts], cb)` 48 | 49 | Read a file from a completed bag. File is verified with checksum in manifest unless `opts.verify === false`. 50 | 51 | #### `bag.readManifest(callback(err, entries))` 52 | 53 | Get all entries in the manifest. 54 | 55 | #### `bag.getManifestEntry(name, callback(err, entry))` 56 | 57 | Get specific entry `{checksum: , name: data/file.txt}` in the manifest. 58 | 59 | ### `fs` API 60 | 61 | Several of the node `fs` functions are implemented allowing you to create or read from bags like the fs. Most of these just wrap the `fs` calls to act on the bag's `data` folder. 62 | 63 | * `bag.createWriteStream(name, opts, cb)` - writes file to `bagDir/data` and the checksum hash to the manifest. 64 | * `bag.mkdir(name, opts, cb)` - make a dir in the `data/` folder. 65 | * `bag.createReadStream(name, opts, cb)` - file is not verified with manifest (yet). 66 | * `bag.mkdir(name, cb)` 67 | * `bag.stat(name, cb)` 68 | * `bag.lstat(name, cb)` 69 | * `bag.readdir(name, cb)` 70 | * `bag.unlink(name, cb)` 71 | * `bag.rmdir(name, cb)` 72 | 73 | ## BagIt Spec Support 74 | 75 | `bagit-fs` is a fully compliant implementation of the specification but there are some optional parts not yet implemented. 76 | 77 | ### TODO: 78 | 79 | * [Tags + Tag Manifest](https://tools.ietf.org/html/draft-kunze-bagit-14#section-2.2.1) 80 | * [Fetch file](https://tools.ietf.org/html/draft-kunze-bagit-14#section-2.2.3) 81 | * Support creating bag with multiple checksum algorithms 82 | 83 | ### Bag Info 84 | 85 | [bag-info spec](https://tools.ietf.org/html/draft-kunze-bagit-14#section-2.2.2) 86 | 87 | > The "bag-info.txt" file is a tag file that contains metadata elements describing the bag and the payload. The metadata elements contained in the "bag-info.txt" file are intended primarily for human readability. All metadata elements are optional and MAY be repeated. 88 | 89 | `Bagging-Date` and `Bag-Size` are written automatically on `bag.finalize()`. 90 | 91 | Here is an example "bag-info.txt" file: 92 | 93 | ``` 94 | Source-Organization: Spengler University 95 | Organization-Address: 1400 Elm St., Cupertino, California, 95014 96 | Contact-Name: Edna Janssen 97 | Contact-Phone: +1 408-555-1212 98 | Contact-Email: ej@spengler.edu 99 | External-Description: Uncompressed greyscale TIFF images from the 100 | Yoshimuri papers colle... 101 | Bagging-Date: 2008-01-15 102 | External-Identifier: spengler_yoshimuri_001 103 | Bag-Size: 260 GB 104 | Payload-Oxum: 279164409832.1198 105 | Bag-Group-Identifier: spengler_yoshimuri 106 | Bag-Count: 1 of 15 107 | Internal-Sender-Identifier: /storage/images/yoshimuri 108 | Internal-Sender-Description: Uncompressed greyscale TIFFs created 109 | from microfilm and are... 110 | ``` 111 | 112 | ## License 113 | 114 | [MIT](LICENSE.md) 115 | 116 | [npm-image]: https://img.shields.io/npm/v/bagit-fs.svg?style=flat-square 117 | [npm-url]: https://www.npmjs.com/package/bagit-fs 118 | [travis-image]: https://img.shields.io/travis/joehand/bagit-fs.svg?style=flat-square 119 | [travis-url]: https://travis-ci.org/joehand/bagit-fs 120 | [standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square 121 | [standard-url]: http://npm.im/standard 122 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var minimist = require('minimist') 4 | var mirror = require('mirror-folder') 5 | var BagIt = require('.') 6 | 7 | var argv = minimist(process.argv.slice(2), { 8 | alias: { 9 | algo: 'a', 10 | watch: 'w' 11 | }, 12 | boolean: ['watch'] 13 | }) 14 | 15 | var src = argv._[0] || process.cwd() 16 | var dest = argv._[1] || 'bag' 17 | var bag = BagIt(dest, argv.algo) // TODO: bag info 18 | 19 | mirror(src, {name: '/', fs: bag}, { 20 | ignore: function (name) { }, 21 | live: argv.watch 22 | }, function (err) { 23 | if (err) throw err 24 | bag.finalize(function () { 25 | console.log('Bagged!') 26 | }) 27 | }) 28 | -------------------------------------------------------------------------------- /example/archive.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var hyperdrive = require('hyperdrive') 3 | var mirror = require('mirror-folder') 4 | var ram = require('random-access-memory') 5 | var BagIt = require('..') 6 | 7 | var src = path.join(__dirname, '..') 8 | var outputDir = path.join(__dirname, 'bag') 9 | 10 | var archive = hyperdrive(ram) 11 | dirToArchive() 12 | 13 | function dirToArchive () { 14 | console.log('mirroring src to archive') 15 | mirror(src, {name: '/', fs: archive}, { 16 | ignore: function (name) { 17 | name = path.relative(src, name) 18 | if (name.indexOf('.git') > -1) return true 19 | if (name.indexOf('node_modules') > -1) return true 20 | if (name.indexOf('example') > -1) return true 21 | return false 22 | } 23 | }, function (err) { 24 | if (err) throw err 25 | console.log('archive created, bagging') 26 | archiveToBag() 27 | }) 28 | } 29 | 30 | function archiveToBag() { 31 | var bag = BagIt(outputDir, {'Contact-Name': 'Joe Hand'}) 32 | mirror({name: '/', fs: archive}, {name: '/', fs: bag}, function (err) { 33 | if (err) return console.error(err) 34 | console.log('done bagging, finalizing') 35 | bag.finalize(function (err) { 36 | if (err) return console.err(err) 37 | console.log('bag finalized') 38 | }) 39 | }) 40 | } 41 | -------------------------------------------------------------------------------- /example/index.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var mirror = require('mirror-folder') 3 | var BagIt = require('..') 4 | 5 | var src = path.join(__dirname, '..') 6 | var outputDir = path.join(__dirname, 'bag') 7 | var bag = BagIt(outputDir, {'Contact-Name': 'Joe Hand'}) 8 | 9 | console.log('starting mirror') 10 | mirror(src, {name: '/', fs: bag}, { 11 | ignore: function (name) { 12 | name = path.relative(src, name) 13 | if (name.indexOf('.git') > -1) return true 14 | if (name.indexOf('node_modules') > -1) return true 15 | if (name.indexOf('example') > -1) return true 16 | return false 17 | } 18 | }, function (err) { 19 | if (err) return console.error(err) 20 | console.log('done bagging, finalizing') 21 | bag.finalize(function (err) { 22 | if (err) return console.err(err) 23 | console.log('bag finalized') 24 | }) 25 | }) 26 | -------------------------------------------------------------------------------- /example/verify.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var BagIt = require('..') 3 | 4 | var bag = BagIt(path.join(__dirname, 'bag')) 5 | 6 | // Verify file contents from an existing bag (run example/index.js first) 7 | bag.readFile('README.md', 'utf-8', function (err, data) { 8 | if (err) return console.error(err) 9 | console.log(data) 10 | }) 11 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert') 2 | var fs = require('fs') 3 | var path = require('path') 4 | var crypto = require('crypto') 5 | var mkdirp = require('mkdirp') 6 | var count = require('count-files') 7 | var pretty = require('prettier-bytes') 8 | var through = require('through2') 9 | var collect = require('stream-collector') 10 | var constants = require('./lib/const') 11 | 12 | module.exports = BagIt 13 | 14 | function BagIt (dir, algo, opts) { 15 | if (!(this instanceof BagIt)) return new BagIt(dir, algo, opts) 16 | assert.equal(typeof dir, 'string', 'bagit-fs: directory required') 17 | if (typeof algo !== 'string') { 18 | opts = algo 19 | algo = null 20 | } 21 | if (!opts) opts = {} 22 | 23 | this.dir = dir 24 | this.algo = algo || 'sha256' 25 | this.manifest = path.join(dir, 'manifest-' + this.algo + '.txt') 26 | this.dataDir = path.join(dir, 'data') 27 | this.bagInfo = opts 28 | 29 | mkdirp.sync(this.dataDir) 30 | } 31 | 32 | BagIt.prototype.finalize = function (cb) { 33 | var self = this 34 | self._writeDeclaration(function (err) { 35 | if (err) return cb(err) 36 | var info = self.bagInfo 37 | count(self.dataDir, function (err, stats) { 38 | if (err) return cb(err) 39 | info['Bagging-Date'] = new Date().toISOString().split('T')[0] 40 | info['Bag-Size'] = pretty(stats.bytes) 41 | self._writeBagInfo(info, cb) 42 | }) 43 | }) 44 | } 45 | 46 | BagIt.prototype._writeDeclaration = function (opts, cb) { 47 | if (typeof opts === 'function') return this._writeDeclaration({}, opts) 48 | if (!opts) opts = {} 49 | 50 | var self = this 51 | var version = opts.version || constants.DECLARATION.version 52 | var encoding = opts.encoding || constants.DECLARATION.encoding 53 | var data = [ 54 | `BagIt-Version: ${version}`, 55 | `Tag-File-Character-Encoding: ${encoding}` 56 | ].join('\n') 57 | 58 | fs.writeFile(path.join(self.dir, constants.DECLARATION.name), data, cb) 59 | } 60 | 61 | BagIt.prototype._writeBagInfo = function (opts, cb) { 62 | if (typeof opts === 'function') return this._writeBagInfo(null, opts) 63 | 64 | var info = opts || this.bagInfo 65 | if (!info) return cb(new Error('Bag Info required')) 66 | 67 | var self = this 68 | var data = Object.keys(info).map(function (key) { 69 | return `${key}: ${info[key]}` 70 | }).join('\n') 71 | fs.writeFile(path.join(self.dir, 'bag-info.txt'), data, cb) 72 | } 73 | 74 | BagIt.prototype.readFile = function (name, opts, cb) { 75 | if (typeof opts === 'function') return this.readFile(name, null, opts) 76 | if (typeof opts === 'string') opts = {encoding: opts} 77 | if (!opts) opts = {} 78 | 79 | var self = this 80 | var hash 81 | var digest 82 | var rs = this.createReadStream(name) 83 | var verify = !(opts.verify === false) 84 | 85 | if (verify) { 86 | var digest = crypto.createHash(this.algo) 87 | rs.on('data', function (data) { 88 | digest.update(data) 89 | }) 90 | } 91 | 92 | collect(rs, function (err, bufs) { 93 | if (err) return cb(err) 94 | var buf = bufs.length === 1 ? bufs[0] : Buffer.concat(bufs) 95 | var result = opts.encoding ? buf.toString(opts.encoding) : buf 96 | if (!verify) return cb(null, result) 97 | 98 | self.getManifestEntry(name, function (err, entry) { 99 | if (err) return cb(err) 100 | if (!entry) return cb(new Error('File not found in manifest.')) 101 | hash = digest.digest('hex') 102 | if (hash !== entry.checksum) return cb(new Error('File does not match manifest checksum value.')) 103 | cb(null, result) 104 | }) 105 | }) 106 | } 107 | 108 | BagIt.prototype.getManifestEntry = function (name, cb) { 109 | this.readManifest(function (err, entries) { 110 | if (err) return cb(err) 111 | var entry = entries.filter(function (entry) { 112 | return entry.name === 'data/' + name 113 | }) 114 | if (entry.length > 1) return cb(new Error('multiple files found')) 115 | if (!entry.length) return cb() 116 | cb(null, entry[0]) 117 | }) 118 | } 119 | 120 | BagIt.prototype.readManifest = function (cb) { 121 | fs.readFile(this.manifest, 'utf-8', function (err, data) { 122 | if (err) return cb(err) 123 | var entries = data.split('\n').map(function (line) { 124 | line = line.split(' ') 125 | return { checksum: line[0], name: line[1] } 126 | }) 127 | cb(null, entries) 128 | }) 129 | } 130 | 131 | BagIt.prototype.createReadStream = function (name, opts) { 132 | name = path.join(this.dataDir, name) 133 | // TODO: opts.verify - check checksum while reading 134 | return fs.createReadStream(name, opts) 135 | } 136 | 137 | BagIt.prototype.createWriteStream = function (name, opts) { 138 | // TODO: support writing to fetch.txt + manifest but not data/ 139 | var self = this 140 | 141 | name = path.join(self.dataDir, name) 142 | var hash = null 143 | var digest = crypto.createHash(self.algo) 144 | 145 | var ws = fs.createWriteStream(name, opts) 146 | var stream = through( 147 | function (chunk, enc, cb) { 148 | digest.update(chunk) 149 | cb(null, chunk) 150 | }, 151 | function (cb) { 152 | hash = digest.digest('hex') 153 | // TODO: check if old file hash is in manifest 154 | var data = `${hash} ${path.relative(self.dir, name).split(path.sep).join('/')}\n` 155 | fs.appendFile(self.manifest, data, cb) 156 | } 157 | ) 158 | stream.pipe(ws) 159 | 160 | return stream 161 | } 162 | 163 | BagIt.prototype.stat = function (name, cb) { 164 | name = path.join(this.dataDir, name) 165 | return fs.stat(name, cb) 166 | } 167 | 168 | BagIt.prototype.lstat = function (name, cb) { 169 | name = path.join(this.dataDir, name) 170 | return fs.lstat(name, cb) 171 | } 172 | 173 | BagIt.prototype.readdir = function (name, cb) { 174 | name = path.join(this.dataDir, name) 175 | return fs.lstat(name, cb) 176 | } 177 | 178 | BagIt.prototype.mkdir = function (name, opts, cb) { 179 | name = path.join(this.dataDir, name) 180 | return fs.mkdir(name, opts, cb) 181 | } 182 | 183 | BagIt.prototype.unlink = function (name, cb) { 184 | name = path.join(this.dataDir, name) 185 | return fs.unlink(name, cb) 186 | } 187 | 188 | BagIt.prototype.rmdir = function (name, cb) { 189 | name = path.join(this.dataDir, name) 190 | return fs.rmdir(name, cb) 191 | } 192 | -------------------------------------------------------------------------------- /lib/const.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | DECLARATION: { 3 | name: 'bagit.txt', 4 | version: '0.97', 5 | encoding: 'UTF-8' 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bagit-fs", 3 | "version": "1.1.1", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "acorn": { 7 | "version": "5.1.1", 8 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", 9 | "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", 10 | "dev": true 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 | "dependencies": { 18 | "acorn": { 19 | "version": "3.3.0", 20 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 21 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 22 | "dev": true 23 | } 24 | } 25 | }, 26 | "ajv": { 27 | "version": "4.11.8", 28 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 29 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 30 | "dev": true 31 | }, 32 | "ajv-keywords": { 33 | "version": "1.5.1", 34 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 35 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 36 | "dev": true 37 | }, 38 | "amdefine": { 39 | "version": "1.0.1", 40 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 41 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 42 | "dev": true, 43 | "optional": true 44 | }, 45 | "ansi-diff-stream": { 46 | "version": "1.2.0", 47 | "resolved": "https://registry.npmjs.org/ansi-diff-stream/-/ansi-diff-stream-1.2.0.tgz", 48 | "integrity": "sha1-6zJcIKw2I+zVkgEakpXXbZfeRg4=" 49 | }, 50 | "ansi-escapes": { 51 | "version": "1.4.0", 52 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 53 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 54 | "dev": true 55 | }, 56 | "ansi-regex": { 57 | "version": "2.1.1", 58 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 59 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 60 | }, 61 | "ansi-styles": { 62 | "version": "2.2.1", 63 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 64 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 65 | "dev": true 66 | }, 67 | "append-tree": { 68 | "version": "2.3.6", 69 | "resolved": "https://registry.npmjs.org/append-tree/-/append-tree-2.3.6.tgz", 70 | "integrity": "sha512-GVOpyVDH6ynEQykoKN7kXB3uewyZSlcCoBoelffCgBDCSWQTNlTOhnJ85ofxMmsNmGifgAgXVTxs2LP5BOSfhA==", 71 | "dev": true 72 | }, 73 | "argparse": { 74 | "version": "1.0.9", 75 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 76 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 77 | "dev": true 78 | }, 79 | "array-lru": { 80 | "version": "1.1.1", 81 | "resolved": "https://registry.npmjs.org/array-lru/-/array-lru-1.1.1.tgz", 82 | "integrity": "sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc=", 83 | "dev": true 84 | }, 85 | "array-union": { 86 | "version": "1.0.2", 87 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 88 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 89 | "dev": true 90 | }, 91 | "array-uniq": { 92 | "version": "1.0.3", 93 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 94 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 95 | "dev": true 96 | }, 97 | "array.prototype.find": { 98 | "version": "2.0.4", 99 | "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", 100 | "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", 101 | "dev": true 102 | }, 103 | "arrify": { 104 | "version": "1.0.1", 105 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 106 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 107 | "dev": true 108 | }, 109 | "atomic-batcher": { 110 | "version": "1.0.2", 111 | "resolved": "https://registry.npmjs.org/atomic-batcher/-/atomic-batcher-1.0.2.tgz", 112 | "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=", 113 | "dev": true 114 | }, 115 | "babel-code-frame": { 116 | "version": "6.22.0", 117 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", 118 | "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", 119 | "dev": true, 120 | "dependencies": { 121 | "esutils": { 122 | "version": "2.0.2", 123 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 124 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 125 | "dev": true 126 | } 127 | } 128 | }, 129 | "balanced-match": { 130 | "version": "1.0.0", 131 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 132 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 133 | "dev": true 134 | }, 135 | "base64-to-uint8array": { 136 | "version": "1.0.0", 137 | "resolved": "https://registry.npmjs.org/base64-to-uint8array/-/base64-to-uint8array-1.0.0.tgz", 138 | "integrity": "sha512-drjWQcees55+XQSVHYxiUF05Fj6ko3XJUoxykZEXbm0BMmNz2ieWiZGJ+6TFWnjN2saucG6pI13LS92O4kaiAg==", 139 | "dev": true 140 | }, 141 | "bitfield-rle": { 142 | "version": "2.1.0", 143 | "resolved": "https://registry.npmjs.org/bitfield-rle/-/bitfield-rle-2.1.0.tgz", 144 | "integrity": "sha1-rinpOCp7pImN6fSLsj/TOMT73Pg=", 145 | "dev": true, 146 | "dependencies": { 147 | "varint": { 148 | "version": "4.0.1", 149 | "resolved": "https://registry.npmjs.org/varint/-/varint-4.0.1.tgz", 150 | "integrity": "sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk=", 151 | "dev": true 152 | } 153 | } 154 | }, 155 | "blake2b": { 156 | "version": "2.1.2", 157 | "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.2.tgz", 158 | "integrity": "sha1-aIDt3KNc/t6SxPsnJCITNPmJFFo=", 159 | "dev": true 160 | }, 161 | "blake2b-wasm": { 162 | "version": "1.1.3", 163 | "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-1.1.3.tgz", 164 | "integrity": "sha512-4Wt1zsffEytMMGkRxjs5Ttm2mw+0vJgWnQlE1vdA3RcL8JKddajtnKbXv8yj1Hjciqeu9JMh07gVp77kiHK+Yg==", 165 | "dev": true 166 | }, 167 | "brace-expansion": { 168 | "version": "1.1.8", 169 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 170 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 171 | "dev": true 172 | }, 173 | "brfs": { 174 | "version": "1.4.3", 175 | "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.4.3.tgz", 176 | "integrity": "sha1-22ddb16SPm3wh/ylhZyQkKrtMhY=", 177 | "dev": true 178 | }, 179 | "buffer-alloc-unsafe": { 180 | "version": "1.0.0", 181 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.0.0.tgz", 182 | "integrity": "sha1-R0qojzTnvHX6MR0uZFdAnFhGw/4=", 183 | "dev": true 184 | }, 185 | "buffer-equal": { 186 | "version": "0.0.1", 187 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 188 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", 189 | "dev": true 190 | }, 191 | "buffer-equals": { 192 | "version": "1.0.4", 193 | "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", 194 | "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=", 195 | "dev": true 196 | }, 197 | "builtin-modules": { 198 | "version": "1.1.1", 199 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 200 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 201 | "dev": true 202 | }, 203 | "bulk-write-stream": { 204 | "version": "1.1.3", 205 | "resolved": "https://registry.npmjs.org/bulk-write-stream/-/bulk-write-stream-1.1.3.tgz", 206 | "integrity": "sha1-0pyjhfvVPzV67lvT0wKHMrYq4nU=", 207 | "dev": true 208 | }, 209 | "caller-path": { 210 | "version": "0.1.0", 211 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 212 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 213 | "dev": true 214 | }, 215 | "callsites": { 216 | "version": "0.2.0", 217 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 218 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 219 | "dev": true 220 | }, 221 | "chalk": { 222 | "version": "1.1.3", 223 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 224 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 225 | "dev": true 226 | }, 227 | "circular-json": { 228 | "version": "0.3.1", 229 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", 230 | "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=", 231 | "dev": true 232 | }, 233 | "cli-cursor": { 234 | "version": "1.0.2", 235 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 236 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 237 | "dev": true 238 | }, 239 | "cli-width": { 240 | "version": "2.1.0", 241 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 242 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 243 | "dev": true 244 | }, 245 | "co": { 246 | "version": "4.6.0", 247 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 248 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 249 | "dev": true 250 | }, 251 | "code-point-at": { 252 | "version": "1.1.0", 253 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 254 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 255 | "dev": true 256 | }, 257 | "codecs": { 258 | "version": "1.2.0", 259 | "resolved": "https://registry.npmjs.org/codecs/-/codecs-1.2.0.tgz", 260 | "integrity": "sha1-UUhUnj0VbF+gU9fLtBlxWgz0PRY=", 261 | "dev": true 262 | }, 263 | "concat-map": { 264 | "version": "0.0.1", 265 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 266 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 267 | "dev": true 268 | }, 269 | "concat-stream": { 270 | "version": "1.6.0", 271 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 272 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 273 | "dev": true 274 | }, 275 | "contains-path": { 276 | "version": "0.1.0", 277 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 278 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 279 | "dev": true 280 | }, 281 | "core-util-is": { 282 | "version": "1.0.2", 283 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 284 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 285 | }, 286 | "count-files": { 287 | "version": "2.6.2", 288 | "resolved": "https://registry.npmjs.org/count-files/-/count-files-2.6.2.tgz", 289 | "integrity": "sha1-XIEWGX71aVJ717S9WqLAM7kJU9M=" 290 | }, 291 | "d": { 292 | "version": "1.0.0", 293 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 294 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 295 | "dev": true 296 | }, 297 | "debug": { 298 | "version": "2.6.8", 299 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 300 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 301 | "dev": true 302 | }, 303 | "debug-log": { 304 | "version": "1.0.1", 305 | "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", 306 | "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", 307 | "dev": true 308 | }, 309 | "deep-equal": { 310 | "version": "1.0.1", 311 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 312 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", 313 | "dev": true 314 | }, 315 | "deep-is": { 316 | "version": "0.1.3", 317 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 318 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 319 | "dev": true 320 | }, 321 | "define-properties": { 322 | "version": "1.1.2", 323 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 324 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 325 | "dev": true 326 | }, 327 | "defined": { 328 | "version": "1.0.0", 329 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 330 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 331 | "dev": true 332 | }, 333 | "deglob": { 334 | "version": "2.1.0", 335 | "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz", 336 | "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=", 337 | "dev": true 338 | }, 339 | "del": { 340 | "version": "2.2.2", 341 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 342 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 343 | "dev": true 344 | }, 345 | "doctrine": { 346 | "version": "2.0.0", 347 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", 348 | "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", 349 | "dev": true, 350 | "dependencies": { 351 | "esutils": { 352 | "version": "2.0.2", 353 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 354 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 355 | "dev": true 356 | } 357 | } 358 | }, 359 | "duplexer": { 360 | "version": "0.1.1", 361 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 362 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", 363 | "dev": true 364 | }, 365 | "duplexer2": { 366 | "version": "0.0.2", 367 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", 368 | "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", 369 | "dev": true, 370 | "dependencies": { 371 | "isarray": { 372 | "version": "0.0.1", 373 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 374 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 375 | "dev": true 376 | }, 377 | "readable-stream": { 378 | "version": "1.1.14", 379 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 380 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 381 | "dev": true 382 | }, 383 | "string_decoder": { 384 | "version": "0.10.31", 385 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 386 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 387 | "dev": true 388 | } 389 | } 390 | }, 391 | "duplexify": { 392 | "version": "3.5.0", 393 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", 394 | "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", 395 | "dev": true 396 | }, 397 | "end-of-stream": { 398 | "version": "1.0.0", 399 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", 400 | "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", 401 | "dev": true, 402 | "dependencies": { 403 | "once": { 404 | "version": "1.3.3", 405 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 406 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", 407 | "dev": true 408 | } 409 | } 410 | }, 411 | "error-ex": { 412 | "version": "1.3.1", 413 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 414 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 415 | "dev": true 416 | }, 417 | "es-abstract": { 418 | "version": "1.7.0", 419 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", 420 | "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", 421 | "dev": true 422 | }, 423 | "es-to-primitive": { 424 | "version": "1.1.1", 425 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 426 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 427 | "dev": true 428 | }, 429 | "es5-ext": { 430 | "version": "0.10.24", 431 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz", 432 | "integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=", 433 | "dev": true 434 | }, 435 | "es6-iterator": { 436 | "version": "2.0.1", 437 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", 438 | "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", 439 | "dev": true 440 | }, 441 | "es6-map": { 442 | "version": "0.1.5", 443 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 444 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 445 | "dev": true 446 | }, 447 | "es6-set": { 448 | "version": "0.1.5", 449 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 450 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 451 | "dev": true 452 | }, 453 | "es6-symbol": { 454 | "version": "3.1.1", 455 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 456 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 457 | "dev": true 458 | }, 459 | "es6-weak-map": { 460 | "version": "2.0.2", 461 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 462 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 463 | "dev": true 464 | }, 465 | "escape-string-regexp": { 466 | "version": "1.0.5", 467 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 468 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 469 | "dev": true 470 | }, 471 | "escodegen": { 472 | "version": "1.3.3", 473 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", 474 | "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", 475 | "dev": true 476 | }, 477 | "escope": { 478 | "version": "3.6.0", 479 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 480 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 481 | "dev": true, 482 | "dependencies": { 483 | "estraverse": { 484 | "version": "4.2.0", 485 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 486 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 487 | "dev": true 488 | } 489 | } 490 | }, 491 | "eslint": { 492 | "version": "3.19.0", 493 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", 494 | "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", 495 | "dev": true, 496 | "dependencies": { 497 | "estraverse": { 498 | "version": "4.2.0", 499 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 500 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 501 | "dev": true 502 | }, 503 | "esutils": { 504 | "version": "2.0.2", 505 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 506 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 507 | "dev": true 508 | } 509 | } 510 | }, 511 | "eslint-config-standard": { 512 | "version": "10.2.1", 513 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", 514 | "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", 515 | "dev": true 516 | }, 517 | "eslint-config-standard-jsx": { 518 | "version": "4.0.1", 519 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.1.tgz", 520 | "integrity": "sha1-zU5GPQJo4tnnB/YfQvc/WzMzxkI=", 521 | "dev": true 522 | }, 523 | "eslint-import-resolver-node": { 524 | "version": "0.2.3", 525 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", 526 | "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", 527 | "dev": true 528 | }, 529 | "eslint-module-utils": { 530 | "version": "2.1.1", 531 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", 532 | "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", 533 | "dev": true 534 | }, 535 | "eslint-plugin-import": { 536 | "version": "2.2.0", 537 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", 538 | "integrity": "sha1-crowb60wXWfEgWNIpGmaQimsi04=", 539 | "dev": true, 540 | "dependencies": { 541 | "doctrine": { 542 | "version": "1.5.0", 543 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 544 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 545 | "dev": true 546 | }, 547 | "esutils": { 548 | "version": "2.0.2", 549 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 550 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 551 | "dev": true 552 | } 553 | } 554 | }, 555 | "eslint-plugin-node": { 556 | "version": "4.2.2", 557 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-4.2.2.tgz", 558 | "integrity": "sha1-gpWcqa7Xn8vSi7GxiNBcrAT7M2M=", 559 | "dev": true 560 | }, 561 | "eslint-plugin-promise": { 562 | "version": "3.5.0", 563 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", 564 | "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=", 565 | "dev": true 566 | }, 567 | "eslint-plugin-react": { 568 | "version": "6.10.3", 569 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", 570 | "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=", 571 | "dev": true, 572 | "dependencies": { 573 | "doctrine": { 574 | "version": "1.5.0", 575 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 576 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 577 | "dev": true 578 | }, 579 | "esutils": { 580 | "version": "2.0.2", 581 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 582 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 583 | "dev": true 584 | } 585 | } 586 | }, 587 | "eslint-plugin-standard": { 588 | "version": "3.0.1", 589 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", 590 | "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", 591 | "dev": true 592 | }, 593 | "espree": { 594 | "version": "3.4.3", 595 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", 596 | "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", 597 | "dev": true 598 | }, 599 | "esprima": { 600 | "version": "1.1.1", 601 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", 602 | "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", 603 | "dev": true 604 | }, 605 | "esquery": { 606 | "version": "1.0.0", 607 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 608 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 609 | "dev": true, 610 | "dependencies": { 611 | "estraverse": { 612 | "version": "4.2.0", 613 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 614 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 615 | "dev": true 616 | } 617 | } 618 | }, 619 | "esrecurse": { 620 | "version": "4.2.0", 621 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 622 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 623 | "dev": true, 624 | "dependencies": { 625 | "estraverse": { 626 | "version": "4.2.0", 627 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 628 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 629 | "dev": true 630 | } 631 | } 632 | }, 633 | "estraverse": { 634 | "version": "1.5.1", 635 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", 636 | "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", 637 | "dev": true 638 | }, 639 | "esutils": { 640 | "version": "1.0.0", 641 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", 642 | "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", 643 | "dev": true 644 | }, 645 | "event-emitter": { 646 | "version": "0.3.5", 647 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 648 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 649 | "dev": true 650 | }, 651 | "exit-hook": { 652 | "version": "1.1.1", 653 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 654 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 655 | "dev": true 656 | }, 657 | "falafel": { 658 | "version": "2.1.0", 659 | "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", 660 | "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", 661 | "dev": true, 662 | "dependencies": { 663 | "isarray": { 664 | "version": "0.0.1", 665 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 666 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 667 | "dev": true 668 | } 669 | } 670 | }, 671 | "fast-levenshtein": { 672 | "version": "2.0.6", 673 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 674 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 675 | "dev": true 676 | }, 677 | "fd-read-stream": { 678 | "version": "1.1.0", 679 | "resolved": "https://registry.npmjs.org/fd-read-stream/-/fd-read-stream-1.1.0.tgz", 680 | "integrity": "sha1-0wPMv+4CqaVqNJP7CLy1lpGqU7E=" 681 | }, 682 | "figures": { 683 | "version": "1.7.0", 684 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 685 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 686 | "dev": true 687 | }, 688 | "file-entry-cache": { 689 | "version": "2.0.0", 690 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 691 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 692 | "dev": true 693 | }, 694 | "find-root": { 695 | "version": "1.1.0", 696 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 697 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 698 | "dev": true 699 | }, 700 | "find-up": { 701 | "version": "1.1.2", 702 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 703 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 704 | "dev": true 705 | }, 706 | "flat-cache": { 707 | "version": "1.2.2", 708 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 709 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 710 | "dev": true 711 | }, 712 | "flat-tree": { 713 | "version": "1.6.0", 714 | "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.6.0.tgz", 715 | "integrity": "sha1-/KMM3bkAb7ZW6168ea6ydOf96e0=", 716 | "dev": true 717 | }, 718 | "for-each": { 719 | "version": "0.3.2", 720 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", 721 | "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", 722 | "dev": true 723 | }, 724 | "foreach": { 725 | "version": "2.0.5", 726 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 727 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 728 | "dev": true 729 | }, 730 | "from2": { 731 | "version": "2.3.0", 732 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 733 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 734 | "dev": true 735 | }, 736 | "fs.realpath": { 737 | "version": "1.0.0", 738 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 739 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 740 | "dev": true 741 | }, 742 | "function-bind": { 743 | "version": "1.1.0", 744 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", 745 | "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", 746 | "dev": true 747 | }, 748 | "generate-function": { 749 | "version": "2.0.0", 750 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 751 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", 752 | "dev": true 753 | }, 754 | "generate-object-property": { 755 | "version": "1.2.0", 756 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 757 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 758 | "dev": true 759 | }, 760 | "get-stdin": { 761 | "version": "5.0.1", 762 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", 763 | "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", 764 | "dev": true 765 | }, 766 | "glob": { 767 | "version": "7.1.2", 768 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 769 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 770 | "dev": true 771 | }, 772 | "globals": { 773 | "version": "9.18.0", 774 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 775 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 776 | "dev": true 777 | }, 778 | "globby": { 779 | "version": "5.0.0", 780 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 781 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 782 | "dev": true 783 | }, 784 | "graceful-fs": { 785 | "version": "4.1.11", 786 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 787 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 788 | "dev": true 789 | }, 790 | "has": { 791 | "version": "1.0.1", 792 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 793 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 794 | "dev": true 795 | }, 796 | "has-ansi": { 797 | "version": "2.0.0", 798 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 799 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 800 | "dev": true 801 | }, 802 | "hypercore": { 803 | "version": "5.11.3", 804 | "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-5.11.3.tgz", 805 | "integrity": "sha1-lpOKOc9vvSwtdURA+yp4ZSAUDpQ=", 806 | "dev": true 807 | }, 808 | "hypercore-protocol": { 809 | "version": "6.4.0", 810 | "resolved": "https://registry.npmjs.org/hypercore-protocol/-/hypercore-protocol-6.4.0.tgz", 811 | "integrity": "sha1-iXpvoLeSa0iZXdp+A9qtB31jODg=", 812 | "dev": true 813 | }, 814 | "hyperdrive": { 815 | "version": "8.3.2", 816 | "resolved": "https://registry.npmjs.org/hyperdrive/-/hyperdrive-8.3.2.tgz", 817 | "integrity": "sha1-0Zdbd2yLTW4+6k4mPOU47JhGTBo=", 818 | "dev": true 819 | }, 820 | "ignore": { 821 | "version": "3.3.3", 822 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", 823 | "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", 824 | "dev": true 825 | }, 826 | "imurmurhash": { 827 | "version": "0.1.4", 828 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 829 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 830 | "dev": true 831 | }, 832 | "inflight": { 833 | "version": "1.0.6", 834 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 835 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 836 | "dev": true 837 | }, 838 | "inherits": { 839 | "version": "2.0.3", 840 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 841 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 842 | }, 843 | "inquirer": { 844 | "version": "0.12.0", 845 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", 846 | "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", 847 | "dev": true 848 | }, 849 | "interpret": { 850 | "version": "1.0.3", 851 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", 852 | "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", 853 | "dev": true 854 | }, 855 | "is-arrayish": { 856 | "version": "0.2.1", 857 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 858 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 859 | "dev": true 860 | }, 861 | "is-callable": { 862 | "version": "1.1.3", 863 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 864 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", 865 | "dev": true 866 | }, 867 | "is-date-object": { 868 | "version": "1.0.1", 869 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 870 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 871 | "dev": true 872 | }, 873 | "is-finite": { 874 | "version": "1.0.2", 875 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 876 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 877 | "dev": true 878 | }, 879 | "is-fullwidth-code-point": { 880 | "version": "1.0.0", 881 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 882 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 883 | "dev": true 884 | }, 885 | "is-function": { 886 | "version": "1.0.1", 887 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", 888 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", 889 | "dev": true 890 | }, 891 | "is-my-json-valid": { 892 | "version": "2.16.0", 893 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", 894 | "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", 895 | "dev": true 896 | }, 897 | "is-path-cwd": { 898 | "version": "1.0.0", 899 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 900 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 901 | "dev": true 902 | }, 903 | "is-path-in-cwd": { 904 | "version": "1.0.0", 905 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 906 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 907 | "dev": true 908 | }, 909 | "is-path-inside": { 910 | "version": "1.0.0", 911 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 912 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 913 | "dev": true 914 | }, 915 | "is-property": { 916 | "version": "1.0.2", 917 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 918 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", 919 | "dev": true 920 | }, 921 | "is-regex": { 922 | "version": "1.0.4", 923 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 924 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 925 | "dev": true 926 | }, 927 | "is-resolvable": { 928 | "version": "1.0.0", 929 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 930 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 931 | "dev": true 932 | }, 933 | "is-symbol": { 934 | "version": "1.0.1", 935 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 936 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", 937 | "dev": true 938 | }, 939 | "isarray": { 940 | "version": "1.0.0", 941 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 942 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 943 | }, 944 | "js-tokens": { 945 | "version": "3.0.2", 946 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 947 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 948 | "dev": true 949 | }, 950 | "js-yaml": { 951 | "version": "3.9.0", 952 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", 953 | "integrity": "sha512-0LoUNELX4S+iofCT8f4uEHIiRBR+c2AINyC8qRWfC6QNruLtxVZRJaPcu/xwMgFIgDxF25tGHaDjvxzJCNE9yw==", 954 | "dev": true, 955 | "dependencies": { 956 | "esprima": { 957 | "version": "4.0.0", 958 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 959 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 960 | "dev": true 961 | } 962 | } 963 | }, 964 | "json-stable-stringify": { 965 | "version": "1.0.1", 966 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 967 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 968 | "dev": true 969 | }, 970 | "jsonify": { 971 | "version": "0.0.0", 972 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 973 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 974 | "dev": true 975 | }, 976 | "jsonpointer": { 977 | "version": "4.0.1", 978 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 979 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 980 | "dev": true 981 | }, 982 | "jsx-ast-utils": { 983 | "version": "1.4.1", 984 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", 985 | "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", 986 | "dev": true 987 | }, 988 | "last-one-wins": { 989 | "version": "1.0.4", 990 | "resolved": "https://registry.npmjs.org/last-one-wins/-/last-one-wins-1.0.4.tgz", 991 | "integrity": "sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=", 992 | "dev": true 993 | }, 994 | "levn": { 995 | "version": "0.3.0", 996 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 997 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 998 | "dev": true 999 | }, 1000 | "load-json-file": { 1001 | "version": "2.0.0", 1002 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1003 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1004 | "dev": true 1005 | }, 1006 | "locate-path": { 1007 | "version": "2.0.0", 1008 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1009 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1010 | "dev": true, 1011 | "dependencies": { 1012 | "path-exists": { 1013 | "version": "3.0.0", 1014 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1015 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1016 | "dev": true 1017 | } 1018 | } 1019 | }, 1020 | "lodash": { 1021 | "version": "4.17.4", 1022 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1023 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1024 | "dev": true 1025 | }, 1026 | "lodash.cond": { 1027 | "version": "4.5.2", 1028 | "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", 1029 | "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", 1030 | "dev": true 1031 | }, 1032 | "lodash.throttle": { 1033 | "version": "4.1.1", 1034 | "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", 1035 | "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" 1036 | }, 1037 | "memory-pager": { 1038 | "version": "1.0.3", 1039 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.0.3.tgz", 1040 | "integrity": "sha1-A3gSAD5mq+3MhMynIsQlWQ6Pqog=", 1041 | "dev": true 1042 | }, 1043 | "merkle-tree-stream": { 1044 | "version": "3.0.3", 1045 | "resolved": "https://registry.npmjs.org/merkle-tree-stream/-/merkle-tree-stream-3.0.3.tgz", 1046 | "integrity": "sha1-+KBkdg0355eK1fn208EZpJT1cIE=", 1047 | "dev": true 1048 | }, 1049 | "minimatch": { 1050 | "version": "3.0.4", 1051 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1052 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1053 | "dev": true 1054 | }, 1055 | "minimist": { 1056 | "version": "1.2.0", 1057 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1058 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 1059 | }, 1060 | "mirror-folder": { 1061 | "version": "1.2.2", 1062 | "resolved": "https://registry.npmjs.org/mirror-folder/-/mirror-folder-1.2.2.tgz", 1063 | "integrity": "sha1-SpIJV6U2GyonoOEpqO9csUCKIXo=" 1064 | }, 1065 | "mkdirp": { 1066 | "version": "0.5.1", 1067 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1068 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1069 | "dependencies": { 1070 | "minimist": { 1071 | "version": "0.0.8", 1072 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1073 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 1074 | } 1075 | } 1076 | }, 1077 | "ms": { 1078 | "version": "2.0.0", 1079 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1080 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1081 | "dev": true 1082 | }, 1083 | "mute-stream": { 1084 | "version": "0.0.5", 1085 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", 1086 | "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", 1087 | "dev": true 1088 | }, 1089 | "mutexify": { 1090 | "version": "1.1.0", 1091 | "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.1.0.tgz", 1092 | "integrity": "sha1-u+AXdD5UQifuWANM0Q8VmSHxhE0=", 1093 | "dev": true 1094 | }, 1095 | "nan": { 1096 | "version": "2.6.2", 1097 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 1098 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 1099 | "dev": true 1100 | }, 1101 | "nanoassert": { 1102 | "version": "1.0.0", 1103 | "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.0.0.tgz", 1104 | "integrity": "sha1-VVoRIL8mXh0zMy73tYA3ENXiCv8=", 1105 | "dev": true 1106 | }, 1107 | "nanobus": { 1108 | "version": "3.3.0", 1109 | "resolved": "https://registry.npmjs.org/nanobus/-/nanobus-3.3.0.tgz", 1110 | "integrity": "sha1-vOXV1DWlNix9rX+ekM0hlZWJvoY=" 1111 | }, 1112 | "nanotiming": { 1113 | "version": "1.0.1", 1114 | "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-1.0.1.tgz", 1115 | "integrity": "sha1-E+ei4nZ5Z5dP7f/wce3Tkyf0TsM=" 1116 | }, 1117 | "natural-compare": { 1118 | "version": "1.4.0", 1119 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1120 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1121 | "dev": true 1122 | }, 1123 | "neat-log": { 1124 | "version": "1.1.0", 1125 | "resolved": "https://registry.npmjs.org/neat-log/-/neat-log-1.1.0.tgz", 1126 | "integrity": "sha1-Rfe/1KjDvEmBYjbX9feVNDTQP74=" 1127 | }, 1128 | "node-gyp-build": { 1129 | "version": "3.2.0", 1130 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.2.0.tgz", 1131 | "integrity": "sha1-KDvgdJJKq7kkDOP4gMfKDI56ANw=", 1132 | "dev": true 1133 | }, 1134 | "number-is-nan": { 1135 | "version": "1.0.1", 1136 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1137 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1138 | "dev": true 1139 | }, 1140 | "object-assign": { 1141 | "version": "4.1.1", 1142 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1143 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1144 | "dev": true 1145 | }, 1146 | "object-inspect": { 1147 | "version": "0.4.0", 1148 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", 1149 | "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=", 1150 | "dev": true 1151 | }, 1152 | "object-keys": { 1153 | "version": "1.0.11", 1154 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 1155 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 1156 | "dev": true 1157 | }, 1158 | "object.assign": { 1159 | "version": "4.0.4", 1160 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", 1161 | "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", 1162 | "dev": true 1163 | }, 1164 | "once": { 1165 | "version": "1.4.0", 1166 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1167 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" 1168 | }, 1169 | "onetime": { 1170 | "version": "1.1.0", 1171 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 1172 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 1173 | "dev": true 1174 | }, 1175 | "optionator": { 1176 | "version": "0.8.2", 1177 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1178 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1179 | "dev": true 1180 | }, 1181 | "os-homedir": { 1182 | "version": "1.0.2", 1183 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1184 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1185 | "dev": true 1186 | }, 1187 | "p-limit": { 1188 | "version": "1.1.0", 1189 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 1190 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 1191 | "dev": true 1192 | }, 1193 | "p-locate": { 1194 | "version": "2.0.0", 1195 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1196 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1197 | "dev": true 1198 | }, 1199 | "parse-json": { 1200 | "version": "2.2.0", 1201 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1202 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1203 | "dev": true 1204 | }, 1205 | "parse-ms": { 1206 | "version": "1.0.1", 1207 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", 1208 | "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", 1209 | "dev": true 1210 | }, 1211 | "path-exists": { 1212 | "version": "2.1.0", 1213 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1214 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1215 | "dev": true 1216 | }, 1217 | "path-is-absolute": { 1218 | "version": "1.0.1", 1219 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1220 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1221 | "dev": true 1222 | }, 1223 | "path-is-inside": { 1224 | "version": "1.0.2", 1225 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1226 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1227 | "dev": true 1228 | }, 1229 | "path-parse": { 1230 | "version": "1.0.5", 1231 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 1232 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 1233 | "dev": true 1234 | }, 1235 | "pify": { 1236 | "version": "2.3.0", 1237 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1238 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1239 | "dev": true 1240 | }, 1241 | "pinkie": { 1242 | "version": "2.0.4", 1243 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1244 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1245 | "dev": true 1246 | }, 1247 | "pinkie-promise": { 1248 | "version": "2.0.1", 1249 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1250 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1251 | "dev": true 1252 | }, 1253 | "pkg-conf": { 1254 | "version": "2.0.0", 1255 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.0.0.tgz", 1256 | "integrity": "sha1-BxyHZQQDvM+5xif1h1G/5HwGcnk=", 1257 | "dev": true, 1258 | "dependencies": { 1259 | "find-up": { 1260 | "version": "2.1.0", 1261 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1262 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1263 | "dev": true 1264 | } 1265 | } 1266 | }, 1267 | "pkg-config": { 1268 | "version": "1.1.1", 1269 | "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", 1270 | "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", 1271 | "dev": true 1272 | }, 1273 | "pkg-dir": { 1274 | "version": "1.0.0", 1275 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 1276 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 1277 | "dev": true 1278 | }, 1279 | "pkg-up": { 1280 | "version": "1.0.0", 1281 | "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", 1282 | "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", 1283 | "dev": true 1284 | }, 1285 | "plur": { 1286 | "version": "1.0.0", 1287 | "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", 1288 | "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=", 1289 | "dev": true 1290 | }, 1291 | "pluralize": { 1292 | "version": "1.2.1", 1293 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", 1294 | "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", 1295 | "dev": true 1296 | }, 1297 | "prelude-ls": { 1298 | "version": "1.1.2", 1299 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1300 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1301 | "dev": true 1302 | }, 1303 | "prettier-bytes": { 1304 | "version": "1.0.4", 1305 | "resolved": "https://registry.npmjs.org/prettier-bytes/-/prettier-bytes-1.0.4.tgz", 1306 | "integrity": "sha1-mUsCqkb2mcULYle1+qp/4lV+YtY=" 1307 | }, 1308 | "pretty-ms": { 1309 | "version": "2.1.0", 1310 | "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", 1311 | "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", 1312 | "dev": true 1313 | }, 1314 | "process-nextick-args": { 1315 | "version": "1.0.7", 1316 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1317 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 1318 | }, 1319 | "progress": { 1320 | "version": "1.1.8", 1321 | "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", 1322 | "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", 1323 | "dev": true 1324 | }, 1325 | "protocol-buffers": { 1326 | "version": "3.2.1", 1327 | "resolved": "https://registry.npmjs.org/protocol-buffers/-/protocol-buffers-3.2.1.tgz", 1328 | "integrity": "sha1-NyWOF+JKCC8G67F3MekoUdHHaIk=", 1329 | "dev": true 1330 | }, 1331 | "protocol-buffers-schema": { 1332 | "version": "3.3.1", 1333 | "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.1.tgz", 1334 | "integrity": "sha1-rRURQYd8aviChkeFGvZqDbaSdfU=", 1335 | "dev": true 1336 | }, 1337 | "quote-stream": { 1338 | "version": "1.0.2", 1339 | "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", 1340 | "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", 1341 | "dev": true 1342 | }, 1343 | "random-access-file": { 1344 | "version": "1.8.1", 1345 | "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-1.8.1.tgz", 1346 | "integrity": "sha512-+Uhk0Of+dWHWjpbL2hizcwSV1UomcN3S0iUGV6BTZ2Js1BP9jHx3E5CT7y0eLbqTQNkVi4iehkHmia7Mdqa47w==", 1347 | "dev": true 1348 | }, 1349 | "random-access-memory": { 1350 | "version": "2.4.0", 1351 | "resolved": "https://registry.npmjs.org/random-access-memory/-/random-access-memory-2.4.0.tgz", 1352 | "integrity": "sha1-cvPYZbS1WiWYeUc+L7LeNWnGnuI=", 1353 | "dev": true 1354 | }, 1355 | "re-emitter": { 1356 | "version": "1.1.3", 1357 | "resolved": "https://registry.npmjs.org/re-emitter/-/re-emitter-1.1.3.tgz", 1358 | "integrity": "sha1-+p4xn/3u6zWycpbvDz03TawvUqc=", 1359 | "dev": true 1360 | }, 1361 | "readable-stream": { 1362 | "version": "2.3.3", 1363 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 1364 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" 1365 | }, 1366 | "readline2": { 1367 | "version": "1.0.1", 1368 | "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", 1369 | "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", 1370 | "dev": true 1371 | }, 1372 | "rechoir": { 1373 | "version": "0.6.2", 1374 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 1375 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 1376 | "dev": true 1377 | }, 1378 | "recursive-watch": { 1379 | "version": "1.1.2", 1380 | "resolved": "https://registry.npmjs.org/recursive-watch/-/recursive-watch-1.1.2.tgz", 1381 | "integrity": "sha1-kS4tYqg8iziNKIxDQ0lfJHvEP44=" 1382 | }, 1383 | "repeat-string": { 1384 | "version": "1.6.1", 1385 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1386 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 1387 | "dev": true 1388 | }, 1389 | "require-uncached": { 1390 | "version": "1.0.3", 1391 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 1392 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 1393 | "dev": true 1394 | }, 1395 | "resolve": { 1396 | "version": "1.3.3", 1397 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", 1398 | "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", 1399 | "dev": true 1400 | }, 1401 | "resolve-from": { 1402 | "version": "1.0.1", 1403 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 1404 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 1405 | "dev": true 1406 | }, 1407 | "restore-cursor": { 1408 | "version": "1.0.1", 1409 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 1410 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 1411 | "dev": true 1412 | }, 1413 | "resumer": { 1414 | "version": "0.0.0", 1415 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 1416 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 1417 | "dev": true 1418 | }, 1419 | "rimraf": { 1420 | "version": "2.6.1", 1421 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 1422 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 1423 | "dev": true 1424 | }, 1425 | "run-async": { 1426 | "version": "0.1.0", 1427 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", 1428 | "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", 1429 | "dev": true 1430 | }, 1431 | "run-parallel": { 1432 | "version": "1.1.6", 1433 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz", 1434 | "integrity": "sha1-KQA8miFj4B4tLfyQV18sbB1hoDk=", 1435 | "dev": true 1436 | }, 1437 | "rx-lite": { 1438 | "version": "3.1.2", 1439 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", 1440 | "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", 1441 | "dev": true 1442 | }, 1443 | "safe-buffer": { 1444 | "version": "5.1.1", 1445 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1446 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 1447 | }, 1448 | "semver": { 1449 | "version": "5.3.0", 1450 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1451 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1452 | "dev": true 1453 | }, 1454 | "shallow-copy": { 1455 | "version": "0.0.1", 1456 | "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", 1457 | "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", 1458 | "dev": true 1459 | }, 1460 | "shelljs": { 1461 | "version": "0.7.8", 1462 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", 1463 | "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", 1464 | "dev": true 1465 | }, 1466 | "signed-varint": { 1467 | "version": "2.0.1", 1468 | "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", 1469 | "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", 1470 | "dev": true 1471 | }, 1472 | "siphash24": { 1473 | "version": "1.0.2", 1474 | "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.0.2.tgz", 1475 | "integrity": "sha512-/yUF5S4+z46QxpT/mW/wdlsQQTdO1yl3H36aql6u2m3Ve6u9iATS+yHN+rMXr4jm1qQ0wJUDK2ofdkZeQjMmig==", 1476 | "dev": true 1477 | }, 1478 | "slice-ansi": { 1479 | "version": "0.0.4", 1480 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 1481 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 1482 | "dev": true 1483 | }, 1484 | "sodium-javascript": { 1485 | "version": "0.5.1", 1486 | "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.5.1.tgz", 1487 | "integrity": "sha512-M8H34jbD8WPaNVx7LfLyk3fabujOppnjEskJYXSlYqJ83BMFyO3wYFzvhSW3/yL4j0JFgYRYm5c/dzGK1AqxFA==", 1488 | "dev": true 1489 | }, 1490 | "sodium-native": { 1491 | "version": "1.10.2", 1492 | "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-1.10.2.tgz", 1493 | "integrity": "sha512-mMO7CMMOuZLbTq1omps+/2WsHK30UTtz2/KBOFH8DnUm22U4kPVA9rwoz/On0QpIOOyMpzO7oNFOtGlFCBe9Hw==", 1494 | "dev": true 1495 | }, 1496 | "sodium-signatures": { 1497 | "version": "2.1.0", 1498 | "resolved": "https://registry.npmjs.org/sodium-signatures/-/sodium-signatures-2.1.0.tgz", 1499 | "integrity": "sha512-kNTta6Nyc5VR8OHvLHGpjTvdBfTz9+yC+fJBvrdPOquKgyYAE0tfvxoL286uIkHbP/IkdDjiiMbhjsDqUrRMbw==", 1500 | "dev": true 1501 | }, 1502 | "sodium-universal": { 1503 | "version": "1.4.0", 1504 | "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-1.4.0.tgz", 1505 | "integrity": "sha512-hMQ4uoqoyUES9Q8CAeUFYcc2ODq72cq+riSTO+XsuZZjYDTvKlvFIK+v/wMTbv5woa/omMwFvsxib5gVz0qEXg==", 1506 | "dev": true 1507 | }, 1508 | "sorted-indexof": { 1509 | "version": "1.0.0", 1510 | "resolved": "https://registry.npmjs.org/sorted-indexof/-/sorted-indexof-1.0.0.tgz", 1511 | "integrity": "sha1-F8dC/3zxh+L1mhXfm4HxemLOCJk=", 1512 | "dev": true 1513 | }, 1514 | "source-map": { 1515 | "version": "0.1.43", 1516 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", 1517 | "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", 1518 | "dev": true, 1519 | "optional": true 1520 | }, 1521 | "sparse-bitfield": { 1522 | "version": "3.0.3", 1523 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1524 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1525 | "dev": true 1526 | }, 1527 | "split": { 1528 | "version": "1.0.0", 1529 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", 1530 | "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", 1531 | "dev": true 1532 | }, 1533 | "sprintf-js": { 1534 | "version": "1.0.3", 1535 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1536 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1537 | "dev": true 1538 | }, 1539 | "standard": { 1540 | "version": "10.0.2", 1541 | "resolved": "https://registry.npmjs.org/standard/-/standard-10.0.2.tgz", 1542 | "integrity": "sha1-l0wcU8yGWwdaS1dueEQeFpXar3s=", 1543 | "dev": true 1544 | }, 1545 | "standard-engine": { 1546 | "version": "7.0.0", 1547 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-7.0.0.tgz", 1548 | "integrity": "sha1-67d7nI/CyBZf+jU72Rug3/Qa9pA=", 1549 | "dev": true 1550 | }, 1551 | "static-eval": { 1552 | "version": "0.2.4", 1553 | "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", 1554 | "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", 1555 | "dev": true, 1556 | "dependencies": { 1557 | "escodegen": { 1558 | "version": "0.0.28", 1559 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", 1560 | "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", 1561 | "dev": true 1562 | }, 1563 | "esprima": { 1564 | "version": "1.0.4", 1565 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", 1566 | "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", 1567 | "dev": true 1568 | }, 1569 | "estraverse": { 1570 | "version": "1.3.2", 1571 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", 1572 | "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=", 1573 | "dev": true 1574 | } 1575 | } 1576 | }, 1577 | "static-module": { 1578 | "version": "1.4.0", 1579 | "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.4.0.tgz", 1580 | "integrity": "sha1-vvDZtviVhfbyNZuBYb7qsGBV29I=", 1581 | "dev": true, 1582 | "dependencies": { 1583 | "isarray": { 1584 | "version": "0.0.1", 1585 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1586 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", 1587 | "dev": true 1588 | }, 1589 | "minimist": { 1590 | "version": "0.0.8", 1591 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1592 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1593 | "dev": true 1594 | }, 1595 | "object-keys": { 1596 | "version": "0.4.0", 1597 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 1598 | "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", 1599 | "dev": true 1600 | }, 1601 | "quote-stream": { 1602 | "version": "0.0.0", 1603 | "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", 1604 | "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", 1605 | "dev": true 1606 | }, 1607 | "readable-stream": { 1608 | "version": "1.0.34", 1609 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1610 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 1611 | "dev": true 1612 | }, 1613 | "string_decoder": { 1614 | "version": "0.10.31", 1615 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1616 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 1617 | "dev": true 1618 | }, 1619 | "through2": { 1620 | "version": "0.4.2", 1621 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", 1622 | "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", 1623 | "dev": true 1624 | }, 1625 | "xtend": { 1626 | "version": "2.1.2", 1627 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 1628 | "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", 1629 | "dev": true 1630 | } 1631 | } 1632 | }, 1633 | "status-logger": { 1634 | "version": "3.1.0", 1635 | "resolved": "https://registry.npmjs.org/status-logger/-/status-logger-3.1.0.tgz", 1636 | "integrity": "sha1-Y5X8Bzki/rQN1nbj28W8+8h/a2A=" 1637 | }, 1638 | "stream-collector": { 1639 | "version": "1.0.1", 1640 | "resolved": "https://registry.npmjs.org/stream-collector/-/stream-collector-1.0.1.tgz", 1641 | "integrity": "sha1-TU5V8XE1YSGyxfZVn5RHBaso2xU=" 1642 | }, 1643 | "stream-shift": { 1644 | "version": "1.0.0", 1645 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", 1646 | "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", 1647 | "dev": true 1648 | }, 1649 | "string_decoder": { 1650 | "version": "1.0.3", 1651 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 1652 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" 1653 | }, 1654 | "string-width": { 1655 | "version": "1.0.2", 1656 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1657 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1658 | "dev": true 1659 | }, 1660 | "string.prototype.trim": { 1661 | "version": "1.1.2", 1662 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", 1663 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", 1664 | "dev": true 1665 | }, 1666 | "strip-ansi": { 1667 | "version": "3.0.1", 1668 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1669 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1670 | "dev": true 1671 | }, 1672 | "strip-bom": { 1673 | "version": "3.0.0", 1674 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1675 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 1676 | "dev": true 1677 | }, 1678 | "strip-json-comments": { 1679 | "version": "2.0.1", 1680 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1681 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1682 | "dev": true 1683 | }, 1684 | "supports-color": { 1685 | "version": "2.0.0", 1686 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1687 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1688 | "dev": true 1689 | }, 1690 | "table": { 1691 | "version": "3.8.3", 1692 | "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", 1693 | "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", 1694 | "dev": true, 1695 | "dependencies": { 1696 | "ansi-regex": { 1697 | "version": "3.0.0", 1698 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1699 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1700 | "dev": true 1701 | }, 1702 | "is-fullwidth-code-point": { 1703 | "version": "2.0.0", 1704 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1705 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1706 | "dev": true 1707 | }, 1708 | "string-width": { 1709 | "version": "2.1.1", 1710 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1711 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1712 | "dev": true 1713 | }, 1714 | "strip-ansi": { 1715 | "version": "4.0.0", 1716 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1717 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1718 | "dev": true 1719 | } 1720 | } 1721 | }, 1722 | "tap-out": { 1723 | "version": "1.4.2", 1724 | "resolved": "https://registry.npmjs.org/tap-out/-/tap-out-1.4.2.tgz", 1725 | "integrity": "sha1-yQfsG/lAURHQiCY+kvVgi4jLs3o=", 1726 | "dev": true 1727 | }, 1728 | "tap-spec": { 1729 | "version": "4.1.1", 1730 | "resolved": "https://registry.npmjs.org/tap-spec/-/tap-spec-4.1.1.tgz", 1731 | "integrity": "sha1-4unyb1IIIysfViKIyXYk1YqI8Fo=", 1732 | "dev": true, 1733 | "dependencies": { 1734 | "lodash": { 1735 | "version": "3.10.1", 1736 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", 1737 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", 1738 | "dev": true 1739 | } 1740 | } 1741 | }, 1742 | "tape": { 1743 | "version": "4.7.0", 1744 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.7.0.tgz", 1745 | "integrity": "sha512-ePzu2KfZYVtq0v+KKGxBJ9HJWYZ4MaQWeGabD+KpVdMKRen3NJPf6EiwA5BxfMkhQPGtCwnOFWelcB39bhOUng==", 1746 | "dev": true, 1747 | "dependencies": { 1748 | "object-inspect": { 1749 | "version": "1.2.2", 1750 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.2.2.tgz", 1751 | "integrity": "sha1-yCEV5PzIiK6hTWTCLk8X9qcNXlo=", 1752 | "dev": true 1753 | } 1754 | } 1755 | }, 1756 | "text-table": { 1757 | "version": "0.2.0", 1758 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1759 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1760 | "dev": true 1761 | }, 1762 | "through": { 1763 | "version": "2.3.8", 1764 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1765 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1766 | "dev": true 1767 | }, 1768 | "through2": { 1769 | "version": "2.0.3", 1770 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 1771 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=" 1772 | }, 1773 | "thunky": { 1774 | "version": "1.0.2", 1775 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", 1776 | "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", 1777 | "dev": true 1778 | }, 1779 | "trim": { 1780 | "version": "0.0.1", 1781 | "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", 1782 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", 1783 | "dev": true 1784 | }, 1785 | "tryit": { 1786 | "version": "1.0.3", 1787 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 1788 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 1789 | "dev": true 1790 | }, 1791 | "ttl": { 1792 | "version": "1.3.0", 1793 | "resolved": "https://registry.npmjs.org/ttl/-/ttl-1.3.0.tgz", 1794 | "integrity": "sha1-AK2hwNevCQ0+9HlTIbTw1hK0cKU=" 1795 | }, 1796 | "type-check": { 1797 | "version": "0.3.2", 1798 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 1799 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 1800 | "dev": true 1801 | }, 1802 | "typedarray": { 1803 | "version": "0.0.6", 1804 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1805 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 1806 | "dev": true 1807 | }, 1808 | "uint64be": { 1809 | "version": "2.0.1", 1810 | "resolved": "https://registry.npmjs.org/uint64be/-/uint64be-2.0.1.tgz", 1811 | "integrity": "sha1-oxDZTk5eCwKpXWeOMzI/gCvchCg=", 1812 | "dev": true 1813 | }, 1814 | "uniq": { 1815 | "version": "1.0.1", 1816 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", 1817 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", 1818 | "dev": true 1819 | }, 1820 | "unordered-array-remove": { 1821 | "version": "1.0.2", 1822 | "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", 1823 | "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=", 1824 | "dev": true 1825 | }, 1826 | "unordered-set": { 1827 | "version": "2.0.0", 1828 | "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.0.tgz", 1829 | "integrity": "sha1-mFon6XW6oguCY66np5HpMAlBqew=", 1830 | "dev": true 1831 | }, 1832 | "user-home": { 1833 | "version": "2.0.0", 1834 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", 1835 | "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", 1836 | "dev": true 1837 | }, 1838 | "util-deprecate": { 1839 | "version": "1.0.2", 1840 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1841 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1842 | }, 1843 | "varint": { 1844 | "version": "5.0.0", 1845 | "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", 1846 | "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=", 1847 | "dev": true 1848 | }, 1849 | "wordwrap": { 1850 | "version": "1.0.0", 1851 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 1852 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 1853 | "dev": true 1854 | }, 1855 | "wrappy": { 1856 | "version": "1.0.2", 1857 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1858 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1859 | }, 1860 | "write": { 1861 | "version": "0.2.1", 1862 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 1863 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 1864 | "dev": true 1865 | }, 1866 | "xsalsa20": { 1867 | "version": "1.0.2", 1868 | "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.0.2.tgz", 1869 | "integrity": "sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw==", 1870 | "dev": true 1871 | }, 1872 | "xtend": { 1873 | "version": "4.0.1", 1874 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 1875 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 1876 | } 1877 | } 1878 | } 1879 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bagit-fs", 3 | "description": "node fs implementation for bagit format", 4 | "version": "1.1.1", 5 | "author": "Joe Hand ", 6 | "bugs": { 7 | "url": "https://github.com/joehand/bagit-fs/issues" 8 | }, 9 | "devDependencies": { 10 | "hyperdrive": "^8.1.0", 11 | "random-access-memory": "^2.3.0", 12 | "standard": "*", 13 | "tap-spec": "^4.0.2", 14 | "tape": "^4.0.0" 15 | }, 16 | "homepage": "https://github.com/joehand/bagit-fs", 17 | "keywords": [], 18 | "license": "MIT", 19 | "main": "index.js", 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/joehand/bagit-fs.git" 23 | }, 24 | "scripts": { 25 | "test": "standard && tape test/*.js | tap-spec" 26 | }, 27 | "dependencies": { 28 | "count-files": "^2.6.0", 29 | "minimist": "^1.2.0", 30 | "mirror-folder": "^1.2.2", 31 | "mkdirp": "^0.5.1", 32 | "prettier-bytes": "^1.0.3", 33 | "stream-collector": "^1.0.1", 34 | "through2": "^2.0.3" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | var test = require('tape') 2 | 3 | test('Example Test', function (t) { 4 | t.plan(1) 5 | t.error('No tests defined.') 6 | }) 7 | --------------------------------------------------------------------------------