├── .gitignore ├── .travis.yml ├── LICENSE.md ├── README.md ├── index.js ├── package-lock.json ├── package.json └── test └── basic.js /.gitignore: -------------------------------------------------------------------------------- 1 | .nyc_output 2 | node_modules 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "10" 4 | - "9" 5 | - "8" 6 | - "6" 7 | - "4" 8 | sudo: false 9 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | ISC License (ISC) 2 | Copyright 2018 Isaac Z. Schlueter 3 | 4 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 5 | 6 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # natives 2 | 3 | Do stuff with Node.js's native JavaScript modules 4 | 5 | ## Caveat 6 | 7 | Dear Beloved User, 8 | 9 | I feel compelled to give you a word of warning if you are considering 10 | using this module. 11 | 12 | This module lets you do some creative things with the JavaScript code 13 | in Node.js. There are some things here that are basically a recipe 14 | for memory leaks, or at the very least, being broken with each new 15 | release of Node, since none of these API surfaces are "technically" 16 | "supported" by the team managing the Node.js project. 17 | 18 | This module does not ship a _copy_ of Node's internals. It does its 19 | thing by using the exposed source code that lives in Node.js itself. 20 | So, running this on different versions of Node.js will produce 21 | different results. 22 | 23 | When your program is broken by changes to Node's internals, or when 24 | Node changes in such a way that this module becomes fundamentally 25 | broken, you will likely get little sympathy. Many people in the Node 26 | community consider this sort of behavior to be unwise and unseemly, if 27 | not outright hostile and morally wrong. 28 | 29 | At the very least, you probably just want to run Node with the 30 | (undocumented!) `--expose-internals` flag, rather than go to such 31 | lengths. 32 | 33 | Don't use unless you know what you're doing, or at least, are ok with 34 | the risks. Don't say I didn't warn you. 35 | 36 | Eternally Yours in OSS, 37 | Isaac Z. Schlueter 38 | 39 | ## USAGE 40 | 41 | ```javascript 42 | var natives = require('natives') 43 | 44 | // get the source code 45 | var fsCode = natives.source('fs') 46 | 47 | // get a evaluated copy of the module 48 | var fsCopy = natives.require('fs') 49 | 50 | // you can pass in a whitelist to NOT shim certain things 51 | var fsCopyWithNativeStreams = natives.require('fs', ['stream']) 52 | 53 | // note that this is not the same as the "real" fs 54 | assert(fsCopy !== require('fs')) 55 | 56 | // but it does have all the same entries 57 | fsCopy.readFileSync(__filename, 'utf8') // etc 58 | ``` 59 | 60 | ## Another Caveat 61 | 62 | You can't use this to override `require("buffer")` because everything 63 | depends on `Buffer.isBuffer` working properly, so it's important for 64 | that one to be given a pass. 65 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var natives = process.binding('natives') 2 | var module = require('module') 3 | var normalRequire = require 4 | exports.source = src 5 | exports.require = req 6 | var vm = require('vm') 7 | 8 | // fallback for 0.x support 9 | var runInThisContext, ContextifyScript, Script 10 | /*istanbul ignore next*/ 11 | try { 12 | ContextifyScript = process.binding('contextify').ContextifyScript; 13 | /*istanbul ignore next*/ 14 | if (process.version.split('.')[0].length > 2) { // v10.0.0 and above 15 | runInThisContext = vm.runInThisContext; 16 | } else { 17 | runInThisContext = function runInThisContext(code, options) { 18 | var script = new ContextifyScript(code, options); 19 | return script.runInThisContext(); 20 | } 21 | } 22 | } catch (er) { 23 | Script = process.binding('evals').NodeScript; 24 | runInThisContext = Script.runInThisContext; 25 | } 26 | 27 | var wrap = [ 28 | '(function (internalBinding) {' + 29 | ' return function (exports, require, module, __filename, __dirname) { ', 30 | '\n };\n});' 31 | ]; 32 | 33 | 34 | // Basically the same functionality as node's (buried deep) 35 | // NativeModule class, but without caching, or internal/ blocking, 36 | // or a class, since that's not really necessary. I assume that if 37 | // you're loading something with this module, it's because you WANT 38 | // a separate copy. However, to preserve semantics, any require() 39 | // calls made throughout the internal module load IS cached. 40 | function req (id, whitelist) { 41 | var cache = Object.create(null) 42 | 43 | if (Array.isArray(whitelist)) { 44 | // a whitelist of things to pull from the "actual" native modules 45 | whitelist.forEach(function (id) { 46 | cache[id] = { 47 | loading: false, 48 | loaded: true, 49 | filename: id + '.js', 50 | exports: require(id) 51 | } 52 | }) 53 | } 54 | 55 | return req_(id, cache) 56 | } 57 | 58 | function req_ (id, cache) { 59 | // Buffer is special, because it's a type rather than a "normal" 60 | // class, and many things depend on `Buffer.isBuffer` working. 61 | if (id === 'buffer') { 62 | return require('buffer') 63 | } 64 | 65 | // native_module isn't actually a natives binding. 66 | // weird, right? 67 | if (id === 'native_module') { 68 | return { 69 | getSource: src, 70 | wrap: function (script) { 71 | return wrap[0] + script + wrap[1] 72 | }, 73 | wrapper: wrap, 74 | _cache: cache, 75 | _source: natives, 76 | nonInternalExists: function (id) { 77 | return id.indexOf('internal/') !== 0; 78 | } 79 | } 80 | } 81 | 82 | var source = src(id) 83 | if (!source) { 84 | return undefined 85 | } 86 | source = wrap[0] + source + wrap[1] 87 | 88 | var internalBinding = function(name) { 89 | if (name === 'types') { 90 | return process.binding('util'); 91 | } else { 92 | try { 93 | return process.binding(name); 94 | } catch (e) {} 95 | return {}; 96 | } 97 | } 98 | 99 | var cachingRequire = function require (id) { 100 | if (cache[id]) { 101 | return cache[id].exports 102 | } 103 | if (id === 'internal/bootstrap/loaders' || id === 'internal/process') { 104 | // Provide just enough to keep `graceful-fs@3` working and tests passing. 105 | // For now. 106 | return { 107 | internalBinding: internalBinding, 108 | NativeModule: { 109 | _source: process.binding('natives'), 110 | nonInternalExists: function(id) { 111 | return !id.startsWith('internal/'); 112 | } 113 | } 114 | }; 115 | } 116 | return req_(id, cache) 117 | } 118 | 119 | var nm = { 120 | exports: {}, 121 | loading: true, 122 | loaded: false, 123 | filename: id + '.js' 124 | } 125 | cache[id] = nm 126 | var fn 127 | var setV8Flags = false 128 | try { 129 | require('v8').setFlagsFromString('--allow_natives_syntax') 130 | setV8Flags = true 131 | } catch (e) {} 132 | try { 133 | /* istanbul ignore else */ 134 | if (ContextifyScript) { 135 | fn = runInThisContext(source, { 136 | filename: nm.filename, 137 | lineOffset: 0, 138 | displayErrors: true 139 | }); 140 | } else { 141 | fn = runInThisContext(source, nm.filename, true); 142 | } 143 | fn(internalBinding)(nm.exports, cachingRequire, nm, nm.filename, '') 144 | nm.loaded = true 145 | } finally { 146 | nm.loading = false 147 | /*istanbul ignore next*/ 148 | if (setV8Flags) { 149 | // Ref: https://github.com/nodejs/node/blob/591a24b819d53a555463b1cbf9290a6d8bcc1bcb/lib/internal/bootstrap_node.js#L429-L434 150 | var re = /^--allow[-_]natives[-_]syntax$/ 151 | if (!process.execArgv.some(function (s) { return re.test(s) })) 152 | require('v8').setFlagsFromString('--noallow_natives_syntax') 153 | } 154 | } 155 | 156 | return nm.exports 157 | } 158 | 159 | function src (id) { 160 | return natives[id] 161 | } 162 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "natives", 3 | "version": "1.1.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "ansi-regex": { 8 | "version": "2.1.1", 9 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 10 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 11 | "dev": true 12 | }, 13 | "ansi-styles": { 14 | "version": "2.2.1", 15 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 16 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 17 | "dev": true 18 | }, 19 | "argparse": { 20 | "version": "1.0.9", 21 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 22 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 23 | "dev": true, 24 | "requires": { 25 | "sprintf-js": "1.0.3" 26 | } 27 | }, 28 | "asn1": { 29 | "version": "0.2.3", 30 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 31 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 32 | "dev": true 33 | }, 34 | "assert-plus": { 35 | "version": "0.2.0", 36 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 37 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 38 | "dev": true 39 | }, 40 | "asynckit": { 41 | "version": "0.4.0", 42 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 43 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 44 | "dev": true 45 | }, 46 | "aws-sign2": { 47 | "version": "0.6.0", 48 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", 49 | "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", 50 | "dev": true 51 | }, 52 | "aws4": { 53 | "version": "1.6.0", 54 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 55 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 56 | "dev": true 57 | }, 58 | "balanced-match": { 59 | "version": "1.0.0", 60 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 61 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 62 | "dev": true 63 | }, 64 | "bcrypt-pbkdf": { 65 | "version": "1.0.1", 66 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 67 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 68 | "dev": true, 69 | "optional": true, 70 | "requires": { 71 | "tweetnacl": "0.14.5" 72 | } 73 | }, 74 | "bind-obj-methods": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", 77 | "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=", 78 | "dev": true 79 | }, 80 | "bluebird": { 81 | "version": "3.5.1", 82 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 83 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 84 | "dev": true 85 | }, 86 | "boom": { 87 | "version": "2.10.1", 88 | "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", 89 | "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", 90 | "dev": true, 91 | "requires": { 92 | "hoek": "2.16.3" 93 | } 94 | }, 95 | "brace-expansion": { 96 | "version": "1.1.8", 97 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 98 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 99 | "dev": true, 100 | "requires": { 101 | "balanced-match": "1.0.0", 102 | "concat-map": "0.0.1" 103 | } 104 | }, 105 | "caseless": { 106 | "version": "0.11.0", 107 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", 108 | "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", 109 | "dev": true 110 | }, 111 | "chalk": { 112 | "version": "1.1.3", 113 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 114 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 115 | "dev": true, 116 | "requires": { 117 | "ansi-styles": "2.2.1", 118 | "escape-string-regexp": "1.0.5", 119 | "has-ansi": "2.0.0", 120 | "strip-ansi": "3.0.1", 121 | "supports-color": "2.0.0" 122 | } 123 | }, 124 | "clean-yaml-object": { 125 | "version": "0.1.0", 126 | "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", 127 | "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", 128 | "dev": true 129 | }, 130 | "color-support": { 131 | "version": "1.1.3", 132 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 133 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", 134 | "dev": true 135 | }, 136 | "combined-stream": { 137 | "version": "1.0.5", 138 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 139 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 140 | "dev": true, 141 | "requires": { 142 | "delayed-stream": "1.0.0" 143 | } 144 | }, 145 | "commander": { 146 | "version": "2.12.2", 147 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", 148 | "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", 149 | "dev": true 150 | }, 151 | "concat-map": { 152 | "version": "0.0.1", 153 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 154 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 155 | "dev": true 156 | }, 157 | "core-util-is": { 158 | "version": "1.0.2", 159 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 160 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 161 | "dev": true 162 | }, 163 | "coveralls": { 164 | "version": "2.13.3", 165 | "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", 166 | "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", 167 | "dev": true, 168 | "requires": { 169 | "js-yaml": "3.6.1", 170 | "lcov-parse": "0.0.10", 171 | "log-driver": "1.2.5", 172 | "minimist": "1.2.0", 173 | "request": "2.79.0" 174 | }, 175 | "dependencies": { 176 | "js-yaml": { 177 | "version": "3.6.1", 178 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", 179 | "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", 180 | "dev": true, 181 | "requires": { 182 | "argparse": "1.0.9", 183 | "esprima": "2.7.3" 184 | } 185 | } 186 | } 187 | }, 188 | "cross-spawn": { 189 | "version": "4.0.2", 190 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", 191 | "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", 192 | "dev": true, 193 | "requires": { 194 | "lru-cache": "4.1.1", 195 | "which": "1.3.0" 196 | } 197 | }, 198 | "cryptiles": { 199 | "version": "2.0.5", 200 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", 201 | "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", 202 | "dev": true, 203 | "requires": { 204 | "boom": "2.10.1" 205 | } 206 | }, 207 | "dashdash": { 208 | "version": "1.14.1", 209 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 210 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 211 | "dev": true, 212 | "requires": { 213 | "assert-plus": "1.0.0" 214 | }, 215 | "dependencies": { 216 | "assert-plus": { 217 | "version": "1.0.0", 218 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 219 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 220 | "dev": true 221 | } 222 | } 223 | }, 224 | "debug": { 225 | "version": "2.6.9", 226 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 227 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 228 | "dev": true, 229 | "requires": { 230 | "ms": "2.0.0" 231 | } 232 | }, 233 | "delayed-stream": { 234 | "version": "1.0.0", 235 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 236 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 237 | "dev": true 238 | }, 239 | "diff": { 240 | "version": "1.4.0", 241 | "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", 242 | "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", 243 | "dev": true 244 | }, 245 | "ecc-jsbn": { 246 | "version": "0.1.1", 247 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 248 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 249 | "dev": true, 250 | "optional": true, 251 | "requires": { 252 | "jsbn": "0.1.1" 253 | } 254 | }, 255 | "escape-string-regexp": { 256 | "version": "1.0.5", 257 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 258 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 259 | "dev": true 260 | }, 261 | "esprima": { 262 | "version": "2.7.3", 263 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 264 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 265 | "dev": true 266 | }, 267 | "events-to-array": { 268 | "version": "1.1.2", 269 | "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", 270 | "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", 271 | "dev": true 272 | }, 273 | "extend": { 274 | "version": "3.0.1", 275 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 276 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 277 | "dev": true 278 | }, 279 | "extsprintf": { 280 | "version": "1.3.0", 281 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 282 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 283 | "dev": true 284 | }, 285 | "foreground-child": { 286 | "version": "1.5.6", 287 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", 288 | "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", 289 | "dev": true, 290 | "requires": { 291 | "cross-spawn": "4.0.2", 292 | "signal-exit": "3.0.2" 293 | } 294 | }, 295 | "forever-agent": { 296 | "version": "0.6.1", 297 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 298 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 299 | "dev": true 300 | }, 301 | "form-data": { 302 | "version": "2.1.4", 303 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", 304 | "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", 305 | "dev": true, 306 | "requires": { 307 | "asynckit": "0.4.0", 308 | "combined-stream": "1.0.5", 309 | "mime-types": "2.1.17" 310 | } 311 | }, 312 | "fs-exists-cached": { 313 | "version": "1.0.0", 314 | "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", 315 | "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=", 316 | "dev": true 317 | }, 318 | "fs.realpath": { 319 | "version": "1.0.0", 320 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 321 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 322 | "dev": true 323 | }, 324 | "function-loop": { 325 | "version": "1.0.1", 326 | "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", 327 | "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=", 328 | "dev": true 329 | }, 330 | "generate-function": { 331 | "version": "2.0.0", 332 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 333 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", 334 | "dev": true 335 | }, 336 | "generate-object-property": { 337 | "version": "1.2.0", 338 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 339 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 340 | "dev": true, 341 | "requires": { 342 | "is-property": "1.0.2" 343 | } 344 | }, 345 | "getpass": { 346 | "version": "0.1.7", 347 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 348 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 349 | "dev": true, 350 | "requires": { 351 | "assert-plus": "1.0.0" 352 | }, 353 | "dependencies": { 354 | "assert-plus": { 355 | "version": "1.0.0", 356 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 357 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 358 | "dev": true 359 | } 360 | } 361 | }, 362 | "glob": { 363 | "version": "7.1.2", 364 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 365 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 366 | "dev": true, 367 | "requires": { 368 | "fs.realpath": "1.0.0", 369 | "inflight": "1.0.6", 370 | "inherits": "2.0.3", 371 | "minimatch": "3.0.4", 372 | "once": "1.4.0", 373 | "path-is-absolute": "1.0.1" 374 | } 375 | }, 376 | "graceful-fs": { 377 | "version": "4.1.11", 378 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 379 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 380 | "dev": true 381 | }, 382 | "har-validator": { 383 | "version": "2.0.6", 384 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", 385 | "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", 386 | "dev": true, 387 | "requires": { 388 | "chalk": "1.1.3", 389 | "commander": "2.12.2", 390 | "is-my-json-valid": "2.16.1", 391 | "pinkie-promise": "2.0.1" 392 | } 393 | }, 394 | "has-ansi": { 395 | "version": "2.0.0", 396 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 397 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 398 | "dev": true, 399 | "requires": { 400 | "ansi-regex": "2.1.1" 401 | } 402 | }, 403 | "hawk": { 404 | "version": "3.1.3", 405 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", 406 | "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", 407 | "dev": true, 408 | "requires": { 409 | "boom": "2.10.1", 410 | "cryptiles": "2.0.5", 411 | "hoek": "2.16.3", 412 | "sntp": "1.0.9" 413 | } 414 | }, 415 | "hoek": { 416 | "version": "2.16.3", 417 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", 418 | "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", 419 | "dev": true 420 | }, 421 | "http-signature": { 422 | "version": "1.1.1", 423 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 424 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 425 | "dev": true, 426 | "requires": { 427 | "assert-plus": "0.2.0", 428 | "jsprim": "1.4.1", 429 | "sshpk": "1.13.1" 430 | } 431 | }, 432 | "imurmurhash": { 433 | "version": "0.1.4", 434 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 435 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 436 | "dev": true 437 | }, 438 | "inflight": { 439 | "version": "1.0.6", 440 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 441 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 442 | "dev": true, 443 | "requires": { 444 | "once": "1.4.0", 445 | "wrappy": "1.0.2" 446 | } 447 | }, 448 | "inherits": { 449 | "version": "2.0.3", 450 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 451 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 452 | "dev": true 453 | }, 454 | "is-my-json-valid": { 455 | "version": "2.16.1", 456 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", 457 | "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", 458 | "dev": true, 459 | "requires": { 460 | "generate-function": "2.0.0", 461 | "generate-object-property": "1.2.0", 462 | "jsonpointer": "4.0.1", 463 | "xtend": "4.0.1" 464 | } 465 | }, 466 | "is-property": { 467 | "version": "1.0.2", 468 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 469 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", 470 | "dev": true 471 | }, 472 | "is-typedarray": { 473 | "version": "1.0.0", 474 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 475 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 476 | "dev": true 477 | }, 478 | "isarray": { 479 | "version": "1.0.0", 480 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 481 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 482 | "dev": true, 483 | "optional": true 484 | }, 485 | "isexe": { 486 | "version": "2.0.0", 487 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 488 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 489 | "dev": true 490 | }, 491 | "isstream": { 492 | "version": "0.1.2", 493 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 494 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 495 | "dev": true 496 | }, 497 | "js-yaml": { 498 | "version": "3.10.0", 499 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 500 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 501 | "dev": true, 502 | "requires": { 503 | "argparse": "1.0.9", 504 | "esprima": "4.0.0" 505 | }, 506 | "dependencies": { 507 | "esprima": { 508 | "version": "4.0.0", 509 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 510 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 511 | "dev": true 512 | } 513 | } 514 | }, 515 | "jsbn": { 516 | "version": "0.1.1", 517 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 518 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 519 | "dev": true, 520 | "optional": true 521 | }, 522 | "json-schema": { 523 | "version": "0.2.3", 524 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 525 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 526 | "dev": true 527 | }, 528 | "json-stringify-safe": { 529 | "version": "5.0.1", 530 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 531 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 532 | "dev": true 533 | }, 534 | "jsonpointer": { 535 | "version": "4.0.1", 536 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 537 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 538 | "dev": true 539 | }, 540 | "jsprim": { 541 | "version": "1.4.1", 542 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 543 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 544 | "dev": true, 545 | "requires": { 546 | "assert-plus": "1.0.0", 547 | "extsprintf": "1.3.0", 548 | "json-schema": "0.2.3", 549 | "verror": "1.10.0" 550 | }, 551 | "dependencies": { 552 | "assert-plus": { 553 | "version": "1.0.0", 554 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 555 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 556 | "dev": true 557 | } 558 | } 559 | }, 560 | "lcov-parse": { 561 | "version": "0.0.10", 562 | "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", 563 | "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", 564 | "dev": true 565 | }, 566 | "log-driver": { 567 | "version": "1.2.5", 568 | "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", 569 | "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", 570 | "dev": true 571 | }, 572 | "lru-cache": { 573 | "version": "4.1.1", 574 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 575 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 576 | "dev": true, 577 | "requires": { 578 | "pseudomap": "1.0.2", 579 | "yallist": "2.1.2" 580 | } 581 | }, 582 | "mime-db": { 583 | "version": "1.30.0", 584 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 585 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", 586 | "dev": true 587 | }, 588 | "mime-types": { 589 | "version": "2.1.17", 590 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 591 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 592 | "dev": true, 593 | "requires": { 594 | "mime-db": "1.30.0" 595 | } 596 | }, 597 | "minimatch": { 598 | "version": "3.0.4", 599 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 600 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 601 | "dev": true, 602 | "requires": { 603 | "brace-expansion": "1.1.8" 604 | } 605 | }, 606 | "minimist": { 607 | "version": "1.2.0", 608 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 609 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 610 | "dev": true 611 | }, 612 | "minipass": { 613 | "version": "2.2.1", 614 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", 615 | "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", 616 | "dev": true, 617 | "requires": { 618 | "yallist": "3.0.2" 619 | }, 620 | "dependencies": { 621 | "yallist": { 622 | "version": "3.0.2", 623 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", 624 | "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", 625 | "dev": true 626 | } 627 | } 628 | }, 629 | "mkdirp": { 630 | "version": "0.5.1", 631 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 632 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 633 | "dev": true, 634 | "requires": { 635 | "minimist": "0.0.8" 636 | }, 637 | "dependencies": { 638 | "minimist": { 639 | "version": "0.0.8", 640 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 641 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 642 | "dev": true 643 | } 644 | } 645 | }, 646 | "ms": { 647 | "version": "2.0.0", 648 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 649 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 650 | "dev": true 651 | }, 652 | "nyc": { 653 | "version": "11.3.0", 654 | "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.3.0.tgz", 655 | "integrity": "sha512-oUu0WHt1k/JMIODvAYXX6C50Mupw2GO34P/Jdg2ty9xrLufBthHiKR2gf08aF+9S0abW1fl24R7iKRBXzibZmg==", 656 | "dev": true, 657 | "requires": { 658 | "archy": "1.0.0", 659 | "arrify": "1.0.1", 660 | "caching-transform": "1.0.1", 661 | "convert-source-map": "1.5.0", 662 | "debug-log": "1.0.1", 663 | "default-require-extensions": "1.0.0", 664 | "find-cache-dir": "0.1.1", 665 | "find-up": "2.1.0", 666 | "foreground-child": "1.5.6", 667 | "glob": "7.1.2", 668 | "istanbul-lib-coverage": "1.1.1", 669 | "istanbul-lib-hook": "1.1.0", 670 | "istanbul-lib-instrument": "1.9.1", 671 | "istanbul-lib-report": "1.1.2", 672 | "istanbul-lib-source-maps": "1.2.2", 673 | "istanbul-reports": "1.1.3", 674 | "md5-hex": "1.3.0", 675 | "merge-source-map": "1.0.4", 676 | "micromatch": "2.3.11", 677 | "mkdirp": "0.5.1", 678 | "resolve-from": "2.0.0", 679 | "rimraf": "2.6.2", 680 | "signal-exit": "3.0.2", 681 | "spawn-wrap": "1.3.8", 682 | "test-exclude": "4.1.1", 683 | "yargs": "10.0.3", 684 | "yargs-parser": "8.0.0" 685 | }, 686 | "dependencies": { 687 | "align-text": { 688 | "version": "0.1.4", 689 | "bundled": true, 690 | "dev": true, 691 | "requires": { 692 | "kind-of": "3.2.2", 693 | "longest": "1.0.1", 694 | "repeat-string": "1.6.1" 695 | } 696 | }, 697 | "amdefine": { 698 | "version": "1.0.1", 699 | "bundled": true, 700 | "dev": true 701 | }, 702 | "ansi-regex": { 703 | "version": "2.1.1", 704 | "bundled": true, 705 | "dev": true 706 | }, 707 | "ansi-styles": { 708 | "version": "2.2.1", 709 | "bundled": true, 710 | "dev": true 711 | }, 712 | "append-transform": { 713 | "version": "0.4.0", 714 | "bundled": true, 715 | "dev": true, 716 | "requires": { 717 | "default-require-extensions": "1.0.0" 718 | } 719 | }, 720 | "archy": { 721 | "version": "1.0.0", 722 | "bundled": true, 723 | "dev": true 724 | }, 725 | "arr-diff": { 726 | "version": "2.0.0", 727 | "bundled": true, 728 | "dev": true, 729 | "requires": { 730 | "arr-flatten": "1.1.0" 731 | } 732 | }, 733 | "arr-flatten": { 734 | "version": "1.1.0", 735 | "bundled": true, 736 | "dev": true 737 | }, 738 | "array-unique": { 739 | "version": "0.2.1", 740 | "bundled": true, 741 | "dev": true 742 | }, 743 | "arrify": { 744 | "version": "1.0.1", 745 | "bundled": true, 746 | "dev": true 747 | }, 748 | "async": { 749 | "version": "1.5.2", 750 | "bundled": true, 751 | "dev": true 752 | }, 753 | "babel-code-frame": { 754 | "version": "6.26.0", 755 | "bundled": true, 756 | "dev": true, 757 | "requires": { 758 | "chalk": "1.1.3", 759 | "esutils": "2.0.2", 760 | "js-tokens": "3.0.2" 761 | } 762 | }, 763 | "babel-generator": { 764 | "version": "6.26.0", 765 | "bundled": true, 766 | "dev": true, 767 | "requires": { 768 | "babel-messages": "6.23.0", 769 | "babel-runtime": "6.26.0", 770 | "babel-types": "6.26.0", 771 | "detect-indent": "4.0.0", 772 | "jsesc": "1.3.0", 773 | "lodash": "4.17.4", 774 | "source-map": "0.5.7", 775 | "trim-right": "1.0.1" 776 | } 777 | }, 778 | "babel-messages": { 779 | "version": "6.23.0", 780 | "bundled": true, 781 | "dev": true, 782 | "requires": { 783 | "babel-runtime": "6.26.0" 784 | } 785 | }, 786 | "babel-runtime": { 787 | "version": "6.26.0", 788 | "bundled": true, 789 | "dev": true, 790 | "requires": { 791 | "core-js": "2.5.1", 792 | "regenerator-runtime": "0.11.0" 793 | } 794 | }, 795 | "babel-template": { 796 | "version": "6.26.0", 797 | "bundled": true, 798 | "dev": true, 799 | "requires": { 800 | "babel-runtime": "6.26.0", 801 | "babel-traverse": "6.26.0", 802 | "babel-types": "6.26.0", 803 | "babylon": "6.18.0", 804 | "lodash": "4.17.4" 805 | } 806 | }, 807 | "babel-traverse": { 808 | "version": "6.26.0", 809 | "bundled": true, 810 | "dev": true, 811 | "requires": { 812 | "babel-code-frame": "6.26.0", 813 | "babel-messages": "6.23.0", 814 | "babel-runtime": "6.26.0", 815 | "babel-types": "6.26.0", 816 | "babylon": "6.18.0", 817 | "debug": "2.6.9", 818 | "globals": "9.18.0", 819 | "invariant": "2.2.2", 820 | "lodash": "4.17.4" 821 | } 822 | }, 823 | "babel-types": { 824 | "version": "6.26.0", 825 | "bundled": true, 826 | "dev": true, 827 | "requires": { 828 | "babel-runtime": "6.26.0", 829 | "esutils": "2.0.2", 830 | "lodash": "4.17.4", 831 | "to-fast-properties": "1.0.3" 832 | } 833 | }, 834 | "babylon": { 835 | "version": "6.18.0", 836 | "bundled": true, 837 | "dev": true 838 | }, 839 | "balanced-match": { 840 | "version": "1.0.0", 841 | "bundled": true, 842 | "dev": true 843 | }, 844 | "brace-expansion": { 845 | "version": "1.1.8", 846 | "bundled": true, 847 | "dev": true, 848 | "requires": { 849 | "balanced-match": "1.0.0", 850 | "concat-map": "0.0.1" 851 | } 852 | }, 853 | "braces": { 854 | "version": "1.8.5", 855 | "bundled": true, 856 | "dev": true, 857 | "requires": { 858 | "expand-range": "1.8.2", 859 | "preserve": "0.2.0", 860 | "repeat-element": "1.1.2" 861 | } 862 | }, 863 | "builtin-modules": { 864 | "version": "1.1.1", 865 | "bundled": true, 866 | "dev": true 867 | }, 868 | "caching-transform": { 869 | "version": "1.0.1", 870 | "bundled": true, 871 | "dev": true, 872 | "requires": { 873 | "md5-hex": "1.3.0", 874 | "mkdirp": "0.5.1", 875 | "write-file-atomic": "1.3.4" 876 | } 877 | }, 878 | "camelcase": { 879 | "version": "1.2.1", 880 | "bundled": true, 881 | "dev": true, 882 | "optional": true 883 | }, 884 | "center-align": { 885 | "version": "0.1.3", 886 | "bundled": true, 887 | "dev": true, 888 | "optional": true, 889 | "requires": { 890 | "align-text": "0.1.4", 891 | "lazy-cache": "1.0.4" 892 | } 893 | }, 894 | "chalk": { 895 | "version": "1.1.3", 896 | "bundled": true, 897 | "dev": true, 898 | "requires": { 899 | "ansi-styles": "2.2.1", 900 | "escape-string-regexp": "1.0.5", 901 | "has-ansi": "2.0.0", 902 | "strip-ansi": "3.0.1", 903 | "supports-color": "2.0.0" 904 | } 905 | }, 906 | "cliui": { 907 | "version": "2.1.0", 908 | "bundled": true, 909 | "dev": true, 910 | "optional": true, 911 | "requires": { 912 | "center-align": "0.1.3", 913 | "right-align": "0.1.3", 914 | "wordwrap": "0.0.2" 915 | }, 916 | "dependencies": { 917 | "wordwrap": { 918 | "version": "0.0.2", 919 | "bundled": true, 920 | "dev": true, 921 | "optional": true 922 | } 923 | } 924 | }, 925 | "code-point-at": { 926 | "version": "1.1.0", 927 | "bundled": true, 928 | "dev": true 929 | }, 930 | "commondir": { 931 | "version": "1.0.1", 932 | "bundled": true, 933 | "dev": true 934 | }, 935 | "concat-map": { 936 | "version": "0.0.1", 937 | "bundled": true, 938 | "dev": true 939 | }, 940 | "convert-source-map": { 941 | "version": "1.5.0", 942 | "bundled": true, 943 | "dev": true 944 | }, 945 | "core-js": { 946 | "version": "2.5.1", 947 | "bundled": true, 948 | "dev": true 949 | }, 950 | "cross-spawn": { 951 | "version": "4.0.2", 952 | "bundled": true, 953 | "dev": true, 954 | "requires": { 955 | "lru-cache": "4.1.1", 956 | "which": "1.3.0" 957 | } 958 | }, 959 | "debug": { 960 | "version": "2.6.9", 961 | "bundled": true, 962 | "dev": true, 963 | "requires": { 964 | "ms": "2.0.0" 965 | } 966 | }, 967 | "debug-log": { 968 | "version": "1.0.1", 969 | "bundled": true, 970 | "dev": true 971 | }, 972 | "decamelize": { 973 | "version": "1.2.0", 974 | "bundled": true, 975 | "dev": true 976 | }, 977 | "default-require-extensions": { 978 | "version": "1.0.0", 979 | "bundled": true, 980 | "dev": true, 981 | "requires": { 982 | "strip-bom": "2.0.0" 983 | } 984 | }, 985 | "detect-indent": { 986 | "version": "4.0.0", 987 | "bundled": true, 988 | "dev": true, 989 | "requires": { 990 | "repeating": "2.0.1" 991 | } 992 | }, 993 | "error-ex": { 994 | "version": "1.3.1", 995 | "bundled": true, 996 | "dev": true, 997 | "requires": { 998 | "is-arrayish": "0.2.1" 999 | } 1000 | }, 1001 | "escape-string-regexp": { 1002 | "version": "1.0.5", 1003 | "bundled": true, 1004 | "dev": true 1005 | }, 1006 | "esutils": { 1007 | "version": "2.0.2", 1008 | "bundled": true, 1009 | "dev": true 1010 | }, 1011 | "execa": { 1012 | "version": "0.7.0", 1013 | "bundled": true, 1014 | "dev": true, 1015 | "requires": { 1016 | "cross-spawn": "5.1.0", 1017 | "get-stream": "3.0.0", 1018 | "is-stream": "1.1.0", 1019 | "npm-run-path": "2.0.2", 1020 | "p-finally": "1.0.0", 1021 | "signal-exit": "3.0.2", 1022 | "strip-eof": "1.0.0" 1023 | }, 1024 | "dependencies": { 1025 | "cross-spawn": { 1026 | "version": "5.1.0", 1027 | "bundled": true, 1028 | "dev": true, 1029 | "requires": { 1030 | "lru-cache": "4.1.1", 1031 | "shebang-command": "1.2.0", 1032 | "which": "1.3.0" 1033 | } 1034 | } 1035 | } 1036 | }, 1037 | "expand-brackets": { 1038 | "version": "0.1.5", 1039 | "bundled": true, 1040 | "dev": true, 1041 | "requires": { 1042 | "is-posix-bracket": "0.1.1" 1043 | } 1044 | }, 1045 | "expand-range": { 1046 | "version": "1.8.2", 1047 | "bundled": true, 1048 | "dev": true, 1049 | "requires": { 1050 | "fill-range": "2.2.3" 1051 | } 1052 | }, 1053 | "extglob": { 1054 | "version": "0.3.2", 1055 | "bundled": true, 1056 | "dev": true, 1057 | "requires": { 1058 | "is-extglob": "1.0.0" 1059 | } 1060 | }, 1061 | "filename-regex": { 1062 | "version": "2.0.1", 1063 | "bundled": true, 1064 | "dev": true 1065 | }, 1066 | "fill-range": { 1067 | "version": "2.2.3", 1068 | "bundled": true, 1069 | "dev": true, 1070 | "requires": { 1071 | "is-number": "2.1.0", 1072 | "isobject": "2.1.0", 1073 | "randomatic": "1.1.7", 1074 | "repeat-element": "1.1.2", 1075 | "repeat-string": "1.6.1" 1076 | } 1077 | }, 1078 | "find-cache-dir": { 1079 | "version": "0.1.1", 1080 | "bundled": true, 1081 | "dev": true, 1082 | "requires": { 1083 | "commondir": "1.0.1", 1084 | "mkdirp": "0.5.1", 1085 | "pkg-dir": "1.0.0" 1086 | } 1087 | }, 1088 | "find-up": { 1089 | "version": "2.1.0", 1090 | "bundled": true, 1091 | "dev": true, 1092 | "requires": { 1093 | "locate-path": "2.0.0" 1094 | } 1095 | }, 1096 | "for-in": { 1097 | "version": "1.0.2", 1098 | "bundled": true, 1099 | "dev": true 1100 | }, 1101 | "for-own": { 1102 | "version": "0.1.5", 1103 | "bundled": true, 1104 | "dev": true, 1105 | "requires": { 1106 | "for-in": "1.0.2" 1107 | } 1108 | }, 1109 | "foreground-child": { 1110 | "version": "1.5.6", 1111 | "bundled": true, 1112 | "dev": true, 1113 | "requires": { 1114 | "cross-spawn": "4.0.2", 1115 | "signal-exit": "3.0.2" 1116 | } 1117 | }, 1118 | "fs.realpath": { 1119 | "version": "1.0.0", 1120 | "bundled": true, 1121 | "dev": true 1122 | }, 1123 | "get-caller-file": { 1124 | "version": "1.0.2", 1125 | "bundled": true, 1126 | "dev": true 1127 | }, 1128 | "get-stream": { 1129 | "version": "3.0.0", 1130 | "bundled": true, 1131 | "dev": true 1132 | }, 1133 | "glob": { 1134 | "version": "7.1.2", 1135 | "bundled": true, 1136 | "dev": true, 1137 | "requires": { 1138 | "fs.realpath": "1.0.0", 1139 | "inflight": "1.0.6", 1140 | "inherits": "2.0.3", 1141 | "minimatch": "3.0.4", 1142 | "once": "1.4.0", 1143 | "path-is-absolute": "1.0.1" 1144 | } 1145 | }, 1146 | "glob-base": { 1147 | "version": "0.3.0", 1148 | "bundled": true, 1149 | "dev": true, 1150 | "requires": { 1151 | "glob-parent": "2.0.0", 1152 | "is-glob": "2.0.1" 1153 | } 1154 | }, 1155 | "glob-parent": { 1156 | "version": "2.0.0", 1157 | "bundled": true, 1158 | "dev": true, 1159 | "requires": { 1160 | "is-glob": "2.0.1" 1161 | } 1162 | }, 1163 | "globals": { 1164 | "version": "9.18.0", 1165 | "bundled": true, 1166 | "dev": true 1167 | }, 1168 | "graceful-fs": { 1169 | "version": "4.1.11", 1170 | "bundled": true, 1171 | "dev": true 1172 | }, 1173 | "handlebars": { 1174 | "version": "4.0.11", 1175 | "bundled": true, 1176 | "dev": true, 1177 | "requires": { 1178 | "async": "1.5.2", 1179 | "optimist": "0.6.1", 1180 | "source-map": "0.4.4", 1181 | "uglify-js": "2.8.29" 1182 | }, 1183 | "dependencies": { 1184 | "source-map": { 1185 | "version": "0.4.4", 1186 | "bundled": true, 1187 | "dev": true, 1188 | "requires": { 1189 | "amdefine": "1.0.1" 1190 | } 1191 | } 1192 | } 1193 | }, 1194 | "has-ansi": { 1195 | "version": "2.0.0", 1196 | "bundled": true, 1197 | "dev": true, 1198 | "requires": { 1199 | "ansi-regex": "2.1.1" 1200 | } 1201 | }, 1202 | "has-flag": { 1203 | "version": "1.0.0", 1204 | "bundled": true, 1205 | "dev": true 1206 | }, 1207 | "hosted-git-info": { 1208 | "version": "2.5.0", 1209 | "bundled": true, 1210 | "dev": true 1211 | }, 1212 | "imurmurhash": { 1213 | "version": "0.1.4", 1214 | "bundled": true, 1215 | "dev": true 1216 | }, 1217 | "inflight": { 1218 | "version": "1.0.6", 1219 | "bundled": true, 1220 | "dev": true, 1221 | "requires": { 1222 | "once": "1.4.0", 1223 | "wrappy": "1.0.2" 1224 | } 1225 | }, 1226 | "inherits": { 1227 | "version": "2.0.3", 1228 | "bundled": true, 1229 | "dev": true 1230 | }, 1231 | "invariant": { 1232 | "version": "2.2.2", 1233 | "bundled": true, 1234 | "dev": true, 1235 | "requires": { 1236 | "loose-envify": "1.3.1" 1237 | } 1238 | }, 1239 | "invert-kv": { 1240 | "version": "1.0.0", 1241 | "bundled": true, 1242 | "dev": true 1243 | }, 1244 | "is-arrayish": { 1245 | "version": "0.2.1", 1246 | "bundled": true, 1247 | "dev": true 1248 | }, 1249 | "is-buffer": { 1250 | "version": "1.1.5", 1251 | "bundled": true, 1252 | "dev": true 1253 | }, 1254 | "is-builtin-module": { 1255 | "version": "1.0.0", 1256 | "bundled": true, 1257 | "dev": true, 1258 | "requires": { 1259 | "builtin-modules": "1.1.1" 1260 | } 1261 | }, 1262 | "is-dotfile": { 1263 | "version": "1.0.3", 1264 | "bundled": true, 1265 | "dev": true 1266 | }, 1267 | "is-equal-shallow": { 1268 | "version": "0.1.3", 1269 | "bundled": true, 1270 | "dev": true, 1271 | "requires": { 1272 | "is-primitive": "2.0.0" 1273 | } 1274 | }, 1275 | "is-extendable": { 1276 | "version": "0.1.1", 1277 | "bundled": true, 1278 | "dev": true 1279 | }, 1280 | "is-extglob": { 1281 | "version": "1.0.0", 1282 | "bundled": true, 1283 | "dev": true 1284 | }, 1285 | "is-finite": { 1286 | "version": "1.0.2", 1287 | "bundled": true, 1288 | "dev": true, 1289 | "requires": { 1290 | "number-is-nan": "1.0.1" 1291 | } 1292 | }, 1293 | "is-fullwidth-code-point": { 1294 | "version": "1.0.0", 1295 | "bundled": true, 1296 | "dev": true, 1297 | "requires": { 1298 | "number-is-nan": "1.0.1" 1299 | } 1300 | }, 1301 | "is-glob": { 1302 | "version": "2.0.1", 1303 | "bundled": true, 1304 | "dev": true, 1305 | "requires": { 1306 | "is-extglob": "1.0.0" 1307 | } 1308 | }, 1309 | "is-number": { 1310 | "version": "2.1.0", 1311 | "bundled": true, 1312 | "dev": true, 1313 | "requires": { 1314 | "kind-of": "3.2.2" 1315 | } 1316 | }, 1317 | "is-posix-bracket": { 1318 | "version": "0.1.1", 1319 | "bundled": true, 1320 | "dev": true 1321 | }, 1322 | "is-primitive": { 1323 | "version": "2.0.0", 1324 | "bundled": true, 1325 | "dev": true 1326 | }, 1327 | "is-stream": { 1328 | "version": "1.1.0", 1329 | "bundled": true, 1330 | "dev": true 1331 | }, 1332 | "is-utf8": { 1333 | "version": "0.2.1", 1334 | "bundled": true, 1335 | "dev": true 1336 | }, 1337 | "isarray": { 1338 | "version": "1.0.0", 1339 | "bundled": true, 1340 | "dev": true 1341 | }, 1342 | "isexe": { 1343 | "version": "2.0.0", 1344 | "bundled": true, 1345 | "dev": true 1346 | }, 1347 | "isobject": { 1348 | "version": "2.1.0", 1349 | "bundled": true, 1350 | "dev": true, 1351 | "requires": { 1352 | "isarray": "1.0.0" 1353 | } 1354 | }, 1355 | "istanbul-lib-coverage": { 1356 | "version": "1.1.1", 1357 | "bundled": true, 1358 | "dev": true 1359 | }, 1360 | "istanbul-lib-hook": { 1361 | "version": "1.1.0", 1362 | "bundled": true, 1363 | "dev": true, 1364 | "requires": { 1365 | "append-transform": "0.4.0" 1366 | } 1367 | }, 1368 | "istanbul-lib-instrument": { 1369 | "version": "1.9.1", 1370 | "bundled": true, 1371 | "dev": true, 1372 | "requires": { 1373 | "babel-generator": "6.26.0", 1374 | "babel-template": "6.26.0", 1375 | "babel-traverse": "6.26.0", 1376 | "babel-types": "6.26.0", 1377 | "babylon": "6.18.0", 1378 | "istanbul-lib-coverage": "1.1.1", 1379 | "semver": "5.4.1" 1380 | } 1381 | }, 1382 | "istanbul-lib-report": { 1383 | "version": "1.1.2", 1384 | "bundled": true, 1385 | "dev": true, 1386 | "requires": { 1387 | "istanbul-lib-coverage": "1.1.1", 1388 | "mkdirp": "0.5.1", 1389 | "path-parse": "1.0.5", 1390 | "supports-color": "3.2.3" 1391 | }, 1392 | "dependencies": { 1393 | "supports-color": { 1394 | "version": "3.2.3", 1395 | "bundled": true, 1396 | "dev": true, 1397 | "requires": { 1398 | "has-flag": "1.0.0" 1399 | } 1400 | } 1401 | } 1402 | }, 1403 | "istanbul-lib-source-maps": { 1404 | "version": "1.2.2", 1405 | "bundled": true, 1406 | "dev": true, 1407 | "requires": { 1408 | "debug": "3.1.0", 1409 | "istanbul-lib-coverage": "1.1.1", 1410 | "mkdirp": "0.5.1", 1411 | "rimraf": "2.6.2", 1412 | "source-map": "0.5.7" 1413 | }, 1414 | "dependencies": { 1415 | "debug": { 1416 | "version": "3.1.0", 1417 | "bundled": true, 1418 | "dev": true, 1419 | "requires": { 1420 | "ms": "2.0.0" 1421 | } 1422 | } 1423 | } 1424 | }, 1425 | "istanbul-reports": { 1426 | "version": "1.1.3", 1427 | "bundled": true, 1428 | "dev": true, 1429 | "requires": { 1430 | "handlebars": "4.0.11" 1431 | } 1432 | }, 1433 | "js-tokens": { 1434 | "version": "3.0.2", 1435 | "bundled": true, 1436 | "dev": true 1437 | }, 1438 | "jsesc": { 1439 | "version": "1.3.0", 1440 | "bundled": true, 1441 | "dev": true 1442 | }, 1443 | "kind-of": { 1444 | "version": "3.2.2", 1445 | "bundled": true, 1446 | "dev": true, 1447 | "requires": { 1448 | "is-buffer": "1.1.5" 1449 | } 1450 | }, 1451 | "lazy-cache": { 1452 | "version": "1.0.4", 1453 | "bundled": true, 1454 | "dev": true, 1455 | "optional": true 1456 | }, 1457 | "lcid": { 1458 | "version": "1.0.0", 1459 | "bundled": true, 1460 | "dev": true, 1461 | "requires": { 1462 | "invert-kv": "1.0.0" 1463 | } 1464 | }, 1465 | "load-json-file": { 1466 | "version": "1.1.0", 1467 | "bundled": true, 1468 | "dev": true, 1469 | "requires": { 1470 | "graceful-fs": "4.1.11", 1471 | "parse-json": "2.2.0", 1472 | "pify": "2.3.0", 1473 | "pinkie-promise": "2.0.1", 1474 | "strip-bom": "2.0.0" 1475 | } 1476 | }, 1477 | "locate-path": { 1478 | "version": "2.0.0", 1479 | "bundled": true, 1480 | "dev": true, 1481 | "requires": { 1482 | "p-locate": "2.0.0", 1483 | "path-exists": "3.0.0" 1484 | }, 1485 | "dependencies": { 1486 | "path-exists": { 1487 | "version": "3.0.0", 1488 | "bundled": true, 1489 | "dev": true 1490 | } 1491 | } 1492 | }, 1493 | "lodash": { 1494 | "version": "4.17.4", 1495 | "bundled": true, 1496 | "dev": true 1497 | }, 1498 | "longest": { 1499 | "version": "1.0.1", 1500 | "bundled": true, 1501 | "dev": true 1502 | }, 1503 | "loose-envify": { 1504 | "version": "1.3.1", 1505 | "bundled": true, 1506 | "dev": true, 1507 | "requires": { 1508 | "js-tokens": "3.0.2" 1509 | } 1510 | }, 1511 | "lru-cache": { 1512 | "version": "4.1.1", 1513 | "bundled": true, 1514 | "dev": true, 1515 | "requires": { 1516 | "pseudomap": "1.0.2", 1517 | "yallist": "2.1.2" 1518 | } 1519 | }, 1520 | "md5-hex": { 1521 | "version": "1.3.0", 1522 | "bundled": true, 1523 | "dev": true, 1524 | "requires": { 1525 | "md5-o-matic": "0.1.1" 1526 | } 1527 | }, 1528 | "md5-o-matic": { 1529 | "version": "0.1.1", 1530 | "bundled": true, 1531 | "dev": true 1532 | }, 1533 | "mem": { 1534 | "version": "1.1.0", 1535 | "bundled": true, 1536 | "dev": true, 1537 | "requires": { 1538 | "mimic-fn": "1.1.0" 1539 | } 1540 | }, 1541 | "merge-source-map": { 1542 | "version": "1.0.4", 1543 | "bundled": true, 1544 | "dev": true, 1545 | "requires": { 1546 | "source-map": "0.5.7" 1547 | } 1548 | }, 1549 | "micromatch": { 1550 | "version": "2.3.11", 1551 | "bundled": true, 1552 | "dev": true, 1553 | "requires": { 1554 | "arr-diff": "2.0.0", 1555 | "array-unique": "0.2.1", 1556 | "braces": "1.8.5", 1557 | "expand-brackets": "0.1.5", 1558 | "extglob": "0.3.2", 1559 | "filename-regex": "2.0.1", 1560 | "is-extglob": "1.0.0", 1561 | "is-glob": "2.0.1", 1562 | "kind-of": "3.2.2", 1563 | "normalize-path": "2.1.1", 1564 | "object.omit": "2.0.1", 1565 | "parse-glob": "3.0.4", 1566 | "regex-cache": "0.4.4" 1567 | } 1568 | }, 1569 | "mimic-fn": { 1570 | "version": "1.1.0", 1571 | "bundled": true, 1572 | "dev": true 1573 | }, 1574 | "minimatch": { 1575 | "version": "3.0.4", 1576 | "bundled": true, 1577 | "dev": true, 1578 | "requires": { 1579 | "brace-expansion": "1.1.8" 1580 | } 1581 | }, 1582 | "minimist": { 1583 | "version": "0.0.8", 1584 | "bundled": true, 1585 | "dev": true 1586 | }, 1587 | "mkdirp": { 1588 | "version": "0.5.1", 1589 | "bundled": true, 1590 | "dev": true, 1591 | "requires": { 1592 | "minimist": "0.0.8" 1593 | } 1594 | }, 1595 | "ms": { 1596 | "version": "2.0.0", 1597 | "bundled": true, 1598 | "dev": true 1599 | }, 1600 | "normalize-package-data": { 1601 | "version": "2.4.0", 1602 | "bundled": true, 1603 | "dev": true, 1604 | "requires": { 1605 | "hosted-git-info": "2.5.0", 1606 | "is-builtin-module": "1.0.0", 1607 | "semver": "5.4.1", 1608 | "validate-npm-package-license": "3.0.1" 1609 | } 1610 | }, 1611 | "normalize-path": { 1612 | "version": "2.1.1", 1613 | "bundled": true, 1614 | "dev": true, 1615 | "requires": { 1616 | "remove-trailing-separator": "1.1.0" 1617 | } 1618 | }, 1619 | "npm-run-path": { 1620 | "version": "2.0.2", 1621 | "bundled": true, 1622 | "dev": true, 1623 | "requires": { 1624 | "path-key": "2.0.1" 1625 | } 1626 | }, 1627 | "number-is-nan": { 1628 | "version": "1.0.1", 1629 | "bundled": true, 1630 | "dev": true 1631 | }, 1632 | "object-assign": { 1633 | "version": "4.1.1", 1634 | "bundled": true, 1635 | "dev": true 1636 | }, 1637 | "object.omit": { 1638 | "version": "2.0.1", 1639 | "bundled": true, 1640 | "dev": true, 1641 | "requires": { 1642 | "for-own": "0.1.5", 1643 | "is-extendable": "0.1.1" 1644 | } 1645 | }, 1646 | "once": { 1647 | "version": "1.4.0", 1648 | "bundled": true, 1649 | "dev": true, 1650 | "requires": { 1651 | "wrappy": "1.0.2" 1652 | } 1653 | }, 1654 | "optimist": { 1655 | "version": "0.6.1", 1656 | "bundled": true, 1657 | "dev": true, 1658 | "requires": { 1659 | "minimist": "0.0.8", 1660 | "wordwrap": "0.0.3" 1661 | } 1662 | }, 1663 | "os-homedir": { 1664 | "version": "1.0.2", 1665 | "bundled": true, 1666 | "dev": true 1667 | }, 1668 | "os-locale": { 1669 | "version": "2.1.0", 1670 | "bundled": true, 1671 | "dev": true, 1672 | "requires": { 1673 | "execa": "0.7.0", 1674 | "lcid": "1.0.0", 1675 | "mem": "1.1.0" 1676 | } 1677 | }, 1678 | "p-finally": { 1679 | "version": "1.0.0", 1680 | "bundled": true, 1681 | "dev": true 1682 | }, 1683 | "p-limit": { 1684 | "version": "1.1.0", 1685 | "bundled": true, 1686 | "dev": true 1687 | }, 1688 | "p-locate": { 1689 | "version": "2.0.0", 1690 | "bundled": true, 1691 | "dev": true, 1692 | "requires": { 1693 | "p-limit": "1.1.0" 1694 | } 1695 | }, 1696 | "parse-glob": { 1697 | "version": "3.0.4", 1698 | "bundled": true, 1699 | "dev": true, 1700 | "requires": { 1701 | "glob-base": "0.3.0", 1702 | "is-dotfile": "1.0.3", 1703 | "is-extglob": "1.0.0", 1704 | "is-glob": "2.0.1" 1705 | } 1706 | }, 1707 | "parse-json": { 1708 | "version": "2.2.0", 1709 | "bundled": true, 1710 | "dev": true, 1711 | "requires": { 1712 | "error-ex": "1.3.1" 1713 | } 1714 | }, 1715 | "path-exists": { 1716 | "version": "2.1.0", 1717 | "bundled": true, 1718 | "dev": true, 1719 | "requires": { 1720 | "pinkie-promise": "2.0.1" 1721 | } 1722 | }, 1723 | "path-is-absolute": { 1724 | "version": "1.0.1", 1725 | "bundled": true, 1726 | "dev": true 1727 | }, 1728 | "path-key": { 1729 | "version": "2.0.1", 1730 | "bundled": true, 1731 | "dev": true 1732 | }, 1733 | "path-parse": { 1734 | "version": "1.0.5", 1735 | "bundled": true, 1736 | "dev": true 1737 | }, 1738 | "path-type": { 1739 | "version": "1.1.0", 1740 | "bundled": true, 1741 | "dev": true, 1742 | "requires": { 1743 | "graceful-fs": "4.1.11", 1744 | "pify": "2.3.0", 1745 | "pinkie-promise": "2.0.1" 1746 | } 1747 | }, 1748 | "pify": { 1749 | "version": "2.3.0", 1750 | "bundled": true, 1751 | "dev": true 1752 | }, 1753 | "pinkie": { 1754 | "version": "2.0.4", 1755 | "bundled": true, 1756 | "dev": true 1757 | }, 1758 | "pinkie-promise": { 1759 | "version": "2.0.1", 1760 | "bundled": true, 1761 | "dev": true, 1762 | "requires": { 1763 | "pinkie": "2.0.4" 1764 | } 1765 | }, 1766 | "pkg-dir": { 1767 | "version": "1.0.0", 1768 | "bundled": true, 1769 | "dev": true, 1770 | "requires": { 1771 | "find-up": "1.1.2" 1772 | }, 1773 | "dependencies": { 1774 | "find-up": { 1775 | "version": "1.1.2", 1776 | "bundled": true, 1777 | "dev": true, 1778 | "requires": { 1779 | "path-exists": "2.1.0", 1780 | "pinkie-promise": "2.0.1" 1781 | } 1782 | } 1783 | } 1784 | }, 1785 | "preserve": { 1786 | "version": "0.2.0", 1787 | "bundled": true, 1788 | "dev": true 1789 | }, 1790 | "pseudomap": { 1791 | "version": "1.0.2", 1792 | "bundled": true, 1793 | "dev": true 1794 | }, 1795 | "randomatic": { 1796 | "version": "1.1.7", 1797 | "bundled": true, 1798 | "dev": true, 1799 | "requires": { 1800 | "is-number": "3.0.0", 1801 | "kind-of": "4.0.0" 1802 | }, 1803 | "dependencies": { 1804 | "is-number": { 1805 | "version": "3.0.0", 1806 | "bundled": true, 1807 | "dev": true, 1808 | "requires": { 1809 | "kind-of": "3.2.2" 1810 | }, 1811 | "dependencies": { 1812 | "kind-of": { 1813 | "version": "3.2.2", 1814 | "bundled": true, 1815 | "dev": true, 1816 | "requires": { 1817 | "is-buffer": "1.1.5" 1818 | } 1819 | } 1820 | } 1821 | }, 1822 | "kind-of": { 1823 | "version": "4.0.0", 1824 | "bundled": true, 1825 | "dev": true, 1826 | "requires": { 1827 | "is-buffer": "1.1.5" 1828 | } 1829 | } 1830 | } 1831 | }, 1832 | "read-pkg": { 1833 | "version": "1.1.0", 1834 | "bundled": true, 1835 | "dev": true, 1836 | "requires": { 1837 | "load-json-file": "1.1.0", 1838 | "normalize-package-data": "2.4.0", 1839 | "path-type": "1.1.0" 1840 | } 1841 | }, 1842 | "read-pkg-up": { 1843 | "version": "1.0.1", 1844 | "bundled": true, 1845 | "dev": true, 1846 | "requires": { 1847 | "find-up": "1.1.2", 1848 | "read-pkg": "1.1.0" 1849 | }, 1850 | "dependencies": { 1851 | "find-up": { 1852 | "version": "1.1.2", 1853 | "bundled": true, 1854 | "dev": true, 1855 | "requires": { 1856 | "path-exists": "2.1.0", 1857 | "pinkie-promise": "2.0.1" 1858 | } 1859 | } 1860 | } 1861 | }, 1862 | "regenerator-runtime": { 1863 | "version": "0.11.0", 1864 | "bundled": true, 1865 | "dev": true 1866 | }, 1867 | "regex-cache": { 1868 | "version": "0.4.4", 1869 | "bundled": true, 1870 | "dev": true, 1871 | "requires": { 1872 | "is-equal-shallow": "0.1.3" 1873 | } 1874 | }, 1875 | "remove-trailing-separator": { 1876 | "version": "1.1.0", 1877 | "bundled": true, 1878 | "dev": true 1879 | }, 1880 | "repeat-element": { 1881 | "version": "1.1.2", 1882 | "bundled": true, 1883 | "dev": true 1884 | }, 1885 | "repeat-string": { 1886 | "version": "1.6.1", 1887 | "bundled": true, 1888 | "dev": true 1889 | }, 1890 | "repeating": { 1891 | "version": "2.0.1", 1892 | "bundled": true, 1893 | "dev": true, 1894 | "requires": { 1895 | "is-finite": "1.0.2" 1896 | } 1897 | }, 1898 | "require-directory": { 1899 | "version": "2.1.1", 1900 | "bundled": true, 1901 | "dev": true 1902 | }, 1903 | "require-main-filename": { 1904 | "version": "1.0.1", 1905 | "bundled": true, 1906 | "dev": true 1907 | }, 1908 | "resolve-from": { 1909 | "version": "2.0.0", 1910 | "bundled": true, 1911 | "dev": true 1912 | }, 1913 | "right-align": { 1914 | "version": "0.1.3", 1915 | "bundled": true, 1916 | "dev": true, 1917 | "optional": true, 1918 | "requires": { 1919 | "align-text": "0.1.4" 1920 | } 1921 | }, 1922 | "rimraf": { 1923 | "version": "2.6.2", 1924 | "bundled": true, 1925 | "dev": true, 1926 | "requires": { 1927 | "glob": "7.1.2" 1928 | } 1929 | }, 1930 | "semver": { 1931 | "version": "5.4.1", 1932 | "bundled": true, 1933 | "dev": true 1934 | }, 1935 | "set-blocking": { 1936 | "version": "2.0.0", 1937 | "bundled": true, 1938 | "dev": true 1939 | }, 1940 | "shebang-command": { 1941 | "version": "1.2.0", 1942 | "bundled": true, 1943 | "dev": true, 1944 | "requires": { 1945 | "shebang-regex": "1.0.0" 1946 | } 1947 | }, 1948 | "shebang-regex": { 1949 | "version": "1.0.0", 1950 | "bundled": true, 1951 | "dev": true 1952 | }, 1953 | "signal-exit": { 1954 | "version": "3.0.2", 1955 | "bundled": true, 1956 | "dev": true 1957 | }, 1958 | "slide": { 1959 | "version": "1.1.6", 1960 | "bundled": true, 1961 | "dev": true 1962 | }, 1963 | "source-map": { 1964 | "version": "0.5.7", 1965 | "bundled": true, 1966 | "dev": true 1967 | }, 1968 | "spawn-wrap": { 1969 | "version": "1.3.8", 1970 | "bundled": true, 1971 | "dev": true, 1972 | "requires": { 1973 | "foreground-child": "1.5.6", 1974 | "mkdirp": "0.5.1", 1975 | "os-homedir": "1.0.2", 1976 | "rimraf": "2.6.2", 1977 | "signal-exit": "3.0.2", 1978 | "which": "1.3.0" 1979 | } 1980 | }, 1981 | "spdx-correct": { 1982 | "version": "1.0.2", 1983 | "bundled": true, 1984 | "dev": true, 1985 | "requires": { 1986 | "spdx-license-ids": "1.2.2" 1987 | } 1988 | }, 1989 | "spdx-expression-parse": { 1990 | "version": "1.0.4", 1991 | "bundled": true, 1992 | "dev": true 1993 | }, 1994 | "spdx-license-ids": { 1995 | "version": "1.2.2", 1996 | "bundled": true, 1997 | "dev": true 1998 | }, 1999 | "string-width": { 2000 | "version": "2.1.1", 2001 | "bundled": true, 2002 | "dev": true, 2003 | "requires": { 2004 | "is-fullwidth-code-point": "2.0.0", 2005 | "strip-ansi": "4.0.0" 2006 | }, 2007 | "dependencies": { 2008 | "ansi-regex": { 2009 | "version": "3.0.0", 2010 | "bundled": true, 2011 | "dev": true 2012 | }, 2013 | "is-fullwidth-code-point": { 2014 | "version": "2.0.0", 2015 | "bundled": true, 2016 | "dev": true 2017 | }, 2018 | "strip-ansi": { 2019 | "version": "4.0.0", 2020 | "bundled": true, 2021 | "dev": true, 2022 | "requires": { 2023 | "ansi-regex": "3.0.0" 2024 | } 2025 | } 2026 | } 2027 | }, 2028 | "strip-ansi": { 2029 | "version": "3.0.1", 2030 | "bundled": true, 2031 | "dev": true, 2032 | "requires": { 2033 | "ansi-regex": "2.1.1" 2034 | } 2035 | }, 2036 | "strip-bom": { 2037 | "version": "2.0.0", 2038 | "bundled": true, 2039 | "dev": true, 2040 | "requires": { 2041 | "is-utf8": "0.2.1" 2042 | } 2043 | }, 2044 | "strip-eof": { 2045 | "version": "1.0.0", 2046 | "bundled": true, 2047 | "dev": true 2048 | }, 2049 | "supports-color": { 2050 | "version": "2.0.0", 2051 | "bundled": true, 2052 | "dev": true 2053 | }, 2054 | "test-exclude": { 2055 | "version": "4.1.1", 2056 | "bundled": true, 2057 | "dev": true, 2058 | "requires": { 2059 | "arrify": "1.0.1", 2060 | "micromatch": "2.3.11", 2061 | "object-assign": "4.1.1", 2062 | "read-pkg-up": "1.0.1", 2063 | "require-main-filename": "1.0.1" 2064 | } 2065 | }, 2066 | "to-fast-properties": { 2067 | "version": "1.0.3", 2068 | "bundled": true, 2069 | "dev": true 2070 | }, 2071 | "trim-right": { 2072 | "version": "1.0.1", 2073 | "bundled": true, 2074 | "dev": true 2075 | }, 2076 | "uglify-js": { 2077 | "version": "2.8.29", 2078 | "bundled": true, 2079 | "dev": true, 2080 | "optional": true, 2081 | "requires": { 2082 | "source-map": "0.5.7", 2083 | "uglify-to-browserify": "1.0.2", 2084 | "yargs": "3.10.0" 2085 | }, 2086 | "dependencies": { 2087 | "yargs": { 2088 | "version": "3.10.0", 2089 | "bundled": true, 2090 | "dev": true, 2091 | "optional": true, 2092 | "requires": { 2093 | "camelcase": "1.2.1", 2094 | "cliui": "2.1.0", 2095 | "decamelize": "1.2.0", 2096 | "window-size": "0.1.0" 2097 | } 2098 | } 2099 | } 2100 | }, 2101 | "uglify-to-browserify": { 2102 | "version": "1.0.2", 2103 | "bundled": true, 2104 | "dev": true, 2105 | "optional": true 2106 | }, 2107 | "validate-npm-package-license": { 2108 | "version": "3.0.1", 2109 | "bundled": true, 2110 | "dev": true, 2111 | "requires": { 2112 | "spdx-correct": "1.0.2", 2113 | "spdx-expression-parse": "1.0.4" 2114 | } 2115 | }, 2116 | "which": { 2117 | "version": "1.3.0", 2118 | "bundled": true, 2119 | "dev": true, 2120 | "requires": { 2121 | "isexe": "2.0.0" 2122 | } 2123 | }, 2124 | "which-module": { 2125 | "version": "2.0.0", 2126 | "bundled": true, 2127 | "dev": true 2128 | }, 2129 | "window-size": { 2130 | "version": "0.1.0", 2131 | "bundled": true, 2132 | "dev": true, 2133 | "optional": true 2134 | }, 2135 | "wordwrap": { 2136 | "version": "0.0.3", 2137 | "bundled": true, 2138 | "dev": true 2139 | }, 2140 | "wrap-ansi": { 2141 | "version": "2.1.0", 2142 | "bundled": true, 2143 | "dev": true, 2144 | "requires": { 2145 | "string-width": "1.0.2", 2146 | "strip-ansi": "3.0.1" 2147 | }, 2148 | "dependencies": { 2149 | "string-width": { 2150 | "version": "1.0.2", 2151 | "bundled": true, 2152 | "dev": true, 2153 | "requires": { 2154 | "code-point-at": "1.1.0", 2155 | "is-fullwidth-code-point": "1.0.0", 2156 | "strip-ansi": "3.0.1" 2157 | } 2158 | } 2159 | } 2160 | }, 2161 | "wrappy": { 2162 | "version": "1.0.2", 2163 | "bundled": true, 2164 | "dev": true 2165 | }, 2166 | "write-file-atomic": { 2167 | "version": "1.3.4", 2168 | "bundled": true, 2169 | "dev": true, 2170 | "requires": { 2171 | "graceful-fs": "4.1.11", 2172 | "imurmurhash": "0.1.4", 2173 | "slide": "1.1.6" 2174 | } 2175 | }, 2176 | "y18n": { 2177 | "version": "3.2.1", 2178 | "bundled": true, 2179 | "dev": true 2180 | }, 2181 | "yallist": { 2182 | "version": "2.1.2", 2183 | "bundled": true, 2184 | "dev": true 2185 | }, 2186 | "yargs": { 2187 | "version": "10.0.3", 2188 | "bundled": true, 2189 | "dev": true, 2190 | "requires": { 2191 | "cliui": "3.2.0", 2192 | "decamelize": "1.2.0", 2193 | "find-up": "2.1.0", 2194 | "get-caller-file": "1.0.2", 2195 | "os-locale": "2.1.0", 2196 | "require-directory": "2.1.1", 2197 | "require-main-filename": "1.0.1", 2198 | "set-blocking": "2.0.0", 2199 | "string-width": "2.1.1", 2200 | "which-module": "2.0.0", 2201 | "y18n": "3.2.1", 2202 | "yargs-parser": "8.0.0" 2203 | }, 2204 | "dependencies": { 2205 | "cliui": { 2206 | "version": "3.2.0", 2207 | "bundled": true, 2208 | "dev": true, 2209 | "requires": { 2210 | "string-width": "1.0.2", 2211 | "strip-ansi": "3.0.1", 2212 | "wrap-ansi": "2.1.0" 2213 | }, 2214 | "dependencies": { 2215 | "string-width": { 2216 | "version": "1.0.2", 2217 | "bundled": true, 2218 | "dev": true, 2219 | "requires": { 2220 | "code-point-at": "1.1.0", 2221 | "is-fullwidth-code-point": "1.0.0", 2222 | "strip-ansi": "3.0.1" 2223 | } 2224 | } 2225 | } 2226 | } 2227 | } 2228 | }, 2229 | "yargs-parser": { 2230 | "version": "8.0.0", 2231 | "bundled": true, 2232 | "dev": true, 2233 | "requires": { 2234 | "camelcase": "4.1.0" 2235 | }, 2236 | "dependencies": { 2237 | "camelcase": { 2238 | "version": "4.1.0", 2239 | "bundled": true, 2240 | "dev": true 2241 | } 2242 | } 2243 | } 2244 | } 2245 | }, 2246 | "oauth-sign": { 2247 | "version": "0.8.2", 2248 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 2249 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 2250 | "dev": true 2251 | }, 2252 | "once": { 2253 | "version": "1.4.0", 2254 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2255 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2256 | "dev": true, 2257 | "requires": { 2258 | "wrappy": "1.0.2" 2259 | } 2260 | }, 2261 | "opener": { 2262 | "version": "1.4.3", 2263 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", 2264 | "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", 2265 | "dev": true 2266 | }, 2267 | "os-homedir": { 2268 | "version": "1.0.2", 2269 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2270 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2271 | "dev": true 2272 | }, 2273 | "own-or": { 2274 | "version": "1.0.0", 2275 | "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", 2276 | "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=", 2277 | "dev": true 2278 | }, 2279 | "own-or-env": { 2280 | "version": "1.0.0", 2281 | "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", 2282 | "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=", 2283 | "dev": true 2284 | }, 2285 | "path-is-absolute": { 2286 | "version": "1.0.1", 2287 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2288 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2289 | "dev": true 2290 | }, 2291 | "pinkie": { 2292 | "version": "2.0.4", 2293 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2294 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 2295 | "dev": true 2296 | }, 2297 | "pinkie-promise": { 2298 | "version": "2.0.1", 2299 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2300 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2301 | "dev": true, 2302 | "requires": { 2303 | "pinkie": "2.0.4" 2304 | } 2305 | }, 2306 | "process-nextick-args": { 2307 | "version": "1.0.7", 2308 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 2309 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 2310 | "dev": true, 2311 | "optional": true 2312 | }, 2313 | "pseudomap": { 2314 | "version": "1.0.2", 2315 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 2316 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 2317 | "dev": true 2318 | }, 2319 | "punycode": { 2320 | "version": "1.4.1", 2321 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2322 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2323 | "dev": true 2324 | }, 2325 | "qs": { 2326 | "version": "6.3.2", 2327 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", 2328 | "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", 2329 | "dev": true 2330 | }, 2331 | "readable-stream": { 2332 | "version": "2.3.3", 2333 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 2334 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 2335 | "dev": true, 2336 | "optional": true, 2337 | "requires": { 2338 | "core-util-is": "1.0.2", 2339 | "inherits": "2.0.3", 2340 | "isarray": "1.0.0", 2341 | "process-nextick-args": "1.0.7", 2342 | "safe-buffer": "5.1.1", 2343 | "string_decoder": "1.0.3", 2344 | "util-deprecate": "1.0.2" 2345 | } 2346 | }, 2347 | "request": { 2348 | "version": "2.79.0", 2349 | "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", 2350 | "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", 2351 | "dev": true, 2352 | "requires": { 2353 | "aws-sign2": "0.6.0", 2354 | "aws4": "1.6.0", 2355 | "caseless": "0.11.0", 2356 | "combined-stream": "1.0.5", 2357 | "extend": "3.0.1", 2358 | "forever-agent": "0.6.1", 2359 | "form-data": "2.1.4", 2360 | "har-validator": "2.0.6", 2361 | "hawk": "3.1.3", 2362 | "http-signature": "1.1.1", 2363 | "is-typedarray": "1.0.0", 2364 | "isstream": "0.1.2", 2365 | "json-stringify-safe": "5.0.1", 2366 | "mime-types": "2.1.17", 2367 | "oauth-sign": "0.8.2", 2368 | "qs": "6.3.2", 2369 | "stringstream": "0.0.5", 2370 | "tough-cookie": "2.3.3", 2371 | "tunnel-agent": "0.4.3", 2372 | "uuid": "3.1.0" 2373 | } 2374 | }, 2375 | "rimraf": { 2376 | "version": "2.6.2", 2377 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 2378 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2379 | "dev": true, 2380 | "requires": { 2381 | "glob": "7.1.2" 2382 | } 2383 | }, 2384 | "safe-buffer": { 2385 | "version": "5.1.1", 2386 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2387 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 2388 | "dev": true 2389 | }, 2390 | "signal-exit": { 2391 | "version": "3.0.2", 2392 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2393 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2394 | "dev": true 2395 | }, 2396 | "sntp": { 2397 | "version": "1.0.9", 2398 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", 2399 | "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", 2400 | "dev": true, 2401 | "requires": { 2402 | "hoek": "2.16.3" 2403 | } 2404 | }, 2405 | "source-map": { 2406 | "version": "0.5.7", 2407 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2408 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2409 | "dev": true 2410 | }, 2411 | "source-map-support": { 2412 | "version": "0.4.18", 2413 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 2414 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 2415 | "dev": true, 2416 | "requires": { 2417 | "source-map": "0.5.7" 2418 | } 2419 | }, 2420 | "sprintf-js": { 2421 | "version": "1.0.3", 2422 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2423 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2424 | "dev": true 2425 | }, 2426 | "sshpk": { 2427 | "version": "1.13.1", 2428 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 2429 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 2430 | "dev": true, 2431 | "requires": { 2432 | "asn1": "0.2.3", 2433 | "assert-plus": "1.0.0", 2434 | "bcrypt-pbkdf": "1.0.1", 2435 | "dashdash": "1.14.1", 2436 | "ecc-jsbn": "0.1.1", 2437 | "getpass": "0.1.7", 2438 | "jsbn": "0.1.1", 2439 | "tweetnacl": "0.14.5" 2440 | }, 2441 | "dependencies": { 2442 | "assert-plus": { 2443 | "version": "1.0.0", 2444 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2445 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2446 | "dev": true 2447 | } 2448 | } 2449 | }, 2450 | "stack-utils": { 2451 | "version": "1.0.1", 2452 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", 2453 | "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", 2454 | "dev": true 2455 | }, 2456 | "string_decoder": { 2457 | "version": "1.0.3", 2458 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2459 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2460 | "dev": true, 2461 | "optional": true, 2462 | "requires": { 2463 | "safe-buffer": "5.1.1" 2464 | } 2465 | }, 2466 | "stringstream": { 2467 | "version": "0.0.5", 2468 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2469 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 2470 | "dev": true 2471 | }, 2472 | "strip-ansi": { 2473 | "version": "3.0.1", 2474 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2475 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2476 | "dev": true, 2477 | "requires": { 2478 | "ansi-regex": "2.1.1" 2479 | } 2480 | }, 2481 | "supports-color": { 2482 | "version": "2.0.0", 2483 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2484 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2485 | "dev": true 2486 | }, 2487 | "tap": { 2488 | "version": "11.0.0", 2489 | "resolved": "https://registry.npmjs.org/tap/-/tap-11.0.0.tgz", 2490 | "integrity": "sha512-Zi0jvdyN/2o2BgK3oKyApmyt/taAcGiChnXJtoEpOKiU/99+NwWJCyvVBRdQ3+30yFz5TE/ImVX3/GqDvndZ3g==", 2491 | "dev": true, 2492 | "requires": { 2493 | "bind-obj-methods": "1.0.0", 2494 | "bluebird": "3.5.1", 2495 | "clean-yaml-object": "0.1.0", 2496 | "color-support": "1.1.3", 2497 | "coveralls": "2.13.3", 2498 | "foreground-child": "1.5.6", 2499 | "fs-exists-cached": "1.0.0", 2500 | "function-loop": "1.0.1", 2501 | "glob": "7.1.2", 2502 | "isexe": "2.0.0", 2503 | "js-yaml": "3.10.0", 2504 | "minipass": "2.2.1", 2505 | "mkdirp": "0.5.1", 2506 | "nyc": "11.3.0", 2507 | "opener": "1.4.3", 2508 | "os-homedir": "1.0.2", 2509 | "own-or": "1.0.0", 2510 | "own-or-env": "1.0.0", 2511 | "rimraf": "2.6.2", 2512 | "signal-exit": "3.0.2", 2513 | "source-map-support": "0.4.18", 2514 | "stack-utils": "1.0.1", 2515 | "tap-mocha-reporter": "3.0.6", 2516 | "tap-parser": "7.0.0", 2517 | "tmatch": "3.1.0", 2518 | "trivial-deferred": "1.0.1", 2519 | "tsame": "1.1.2", 2520 | "write-file-atomic": "2.3.0", 2521 | "yapool": "1.0.0" 2522 | } 2523 | }, 2524 | "tap-mocha-reporter": { 2525 | "version": "3.0.6", 2526 | "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.6.tgz", 2527 | "integrity": "sha512-UImgw3etckDQCoqZIAIKcQDt0w1JLVs3v0yxLlmwvGLZl6MGFxF7JME5PElXjAoDklVDU42P3vVu5jgr37P4Yg==", 2528 | "dev": true, 2529 | "requires": { 2530 | "color-support": "1.1.3", 2531 | "debug": "2.6.9", 2532 | "diff": "1.4.0", 2533 | "escape-string-regexp": "1.0.5", 2534 | "glob": "7.1.2", 2535 | "js-yaml": "3.10.0", 2536 | "readable-stream": "2.3.3", 2537 | "tap-parser": "5.4.0", 2538 | "unicode-length": "1.0.3" 2539 | }, 2540 | "dependencies": { 2541 | "tap-parser": { 2542 | "version": "5.4.0", 2543 | "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz", 2544 | "integrity": "sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==", 2545 | "dev": true, 2546 | "requires": { 2547 | "events-to-array": "1.1.2", 2548 | "js-yaml": "3.10.0", 2549 | "readable-stream": "2.3.3" 2550 | } 2551 | } 2552 | } 2553 | }, 2554 | "tap-parser": { 2555 | "version": "7.0.0", 2556 | "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-7.0.0.tgz", 2557 | "integrity": "sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==", 2558 | "dev": true, 2559 | "requires": { 2560 | "events-to-array": "1.1.2", 2561 | "js-yaml": "3.10.0", 2562 | "minipass": "2.2.1" 2563 | } 2564 | }, 2565 | "tmatch": { 2566 | "version": "3.1.0", 2567 | "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.1.0.tgz", 2568 | "integrity": "sha512-W3MSATOCN4pVu2qFxmJLIArSifeSOFqnfx9hiUaVgOmeRoI2NbU7RNga+6G+L8ojlFeQge+ZPCclWyUpQ8UeNQ==", 2569 | "dev": true 2570 | }, 2571 | "tough-cookie": { 2572 | "version": "2.3.3", 2573 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", 2574 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", 2575 | "dev": true, 2576 | "requires": { 2577 | "punycode": "1.4.1" 2578 | } 2579 | }, 2580 | "trivial-deferred": { 2581 | "version": "1.0.1", 2582 | "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", 2583 | "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=", 2584 | "dev": true 2585 | }, 2586 | "tsame": { 2587 | "version": "1.1.2", 2588 | "resolved": "https://registry.npmjs.org/tsame/-/tsame-1.1.2.tgz", 2589 | "integrity": "sha512-ovCs24PGjmByVPr9tSIOs/yjUX9sJl0grEmOsj9dZA/UknQkgPOKcUqM84aSCvt9awHuhc/boMzTg3BHFalxWw==", 2590 | "dev": true 2591 | }, 2592 | "tunnel-agent": { 2593 | "version": "0.4.3", 2594 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", 2595 | "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", 2596 | "dev": true 2597 | }, 2598 | "tweetnacl": { 2599 | "version": "0.14.5", 2600 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2601 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2602 | "dev": true, 2603 | "optional": true 2604 | }, 2605 | "unicode-length": { 2606 | "version": "1.0.3", 2607 | "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", 2608 | "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", 2609 | "dev": true, 2610 | "requires": { 2611 | "punycode": "1.4.1", 2612 | "strip-ansi": "3.0.1" 2613 | } 2614 | }, 2615 | "util-deprecate": { 2616 | "version": "1.0.2", 2617 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2618 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2619 | "dev": true, 2620 | "optional": true 2621 | }, 2622 | "uuid": { 2623 | "version": "3.1.0", 2624 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 2625 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 2626 | "dev": true 2627 | }, 2628 | "verror": { 2629 | "version": "1.10.0", 2630 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2631 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2632 | "dev": true, 2633 | "requires": { 2634 | "assert-plus": "1.0.0", 2635 | "core-util-is": "1.0.2", 2636 | "extsprintf": "1.3.0" 2637 | }, 2638 | "dependencies": { 2639 | "assert-plus": { 2640 | "version": "1.0.0", 2641 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2642 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2643 | "dev": true 2644 | } 2645 | } 2646 | }, 2647 | "which": { 2648 | "version": "1.3.0", 2649 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 2650 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 2651 | "dev": true, 2652 | "requires": { 2653 | "isexe": "2.0.0" 2654 | } 2655 | }, 2656 | "wrappy": { 2657 | "version": "1.0.2", 2658 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2659 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2660 | "dev": true 2661 | }, 2662 | "write-file-atomic": { 2663 | "version": "2.3.0", 2664 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 2665 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 2666 | "dev": true, 2667 | "requires": { 2668 | "graceful-fs": "4.1.11", 2669 | "imurmurhash": "0.1.4", 2670 | "signal-exit": "3.0.2" 2671 | } 2672 | }, 2673 | "xtend": { 2674 | "version": "4.0.1", 2675 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2676 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 2677 | "dev": true 2678 | }, 2679 | "yallist": { 2680 | "version": "2.1.2", 2681 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2682 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 2683 | "dev": true 2684 | }, 2685 | "yapool": { 2686 | "version": "1.0.0", 2687 | "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", 2688 | "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=", 2689 | "dev": true 2690 | } 2691 | } 2692 | } 2693 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "natives", 3 | "version": "1.1.6", 4 | "description": "Do stuff with Node.js's native JavaScript modules", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "tap test/*.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/addaleax/natives.git" 12 | }, 13 | "author": "Isaac Z. Schlueter (http://blog.izs.me/)", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/addaleax/natives/issues" 17 | }, 18 | "homepage": "https://github.com/addaleax/natives#readme", 19 | "devDependencies": { 20 | "tap": "^11.0.0" 21 | }, 22 | "files": [ 23 | "index.js" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /test/basic.js: -------------------------------------------------------------------------------- 1 | var natives = require('../') 2 | var buf = natives.require('buffer') 3 | 4 | var t = require('tap') 5 | t.test('it doesnt break buffers and streams', function (t) { 6 | var code = [ 7 | 'require(process.argv[1]).require("buffer")', 8 | 'process.stdin.pipe(process.stdout)' 9 | ].join('\n') 10 | 11 | var spawn = require('child_process').spawn 12 | var node = process.execPath 13 | var args = ['-e', code, require.resolve('../')] 14 | var opts = { 15 | stdio: [ 'pipe', 'pipe', 2 ] 16 | } 17 | var child = spawn(node, args, opts) 18 | var out = '' 19 | child.stdout.on('data', function (c) { 20 | out += c 21 | }) 22 | child.stdin.write('ok\n') 23 | child.stdin.end() 24 | child.on('close', function (exit, signal) { 25 | t.notOk(exit, 'exit success') 26 | t.notOk(signal, 'no signal') 27 | t.equal(out, 'ok\n') 28 | t.end() 29 | }) 30 | }) 31 | 32 | t.test('it can load native_module and module', function (t) { 33 | // this will throw otherwise! 34 | natives.require('module') 35 | 36 | var nm = natives.require('native_module') 37 | t.match(nm.wrapper, [ String, String ]) 38 | t.equal(nm.wrap('foo'), nm.wrapper.join('foo')) 39 | t.isa(nm._cache, 'object') 40 | t.equal(nm.getSource, natives.source) 41 | t.end() 42 | }) 43 | 44 | t.test('fs is like fs but not fs', function (t) { 45 | var fs = require('fs') 46 | var nfs = natives.require('fs') 47 | t.notEqual(nfs, fs) 48 | var f = nfs.readFileSync(__filename, 'utf8') 49 | var w = fs.readFileSync(__filename, 'utf8') 50 | t.equal(f, w, 'reads the file the same') 51 | t.end() 52 | }) 53 | 54 | t.test('handle not-found modules with grace', function (t) { 55 | t.equal(natives.require('./not-a-node-internal/.'), undefined) 56 | t.end() 57 | }) 58 | 59 | t.test('support a whitelist', function (t) { 60 | var fs = natives.require('fs', [ 'stream' ]) 61 | t.isa(fs.ReadStream.prototype, require('stream').Readable) 62 | t.end() 63 | }) 64 | --------------------------------------------------------------------------------