├── .gitignore ├── README.md ├── handlers └── users.js ├── models └── user.js ├── package-lock.json ├── package.json ├── serverless.yml ├── test ├── test-completion-hooks.js └── users.spec.js └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # package directories 2 | node_modules 3 | jspm_packages 4 | 5 | # Serverless directories 6 | .serverless -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Serverless TDD starter 2 | Test Driven Development starter for Serverless and NodeJS. Featuring persistent MongoDB connections on suspended execution of functions. 3 | 4 | To get started, read the full article on Medium: 5 | 6 | * [If TDD is Zen, adding Serverless brings Nirvana - part #1](https://medium.com/@ledfusion/tdd-means-zen-along-with-serverless-means-nirvana-a39a76ee8e63) 7 | * [If TDD is Zen, adding Serverless brings Nirvana - part #2](https://medium.com/@ledfusion/if-tdd-is-zen-adding-serverless-brings-nirvana-part-2-2d4e899b324d) 8 | 9 | ## Main commands 10 | 11 | Install the dependencies: 12 | 13 | ``` 14 | npm install 15 | ``` 16 | 17 | Start a local MongoDB server: 18 | 19 | ``` 20 | mongod 21 | ``` 22 | 23 | Develop locally: 24 | 25 | ``` 26 | npm start 27 | ``` 28 | 29 | Test locally: 30 | 31 | ``` 32 | npm test 33 | ``` 34 | 35 | Deploy to staging: 36 | 37 | ``` 38 | npm run deploy 39 | ``` 40 | 41 | Deploy to production: 42 | 43 | ``` 44 | npm run deploy:prod 45 | ``` 46 | 47 | -------------------------------------------------------------------------------- /handlers/users.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const mongoose = require("mongoose") 4 | const ObjectId = mongoose.Types.ObjectId 5 | const UserSchema = require("../models/user.js") 6 | 7 | const uri = process.env.MONGODB_URL 8 | const poolSize = process.env.POOL_SIZE || 30 9 | 10 | /////////////////////////////////////////////////////////////////////////////// 11 | // DATABASE 12 | /////////////////////////////////////////////////////////////////////////////// 13 | 14 | let dbConnection = null 15 | let User 16 | 17 | async function ensureDbConnected() { 18 | // Connect if not already connected 19 | if (!dbConnection) { 20 | dbConnection = await mongoose.createConnection(uri, { 21 | // With serverless, better to fail fast if not connected 22 | poolSize, 23 | bufferCommands: false, 24 | bufferMaxEntries: 0 25 | }) 26 | // Register the DB models here 27 | User = dbConnection.model("User", UserSchema) 28 | } 29 | } 30 | 31 | /////////////////////////////////////////////////////////////////////////////// 32 | // HANDLERS 33 | /////////////////////////////////////////////////////////////////////////////// 34 | 35 | exports.list = async (event, context) => { 36 | context.callbackWaitsForEmptyEventLoop = false 37 | 38 | try { 39 | await ensureDbConnected() 40 | 41 | const users = await User.find().lean() 42 | return { 43 | statusCode: 200, 44 | body: JSON.stringify(users) 45 | } 46 | } 47 | catch (err) { 48 | return { 49 | statusCode: 500, 50 | body: err.message 51 | } 52 | } 53 | } 54 | 55 | exports.get = async (event, context) => { 56 | context.callbackWaitsForEmptyEventLoop = false 57 | 58 | if (!event || !event.pathParameters || !event.pathParameters.id) { 59 | return { statusCode: 404, body: "" } 60 | } 61 | else if (!ObjectId.isValid(event.pathParameters.id)) { 62 | return { statusCode: 404, body: "" } 63 | } 64 | 65 | try { 66 | await ensureDbConnected() 67 | 68 | const user = await User.findById(event.pathParameters.id).lean() 69 | 70 | if (!user) { 71 | return { statusCode: 404, body: "" } 72 | } 73 | else { 74 | return { 75 | statusCode: 200, 76 | body: JSON.stringify(user) 77 | } 78 | } 79 | } 80 | catch (err) { 81 | return { 82 | statusCode: 500, 83 | body: err.message 84 | } 85 | } 86 | } 87 | 88 | exports.add = async (event, context) => { 89 | context.callbackWaitsForEmptyEventLoop = false 90 | 91 | if (!event || !event.body) { 92 | return { statusCode: 404, body: "" } 93 | } 94 | 95 | try { 96 | let body = JSON.parse(event.body) 97 | await ensureDbConnected() 98 | 99 | const result = await User.create(body) 100 | return { 101 | statusCode: 200, 102 | body: JSON.stringify({ _id: result._id }) 103 | } 104 | } 105 | catch (err) { 106 | return { 107 | statusCode: 500, 108 | body: err.message 109 | } 110 | } 111 | } 112 | 113 | exports.update = async (event, context) => { 114 | context.callbackWaitsForEmptyEventLoop = false 115 | 116 | if (!event || !event.pathParameters || !event.pathParameters.id) { 117 | return { statusCode: 404, body: "" } 118 | } 119 | else if (!ObjectId.isValid(event.pathParameters.id)) { 120 | return { statusCode: 404, body: "" } 121 | } 122 | 123 | try { 124 | let body = JSON.parse(event.body) 125 | await ensureDbConnected() 126 | 127 | const result = await User.findByIdAndUpdate(event.pathParameters.id, body).lean() 128 | if (!result) { 129 | return { statusCode: 404, body: "" } 130 | } 131 | else { 132 | return { 133 | statusCode: 200, 134 | body: JSON.stringify({ _id: result._id }) 135 | } 136 | } 137 | } 138 | catch (err) { 139 | return { 140 | statusCode: 500, 141 | body: err.message 142 | } 143 | } 144 | } 145 | 146 | exports.remove = async (event, context) => { 147 | context.callbackWaitsForEmptyEventLoop = false 148 | 149 | if (!event || !event.pathParameters || !event.pathParameters.id) { 150 | return { statusCode: 404, body: "" } 151 | } 152 | else if (!ObjectId.isValid(event.pathParameters.id)) { 153 | return { statusCode: 404, body: "" } 154 | } 155 | 156 | try { 157 | await ensureDbConnected() 158 | 159 | const result = await User.findByIdAndRemove(event.pathParameters.id).lean() 160 | if (!result) { 161 | return { statusCode: 404, body: "" } 162 | } 163 | else { 164 | return { 165 | statusCode: 200, 166 | body: JSON.stringify({ _id: result._id }) 167 | } 168 | } 169 | } 170 | catch (err) { 171 | return { 172 | statusCode: 500, 173 | body: err.message 174 | } 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose") 2 | const { Schema } = mongoose 3 | 4 | const schema = new Schema( 5 | { 6 | state: { 7 | type: String, 8 | required: true, 9 | enum: ["pending", "active", "removed"], 10 | default: "pending", 11 | lowercase: true 12 | }, 13 | 14 | name: { type: String, required: true }, 15 | lastName: { type: String, required: true }, 16 | email: { type: String, required: true }, 17 | 18 | created: { type: Date, default: Date.now } 19 | }, 20 | { 21 | collection: "users" 22 | } 23 | ) 24 | 25 | module.exports = schema 26 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-api", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@webassemblyjs/ast": { 8 | "version": "1.5.13", 9 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz", 10 | "integrity": "sha512-49nwvW/Hx9i+OYHg+mRhKZfAlqThr11Dqz8TsrvqGKMhdI2ijy3KBJOun2Z4770TPjrIJhR6KxChQIDaz8clDA==", 11 | "dev": true, 12 | "requires": { 13 | "@webassemblyjs/helper-module-context": "1.5.13", 14 | "@webassemblyjs/helper-wasm-bytecode": "1.5.13", 15 | "@webassemblyjs/wast-parser": "1.5.13", 16 | "debug": "3.1.0", 17 | "mamacro": "0.0.3" 18 | } 19 | }, 20 | "@webassemblyjs/floating-point-hex-parser": { 21 | "version": "1.5.13", 22 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz", 23 | "integrity": "sha512-vrvvB18Kh4uyghSKb0NTv+2WZx871WL2NzwMj61jcq2bXkyhRC+8Q0oD7JGVf0+5i/fKQYQSBCNMMsDMRVAMqA==", 24 | "dev": true 25 | }, 26 | "@webassemblyjs/helper-api-error": { 27 | "version": "1.5.13", 28 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz", 29 | "integrity": "sha512-dBh2CWYqjaDlvMmRP/kudxpdh30uXjIbpkLj9HQe+qtYlwvYjPRjdQXrq1cTAAOUSMTtzqbXIxEdEZmyKfcwsg==", 30 | "dev": true 31 | }, 32 | "@webassemblyjs/helper-buffer": { 33 | "version": "1.5.13", 34 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz", 35 | "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==", 36 | "dev": true, 37 | "requires": { 38 | "debug": "3.1.0" 39 | } 40 | }, 41 | "@webassemblyjs/helper-code-frame": { 42 | "version": "1.5.13", 43 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz", 44 | "integrity": "sha512-yN6ScQQDFCiAXnVctdVO/J5NQRbwyTbQzsGzEgXsAnrxhjp0xihh+nNHQTMrq5UhOqTb5LykpJAvEv9AT0jnAQ==", 45 | "dev": true, 46 | "requires": { 47 | "@webassemblyjs/wast-printer": "1.5.13" 48 | } 49 | }, 50 | "@webassemblyjs/helper-fsm": { 51 | "version": "1.5.13", 52 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz", 53 | "integrity": "sha512-hSIKzbXjVMRvy3Jzhgu+vDd/aswJ+UMEnLRCkZDdknZO3Z9e6rp1DAs0tdLItjCFqkz9+0BeOPK/mk3eYvVzZg==", 54 | "dev": true 55 | }, 56 | "@webassemblyjs/helper-module-context": { 57 | "version": "1.5.13", 58 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz", 59 | "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==", 60 | "dev": true, 61 | "requires": { 62 | "debug": "3.1.0", 63 | "mamacro": "0.0.3" 64 | } 65 | }, 66 | "@webassemblyjs/helper-wasm-bytecode": { 67 | "version": "1.5.13", 68 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz", 69 | "integrity": "sha512-0n3SoNGLvbJIZPhtMFq0XmmnA/YmQBXaZKQZcW8maGKwLpVcgjNrxpFZHEOLKjXJYVN5Il8vSfG7nRX50Zn+aw==", 70 | "dev": true 71 | }, 72 | "@webassemblyjs/helper-wasm-section": { 73 | "version": "1.5.13", 74 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz", 75 | "integrity": "sha512-IJ/goicOZ5TT1axZFSnlAtz4m8KEjYr12BNOANAwGFPKXM4byEDaMNXYowHMG0yKV9a397eU/NlibFaLwr1fbw==", 76 | "dev": true, 77 | "requires": { 78 | "@webassemblyjs/ast": "1.5.13", 79 | "@webassemblyjs/helper-buffer": "1.5.13", 80 | "@webassemblyjs/helper-wasm-bytecode": "1.5.13", 81 | "@webassemblyjs/wasm-gen": "1.5.13", 82 | "debug": "3.1.0" 83 | } 84 | }, 85 | "@webassemblyjs/ieee754": { 86 | "version": "1.5.13", 87 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz", 88 | "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==", 89 | "dev": true, 90 | "requires": { 91 | "ieee754": "1.1.12" 92 | }, 93 | "dependencies": { 94 | "ieee754": { 95 | "version": "1.1.12", 96 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", 97 | "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", 98 | "dev": true 99 | } 100 | } 101 | }, 102 | "@webassemblyjs/leb128": { 103 | "version": "1.5.13", 104 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.13.tgz", 105 | "integrity": "sha512-0NRMxrL+GG3eISGZBmLBLAVjphbN8Si15s7jzThaw1UE9e5BY1oH49/+MA1xBzxpf1OW5sf9OrPDOclk9wj2yg==", 106 | "dev": true, 107 | "requires": { 108 | "long": "4.0.0" 109 | }, 110 | "dependencies": { 111 | "long": { 112 | "version": "4.0.0", 113 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 114 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", 115 | "dev": true 116 | } 117 | } 118 | }, 119 | "@webassemblyjs/utf8": { 120 | "version": "1.5.13", 121 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.13.tgz", 122 | "integrity": "sha512-Ve1ilU2N48Ew0lVGB8FqY7V7hXjaC4+PeZM+vDYxEd+R2iQ0q+Wb3Rw8v0Ri0+rxhoz6gVGsnQNb4FjRiEH/Ng==", 123 | "dev": true 124 | }, 125 | "@webassemblyjs/wasm-edit": { 126 | "version": "1.5.13", 127 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz", 128 | "integrity": "sha512-X7ZNW4+Hga4f2NmqENnHke2V/mGYK/xnybJSIXImt1ulxbCOEs/A+ZK/Km2jgihjyVxp/0z0hwIcxC6PrkWtgw==", 129 | "dev": true, 130 | "requires": { 131 | "@webassemblyjs/ast": "1.5.13", 132 | "@webassemblyjs/helper-buffer": "1.5.13", 133 | "@webassemblyjs/helper-wasm-bytecode": "1.5.13", 134 | "@webassemblyjs/helper-wasm-section": "1.5.13", 135 | "@webassemblyjs/wasm-gen": "1.5.13", 136 | "@webassemblyjs/wasm-opt": "1.5.13", 137 | "@webassemblyjs/wasm-parser": "1.5.13", 138 | "@webassemblyjs/wast-printer": "1.5.13", 139 | "debug": "3.1.0" 140 | } 141 | }, 142 | "@webassemblyjs/wasm-gen": { 143 | "version": "1.5.13", 144 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz", 145 | "integrity": "sha512-yfv94Se8R73zmr8GAYzezFHc3lDwE/lBXQddSiIZEKZFuqy7yWtm3KMwA1uGbv5G1WphimJxboXHR80IgX1hQA==", 146 | "dev": true, 147 | "requires": { 148 | "@webassemblyjs/ast": "1.5.13", 149 | "@webassemblyjs/helper-wasm-bytecode": "1.5.13", 150 | "@webassemblyjs/ieee754": "1.5.13", 151 | "@webassemblyjs/leb128": "1.5.13", 152 | "@webassemblyjs/utf8": "1.5.13" 153 | } 154 | }, 155 | "@webassemblyjs/wasm-opt": { 156 | "version": "1.5.13", 157 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz", 158 | "integrity": "sha512-IkXSkgzVhQ0QYAdIayuCWMmXSYx0dHGU8Ah/AxJf1gBvstMWVnzJnBwLsXLyD87VSBIcsqkmZ28dVb0mOC3oBg==", 159 | "dev": true, 160 | "requires": { 161 | "@webassemblyjs/ast": "1.5.13", 162 | "@webassemblyjs/helper-buffer": "1.5.13", 163 | "@webassemblyjs/wasm-gen": "1.5.13", 164 | "@webassemblyjs/wasm-parser": "1.5.13", 165 | "debug": "3.1.0" 166 | } 167 | }, 168 | "@webassemblyjs/wasm-parser": { 169 | "version": "1.5.13", 170 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz", 171 | "integrity": "sha512-XnYoIcu2iqq8/LrtmdnN3T+bRjqYFjRHqWbqK3osD/0r/Fcv4d9ecRzjVtC29ENEuNTK4mQ9yyxCBCbK8S/cpg==", 172 | "dev": true, 173 | "requires": { 174 | "@webassemblyjs/ast": "1.5.13", 175 | "@webassemblyjs/helper-api-error": "1.5.13", 176 | "@webassemblyjs/helper-wasm-bytecode": "1.5.13", 177 | "@webassemblyjs/ieee754": "1.5.13", 178 | "@webassemblyjs/leb128": "1.5.13", 179 | "@webassemblyjs/utf8": "1.5.13" 180 | } 181 | }, 182 | "@webassemblyjs/wast-parser": { 183 | "version": "1.5.13", 184 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz", 185 | "integrity": "sha512-Lbz65T0LQ1LgzKiUytl34CwuhMNhaCLgrh0JW4rJBN6INnBB8NMwUfQM+FxTnLY9qJ+lHJL/gCM5xYhB9oWi4A==", 186 | "dev": true, 187 | "requires": { 188 | "@webassemblyjs/ast": "1.5.13", 189 | "@webassemblyjs/floating-point-hex-parser": "1.5.13", 190 | "@webassemblyjs/helper-api-error": "1.5.13", 191 | "@webassemblyjs/helper-code-frame": "1.5.13", 192 | "@webassemblyjs/helper-fsm": "1.5.13", 193 | "long": "3.2.0", 194 | "mamacro": "0.0.3" 195 | } 196 | }, 197 | "@webassemblyjs/wast-printer": { 198 | "version": "1.5.13", 199 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz", 200 | "integrity": "sha512-QcwogrdqcBh8Z+eUF8SG+ag5iwQSXxQJELBEHmLkk790wgQgnIMmntT2sMAMw53GiFNckArf5X0bsCA44j3lWQ==", 201 | "dev": true, 202 | "requires": { 203 | "@webassemblyjs/ast": "1.5.13", 204 | "@webassemblyjs/wast-parser": "1.5.13", 205 | "long": "3.2.0" 206 | } 207 | }, 208 | "accept": { 209 | "version": "2.1.4", 210 | "resolved": "https://registry.npmjs.org/accept/-/accept-2.1.4.tgz", 211 | "integrity": "sha1-iHr1TO7lx/RDBGGXHsQAxh0JrLs=", 212 | "dev": true, 213 | "requires": { 214 | "boom": "5.2.0", 215 | "hoek": "4.2.1" 216 | }, 217 | "dependencies": { 218 | "boom": { 219 | "version": "5.2.0", 220 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 221 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 222 | "dev": true, 223 | "requires": { 224 | "hoek": "4.2.1" 225 | } 226 | } 227 | } 228 | }, 229 | "acorn": { 230 | "version": "5.7.1", 231 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", 232 | "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", 233 | "dev": true 234 | }, 235 | "acorn-dynamic-import": { 236 | "version": "3.0.0", 237 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", 238 | "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", 239 | "dev": true, 240 | "requires": { 241 | "acorn": "5.7.1" 242 | } 243 | }, 244 | "ajv": { 245 | "version": "6.5.2", 246 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", 247 | "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", 248 | "dev": true, 249 | "requires": { 250 | "fast-deep-equal": "2.0.1", 251 | "fast-json-stable-stringify": "2.0.0", 252 | "json-schema-traverse": "0.4.1", 253 | "uri-js": "4.2.2" 254 | } 255 | }, 256 | "ajv-keywords": { 257 | "version": "3.2.0", 258 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", 259 | "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", 260 | "dev": true 261 | }, 262 | "ammo": { 263 | "version": "2.0.4", 264 | "resolved": "https://registry.npmjs.org/ammo/-/ammo-2.0.4.tgz", 265 | "integrity": "sha1-v4CqshFpjqePY+9efxE91dnokX8=", 266 | "dev": true, 267 | "requires": { 268 | "boom": "5.2.0", 269 | "hoek": "4.2.1" 270 | }, 271 | "dependencies": { 272 | "boom": { 273 | "version": "5.2.0", 274 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 275 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 276 | "dev": true, 277 | "requires": { 278 | "hoek": "4.2.1" 279 | } 280 | } 281 | } 282 | }, 283 | "ansi-regex": { 284 | "version": "2.1.1", 285 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 286 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 287 | "dev": true 288 | }, 289 | "ansi-styles": { 290 | "version": "2.2.1", 291 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 292 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 293 | "dev": true 294 | }, 295 | "anymatch": { 296 | "version": "2.0.0", 297 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 298 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 299 | "dev": true, 300 | "requires": { 301 | "micromatch": "3.1.10", 302 | "normalize-path": "2.1.1" 303 | } 304 | }, 305 | "aproba": { 306 | "version": "1.2.0", 307 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 308 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 309 | "dev": true 310 | }, 311 | "archiver": { 312 | "version": "2.1.1", 313 | "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz", 314 | "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=", 315 | "dev": true, 316 | "requires": { 317 | "archiver-utils": "1.3.0", 318 | "async": "2.6.1", 319 | "buffer-crc32": "0.2.13", 320 | "glob": "7.1.2", 321 | "lodash": "4.17.10", 322 | "readable-stream": "2.3.6", 323 | "tar-stream": "1.6.1", 324 | "zip-stream": "1.2.0" 325 | } 326 | }, 327 | "archiver-utils": { 328 | "version": "1.3.0", 329 | "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", 330 | "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", 331 | "dev": true, 332 | "requires": { 333 | "glob": "7.1.2", 334 | "graceful-fs": "4.1.11", 335 | "lazystream": "1.0.0", 336 | "lodash": "4.17.10", 337 | "normalize-path": "2.1.1", 338 | "readable-stream": "2.3.6" 339 | } 340 | }, 341 | "arr-diff": { 342 | "version": "4.0.0", 343 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 344 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 345 | "dev": true 346 | }, 347 | "arr-flatten": { 348 | "version": "1.1.0", 349 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 350 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 351 | "dev": true 352 | }, 353 | "arr-union": { 354 | "version": "3.1.0", 355 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 356 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 357 | "dev": true 358 | }, 359 | "array-unique": { 360 | "version": "0.3.2", 361 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 362 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 363 | "dev": true 364 | }, 365 | "arrify": { 366 | "version": "1.0.1", 367 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 368 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 369 | "dev": true 370 | }, 371 | "asn1.js": { 372 | "version": "4.10.1", 373 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 374 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 375 | "dev": true, 376 | "requires": { 377 | "bn.js": "4.11.8", 378 | "inherits": "2.0.3", 379 | "minimalistic-assert": "1.0.1" 380 | } 381 | }, 382 | "assert": { 383 | "version": "1.4.1", 384 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 385 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 386 | "dev": true, 387 | "requires": { 388 | "util": "0.10.3" 389 | }, 390 | "dependencies": { 391 | "inherits": { 392 | "version": "2.0.1", 393 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 394 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 395 | "dev": true 396 | }, 397 | "util": { 398 | "version": "0.10.3", 399 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 400 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 401 | "dev": true, 402 | "requires": { 403 | "inherits": "2.0.1" 404 | } 405 | } 406 | } 407 | }, 408 | "assertion-error": { 409 | "version": "1.1.0", 410 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 411 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 412 | "dev": true 413 | }, 414 | "assign-symbols": { 415 | "version": "1.0.0", 416 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 417 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 418 | "dev": true 419 | }, 420 | "async": { 421 | "version": "2.6.1", 422 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", 423 | "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", 424 | "requires": { 425 | "lodash": "4.17.10" 426 | } 427 | }, 428 | "async-each": { 429 | "version": "1.0.1", 430 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 431 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 432 | "dev": true 433 | }, 434 | "atob": { 435 | "version": "2.1.1", 436 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", 437 | "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", 438 | "dev": true 439 | }, 440 | "aws-sdk": { 441 | "version": "2.276.1", 442 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.276.1.tgz", 443 | "integrity": "sha512-pxIJmDwE+JWeHyc8WAa9mTpAh/X+RQF7DHLMM4amf7Dhj6EvoucbWByKS6+rZF4MfYIA+a4E1J0GELEz/m+uJA==", 444 | "dev": true, 445 | "requires": { 446 | "buffer": "4.9.1", 447 | "events": "1.1.1", 448 | "ieee754": "1.1.8", 449 | "jmespath": "0.15.0", 450 | "querystring": "0.2.0", 451 | "sax": "1.2.1", 452 | "url": "0.10.3", 453 | "uuid": "3.1.0", 454 | "xml2js": "0.4.19" 455 | } 456 | }, 457 | "b64": { 458 | "version": "3.0.3", 459 | "resolved": "https://registry.npmjs.org/b64/-/b64-3.0.3.tgz", 460 | "integrity": "sha512-Pbeh0i6OLubPJdIdCepn8ZQHwN2MWznZHbHABSTEfQ706ie+yuxNSaPdqX1xRatT6WanaS1EazMiSg0NUW2XxQ==", 461 | "dev": true 462 | }, 463 | "babel-code-frame": { 464 | "version": "6.26.0", 465 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 466 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 467 | "dev": true, 468 | "requires": { 469 | "chalk": "1.1.3", 470 | "esutils": "2.0.2", 471 | "js-tokens": "3.0.2" 472 | } 473 | }, 474 | "babel-core": { 475 | "version": "6.26.3", 476 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", 477 | "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", 478 | "dev": true, 479 | "requires": { 480 | "babel-code-frame": "6.26.0", 481 | "babel-generator": "6.26.1", 482 | "babel-helpers": "6.24.1", 483 | "babel-messages": "6.23.0", 484 | "babel-register": "6.26.0", 485 | "babel-runtime": "6.26.0", 486 | "babel-template": "6.26.0", 487 | "babel-traverse": "6.26.0", 488 | "babel-types": "6.26.0", 489 | "babylon": "6.18.0", 490 | "convert-source-map": "1.5.1", 491 | "debug": "2.6.9", 492 | "json5": "0.5.1", 493 | "lodash": "4.17.10", 494 | "minimatch": "3.0.4", 495 | "path-is-absolute": "1.0.1", 496 | "private": "0.1.8", 497 | "slash": "1.0.0", 498 | "source-map": "0.5.7" 499 | }, 500 | "dependencies": { 501 | "debug": { 502 | "version": "2.6.9", 503 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 504 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 505 | "dev": true, 506 | "requires": { 507 | "ms": "2.0.0" 508 | } 509 | } 510 | } 511 | }, 512 | "babel-generator": { 513 | "version": "6.26.1", 514 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", 515 | "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", 516 | "dev": true, 517 | "requires": { 518 | "babel-messages": "6.23.0", 519 | "babel-runtime": "6.26.0", 520 | "babel-types": "6.26.0", 521 | "detect-indent": "4.0.0", 522 | "jsesc": "1.3.0", 523 | "lodash": "4.17.10", 524 | "source-map": "0.5.7", 525 | "trim-right": "1.0.1" 526 | } 527 | }, 528 | "babel-helpers": { 529 | "version": "6.24.1", 530 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 531 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 532 | "dev": true, 533 | "requires": { 534 | "babel-runtime": "6.26.0", 535 | "babel-template": "6.26.0" 536 | } 537 | }, 538 | "babel-messages": { 539 | "version": "6.23.0", 540 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 541 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 542 | "dev": true, 543 | "requires": { 544 | "babel-runtime": "6.26.0" 545 | } 546 | }, 547 | "babel-register": { 548 | "version": "6.26.0", 549 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 550 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 551 | "dev": true, 552 | "requires": { 553 | "babel-core": "6.26.3", 554 | "babel-runtime": "6.26.0", 555 | "core-js": "2.5.7", 556 | "home-or-tmp": "2.0.0", 557 | "lodash": "4.17.10", 558 | "mkdirp": "0.5.1", 559 | "source-map-support": "0.4.18" 560 | } 561 | }, 562 | "babel-runtime": { 563 | "version": "6.26.0", 564 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 565 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 566 | "dev": true, 567 | "requires": { 568 | "core-js": "2.5.7", 569 | "regenerator-runtime": "0.11.1" 570 | } 571 | }, 572 | "babel-template": { 573 | "version": "6.26.0", 574 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 575 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 576 | "dev": true, 577 | "requires": { 578 | "babel-runtime": "6.26.0", 579 | "babel-traverse": "6.26.0", 580 | "babel-types": "6.26.0", 581 | "babylon": "6.18.0", 582 | "lodash": "4.17.10" 583 | } 584 | }, 585 | "babel-traverse": { 586 | "version": "6.26.0", 587 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 588 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 589 | "dev": true, 590 | "requires": { 591 | "babel-code-frame": "6.26.0", 592 | "babel-messages": "6.23.0", 593 | "babel-runtime": "6.26.0", 594 | "babel-types": "6.26.0", 595 | "babylon": "6.18.0", 596 | "debug": "2.6.9", 597 | "globals": "9.18.0", 598 | "invariant": "2.2.4", 599 | "lodash": "4.17.10" 600 | }, 601 | "dependencies": { 602 | "debug": { 603 | "version": "2.6.9", 604 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 605 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 606 | "dev": true, 607 | "requires": { 608 | "ms": "2.0.0" 609 | } 610 | } 611 | } 612 | }, 613 | "babel-types": { 614 | "version": "6.26.0", 615 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 616 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 617 | "dev": true, 618 | "requires": { 619 | "babel-runtime": "6.26.0", 620 | "esutils": "2.0.2", 621 | "lodash": "4.17.10", 622 | "to-fast-properties": "1.0.3" 623 | } 624 | }, 625 | "babylon": { 626 | "version": "6.18.0", 627 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 628 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 629 | "dev": true 630 | }, 631 | "balanced-match": { 632 | "version": "1.0.0", 633 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 634 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 635 | "dev": true 636 | }, 637 | "base": { 638 | "version": "0.11.2", 639 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 640 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 641 | "dev": true, 642 | "requires": { 643 | "cache-base": "1.0.1", 644 | "class-utils": "0.3.6", 645 | "component-emitter": "1.2.1", 646 | "define-property": "1.0.0", 647 | "isobject": "3.0.1", 648 | "mixin-deep": "1.3.1", 649 | "pascalcase": "0.1.1" 650 | }, 651 | "dependencies": { 652 | "define-property": { 653 | "version": "1.0.0", 654 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 655 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 656 | "dev": true, 657 | "requires": { 658 | "is-descriptor": "1.0.2" 659 | } 660 | }, 661 | "is-accessor-descriptor": { 662 | "version": "1.0.0", 663 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 664 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 665 | "dev": true, 666 | "requires": { 667 | "kind-of": "6.0.2" 668 | } 669 | }, 670 | "is-data-descriptor": { 671 | "version": "1.0.0", 672 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 673 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 674 | "dev": true, 675 | "requires": { 676 | "kind-of": "6.0.2" 677 | } 678 | }, 679 | "is-descriptor": { 680 | "version": "1.0.2", 681 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 682 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 683 | "dev": true, 684 | "requires": { 685 | "is-accessor-descriptor": "1.0.0", 686 | "is-data-descriptor": "1.0.0", 687 | "kind-of": "6.0.2" 688 | } 689 | } 690 | } 691 | }, 692 | "base64-js": { 693 | "version": "1.3.0", 694 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", 695 | "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", 696 | "dev": true 697 | }, 698 | "big.js": { 699 | "version": "3.2.0", 700 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", 701 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", 702 | "dev": true 703 | }, 704 | "binary-extensions": { 705 | "version": "1.11.0", 706 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 707 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", 708 | "dev": true 709 | }, 710 | "bl": { 711 | "version": "1.2.2", 712 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", 713 | "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", 714 | "dev": true, 715 | "requires": { 716 | "readable-stream": "2.3.6", 717 | "safe-buffer": "5.1.2" 718 | } 719 | }, 720 | "bluebird": { 721 | "version": "3.4.6", 722 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz", 723 | "integrity": "sha1-AdqNgh2HgT0ViWfnQ9X+bGLPjA8=", 724 | "dev": true 725 | }, 726 | "bn.js": { 727 | "version": "4.11.8", 728 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 729 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", 730 | "dev": true 731 | }, 732 | "boom": { 733 | "version": "4.3.1", 734 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 735 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 736 | "dev": true, 737 | "requires": { 738 | "hoek": "4.2.1" 739 | } 740 | }, 741 | "brace-expansion": { 742 | "version": "1.1.11", 743 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 744 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 745 | "dev": true, 746 | "requires": { 747 | "balanced-match": "1.0.0", 748 | "concat-map": "0.0.1" 749 | } 750 | }, 751 | "braces": { 752 | "version": "2.3.2", 753 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 754 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 755 | "dev": true, 756 | "requires": { 757 | "arr-flatten": "1.1.0", 758 | "array-unique": "0.3.2", 759 | "extend-shallow": "2.0.1", 760 | "fill-range": "4.0.0", 761 | "isobject": "3.0.1", 762 | "repeat-element": "1.1.2", 763 | "snapdragon": "0.8.2", 764 | "snapdragon-node": "2.1.1", 765 | "split-string": "3.1.0", 766 | "to-regex": "3.0.2" 767 | }, 768 | "dependencies": { 769 | "extend-shallow": { 770 | "version": "2.0.1", 771 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 772 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 773 | "dev": true, 774 | "requires": { 775 | "is-extendable": "0.1.1" 776 | } 777 | } 778 | } 779 | }, 780 | "brorand": { 781 | "version": "1.1.0", 782 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 783 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 784 | "dev": true 785 | }, 786 | "browser-stdout": { 787 | "version": "1.3.0", 788 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", 789 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", 790 | "dev": true 791 | }, 792 | "browserify-aes": { 793 | "version": "1.2.0", 794 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 795 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 796 | "dev": true, 797 | "requires": { 798 | "buffer-xor": "1.0.3", 799 | "cipher-base": "1.0.4", 800 | "create-hash": "1.2.0", 801 | "evp_bytestokey": "1.0.3", 802 | "inherits": "2.0.3", 803 | "safe-buffer": "5.1.2" 804 | } 805 | }, 806 | "browserify-cipher": { 807 | "version": "1.0.1", 808 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 809 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 810 | "dev": true, 811 | "requires": { 812 | "browserify-aes": "1.2.0", 813 | "browserify-des": "1.0.2", 814 | "evp_bytestokey": "1.0.3" 815 | } 816 | }, 817 | "browserify-des": { 818 | "version": "1.0.2", 819 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 820 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 821 | "dev": true, 822 | "requires": { 823 | "cipher-base": "1.0.4", 824 | "des.js": "1.0.0", 825 | "inherits": "2.0.3", 826 | "safe-buffer": "5.1.2" 827 | } 828 | }, 829 | "browserify-rsa": { 830 | "version": "4.0.1", 831 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 832 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 833 | "dev": true, 834 | "requires": { 835 | "bn.js": "4.11.8", 836 | "randombytes": "2.0.6" 837 | } 838 | }, 839 | "browserify-sign": { 840 | "version": "4.0.4", 841 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 842 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 843 | "dev": true, 844 | "requires": { 845 | "bn.js": "4.11.8", 846 | "browserify-rsa": "4.0.1", 847 | "create-hash": "1.2.0", 848 | "create-hmac": "1.1.7", 849 | "elliptic": "6.4.0", 850 | "inherits": "2.0.3", 851 | "parse-asn1": "5.1.1" 852 | } 853 | }, 854 | "browserify-zlib": { 855 | "version": "0.2.0", 856 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 857 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 858 | "dev": true, 859 | "requires": { 860 | "pako": "1.0.6" 861 | } 862 | }, 863 | "bson": { 864 | "version": "1.0.9", 865 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", 866 | "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" 867 | }, 868 | "buffer": { 869 | "version": "4.9.1", 870 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 871 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 872 | "dev": true, 873 | "requires": { 874 | "base64-js": "1.3.0", 875 | "ieee754": "1.1.8", 876 | "isarray": "1.0.0" 877 | } 878 | }, 879 | "buffer-alloc": { 880 | "version": "1.2.0", 881 | "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", 882 | "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", 883 | "dev": true, 884 | "requires": { 885 | "buffer-alloc-unsafe": "1.1.0", 886 | "buffer-fill": "1.0.0" 887 | } 888 | }, 889 | "buffer-alloc-unsafe": { 890 | "version": "1.1.0", 891 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", 892 | "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", 893 | "dev": true 894 | }, 895 | "buffer-crc32": { 896 | "version": "0.2.13", 897 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 898 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 899 | "dev": true 900 | }, 901 | "buffer-equal-constant-time": { 902 | "version": "1.0.1", 903 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 904 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", 905 | "dev": true 906 | }, 907 | "buffer-fill": { 908 | "version": "1.0.0", 909 | "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", 910 | "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", 911 | "dev": true 912 | }, 913 | "buffer-from": { 914 | "version": "1.1.0", 915 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", 916 | "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", 917 | "dev": true 918 | }, 919 | "buffer-xor": { 920 | "version": "1.0.3", 921 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 922 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 923 | "dev": true 924 | }, 925 | "builtin-modules": { 926 | "version": "1.1.1", 927 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 928 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 929 | "dev": true 930 | }, 931 | "builtin-status-codes": { 932 | "version": "3.0.0", 933 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 934 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 935 | "dev": true 936 | }, 937 | "cacache": { 938 | "version": "10.0.4", 939 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", 940 | "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", 941 | "dev": true, 942 | "requires": { 943 | "bluebird": "3.5.1", 944 | "chownr": "1.0.1", 945 | "glob": "7.1.2", 946 | "graceful-fs": "4.1.11", 947 | "lru-cache": "4.1.3", 948 | "mississippi": "2.0.0", 949 | "mkdirp": "0.5.1", 950 | "move-concurrently": "1.0.1", 951 | "promise-inflight": "1.0.1", 952 | "rimraf": "2.6.2", 953 | "ssri": "5.3.0", 954 | "unique-filename": "1.1.0", 955 | "y18n": "4.0.0" 956 | }, 957 | "dependencies": { 958 | "bluebird": { 959 | "version": "3.5.1", 960 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 961 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 962 | "dev": true 963 | } 964 | } 965 | }, 966 | "cache-base": { 967 | "version": "1.0.1", 968 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 969 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 970 | "dev": true, 971 | "requires": { 972 | "collection-visit": "1.0.0", 973 | "component-emitter": "1.2.1", 974 | "get-value": "2.0.6", 975 | "has-value": "1.0.0", 976 | "isobject": "3.0.1", 977 | "set-value": "2.0.0", 978 | "to-object-path": "0.3.0", 979 | "union-value": "1.0.0", 980 | "unset-value": "1.0.0" 981 | } 982 | }, 983 | "call": { 984 | "version": "3.0.4", 985 | "resolved": "https://registry.npmjs.org/call/-/call-3.0.4.tgz", 986 | "integrity": "sha1-44Dy8qSRMwqnkIU1X4vggId9VZ4=", 987 | "dev": true, 988 | "requires": { 989 | "boom": "4.3.1", 990 | "hoek": "4.2.1" 991 | } 992 | }, 993 | "catbox": { 994 | "version": "7.1.5", 995 | "resolved": "https://registry.npmjs.org/catbox/-/catbox-7.1.5.tgz", 996 | "integrity": "sha512-4fui5lELzqZ+9cnaAP/BcqXTH6LvWLBRtFhJ0I4FfgfXiSaZcf6k9m9dqOyChiTxNYtvLk7ZMYSf7ahMq3bf5A==", 997 | "dev": true, 998 | "requires": { 999 | "boom": "5.2.0", 1000 | "hoek": "4.2.1", 1001 | "joi": "10.6.0" 1002 | }, 1003 | "dependencies": { 1004 | "boom": { 1005 | "version": "5.2.0", 1006 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 1007 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 1008 | "dev": true, 1009 | "requires": { 1010 | "hoek": "4.2.1" 1011 | } 1012 | }, 1013 | "joi": { 1014 | "version": "10.6.0", 1015 | "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", 1016 | "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", 1017 | "dev": true, 1018 | "requires": { 1019 | "hoek": "4.2.1", 1020 | "isemail": "2.2.1", 1021 | "items": "2.1.1", 1022 | "topo": "2.0.2" 1023 | } 1024 | } 1025 | } 1026 | }, 1027 | "catbox-memory": { 1028 | "version": "2.0.4", 1029 | "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-2.0.4.tgz", 1030 | "integrity": "sha1-Qz4lWQLK9UIz0ShkKcj03xToItU=", 1031 | "dev": true, 1032 | "requires": { 1033 | "hoek": "4.2.1" 1034 | } 1035 | }, 1036 | "chai": { 1037 | "version": "3.5.0", 1038 | "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", 1039 | "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", 1040 | "dev": true, 1041 | "requires": { 1042 | "assertion-error": "1.1.0", 1043 | "deep-eql": "0.1.3", 1044 | "type-detect": "1.0.0" 1045 | } 1046 | }, 1047 | "chalk": { 1048 | "version": "1.1.3", 1049 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 1050 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 1051 | "dev": true, 1052 | "requires": { 1053 | "ansi-styles": "2.2.1", 1054 | "escape-string-regexp": "1.0.5", 1055 | "has-ansi": "2.0.0", 1056 | "strip-ansi": "3.0.1", 1057 | "supports-color": "2.0.0" 1058 | }, 1059 | "dependencies": { 1060 | "supports-color": { 1061 | "version": "2.0.0", 1062 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1063 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1064 | "dev": true 1065 | } 1066 | } 1067 | }, 1068 | "chokidar": { 1069 | "version": "2.0.4", 1070 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", 1071 | "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", 1072 | "dev": true, 1073 | "requires": { 1074 | "anymatch": "2.0.0", 1075 | "async-each": "1.0.1", 1076 | "braces": "2.3.2", 1077 | "fsevents": "1.2.4", 1078 | "glob-parent": "3.1.0", 1079 | "inherits": "2.0.3", 1080 | "is-binary-path": "1.0.1", 1081 | "is-glob": "4.0.0", 1082 | "lodash.debounce": "4.0.8", 1083 | "normalize-path": "2.1.1", 1084 | "path-is-absolute": "1.0.1", 1085 | "readdirp": "2.1.0", 1086 | "upath": "1.1.0" 1087 | } 1088 | }, 1089 | "chownr": { 1090 | "version": "1.0.1", 1091 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", 1092 | "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", 1093 | "dev": true 1094 | }, 1095 | "chrome-trace-event": { 1096 | "version": "1.0.0", 1097 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", 1098 | "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", 1099 | "dev": true, 1100 | "requires": { 1101 | "tslib": "1.9.3" 1102 | } 1103 | }, 1104 | "cipher-base": { 1105 | "version": "1.0.4", 1106 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 1107 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 1108 | "dev": true, 1109 | "requires": { 1110 | "inherits": "2.0.3", 1111 | "safe-buffer": "5.1.2" 1112 | } 1113 | }, 1114 | "class-utils": { 1115 | "version": "0.3.6", 1116 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 1117 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 1118 | "dev": true, 1119 | "requires": { 1120 | "arr-union": "3.1.0", 1121 | "define-property": "0.2.5", 1122 | "isobject": "3.0.1", 1123 | "static-extend": "0.1.2" 1124 | }, 1125 | "dependencies": { 1126 | "define-property": { 1127 | "version": "0.2.5", 1128 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1129 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1130 | "dev": true, 1131 | "requires": { 1132 | "is-descriptor": "0.1.6" 1133 | } 1134 | } 1135 | } 1136 | }, 1137 | "collection-visit": { 1138 | "version": "1.0.0", 1139 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 1140 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 1141 | "dev": true, 1142 | "requires": { 1143 | "map-visit": "1.0.0", 1144 | "object-visit": "1.0.1" 1145 | } 1146 | }, 1147 | "color-convert": { 1148 | "version": "1.9.2", 1149 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", 1150 | "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", 1151 | "dev": true, 1152 | "requires": { 1153 | "color-name": "1.1.1" 1154 | } 1155 | }, 1156 | "color-name": { 1157 | "version": "1.1.1", 1158 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", 1159 | "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", 1160 | "dev": true 1161 | }, 1162 | "commander": { 1163 | "version": "2.11.0", 1164 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 1165 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 1166 | "dev": true 1167 | }, 1168 | "commondir": { 1169 | "version": "1.0.1", 1170 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 1171 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 1172 | "dev": true 1173 | }, 1174 | "component-emitter": { 1175 | "version": "1.2.1", 1176 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", 1177 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", 1178 | "dev": true 1179 | }, 1180 | "compress-commons": { 1181 | "version": "1.2.2", 1182 | "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", 1183 | "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", 1184 | "dev": true, 1185 | "requires": { 1186 | "buffer-crc32": "0.2.13", 1187 | "crc32-stream": "2.0.0", 1188 | "normalize-path": "2.1.1", 1189 | "readable-stream": "2.3.6" 1190 | } 1191 | }, 1192 | "concat-map": { 1193 | "version": "0.0.1", 1194 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1195 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1196 | "dev": true 1197 | }, 1198 | "concat-stream": { 1199 | "version": "1.6.2", 1200 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 1201 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 1202 | "dev": true, 1203 | "requires": { 1204 | "buffer-from": "1.1.0", 1205 | "inherits": "2.0.3", 1206 | "readable-stream": "2.3.6", 1207 | "typedarray": "0.0.6" 1208 | } 1209 | }, 1210 | "console-browserify": { 1211 | "version": "1.1.0", 1212 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 1213 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 1214 | "dev": true, 1215 | "requires": { 1216 | "date-now": "0.1.4" 1217 | } 1218 | }, 1219 | "constants-browserify": { 1220 | "version": "1.0.0", 1221 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 1222 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 1223 | "dev": true 1224 | }, 1225 | "content": { 1226 | "version": "3.0.7", 1227 | "resolved": "https://registry.npmjs.org/content/-/content-3.0.7.tgz", 1228 | "integrity": "sha512-LXtnSnvE+Z1Cjpa3P9gh9kb396qV4MqpfwKy777BOSF8n6nw2vAi03tHNl0/XRqZUyzVzY/+nMXOZVnEapWzdg==", 1229 | "dev": true, 1230 | "requires": { 1231 | "boom": "5.2.0" 1232 | }, 1233 | "dependencies": { 1234 | "boom": { 1235 | "version": "5.2.0", 1236 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 1237 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 1238 | "dev": true, 1239 | "requires": { 1240 | "hoek": "4.2.1" 1241 | } 1242 | } 1243 | } 1244 | }, 1245 | "convert-source-map": { 1246 | "version": "1.5.1", 1247 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 1248 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 1249 | "dev": true 1250 | }, 1251 | "copy-concurrently": { 1252 | "version": "1.0.5", 1253 | "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", 1254 | "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", 1255 | "dev": true, 1256 | "requires": { 1257 | "aproba": "1.2.0", 1258 | "fs-write-stream-atomic": "1.0.10", 1259 | "iferr": "0.1.5", 1260 | "mkdirp": "0.5.1", 1261 | "rimraf": "2.6.2", 1262 | "run-queue": "1.0.3" 1263 | } 1264 | }, 1265 | "copy-descriptor": { 1266 | "version": "0.1.1", 1267 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 1268 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 1269 | "dev": true 1270 | }, 1271 | "core-js": { 1272 | "version": "2.5.7", 1273 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", 1274 | "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", 1275 | "dev": true 1276 | }, 1277 | "core-util-is": { 1278 | "version": "1.0.2", 1279 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1280 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1281 | "dev": true 1282 | }, 1283 | "crc": { 1284 | "version": "3.7.0", 1285 | "resolved": "https://registry.npmjs.org/crc/-/crc-3.7.0.tgz", 1286 | "integrity": "sha512-ZwmUex488OBjSVOMxnR/dIa1yxisBMJNEi+UxzXpKhax8MPsQtoRQtl5Qgo+W7pcSVkRXa3BEVjaniaWKtvKvw==", 1287 | "dev": true, 1288 | "requires": { 1289 | "buffer": "5.1.0" 1290 | }, 1291 | "dependencies": { 1292 | "buffer": { 1293 | "version": "5.1.0", 1294 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", 1295 | "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", 1296 | "dev": true, 1297 | "requires": { 1298 | "base64-js": "1.3.0", 1299 | "ieee754": "1.1.8" 1300 | } 1301 | } 1302 | } 1303 | }, 1304 | "crc32-stream": { 1305 | "version": "2.0.0", 1306 | "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", 1307 | "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", 1308 | "dev": true, 1309 | "requires": { 1310 | "crc": "3.7.0", 1311 | "readable-stream": "2.3.6" 1312 | } 1313 | }, 1314 | "create-ecdh": { 1315 | "version": "4.0.3", 1316 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", 1317 | "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", 1318 | "dev": true, 1319 | "requires": { 1320 | "bn.js": "4.11.8", 1321 | "elliptic": "6.4.0" 1322 | } 1323 | }, 1324 | "create-hash": { 1325 | "version": "1.2.0", 1326 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 1327 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 1328 | "dev": true, 1329 | "requires": { 1330 | "cipher-base": "1.0.4", 1331 | "inherits": "2.0.3", 1332 | "md5.js": "1.3.4", 1333 | "ripemd160": "2.0.2", 1334 | "sha.js": "2.4.11" 1335 | } 1336 | }, 1337 | "create-hmac": { 1338 | "version": "1.1.7", 1339 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 1340 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 1341 | "dev": true, 1342 | "requires": { 1343 | "cipher-base": "1.0.4", 1344 | "create-hash": "1.2.0", 1345 | "inherits": "2.0.3", 1346 | "ripemd160": "2.0.2", 1347 | "safe-buffer": "5.1.2", 1348 | "sha.js": "2.4.11" 1349 | } 1350 | }, 1351 | "cryptiles": { 1352 | "version": "3.1.2", 1353 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 1354 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 1355 | "dev": true, 1356 | "requires": { 1357 | "boom": "5.2.0" 1358 | }, 1359 | "dependencies": { 1360 | "boom": { 1361 | "version": "5.2.0", 1362 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 1363 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 1364 | "dev": true, 1365 | "requires": { 1366 | "hoek": "4.2.1" 1367 | } 1368 | } 1369 | } 1370 | }, 1371 | "crypto-browserify": { 1372 | "version": "3.12.0", 1373 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 1374 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 1375 | "dev": true, 1376 | "requires": { 1377 | "browserify-cipher": "1.0.1", 1378 | "browserify-sign": "4.0.4", 1379 | "create-ecdh": "4.0.3", 1380 | "create-hash": "1.2.0", 1381 | "create-hmac": "1.1.7", 1382 | "diffie-hellman": "5.0.3", 1383 | "inherits": "2.0.3", 1384 | "pbkdf2": "3.0.16", 1385 | "public-encrypt": "4.0.2", 1386 | "randombytes": "2.0.6", 1387 | "randomfill": "1.0.4" 1388 | } 1389 | }, 1390 | "cyclist": { 1391 | "version": "0.2.2", 1392 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", 1393 | "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", 1394 | "dev": true 1395 | }, 1396 | "date-now": { 1397 | "version": "0.1.4", 1398 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 1399 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 1400 | "dev": true 1401 | }, 1402 | "debug": { 1403 | "version": "3.1.0", 1404 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1405 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1406 | "dev": true, 1407 | "requires": { 1408 | "ms": "2.0.0" 1409 | } 1410 | }, 1411 | "decode-uri-component": { 1412 | "version": "0.2.0", 1413 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 1414 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1415 | "dev": true 1416 | }, 1417 | "deep-eql": { 1418 | "version": "0.1.3", 1419 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", 1420 | "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", 1421 | "dev": true, 1422 | "requires": { 1423 | "type-detect": "0.1.1" 1424 | }, 1425 | "dependencies": { 1426 | "type-detect": { 1427 | "version": "0.1.1", 1428 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", 1429 | "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", 1430 | "dev": true 1431 | } 1432 | } 1433 | }, 1434 | "define-property": { 1435 | "version": "2.0.2", 1436 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 1437 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 1438 | "dev": true, 1439 | "requires": { 1440 | "is-descriptor": "1.0.2", 1441 | "isobject": "3.0.1" 1442 | }, 1443 | "dependencies": { 1444 | "is-accessor-descriptor": { 1445 | "version": "1.0.0", 1446 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1447 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1448 | "dev": true, 1449 | "requires": { 1450 | "kind-of": "6.0.2" 1451 | } 1452 | }, 1453 | "is-data-descriptor": { 1454 | "version": "1.0.0", 1455 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1456 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1457 | "dev": true, 1458 | "requires": { 1459 | "kind-of": "6.0.2" 1460 | } 1461 | }, 1462 | "is-descriptor": { 1463 | "version": "1.0.2", 1464 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1465 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1466 | "dev": true, 1467 | "requires": { 1468 | "is-accessor-descriptor": "1.0.0", 1469 | "is-data-descriptor": "1.0.0", 1470 | "kind-of": "6.0.2" 1471 | } 1472 | } 1473 | } 1474 | }, 1475 | "delayed-stream": { 1476 | "version": "1.0.0", 1477 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1478 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1479 | "dev": true 1480 | }, 1481 | "des.js": { 1482 | "version": "1.0.0", 1483 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 1484 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 1485 | "dev": true, 1486 | "requires": { 1487 | "inherits": "2.0.3", 1488 | "minimalistic-assert": "1.0.1" 1489 | } 1490 | }, 1491 | "detect-indent": { 1492 | "version": "4.0.0", 1493 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1494 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1495 | "dev": true, 1496 | "requires": { 1497 | "repeating": "2.0.1" 1498 | } 1499 | }, 1500 | "diff": { 1501 | "version": "3.3.1", 1502 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", 1503 | "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", 1504 | "dev": true 1505 | }, 1506 | "diffie-hellman": { 1507 | "version": "5.0.3", 1508 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 1509 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 1510 | "dev": true, 1511 | "requires": { 1512 | "bn.js": "4.11.8", 1513 | "miller-rabin": "4.0.1", 1514 | "randombytes": "2.0.6" 1515 | } 1516 | }, 1517 | "domain-browser": { 1518 | "version": "1.2.0", 1519 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 1520 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", 1521 | "dev": true 1522 | }, 1523 | "duplexify": { 1524 | "version": "3.6.0", 1525 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", 1526 | "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", 1527 | "dev": true, 1528 | "requires": { 1529 | "end-of-stream": "1.4.1", 1530 | "inherits": "2.0.3", 1531 | "readable-stream": "2.3.6", 1532 | "stream-shift": "1.0.0" 1533 | } 1534 | }, 1535 | "ecdsa-sig-formatter": { 1536 | "version": "1.0.10", 1537 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", 1538 | "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", 1539 | "dev": true, 1540 | "requires": { 1541 | "safe-buffer": "5.1.2" 1542 | } 1543 | }, 1544 | "ejs": { 1545 | "version": "2.6.1", 1546 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", 1547 | "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", 1548 | "dev": true 1549 | }, 1550 | "elliptic": { 1551 | "version": "6.4.0", 1552 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", 1553 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", 1554 | "dev": true, 1555 | "requires": { 1556 | "bn.js": "4.11.8", 1557 | "brorand": "1.1.0", 1558 | "hash.js": "1.1.5", 1559 | "hmac-drbg": "1.0.1", 1560 | "inherits": "2.0.3", 1561 | "minimalistic-assert": "1.0.1", 1562 | "minimalistic-crypto-utils": "1.0.1" 1563 | } 1564 | }, 1565 | "emojis-list": { 1566 | "version": "2.1.0", 1567 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 1568 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 1569 | "dev": true 1570 | }, 1571 | "end-of-stream": { 1572 | "version": "1.4.1", 1573 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", 1574 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 1575 | "dev": true, 1576 | "requires": { 1577 | "once": "1.4.0" 1578 | } 1579 | }, 1580 | "enhanced-resolve": { 1581 | "version": "4.1.0", 1582 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", 1583 | "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", 1584 | "dev": true, 1585 | "requires": { 1586 | "graceful-fs": "4.1.11", 1587 | "memory-fs": "0.4.1", 1588 | "tapable": "1.0.0" 1589 | } 1590 | }, 1591 | "errno": { 1592 | "version": "0.1.7", 1593 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", 1594 | "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", 1595 | "dev": true, 1596 | "requires": { 1597 | "prr": "1.0.1" 1598 | } 1599 | }, 1600 | "escape-string-regexp": { 1601 | "version": "1.0.5", 1602 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1603 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1604 | "dev": true 1605 | }, 1606 | "eslint-scope": { 1607 | "version": "4.0.0", 1608 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", 1609 | "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", 1610 | "dev": true, 1611 | "requires": { 1612 | "esrecurse": "4.2.1", 1613 | "estraverse": "4.2.0" 1614 | } 1615 | }, 1616 | "esrecurse": { 1617 | "version": "4.2.1", 1618 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 1619 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 1620 | "dev": true, 1621 | "requires": { 1622 | "estraverse": "4.2.0" 1623 | } 1624 | }, 1625 | "estraverse": { 1626 | "version": "4.2.0", 1627 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1628 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1629 | "dev": true 1630 | }, 1631 | "esutils": { 1632 | "version": "2.0.2", 1633 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1634 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1635 | "dev": true 1636 | }, 1637 | "events": { 1638 | "version": "1.1.1", 1639 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 1640 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 1641 | "dev": true 1642 | }, 1643 | "evp_bytestokey": { 1644 | "version": "1.0.3", 1645 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1646 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1647 | "dev": true, 1648 | "requires": { 1649 | "md5.js": "1.3.4", 1650 | "safe-buffer": "5.1.2" 1651 | } 1652 | }, 1653 | "expand-brackets": { 1654 | "version": "2.1.4", 1655 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1656 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1657 | "dev": true, 1658 | "requires": { 1659 | "debug": "2.6.9", 1660 | "define-property": "0.2.5", 1661 | "extend-shallow": "2.0.1", 1662 | "posix-character-classes": "0.1.1", 1663 | "regex-not": "1.0.2", 1664 | "snapdragon": "0.8.2", 1665 | "to-regex": "3.0.2" 1666 | }, 1667 | "dependencies": { 1668 | "debug": { 1669 | "version": "2.6.9", 1670 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1671 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1672 | "dev": true, 1673 | "requires": { 1674 | "ms": "2.0.0" 1675 | } 1676 | }, 1677 | "define-property": { 1678 | "version": "0.2.5", 1679 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1680 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1681 | "dev": true, 1682 | "requires": { 1683 | "is-descriptor": "0.1.6" 1684 | } 1685 | }, 1686 | "extend-shallow": { 1687 | "version": "2.0.1", 1688 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1689 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1690 | "dev": true, 1691 | "requires": { 1692 | "is-extendable": "0.1.1" 1693 | } 1694 | } 1695 | } 1696 | }, 1697 | "extend-shallow": { 1698 | "version": "3.0.2", 1699 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1700 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1701 | "dev": true, 1702 | "requires": { 1703 | "assign-symbols": "1.0.0", 1704 | "is-extendable": "1.0.1" 1705 | }, 1706 | "dependencies": { 1707 | "is-extendable": { 1708 | "version": "1.0.1", 1709 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1710 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1711 | "dev": true, 1712 | "requires": { 1713 | "is-plain-object": "2.0.4" 1714 | } 1715 | } 1716 | } 1717 | }, 1718 | "extglob": { 1719 | "version": "2.0.4", 1720 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1721 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1722 | "dev": true, 1723 | "requires": { 1724 | "array-unique": "0.3.2", 1725 | "define-property": "1.0.0", 1726 | "expand-brackets": "2.1.4", 1727 | "extend-shallow": "2.0.1", 1728 | "fragment-cache": "0.2.1", 1729 | "regex-not": "1.0.2", 1730 | "snapdragon": "0.8.2", 1731 | "to-regex": "3.0.2" 1732 | }, 1733 | "dependencies": { 1734 | "define-property": { 1735 | "version": "1.0.0", 1736 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1737 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1738 | "dev": true, 1739 | "requires": { 1740 | "is-descriptor": "1.0.2" 1741 | } 1742 | }, 1743 | "extend-shallow": { 1744 | "version": "2.0.1", 1745 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1746 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1747 | "dev": true, 1748 | "requires": { 1749 | "is-extendable": "0.1.1" 1750 | } 1751 | }, 1752 | "is-accessor-descriptor": { 1753 | "version": "1.0.0", 1754 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1755 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1756 | "dev": true, 1757 | "requires": { 1758 | "kind-of": "6.0.2" 1759 | } 1760 | }, 1761 | "is-data-descriptor": { 1762 | "version": "1.0.0", 1763 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1764 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1765 | "dev": true, 1766 | "requires": { 1767 | "kind-of": "6.0.2" 1768 | } 1769 | }, 1770 | "is-descriptor": { 1771 | "version": "1.0.2", 1772 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1773 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1774 | "dev": true, 1775 | "requires": { 1776 | "is-accessor-descriptor": "1.0.0", 1777 | "is-data-descriptor": "1.0.0", 1778 | "kind-of": "6.0.2" 1779 | } 1780 | } 1781 | } 1782 | }, 1783 | "fast-deep-equal": { 1784 | "version": "2.0.1", 1785 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 1786 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 1787 | "dev": true 1788 | }, 1789 | "fast-json-stable-stringify": { 1790 | "version": "2.0.0", 1791 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1792 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 1793 | "dev": true 1794 | }, 1795 | "fill-range": { 1796 | "version": "4.0.0", 1797 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1798 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1799 | "dev": true, 1800 | "requires": { 1801 | "extend-shallow": "2.0.1", 1802 | "is-number": "3.0.0", 1803 | "repeat-string": "1.6.1", 1804 | "to-regex-range": "2.1.1" 1805 | }, 1806 | "dependencies": { 1807 | "extend-shallow": { 1808 | "version": "2.0.1", 1809 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1810 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1811 | "dev": true, 1812 | "requires": { 1813 | "is-extendable": "0.1.1" 1814 | } 1815 | } 1816 | } 1817 | }, 1818 | "find-cache-dir": { 1819 | "version": "1.0.0", 1820 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1821 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1822 | "dev": true, 1823 | "requires": { 1824 | "commondir": "1.0.1", 1825 | "make-dir": "1.3.0", 1826 | "pkg-dir": "2.0.0" 1827 | } 1828 | }, 1829 | "find-up": { 1830 | "version": "2.1.0", 1831 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1832 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1833 | "dev": true, 1834 | "requires": { 1835 | "locate-path": "2.0.0" 1836 | } 1837 | }, 1838 | "flush-write-stream": { 1839 | "version": "1.0.3", 1840 | "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", 1841 | "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", 1842 | "dev": true, 1843 | "requires": { 1844 | "inherits": "2.0.3", 1845 | "readable-stream": "2.3.6" 1846 | } 1847 | }, 1848 | "for-in": { 1849 | "version": "1.0.2", 1850 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1851 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1852 | "dev": true 1853 | }, 1854 | "fragment-cache": { 1855 | "version": "0.2.1", 1856 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1857 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1858 | "dev": true, 1859 | "requires": { 1860 | "map-cache": "0.2.2" 1861 | } 1862 | }, 1863 | "from2": { 1864 | "version": "2.3.0", 1865 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 1866 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1867 | "dev": true, 1868 | "requires": { 1869 | "inherits": "2.0.3", 1870 | "readable-stream": "2.3.6" 1871 | } 1872 | }, 1873 | "fs-constants": { 1874 | "version": "1.0.0", 1875 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1876 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", 1877 | "dev": true 1878 | }, 1879 | "fs-extra": { 1880 | "version": "1.0.0", 1881 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", 1882 | "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", 1883 | "dev": true, 1884 | "requires": { 1885 | "graceful-fs": "4.1.11", 1886 | "jsonfile": "2.4.0", 1887 | "klaw": "1.3.1" 1888 | } 1889 | }, 1890 | "fs-write-stream-atomic": { 1891 | "version": "1.0.10", 1892 | "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", 1893 | "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", 1894 | "dev": true, 1895 | "requires": { 1896 | "graceful-fs": "4.1.11", 1897 | "iferr": "0.1.5", 1898 | "imurmurhash": "0.1.4", 1899 | "readable-stream": "2.3.6" 1900 | } 1901 | }, 1902 | "fs.realpath": { 1903 | "version": "1.0.0", 1904 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1905 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1906 | "dev": true 1907 | }, 1908 | "fsevents": { 1909 | "version": "1.2.4", 1910 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", 1911 | "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", 1912 | "dev": true, 1913 | "optional": true, 1914 | "requires": { 1915 | "nan": "2.10.0", 1916 | "node-pre-gyp": "0.10.0" 1917 | }, 1918 | "dependencies": { 1919 | "abbrev": { 1920 | "version": "1.1.1", 1921 | "bundled": true, 1922 | "dev": true, 1923 | "optional": true 1924 | }, 1925 | "ansi-regex": { 1926 | "version": "2.1.1", 1927 | "bundled": true, 1928 | "dev": true 1929 | }, 1930 | "aproba": { 1931 | "version": "1.2.0", 1932 | "bundled": true, 1933 | "dev": true, 1934 | "optional": true 1935 | }, 1936 | "are-we-there-yet": { 1937 | "version": "1.1.4", 1938 | "bundled": true, 1939 | "dev": true, 1940 | "optional": true, 1941 | "requires": { 1942 | "delegates": "1.0.0", 1943 | "readable-stream": "2.3.6" 1944 | } 1945 | }, 1946 | "balanced-match": { 1947 | "version": "1.0.0", 1948 | "bundled": true, 1949 | "dev": true 1950 | }, 1951 | "brace-expansion": { 1952 | "version": "1.1.11", 1953 | "bundled": true, 1954 | "dev": true, 1955 | "requires": { 1956 | "balanced-match": "1.0.0", 1957 | "concat-map": "0.0.1" 1958 | } 1959 | }, 1960 | "chownr": { 1961 | "version": "1.0.1", 1962 | "bundled": true, 1963 | "dev": true, 1964 | "optional": true 1965 | }, 1966 | "code-point-at": { 1967 | "version": "1.1.0", 1968 | "bundled": true, 1969 | "dev": true 1970 | }, 1971 | "concat-map": { 1972 | "version": "0.0.1", 1973 | "bundled": true, 1974 | "dev": true 1975 | }, 1976 | "console-control-strings": { 1977 | "version": "1.1.0", 1978 | "bundled": true, 1979 | "dev": true 1980 | }, 1981 | "core-util-is": { 1982 | "version": "1.0.2", 1983 | "bundled": true, 1984 | "dev": true, 1985 | "optional": true 1986 | }, 1987 | "debug": { 1988 | "version": "2.6.9", 1989 | "bundled": true, 1990 | "dev": true, 1991 | "optional": true, 1992 | "requires": { 1993 | "ms": "2.0.0" 1994 | } 1995 | }, 1996 | "deep-extend": { 1997 | "version": "0.5.1", 1998 | "bundled": true, 1999 | "dev": true, 2000 | "optional": true 2001 | }, 2002 | "delegates": { 2003 | "version": "1.0.0", 2004 | "bundled": true, 2005 | "dev": true, 2006 | "optional": true 2007 | }, 2008 | "detect-libc": { 2009 | "version": "1.0.3", 2010 | "bundled": true, 2011 | "dev": true, 2012 | "optional": true 2013 | }, 2014 | "fs-minipass": { 2015 | "version": "1.2.5", 2016 | "bundled": true, 2017 | "dev": true, 2018 | "optional": true, 2019 | "requires": { 2020 | "minipass": "2.2.4" 2021 | } 2022 | }, 2023 | "fs.realpath": { 2024 | "version": "1.0.0", 2025 | "bundled": true, 2026 | "dev": true, 2027 | "optional": true 2028 | }, 2029 | "gauge": { 2030 | "version": "2.7.4", 2031 | "bundled": true, 2032 | "dev": true, 2033 | "optional": true, 2034 | "requires": { 2035 | "aproba": "1.2.0", 2036 | "console-control-strings": "1.1.0", 2037 | "has-unicode": "2.0.1", 2038 | "object-assign": "4.1.1", 2039 | "signal-exit": "3.0.2", 2040 | "string-width": "1.0.2", 2041 | "strip-ansi": "3.0.1", 2042 | "wide-align": "1.1.2" 2043 | } 2044 | }, 2045 | "glob": { 2046 | "version": "7.1.2", 2047 | "bundled": true, 2048 | "dev": true, 2049 | "optional": true, 2050 | "requires": { 2051 | "fs.realpath": "1.0.0", 2052 | "inflight": "1.0.6", 2053 | "inherits": "2.0.3", 2054 | "minimatch": "3.0.4", 2055 | "once": "1.4.0", 2056 | "path-is-absolute": "1.0.1" 2057 | } 2058 | }, 2059 | "has-unicode": { 2060 | "version": "2.0.1", 2061 | "bundled": true, 2062 | "dev": true, 2063 | "optional": true 2064 | }, 2065 | "iconv-lite": { 2066 | "version": "0.4.21", 2067 | "bundled": true, 2068 | "dev": true, 2069 | "optional": true, 2070 | "requires": { 2071 | "safer-buffer": "2.1.2" 2072 | } 2073 | }, 2074 | "ignore-walk": { 2075 | "version": "3.0.1", 2076 | "bundled": true, 2077 | "dev": true, 2078 | "optional": true, 2079 | "requires": { 2080 | "minimatch": "3.0.4" 2081 | } 2082 | }, 2083 | "inflight": { 2084 | "version": "1.0.6", 2085 | "bundled": true, 2086 | "dev": true, 2087 | "optional": true, 2088 | "requires": { 2089 | "once": "1.4.0", 2090 | "wrappy": "1.0.2" 2091 | } 2092 | }, 2093 | "inherits": { 2094 | "version": "2.0.3", 2095 | "bundled": true, 2096 | "dev": true 2097 | }, 2098 | "ini": { 2099 | "version": "1.3.5", 2100 | "bundled": true, 2101 | "dev": true, 2102 | "optional": true 2103 | }, 2104 | "is-fullwidth-code-point": { 2105 | "version": "1.0.0", 2106 | "bundled": true, 2107 | "dev": true, 2108 | "requires": { 2109 | "number-is-nan": "1.0.1" 2110 | } 2111 | }, 2112 | "isarray": { 2113 | "version": "1.0.0", 2114 | "bundled": true, 2115 | "dev": true, 2116 | "optional": true 2117 | }, 2118 | "minimatch": { 2119 | "version": "3.0.4", 2120 | "bundled": true, 2121 | "dev": true, 2122 | "requires": { 2123 | "brace-expansion": "1.1.11" 2124 | } 2125 | }, 2126 | "minimist": { 2127 | "version": "0.0.8", 2128 | "bundled": true, 2129 | "dev": true 2130 | }, 2131 | "minipass": { 2132 | "version": "2.2.4", 2133 | "bundled": true, 2134 | "dev": true, 2135 | "requires": { 2136 | "safe-buffer": "5.1.1", 2137 | "yallist": "3.0.2" 2138 | } 2139 | }, 2140 | "minizlib": { 2141 | "version": "1.1.0", 2142 | "bundled": true, 2143 | "dev": true, 2144 | "optional": true, 2145 | "requires": { 2146 | "minipass": "2.2.4" 2147 | } 2148 | }, 2149 | "mkdirp": { 2150 | "version": "0.5.1", 2151 | "bundled": true, 2152 | "dev": true, 2153 | "requires": { 2154 | "minimist": "0.0.8" 2155 | } 2156 | }, 2157 | "ms": { 2158 | "version": "2.0.0", 2159 | "bundled": true, 2160 | "dev": true, 2161 | "optional": true 2162 | }, 2163 | "needle": { 2164 | "version": "2.2.0", 2165 | "bundled": true, 2166 | "dev": true, 2167 | "optional": true, 2168 | "requires": { 2169 | "debug": "2.6.9", 2170 | "iconv-lite": "0.4.21", 2171 | "sax": "1.2.4" 2172 | } 2173 | }, 2174 | "node-pre-gyp": { 2175 | "version": "0.10.0", 2176 | "bundled": true, 2177 | "dev": true, 2178 | "optional": true, 2179 | "requires": { 2180 | "detect-libc": "1.0.3", 2181 | "mkdirp": "0.5.1", 2182 | "needle": "2.2.0", 2183 | "nopt": "4.0.1", 2184 | "npm-packlist": "1.1.10", 2185 | "npmlog": "4.1.2", 2186 | "rc": "1.2.7", 2187 | "rimraf": "2.6.2", 2188 | "semver": "5.5.0", 2189 | "tar": "4.4.1" 2190 | } 2191 | }, 2192 | "nopt": { 2193 | "version": "4.0.1", 2194 | "bundled": true, 2195 | "dev": true, 2196 | "optional": true, 2197 | "requires": { 2198 | "abbrev": "1.1.1", 2199 | "osenv": "0.1.5" 2200 | } 2201 | }, 2202 | "npm-bundled": { 2203 | "version": "1.0.3", 2204 | "bundled": true, 2205 | "dev": true, 2206 | "optional": true 2207 | }, 2208 | "npm-packlist": { 2209 | "version": "1.1.10", 2210 | "bundled": true, 2211 | "dev": true, 2212 | "optional": true, 2213 | "requires": { 2214 | "ignore-walk": "3.0.1", 2215 | "npm-bundled": "1.0.3" 2216 | } 2217 | }, 2218 | "npmlog": { 2219 | "version": "4.1.2", 2220 | "bundled": true, 2221 | "dev": true, 2222 | "optional": true, 2223 | "requires": { 2224 | "are-we-there-yet": "1.1.4", 2225 | "console-control-strings": "1.1.0", 2226 | "gauge": "2.7.4", 2227 | "set-blocking": "2.0.0" 2228 | } 2229 | }, 2230 | "number-is-nan": { 2231 | "version": "1.0.1", 2232 | "bundled": true, 2233 | "dev": true 2234 | }, 2235 | "object-assign": { 2236 | "version": "4.1.1", 2237 | "bundled": true, 2238 | "dev": true, 2239 | "optional": true 2240 | }, 2241 | "once": { 2242 | "version": "1.4.0", 2243 | "bundled": true, 2244 | "dev": true, 2245 | "requires": { 2246 | "wrappy": "1.0.2" 2247 | } 2248 | }, 2249 | "os-homedir": { 2250 | "version": "1.0.2", 2251 | "bundled": true, 2252 | "dev": true, 2253 | "optional": true 2254 | }, 2255 | "os-tmpdir": { 2256 | "version": "1.0.2", 2257 | "bundled": true, 2258 | "dev": true, 2259 | "optional": true 2260 | }, 2261 | "osenv": { 2262 | "version": "0.1.5", 2263 | "bundled": true, 2264 | "dev": true, 2265 | "optional": true, 2266 | "requires": { 2267 | "os-homedir": "1.0.2", 2268 | "os-tmpdir": "1.0.2" 2269 | } 2270 | }, 2271 | "path-is-absolute": { 2272 | "version": "1.0.1", 2273 | "bundled": true, 2274 | "dev": true, 2275 | "optional": true 2276 | }, 2277 | "process-nextick-args": { 2278 | "version": "2.0.0", 2279 | "bundled": true, 2280 | "dev": true, 2281 | "optional": true 2282 | }, 2283 | "rc": { 2284 | "version": "1.2.7", 2285 | "bundled": true, 2286 | "dev": true, 2287 | "optional": true, 2288 | "requires": { 2289 | "deep-extend": "0.5.1", 2290 | "ini": "1.3.5", 2291 | "minimist": "1.2.0", 2292 | "strip-json-comments": "2.0.1" 2293 | }, 2294 | "dependencies": { 2295 | "minimist": { 2296 | "version": "1.2.0", 2297 | "bundled": true, 2298 | "dev": true, 2299 | "optional": true 2300 | } 2301 | } 2302 | }, 2303 | "readable-stream": { 2304 | "version": "2.3.6", 2305 | "bundled": true, 2306 | "dev": true, 2307 | "optional": true, 2308 | "requires": { 2309 | "core-util-is": "1.0.2", 2310 | "inherits": "2.0.3", 2311 | "isarray": "1.0.0", 2312 | "process-nextick-args": "2.0.0", 2313 | "safe-buffer": "5.1.1", 2314 | "string_decoder": "1.1.1", 2315 | "util-deprecate": "1.0.2" 2316 | } 2317 | }, 2318 | "rimraf": { 2319 | "version": "2.6.2", 2320 | "bundled": true, 2321 | "dev": true, 2322 | "optional": true, 2323 | "requires": { 2324 | "glob": "7.1.2" 2325 | } 2326 | }, 2327 | "safe-buffer": { 2328 | "version": "5.1.1", 2329 | "bundled": true, 2330 | "dev": true 2331 | }, 2332 | "safer-buffer": { 2333 | "version": "2.1.2", 2334 | "bundled": true, 2335 | "dev": true, 2336 | "optional": true 2337 | }, 2338 | "sax": { 2339 | "version": "1.2.4", 2340 | "bundled": true, 2341 | "dev": true, 2342 | "optional": true 2343 | }, 2344 | "semver": { 2345 | "version": "5.5.0", 2346 | "bundled": true, 2347 | "dev": true, 2348 | "optional": true 2349 | }, 2350 | "set-blocking": { 2351 | "version": "2.0.0", 2352 | "bundled": true, 2353 | "dev": true, 2354 | "optional": true 2355 | }, 2356 | "signal-exit": { 2357 | "version": "3.0.2", 2358 | "bundled": true, 2359 | "dev": true, 2360 | "optional": true 2361 | }, 2362 | "string-width": { 2363 | "version": "1.0.2", 2364 | "bundled": true, 2365 | "dev": true, 2366 | "requires": { 2367 | "code-point-at": "1.1.0", 2368 | "is-fullwidth-code-point": "1.0.0", 2369 | "strip-ansi": "3.0.1" 2370 | } 2371 | }, 2372 | "string_decoder": { 2373 | "version": "1.1.1", 2374 | "bundled": true, 2375 | "dev": true, 2376 | "optional": true, 2377 | "requires": { 2378 | "safe-buffer": "5.1.1" 2379 | } 2380 | }, 2381 | "strip-ansi": { 2382 | "version": "3.0.1", 2383 | "bundled": true, 2384 | "dev": true, 2385 | "requires": { 2386 | "ansi-regex": "2.1.1" 2387 | } 2388 | }, 2389 | "strip-json-comments": { 2390 | "version": "2.0.1", 2391 | "bundled": true, 2392 | "dev": true, 2393 | "optional": true 2394 | }, 2395 | "tar": { 2396 | "version": "4.4.1", 2397 | "bundled": true, 2398 | "dev": true, 2399 | "optional": true, 2400 | "requires": { 2401 | "chownr": "1.0.1", 2402 | "fs-minipass": "1.2.5", 2403 | "minipass": "2.2.4", 2404 | "minizlib": "1.1.0", 2405 | "mkdirp": "0.5.1", 2406 | "safe-buffer": "5.1.1", 2407 | "yallist": "3.0.2" 2408 | } 2409 | }, 2410 | "util-deprecate": { 2411 | "version": "1.0.2", 2412 | "bundled": true, 2413 | "dev": true, 2414 | "optional": true 2415 | }, 2416 | "wide-align": { 2417 | "version": "1.1.2", 2418 | "bundled": true, 2419 | "dev": true, 2420 | "optional": true, 2421 | "requires": { 2422 | "string-width": "1.0.2" 2423 | } 2424 | }, 2425 | "wrappy": { 2426 | "version": "1.0.2", 2427 | "bundled": true, 2428 | "dev": true 2429 | }, 2430 | "yallist": { 2431 | "version": "3.0.2", 2432 | "bundled": true, 2433 | "dev": true 2434 | } 2435 | } 2436 | }, 2437 | "get-value": { 2438 | "version": "2.0.6", 2439 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 2440 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 2441 | "dev": true 2442 | }, 2443 | "glob": { 2444 | "version": "7.1.2", 2445 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2446 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2447 | "dev": true, 2448 | "requires": { 2449 | "fs.realpath": "1.0.0", 2450 | "inflight": "1.0.6", 2451 | "inherits": "2.0.3", 2452 | "minimatch": "3.0.4", 2453 | "once": "1.4.0", 2454 | "path-is-absolute": "1.0.1" 2455 | } 2456 | }, 2457 | "glob-parent": { 2458 | "version": "3.1.0", 2459 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", 2460 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 2461 | "dev": true, 2462 | "requires": { 2463 | "is-glob": "3.1.0", 2464 | "path-dirname": "1.0.2" 2465 | }, 2466 | "dependencies": { 2467 | "is-glob": { 2468 | "version": "3.1.0", 2469 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 2470 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 2471 | "dev": true, 2472 | "requires": { 2473 | "is-extglob": "2.1.1" 2474 | } 2475 | } 2476 | } 2477 | }, 2478 | "globals": { 2479 | "version": "9.18.0", 2480 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 2481 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 2482 | "dev": true 2483 | }, 2484 | "graceful-fs": { 2485 | "version": "4.1.11", 2486 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 2487 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 2488 | "dev": true 2489 | }, 2490 | "growl": { 2491 | "version": "1.10.3", 2492 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", 2493 | "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", 2494 | "dev": true 2495 | }, 2496 | "h2o2": { 2497 | "version": "5.4.0", 2498 | "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-5.4.0.tgz", 2499 | "integrity": "sha1-1oV8oFNVIAyJCzSmZgbKugIp7Vg=", 2500 | "dev": true, 2501 | "requires": { 2502 | "boom": "3.2.2", 2503 | "hoek": "4.2.1", 2504 | "joi": "9.2.0", 2505 | "wreck": "9.0.0" 2506 | }, 2507 | "dependencies": { 2508 | "boom": { 2509 | "version": "3.2.2", 2510 | "resolved": "https://registry.npmjs.org/boom/-/boom-3.2.2.tgz", 2511 | "integrity": "sha1-DwzF0ErcUAO4x9cfQsynJx/vDng=", 2512 | "dev": true, 2513 | "requires": { 2514 | "hoek": "4.2.1" 2515 | } 2516 | } 2517 | } 2518 | }, 2519 | "hapi": { 2520 | "version": "14.2.0", 2521 | "resolved": "https://registry.npmjs.org/hapi/-/hapi-14.2.0.tgz", 2522 | "integrity": "sha1-5P4vwYJZig+B6HtBtr4PvTHHVAk=", 2523 | "dev": true, 2524 | "requires": { 2525 | "accept": "2.1.4", 2526 | "ammo": "2.0.4", 2527 | "boom": "3.2.2", 2528 | "call": "3.0.4", 2529 | "catbox": "7.1.5", 2530 | "catbox-memory": "2.0.4", 2531 | "cryptiles": "3.1.2", 2532 | "heavy": "4.0.4", 2533 | "hoek": "4.2.1", 2534 | "iron": "4.0.5", 2535 | "items": "2.1.1", 2536 | "joi": "9.2.0", 2537 | "kilt": "2.0.2", 2538 | "mimos": "3.0.3", 2539 | "peekaboo": "2.0.2", 2540 | "shot": "3.4.2", 2541 | "statehood": "4.1.0", 2542 | "subtext": "4.4.1", 2543 | "topo": "2.0.2" 2544 | }, 2545 | "dependencies": { 2546 | "boom": { 2547 | "version": "3.2.2", 2548 | "resolved": "https://registry.npmjs.org/boom/-/boom-3.2.2.tgz", 2549 | "integrity": "sha1-DwzF0ErcUAO4x9cfQsynJx/vDng=", 2550 | "dev": true, 2551 | "requires": { 2552 | "hoek": "4.2.1" 2553 | } 2554 | } 2555 | } 2556 | }, 2557 | "hapi-cors-headers": { 2558 | "version": "1.0.3", 2559 | "resolved": "https://registry.npmjs.org/hapi-cors-headers/-/hapi-cors-headers-1.0.3.tgz", 2560 | "integrity": "sha512-U/y+kpVLUJ0y86fEk8yleou9C1T5wFopcWQjuxKdMXzCcymTjfSqGz59waqvngUs1SbeXav/y8Ga9C0G0L1MGg==", 2561 | "dev": true 2562 | }, 2563 | "has-ansi": { 2564 | "version": "2.0.0", 2565 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2566 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2567 | "dev": true, 2568 | "requires": { 2569 | "ansi-regex": "2.1.1" 2570 | } 2571 | }, 2572 | "has-flag": { 2573 | "version": "2.0.0", 2574 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 2575 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 2576 | "dev": true 2577 | }, 2578 | "has-value": { 2579 | "version": "1.0.0", 2580 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 2581 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 2582 | "dev": true, 2583 | "requires": { 2584 | "get-value": "2.0.6", 2585 | "has-values": "1.0.0", 2586 | "isobject": "3.0.1" 2587 | } 2588 | }, 2589 | "has-values": { 2590 | "version": "1.0.0", 2591 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 2592 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 2593 | "dev": true, 2594 | "requires": { 2595 | "is-number": "3.0.0", 2596 | "kind-of": "4.0.0" 2597 | }, 2598 | "dependencies": { 2599 | "kind-of": { 2600 | "version": "4.0.0", 2601 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2602 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2603 | "dev": true, 2604 | "requires": { 2605 | "is-buffer": "1.1.6" 2606 | } 2607 | } 2608 | } 2609 | }, 2610 | "hash-base": { 2611 | "version": "3.0.4", 2612 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 2613 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 2614 | "dev": true, 2615 | "requires": { 2616 | "inherits": "2.0.3", 2617 | "safe-buffer": "5.1.2" 2618 | } 2619 | }, 2620 | "hash.js": { 2621 | "version": "1.1.5", 2622 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", 2623 | "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", 2624 | "dev": true, 2625 | "requires": { 2626 | "inherits": "2.0.3", 2627 | "minimalistic-assert": "1.0.1" 2628 | } 2629 | }, 2630 | "he": { 2631 | "version": "1.1.1", 2632 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 2633 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", 2634 | "dev": true 2635 | }, 2636 | "heavy": { 2637 | "version": "4.0.4", 2638 | "resolved": "https://registry.npmjs.org/heavy/-/heavy-4.0.4.tgz", 2639 | "integrity": "sha1-NskTNsAMz+hSyqTRUwhjNc0vAOk=", 2640 | "dev": true, 2641 | "requires": { 2642 | "boom": "5.2.0", 2643 | "hoek": "4.2.1", 2644 | "joi": "10.6.0" 2645 | }, 2646 | "dependencies": { 2647 | "boom": { 2648 | "version": "5.2.0", 2649 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 2650 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 2651 | "dev": true, 2652 | "requires": { 2653 | "hoek": "4.2.1" 2654 | } 2655 | }, 2656 | "joi": { 2657 | "version": "10.6.0", 2658 | "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", 2659 | "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", 2660 | "dev": true, 2661 | "requires": { 2662 | "hoek": "4.2.1", 2663 | "isemail": "2.2.1", 2664 | "items": "2.1.1", 2665 | "topo": "2.0.2" 2666 | } 2667 | } 2668 | } 2669 | }, 2670 | "hmac-drbg": { 2671 | "version": "1.0.1", 2672 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 2673 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 2674 | "dev": true, 2675 | "requires": { 2676 | "hash.js": "1.1.5", 2677 | "minimalistic-assert": "1.0.1", 2678 | "minimalistic-crypto-utils": "1.0.1" 2679 | } 2680 | }, 2681 | "hoek": { 2682 | "version": "4.2.1", 2683 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", 2684 | "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", 2685 | "dev": true 2686 | }, 2687 | "home-or-tmp": { 2688 | "version": "2.0.0", 2689 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 2690 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 2691 | "dev": true, 2692 | "requires": { 2693 | "os-homedir": "1.0.2", 2694 | "os-tmpdir": "1.0.2" 2695 | } 2696 | }, 2697 | "homedir-polyfill": { 2698 | "version": "1.0.1", 2699 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", 2700 | "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", 2701 | "dev": true, 2702 | "requires": { 2703 | "parse-passwd": "1.0.0" 2704 | } 2705 | }, 2706 | "https-browserify": { 2707 | "version": "1.0.0", 2708 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 2709 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 2710 | "dev": true 2711 | }, 2712 | "ieee754": { 2713 | "version": "1.1.8", 2714 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 2715 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", 2716 | "dev": true 2717 | }, 2718 | "iferr": { 2719 | "version": "0.1.5", 2720 | "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", 2721 | "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", 2722 | "dev": true 2723 | }, 2724 | "imurmurhash": { 2725 | "version": "0.1.4", 2726 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2727 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2728 | "dev": true 2729 | }, 2730 | "indexof": { 2731 | "version": "0.0.1", 2732 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 2733 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 2734 | "dev": true 2735 | }, 2736 | "inflight": { 2737 | "version": "1.0.6", 2738 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2739 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2740 | "dev": true, 2741 | "requires": { 2742 | "once": "1.4.0", 2743 | "wrappy": "1.0.2" 2744 | } 2745 | }, 2746 | "inherits": { 2747 | "version": "2.0.3", 2748 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2749 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2750 | "dev": true 2751 | }, 2752 | "invariant": { 2753 | "version": "2.2.4", 2754 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 2755 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 2756 | "dev": true, 2757 | "requires": { 2758 | "loose-envify": "1.4.0" 2759 | } 2760 | }, 2761 | "iron": { 2762 | "version": "4.0.5", 2763 | "resolved": "https://registry.npmjs.org/iron/-/iron-4.0.5.tgz", 2764 | "integrity": "sha1-TwQszri5c480a1mqc0yDqJvDFCg=", 2765 | "dev": true, 2766 | "requires": { 2767 | "boom": "5.2.0", 2768 | "cryptiles": "3.1.2", 2769 | "hoek": "4.2.1" 2770 | }, 2771 | "dependencies": { 2772 | "boom": { 2773 | "version": "5.2.0", 2774 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 2775 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 2776 | "dev": true, 2777 | "requires": { 2778 | "hoek": "4.2.1" 2779 | } 2780 | } 2781 | } 2782 | }, 2783 | "is-accessor-descriptor": { 2784 | "version": "0.1.6", 2785 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2786 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 2787 | "dev": true, 2788 | "requires": { 2789 | "kind-of": "3.2.2" 2790 | }, 2791 | "dependencies": { 2792 | "kind-of": { 2793 | "version": "3.2.2", 2794 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2795 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2796 | "dev": true, 2797 | "requires": { 2798 | "is-buffer": "1.1.6" 2799 | } 2800 | } 2801 | } 2802 | }, 2803 | "is-binary-path": { 2804 | "version": "1.0.1", 2805 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2806 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2807 | "dev": true, 2808 | "requires": { 2809 | "binary-extensions": "1.11.0" 2810 | } 2811 | }, 2812 | "is-buffer": { 2813 | "version": "1.1.6", 2814 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2815 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2816 | "dev": true 2817 | }, 2818 | "is-builtin-module": { 2819 | "version": "1.0.0", 2820 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2821 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2822 | "dev": true, 2823 | "requires": { 2824 | "builtin-modules": "1.1.1" 2825 | } 2826 | }, 2827 | "is-data-descriptor": { 2828 | "version": "0.1.4", 2829 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 2830 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 2831 | "dev": true, 2832 | "requires": { 2833 | "kind-of": "3.2.2" 2834 | }, 2835 | "dependencies": { 2836 | "kind-of": { 2837 | "version": "3.2.2", 2838 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2839 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2840 | "dev": true, 2841 | "requires": { 2842 | "is-buffer": "1.1.6" 2843 | } 2844 | } 2845 | } 2846 | }, 2847 | "is-descriptor": { 2848 | "version": "0.1.6", 2849 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2850 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2851 | "dev": true, 2852 | "requires": { 2853 | "is-accessor-descriptor": "0.1.6", 2854 | "is-data-descriptor": "0.1.4", 2855 | "kind-of": "5.1.0" 2856 | }, 2857 | "dependencies": { 2858 | "kind-of": { 2859 | "version": "5.1.0", 2860 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2861 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2862 | "dev": true 2863 | } 2864 | } 2865 | }, 2866 | "is-extendable": { 2867 | "version": "0.1.1", 2868 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2869 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2870 | "dev": true 2871 | }, 2872 | "is-extglob": { 2873 | "version": "2.1.1", 2874 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2875 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2876 | "dev": true 2877 | }, 2878 | "is-finite": { 2879 | "version": "1.0.2", 2880 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2881 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2882 | "dev": true, 2883 | "requires": { 2884 | "number-is-nan": "1.0.1" 2885 | } 2886 | }, 2887 | "is-glob": { 2888 | "version": "4.0.0", 2889 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", 2890 | "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", 2891 | "dev": true, 2892 | "requires": { 2893 | "is-extglob": "2.1.1" 2894 | } 2895 | }, 2896 | "is-number": { 2897 | "version": "3.0.0", 2898 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2899 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2900 | "dev": true, 2901 | "requires": { 2902 | "kind-of": "3.2.2" 2903 | }, 2904 | "dependencies": { 2905 | "kind-of": { 2906 | "version": "3.2.2", 2907 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2908 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2909 | "dev": true, 2910 | "requires": { 2911 | "is-buffer": "1.1.6" 2912 | } 2913 | } 2914 | } 2915 | }, 2916 | "is-plain-object": { 2917 | "version": "2.0.4", 2918 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2919 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2920 | "dev": true, 2921 | "requires": { 2922 | "isobject": "3.0.1" 2923 | } 2924 | }, 2925 | "is-windows": { 2926 | "version": "1.0.2", 2927 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2928 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2929 | "dev": true 2930 | }, 2931 | "isarray": { 2932 | "version": "1.0.0", 2933 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2934 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2935 | "dev": true 2936 | }, 2937 | "isemail": { 2938 | "version": "2.2.1", 2939 | "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", 2940 | "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=", 2941 | "dev": true 2942 | }, 2943 | "isobject": { 2944 | "version": "3.0.1", 2945 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2946 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2947 | "dev": true 2948 | }, 2949 | "items": { 2950 | "version": "2.1.1", 2951 | "resolved": "https://registry.npmjs.org/items/-/items-2.1.1.tgz", 2952 | "integrity": "sha1-i9FtnIOxlSneWuoyGsqtp4NkoZg=", 2953 | "dev": true 2954 | }, 2955 | "jmespath": { 2956 | "version": "0.15.0", 2957 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", 2958 | "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", 2959 | "dev": true 2960 | }, 2961 | "joi": { 2962 | "version": "9.2.0", 2963 | "resolved": "https://registry.npmjs.org/joi/-/joi-9.2.0.tgz", 2964 | "integrity": "sha1-M4WseQGSEwy+Iw6ALsAskhW7/to=", 2965 | "dev": true, 2966 | "requires": { 2967 | "hoek": "4.2.1", 2968 | "isemail": "2.2.1", 2969 | "items": "2.1.1", 2970 | "moment": "2.22.2", 2971 | "topo": "2.0.2" 2972 | } 2973 | }, 2974 | "js-string-escape": { 2975 | "version": "1.0.1", 2976 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", 2977 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", 2978 | "dev": true 2979 | }, 2980 | "js-tokens": { 2981 | "version": "3.0.2", 2982 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2983 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2984 | "dev": true 2985 | }, 2986 | "jsesc": { 2987 | "version": "1.3.0", 2988 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 2989 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 2990 | "dev": true 2991 | }, 2992 | "json-parse-better-errors": { 2993 | "version": "1.0.2", 2994 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2995 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2996 | "dev": true 2997 | }, 2998 | "json-schema-traverse": { 2999 | "version": "0.4.1", 3000 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3001 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3002 | "dev": true 3003 | }, 3004 | "json5": { 3005 | "version": "0.5.1", 3006 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 3007 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 3008 | "dev": true 3009 | }, 3010 | "jsonfile": { 3011 | "version": "2.4.0", 3012 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 3013 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 3014 | "dev": true, 3015 | "requires": { 3016 | "graceful-fs": "4.1.11" 3017 | } 3018 | }, 3019 | "jsonpath-plus": { 3020 | "version": "0.16.0", 3021 | "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.16.0.tgz", 3022 | "integrity": "sha1-/kQbI/A+xpeaVgNROYjNPtt9tdw=", 3023 | "dev": true 3024 | }, 3025 | "jsonwebtoken": { 3026 | "version": "8.3.0", 3027 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", 3028 | "integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==", 3029 | "dev": true, 3030 | "requires": { 3031 | "jws": "3.1.5", 3032 | "lodash.includes": "4.3.0", 3033 | "lodash.isboolean": "3.0.3", 3034 | "lodash.isinteger": "4.0.4", 3035 | "lodash.isnumber": "3.0.3", 3036 | "lodash.isplainobject": "4.0.6", 3037 | "lodash.isstring": "4.0.1", 3038 | "lodash.once": "4.1.1", 3039 | "ms": "2.1.1" 3040 | }, 3041 | "dependencies": { 3042 | "ms": { 3043 | "version": "2.1.1", 3044 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 3045 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 3046 | "dev": true 3047 | } 3048 | } 3049 | }, 3050 | "jwa": { 3051 | "version": "1.1.6", 3052 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", 3053 | "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", 3054 | "dev": true, 3055 | "requires": { 3056 | "buffer-equal-constant-time": "1.0.1", 3057 | "ecdsa-sig-formatter": "1.0.10", 3058 | "safe-buffer": "5.1.2" 3059 | } 3060 | }, 3061 | "jws": { 3062 | "version": "3.1.5", 3063 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", 3064 | "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", 3065 | "dev": true, 3066 | "requires": { 3067 | "jwa": "1.1.6", 3068 | "safe-buffer": "5.1.2" 3069 | } 3070 | }, 3071 | "kareem": { 3072 | "version": "2.2.1", 3073 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.2.1.tgz", 3074 | "integrity": "sha512-xpDFy8OxkFM+vK6pXy6JmH92ibeEFUuDWzas5M9L7MzVmHW3jzwAHxodCPV/BYkf4A31bVDLyonrMfp9RXb/oA==" 3075 | }, 3076 | "kilt": { 3077 | "version": "2.0.2", 3078 | "resolved": "https://registry.npmjs.org/kilt/-/kilt-2.0.2.tgz", 3079 | "integrity": "sha1-BNcYPCmKEjLv3ffdyllZqPYwHiA=", 3080 | "dev": true, 3081 | "requires": { 3082 | "hoek": "4.2.1" 3083 | } 3084 | }, 3085 | "kind-of": { 3086 | "version": "6.0.2", 3087 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", 3088 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", 3089 | "dev": true 3090 | }, 3091 | "klaw": { 3092 | "version": "1.3.1", 3093 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", 3094 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", 3095 | "dev": true, 3096 | "requires": { 3097 | "graceful-fs": "4.1.11" 3098 | } 3099 | }, 3100 | "lambda-wrapper": { 3101 | "version": "0.3.0", 3102 | "resolved": "https://registry.npmjs.org/lambda-wrapper/-/lambda-wrapper-0.3.0.tgz", 3103 | "integrity": "sha512-BgXMXlbREkUg4d8HaKA35KE16WLxgHeZ1zfOFineCJU7QncmTLVsRvrk67Jyz90Ds5yIMuO6JZn8X5KRSkSneA==", 3104 | "dev": true, 3105 | "requires": { 3106 | "aws-sdk": "2.276.1" 3107 | } 3108 | }, 3109 | "lazystream": { 3110 | "version": "1.0.0", 3111 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", 3112 | "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 3113 | "dev": true, 3114 | "requires": { 3115 | "readable-stream": "2.3.6" 3116 | } 3117 | }, 3118 | "loader-runner": { 3119 | "version": "2.3.0", 3120 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", 3121 | "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", 3122 | "dev": true 3123 | }, 3124 | "loader-utils": { 3125 | "version": "1.1.0", 3126 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 3127 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 3128 | "dev": true, 3129 | "requires": { 3130 | "big.js": "3.2.0", 3131 | "emojis-list": "2.1.0", 3132 | "json5": "0.5.1" 3133 | } 3134 | }, 3135 | "locate-path": { 3136 | "version": "2.0.0", 3137 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 3138 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 3139 | "dev": true, 3140 | "requires": { 3141 | "p-locate": "2.0.0", 3142 | "path-exists": "3.0.0" 3143 | } 3144 | }, 3145 | "lodash": { 3146 | "version": "4.17.10", 3147 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 3148 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" 3149 | }, 3150 | "lodash.debounce": { 3151 | "version": "4.0.8", 3152 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 3153 | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", 3154 | "dev": true 3155 | }, 3156 | "lodash.get": { 3157 | "version": "4.4.2", 3158 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 3159 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 3160 | }, 3161 | "lodash.includes": { 3162 | "version": "4.3.0", 3163 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 3164 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", 3165 | "dev": true 3166 | }, 3167 | "lodash.isboolean": { 3168 | "version": "3.0.3", 3169 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 3170 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", 3171 | "dev": true 3172 | }, 3173 | "lodash.isinteger": { 3174 | "version": "4.0.4", 3175 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 3176 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", 3177 | "dev": true 3178 | }, 3179 | "lodash.isnumber": { 3180 | "version": "3.0.3", 3181 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 3182 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", 3183 | "dev": true 3184 | }, 3185 | "lodash.isplainobject": { 3186 | "version": "4.0.6", 3187 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 3188 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", 3189 | "dev": true 3190 | }, 3191 | "lodash.isstring": { 3192 | "version": "4.0.1", 3193 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 3194 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", 3195 | "dev": true 3196 | }, 3197 | "lodash.once": { 3198 | "version": "4.1.1", 3199 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 3200 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 3201 | "dev": true 3202 | }, 3203 | "long": { 3204 | "version": "3.2.0", 3205 | "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", 3206 | "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", 3207 | "dev": true 3208 | }, 3209 | "loose-envify": { 3210 | "version": "1.4.0", 3211 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3212 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3213 | "dev": true, 3214 | "requires": { 3215 | "js-tokens": "3.0.2" 3216 | } 3217 | }, 3218 | "lru-cache": { 3219 | "version": "4.1.3", 3220 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", 3221 | "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", 3222 | "dev": true, 3223 | "requires": { 3224 | "pseudomap": "1.0.2", 3225 | "yallist": "2.1.2" 3226 | } 3227 | }, 3228 | "make-dir": { 3229 | "version": "1.3.0", 3230 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 3231 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 3232 | "dev": true, 3233 | "requires": { 3234 | "pify": "3.0.0" 3235 | } 3236 | }, 3237 | "make-error": { 3238 | "version": "1.3.4", 3239 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", 3240 | "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", 3241 | "dev": true 3242 | }, 3243 | "mamacro": { 3244 | "version": "0.0.3", 3245 | "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", 3246 | "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", 3247 | "dev": true 3248 | }, 3249 | "map-cache": { 3250 | "version": "0.2.2", 3251 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 3252 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 3253 | "dev": true 3254 | }, 3255 | "map-visit": { 3256 | "version": "1.0.0", 3257 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 3258 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 3259 | "dev": true, 3260 | "requires": { 3261 | "object-visit": "1.0.1" 3262 | } 3263 | }, 3264 | "md5.js": { 3265 | "version": "1.3.4", 3266 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 3267 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 3268 | "dev": true, 3269 | "requires": { 3270 | "hash-base": "3.0.4", 3271 | "inherits": "2.0.3" 3272 | } 3273 | }, 3274 | "memory-fs": { 3275 | "version": "0.4.1", 3276 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", 3277 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 3278 | "dev": true, 3279 | "requires": { 3280 | "errno": "0.1.7", 3281 | "readable-stream": "2.3.6" 3282 | } 3283 | }, 3284 | "micromatch": { 3285 | "version": "3.1.10", 3286 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 3287 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 3288 | "dev": true, 3289 | "requires": { 3290 | "arr-diff": "4.0.0", 3291 | "array-unique": "0.3.2", 3292 | "braces": "2.3.2", 3293 | "define-property": "2.0.2", 3294 | "extend-shallow": "3.0.2", 3295 | "extglob": "2.0.4", 3296 | "fragment-cache": "0.2.1", 3297 | "kind-of": "6.0.2", 3298 | "nanomatch": "1.2.13", 3299 | "object.pick": "1.3.0", 3300 | "regex-not": "1.0.2", 3301 | "snapdragon": "0.8.2", 3302 | "to-regex": "3.0.2" 3303 | } 3304 | }, 3305 | "miller-rabin": { 3306 | "version": "4.0.1", 3307 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 3308 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 3309 | "dev": true, 3310 | "requires": { 3311 | "bn.js": "4.11.8", 3312 | "brorand": "1.1.0" 3313 | } 3314 | }, 3315 | "mime-db": { 3316 | "version": "1.35.0", 3317 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", 3318 | "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", 3319 | "dev": true 3320 | }, 3321 | "mimos": { 3322 | "version": "3.0.3", 3323 | "resolved": "https://registry.npmjs.org/mimos/-/mimos-3.0.3.tgz", 3324 | "integrity": "sha1-uRCQcq03jCty9qAQHEPd+ys2ZB8=", 3325 | "dev": true, 3326 | "requires": { 3327 | "hoek": "4.2.1", 3328 | "mime-db": "1.35.0" 3329 | } 3330 | }, 3331 | "minimalistic-assert": { 3332 | "version": "1.0.1", 3333 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 3334 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", 3335 | "dev": true 3336 | }, 3337 | "minimalistic-crypto-utils": { 3338 | "version": "1.0.1", 3339 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 3340 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 3341 | "dev": true 3342 | }, 3343 | "minimatch": { 3344 | "version": "3.0.4", 3345 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 3346 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 3347 | "dev": true, 3348 | "requires": { 3349 | "brace-expansion": "1.1.11" 3350 | } 3351 | }, 3352 | "minimist": { 3353 | "version": "0.0.8", 3354 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 3355 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 3356 | "dev": true 3357 | }, 3358 | "mississippi": { 3359 | "version": "2.0.0", 3360 | "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", 3361 | "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", 3362 | "dev": true, 3363 | "requires": { 3364 | "concat-stream": "1.6.2", 3365 | "duplexify": "3.6.0", 3366 | "end-of-stream": "1.4.1", 3367 | "flush-write-stream": "1.0.3", 3368 | "from2": "2.3.0", 3369 | "parallel-transform": "1.1.0", 3370 | "pump": "2.0.1", 3371 | "pumpify": "1.5.1", 3372 | "stream-each": "1.2.2", 3373 | "through2": "2.0.3" 3374 | } 3375 | }, 3376 | "mixin-deep": { 3377 | "version": "1.3.1", 3378 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", 3379 | "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", 3380 | "dev": true, 3381 | "requires": { 3382 | "for-in": "1.0.2", 3383 | "is-extendable": "1.0.1" 3384 | }, 3385 | "dependencies": { 3386 | "is-extendable": { 3387 | "version": "1.0.1", 3388 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 3389 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 3390 | "dev": true, 3391 | "requires": { 3392 | "is-plain-object": "2.0.4" 3393 | } 3394 | } 3395 | } 3396 | }, 3397 | "mkdirp": { 3398 | "version": "0.5.1", 3399 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 3400 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 3401 | "dev": true, 3402 | "requires": { 3403 | "minimist": "0.0.8" 3404 | } 3405 | }, 3406 | "mocha": { 3407 | "version": "4.1.0", 3408 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", 3409 | "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", 3410 | "dev": true, 3411 | "requires": { 3412 | "browser-stdout": "1.3.0", 3413 | "commander": "2.11.0", 3414 | "debug": "3.1.0", 3415 | "diff": "3.3.1", 3416 | "escape-string-regexp": "1.0.5", 3417 | "glob": "7.1.2", 3418 | "growl": "1.10.3", 3419 | "he": "1.1.1", 3420 | "mkdirp": "0.5.1", 3421 | "supports-color": "4.4.0" 3422 | } 3423 | }, 3424 | "moment": { 3425 | "version": "2.22.2", 3426 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", 3427 | "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", 3428 | "dev": true 3429 | }, 3430 | "mongodb": { 3431 | "version": "3.1.1", 3432 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.1.tgz", 3433 | "integrity": "sha512-GU9oWK4pi8PC7NyGiwjFMwZyMqwGWoMEMvM0LZh7UKW/FFAqgmZKjjriD+5MEOCDUJE2dtHX93/K5UtDxO0otg==", 3434 | "requires": { 3435 | "mongodb-core": "3.1.0" 3436 | } 3437 | }, 3438 | "mongodb-core": { 3439 | "version": "3.1.0", 3440 | "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.0.tgz", 3441 | "integrity": "sha512-qRjG62Fu//CZhkgn0jA/k8jh5MhACIq8cOJUryH6sck87pgt+C222MSD02tsCq5zNo/B6ZFHtNodZ2qpf8E86g==", 3442 | "requires": { 3443 | "bson": "1.0.9", 3444 | "require_optional": "1.0.1", 3445 | "saslprep": "1.0.1" 3446 | } 3447 | }, 3448 | "mongoose": { 3449 | "version": "5.2.4", 3450 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.2.4.tgz", 3451 | "integrity": "sha512-UeFc4+PXbX0laHaUhVule6c/E/1e9ESb07zIg2FQQK0G0Ocq5BmVhWIEw6Sl/ZuNfLhC08WnERXNfAGy+Mlsgg==", 3452 | "requires": { 3453 | "async": "2.6.1", 3454 | "bson": "1.0.9", 3455 | "kareem": "2.2.1", 3456 | "lodash.get": "4.4.2", 3457 | "mongodb": "3.1.1", 3458 | "mongodb-core": "3.1.0", 3459 | "mongoose-legacy-pluralize": "1.0.2", 3460 | "mpath": "0.4.1", 3461 | "mquery": "3.0.0", 3462 | "ms": "2.0.0", 3463 | "regexp-clone": "0.0.1", 3464 | "sliced": "1.0.1" 3465 | } 3466 | }, 3467 | "mongoose-legacy-pluralize": { 3468 | "version": "1.0.2", 3469 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 3470 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 3471 | }, 3472 | "move-concurrently": { 3473 | "version": "1.0.1", 3474 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", 3475 | "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", 3476 | "dev": true, 3477 | "requires": { 3478 | "aproba": "1.2.0", 3479 | "copy-concurrently": "1.0.5", 3480 | "fs-write-stream-atomic": "1.0.10", 3481 | "mkdirp": "0.5.1", 3482 | "rimraf": "2.6.2", 3483 | "run-queue": "1.0.3" 3484 | } 3485 | }, 3486 | "mpath": { 3487 | "version": "0.4.1", 3488 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz", 3489 | "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA==" 3490 | }, 3491 | "mquery": { 3492 | "version": "3.0.0", 3493 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz", 3494 | "integrity": "sha512-WL1Lk8v4l8VFSSwN3yCzY9TXw+fKVYKn6f+w86TRzOLSE8k1yTgGaLBPUByJQi8VcLbOdnUneFV/y3Kv874pnQ==", 3495 | "requires": { 3496 | "bluebird": "3.5.0", 3497 | "debug": "2.6.9", 3498 | "regexp-clone": "0.0.1", 3499 | "sliced": "0.0.5" 3500 | }, 3501 | "dependencies": { 3502 | "bluebird": { 3503 | "version": "3.5.0", 3504 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", 3505 | "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" 3506 | }, 3507 | "debug": { 3508 | "version": "2.6.9", 3509 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 3510 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 3511 | "requires": { 3512 | "ms": "2.0.0" 3513 | } 3514 | }, 3515 | "sliced": { 3516 | "version": "0.0.5", 3517 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", 3518 | "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" 3519 | } 3520 | } 3521 | }, 3522 | "ms": { 3523 | "version": "2.0.0", 3524 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 3525 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 3526 | }, 3527 | "nan": { 3528 | "version": "2.10.0", 3529 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", 3530 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", 3531 | "dev": true, 3532 | "optional": true 3533 | }, 3534 | "nanomatch": { 3535 | "version": "1.2.13", 3536 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 3537 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 3538 | "dev": true, 3539 | "requires": { 3540 | "arr-diff": "4.0.0", 3541 | "array-unique": "0.3.2", 3542 | "define-property": "2.0.2", 3543 | "extend-shallow": "3.0.2", 3544 | "fragment-cache": "0.2.1", 3545 | "is-windows": "1.0.2", 3546 | "kind-of": "6.0.2", 3547 | "object.pick": "1.3.0", 3548 | "regex-not": "1.0.2", 3549 | "snapdragon": "0.8.2", 3550 | "to-regex": "3.0.2" 3551 | } 3552 | }, 3553 | "neo-async": { 3554 | "version": "2.5.1", 3555 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", 3556 | "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", 3557 | "dev": true 3558 | }, 3559 | "nigel": { 3560 | "version": "2.0.2", 3561 | "resolved": "https://registry.npmjs.org/nigel/-/nigel-2.0.2.tgz", 3562 | "integrity": "sha1-k6GGb7DFLYc5CqdeKxYfS1x15bE=", 3563 | "dev": true, 3564 | "requires": { 3565 | "hoek": "4.2.1", 3566 | "vise": "2.0.2" 3567 | } 3568 | }, 3569 | "node-libs-browser": { 3570 | "version": "2.1.0", 3571 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", 3572 | "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", 3573 | "dev": true, 3574 | "requires": { 3575 | "assert": "1.4.1", 3576 | "browserify-zlib": "0.2.0", 3577 | "buffer": "4.9.1", 3578 | "console-browserify": "1.1.0", 3579 | "constants-browserify": "1.0.0", 3580 | "crypto-browserify": "3.12.0", 3581 | "domain-browser": "1.2.0", 3582 | "events": "1.1.1", 3583 | "https-browserify": "1.0.0", 3584 | "os-browserify": "0.3.0", 3585 | "path-browserify": "0.0.0", 3586 | "process": "0.11.10", 3587 | "punycode": "1.3.2", 3588 | "querystring-es3": "0.2.1", 3589 | "readable-stream": "2.3.6", 3590 | "stream-browserify": "2.0.1", 3591 | "stream-http": "2.8.3", 3592 | "string_decoder": "1.1.1", 3593 | "timers-browserify": "2.0.10", 3594 | "tty-browserify": "0.0.0", 3595 | "url": "0.11.0", 3596 | "util": "0.10.4", 3597 | "vm-browserify": "0.0.4" 3598 | }, 3599 | "dependencies": { 3600 | "url": { 3601 | "version": "0.11.0", 3602 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 3603 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 3604 | "dev": true, 3605 | "requires": { 3606 | "punycode": "1.3.2", 3607 | "querystring": "0.2.0" 3608 | } 3609 | } 3610 | } 3611 | }, 3612 | "normalize-path": { 3613 | "version": "2.1.1", 3614 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3615 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3616 | "dev": true, 3617 | "requires": { 3618 | "remove-trailing-separator": "1.1.0" 3619 | } 3620 | }, 3621 | "number-is-nan": { 3622 | "version": "1.0.1", 3623 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 3624 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 3625 | "dev": true 3626 | }, 3627 | "object-copy": { 3628 | "version": "0.1.0", 3629 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 3630 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 3631 | "dev": true, 3632 | "requires": { 3633 | "copy-descriptor": "0.1.1", 3634 | "define-property": "0.2.5", 3635 | "kind-of": "3.2.2" 3636 | }, 3637 | "dependencies": { 3638 | "define-property": { 3639 | "version": "0.2.5", 3640 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3641 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3642 | "dev": true, 3643 | "requires": { 3644 | "is-descriptor": "0.1.6" 3645 | } 3646 | }, 3647 | "kind-of": { 3648 | "version": "3.2.2", 3649 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3650 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3651 | "dev": true, 3652 | "requires": { 3653 | "is-buffer": "1.1.6" 3654 | } 3655 | } 3656 | } 3657 | }, 3658 | "object-visit": { 3659 | "version": "1.0.1", 3660 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 3661 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 3662 | "dev": true, 3663 | "requires": { 3664 | "isobject": "3.0.1" 3665 | } 3666 | }, 3667 | "object.pick": { 3668 | "version": "1.3.0", 3669 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 3670 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 3671 | "dev": true, 3672 | "requires": { 3673 | "isobject": "3.0.1" 3674 | } 3675 | }, 3676 | "once": { 3677 | "version": "1.4.0", 3678 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3679 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3680 | "dev": true, 3681 | "requires": { 3682 | "wrappy": "1.0.2" 3683 | } 3684 | }, 3685 | "os-browserify": { 3686 | "version": "0.3.0", 3687 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 3688 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 3689 | "dev": true 3690 | }, 3691 | "os-homedir": { 3692 | "version": "1.0.2", 3693 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3694 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 3695 | "dev": true 3696 | }, 3697 | "os-tmpdir": { 3698 | "version": "1.0.2", 3699 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3700 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3701 | "dev": true 3702 | }, 3703 | "p-limit": { 3704 | "version": "1.3.0", 3705 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 3706 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 3707 | "dev": true, 3708 | "requires": { 3709 | "p-try": "1.0.0" 3710 | } 3711 | }, 3712 | "p-locate": { 3713 | "version": "2.0.0", 3714 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3715 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3716 | "dev": true, 3717 | "requires": { 3718 | "p-limit": "1.3.0" 3719 | } 3720 | }, 3721 | "p-try": { 3722 | "version": "1.0.0", 3723 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 3724 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 3725 | "dev": true 3726 | }, 3727 | "pako": { 3728 | "version": "1.0.6", 3729 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", 3730 | "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", 3731 | "dev": true 3732 | }, 3733 | "parallel-transform": { 3734 | "version": "1.1.0", 3735 | "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", 3736 | "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", 3737 | "dev": true, 3738 | "requires": { 3739 | "cyclist": "0.2.2", 3740 | "inherits": "2.0.3", 3741 | "readable-stream": "2.3.6" 3742 | } 3743 | }, 3744 | "parse-asn1": { 3745 | "version": "5.1.1", 3746 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", 3747 | "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", 3748 | "dev": true, 3749 | "requires": { 3750 | "asn1.js": "4.10.1", 3751 | "browserify-aes": "1.2.0", 3752 | "create-hash": "1.2.0", 3753 | "evp_bytestokey": "1.0.3", 3754 | "pbkdf2": "3.0.16" 3755 | } 3756 | }, 3757 | "parse-passwd": { 3758 | "version": "1.0.0", 3759 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 3760 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 3761 | "dev": true 3762 | }, 3763 | "pascalcase": { 3764 | "version": "0.1.1", 3765 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 3766 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 3767 | "dev": true 3768 | }, 3769 | "path-browserify": { 3770 | "version": "0.0.0", 3771 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 3772 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 3773 | "dev": true 3774 | }, 3775 | "path-dirname": { 3776 | "version": "1.0.2", 3777 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", 3778 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", 3779 | "dev": true 3780 | }, 3781 | "path-exists": { 3782 | "version": "3.0.0", 3783 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3784 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3785 | "dev": true 3786 | }, 3787 | "path-is-absolute": { 3788 | "version": "1.0.1", 3789 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3790 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3791 | "dev": true 3792 | }, 3793 | "pbkdf2": { 3794 | "version": "3.0.16", 3795 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", 3796 | "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", 3797 | "dev": true, 3798 | "requires": { 3799 | "create-hash": "1.2.0", 3800 | "create-hmac": "1.1.7", 3801 | "ripemd160": "2.0.2", 3802 | "safe-buffer": "5.1.2", 3803 | "sha.js": "2.4.11" 3804 | } 3805 | }, 3806 | "peekaboo": { 3807 | "version": "2.0.2", 3808 | "resolved": "https://registry.npmjs.org/peekaboo/-/peekaboo-2.0.2.tgz", 3809 | "integrity": "sha1-/ELhOe/WmMb/KHCmsgwEfNmqKf8=", 3810 | "dev": true 3811 | }, 3812 | "pez": { 3813 | "version": "2.1.5", 3814 | "resolved": "https://registry.npmjs.org/pez/-/pez-2.1.5.tgz", 3815 | "integrity": "sha1-XsLMYlAMw+tCNtSkFM9aF7XrUAc=", 3816 | "dev": true, 3817 | "requires": { 3818 | "b64": "3.0.3", 3819 | "boom": "5.2.0", 3820 | "content": "3.0.7", 3821 | "hoek": "4.2.1", 3822 | "nigel": "2.0.2" 3823 | }, 3824 | "dependencies": { 3825 | "boom": { 3826 | "version": "5.2.0", 3827 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 3828 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 3829 | "dev": true, 3830 | "requires": { 3831 | "hoek": "4.2.1" 3832 | } 3833 | } 3834 | } 3835 | }, 3836 | "pify": { 3837 | "version": "3.0.0", 3838 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3839 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3840 | "dev": true 3841 | }, 3842 | "pkg-dir": { 3843 | "version": "2.0.0", 3844 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3845 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3846 | "dev": true, 3847 | "requires": { 3848 | "find-up": "2.1.0" 3849 | } 3850 | }, 3851 | "posix-character-classes": { 3852 | "version": "0.1.1", 3853 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 3854 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 3855 | "dev": true 3856 | }, 3857 | "private": { 3858 | "version": "0.1.8", 3859 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 3860 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 3861 | "dev": true 3862 | }, 3863 | "process": { 3864 | "version": "0.11.10", 3865 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 3866 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 3867 | "dev": true 3868 | }, 3869 | "process-nextick-args": { 3870 | "version": "2.0.0", 3871 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 3872 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 3873 | "dev": true 3874 | }, 3875 | "promise-inflight": { 3876 | "version": "1.0.1", 3877 | "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", 3878 | "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", 3879 | "dev": true 3880 | }, 3881 | "prr": { 3882 | "version": "1.0.1", 3883 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 3884 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 3885 | "dev": true 3886 | }, 3887 | "pseudomap": { 3888 | "version": "1.0.2", 3889 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3890 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3891 | "dev": true 3892 | }, 3893 | "public-encrypt": { 3894 | "version": "4.0.2", 3895 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", 3896 | "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", 3897 | "dev": true, 3898 | "requires": { 3899 | "bn.js": "4.11.8", 3900 | "browserify-rsa": "4.0.1", 3901 | "create-hash": "1.2.0", 3902 | "parse-asn1": "5.1.1", 3903 | "randombytes": "2.0.6" 3904 | } 3905 | }, 3906 | "pump": { 3907 | "version": "2.0.1", 3908 | "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", 3909 | "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", 3910 | "dev": true, 3911 | "requires": { 3912 | "end-of-stream": "1.4.1", 3913 | "once": "1.4.0" 3914 | } 3915 | }, 3916 | "pumpify": { 3917 | "version": "1.5.1", 3918 | "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", 3919 | "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", 3920 | "dev": true, 3921 | "requires": { 3922 | "duplexify": "3.6.0", 3923 | "inherits": "2.0.3", 3924 | "pump": "2.0.1" 3925 | } 3926 | }, 3927 | "punycode": { 3928 | "version": "1.3.2", 3929 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 3930 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 3931 | "dev": true 3932 | }, 3933 | "querystring": { 3934 | "version": "0.2.0", 3935 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 3936 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 3937 | "dev": true 3938 | }, 3939 | "querystring-es3": { 3940 | "version": "0.2.1", 3941 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 3942 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 3943 | "dev": true 3944 | }, 3945 | "randombytes": { 3946 | "version": "2.0.6", 3947 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 3948 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 3949 | "dev": true, 3950 | "requires": { 3951 | "safe-buffer": "5.1.2" 3952 | } 3953 | }, 3954 | "randomfill": { 3955 | "version": "1.0.4", 3956 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 3957 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 3958 | "dev": true, 3959 | "requires": { 3960 | "randombytes": "2.0.6", 3961 | "safe-buffer": "5.1.2" 3962 | } 3963 | }, 3964 | "readable-stream": { 3965 | "version": "2.3.6", 3966 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 3967 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 3968 | "dev": true, 3969 | "requires": { 3970 | "core-util-is": "1.0.2", 3971 | "inherits": "2.0.3", 3972 | "isarray": "1.0.0", 3973 | "process-nextick-args": "2.0.0", 3974 | "safe-buffer": "5.1.2", 3975 | "string_decoder": "1.1.1", 3976 | "util-deprecate": "1.0.2" 3977 | } 3978 | }, 3979 | "readdirp": { 3980 | "version": "2.1.0", 3981 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 3982 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 3983 | "dev": true, 3984 | "requires": { 3985 | "graceful-fs": "4.1.11", 3986 | "minimatch": "3.0.4", 3987 | "readable-stream": "2.3.6", 3988 | "set-immediate-shim": "1.0.1" 3989 | } 3990 | }, 3991 | "regenerator-runtime": { 3992 | "version": "0.11.1", 3993 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 3994 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 3995 | "dev": true 3996 | }, 3997 | "regex-not": { 3998 | "version": "1.0.2", 3999 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 4000 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 4001 | "dev": true, 4002 | "requires": { 4003 | "extend-shallow": "3.0.2", 4004 | "safe-regex": "1.1.0" 4005 | } 4006 | }, 4007 | "regexp-clone": { 4008 | "version": "0.0.1", 4009 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", 4010 | "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" 4011 | }, 4012 | "remove-trailing-separator": { 4013 | "version": "1.1.0", 4014 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 4015 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 4016 | "dev": true 4017 | }, 4018 | "repeat-element": { 4019 | "version": "1.1.2", 4020 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 4021 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 4022 | "dev": true 4023 | }, 4024 | "repeat-string": { 4025 | "version": "1.6.1", 4026 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 4027 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 4028 | "dev": true 4029 | }, 4030 | "repeating": { 4031 | "version": "2.0.1", 4032 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 4033 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 4034 | "dev": true, 4035 | "requires": { 4036 | "is-finite": "1.0.2" 4037 | } 4038 | }, 4039 | "require_optional": { 4040 | "version": "1.0.1", 4041 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", 4042 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", 4043 | "requires": { 4044 | "resolve-from": "2.0.0", 4045 | "semver": "5.5.0" 4046 | } 4047 | }, 4048 | "resolve-from": { 4049 | "version": "2.0.0", 4050 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 4051 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 4052 | }, 4053 | "resolve-url": { 4054 | "version": "0.2.1", 4055 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 4056 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 4057 | "dev": true 4058 | }, 4059 | "ret": { 4060 | "version": "0.1.15", 4061 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 4062 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 4063 | "dev": true 4064 | }, 4065 | "rimraf": { 4066 | "version": "2.6.2", 4067 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 4068 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 4069 | "dev": true, 4070 | "requires": { 4071 | "glob": "7.1.2" 4072 | } 4073 | }, 4074 | "ripemd160": { 4075 | "version": "2.0.2", 4076 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 4077 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 4078 | "dev": true, 4079 | "requires": { 4080 | "hash-base": "3.0.4", 4081 | "inherits": "2.0.3" 4082 | } 4083 | }, 4084 | "run-queue": { 4085 | "version": "1.0.3", 4086 | "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", 4087 | "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", 4088 | "dev": true, 4089 | "requires": { 4090 | "aproba": "1.2.0" 4091 | } 4092 | }, 4093 | "safe-buffer": { 4094 | "version": "5.1.2", 4095 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 4096 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 4097 | "dev": true 4098 | }, 4099 | "safe-regex": { 4100 | "version": "1.1.0", 4101 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 4102 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 4103 | "dev": true, 4104 | "requires": { 4105 | "ret": "0.1.15" 4106 | } 4107 | }, 4108 | "saslprep": { 4109 | "version": "1.0.1", 4110 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.1.tgz", 4111 | "integrity": "sha512-ntN6SbE3hRqd45PKKadRPgA+xHPWg5lPSj2JWJdJvjTwXDDfkPVtXWvP8jJojvnm+rAsZ2b299C5NwZqq818EA==", 4112 | "optional": true 4113 | }, 4114 | "sax": { 4115 | "version": "1.2.1", 4116 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", 4117 | "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", 4118 | "dev": true 4119 | }, 4120 | "schema-utils": { 4121 | "version": "0.4.5", 4122 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", 4123 | "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", 4124 | "dev": true, 4125 | "requires": { 4126 | "ajv": "6.5.2", 4127 | "ajv-keywords": "3.2.0" 4128 | } 4129 | }, 4130 | "semver": { 4131 | "version": "5.5.0", 4132 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 4133 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" 4134 | }, 4135 | "serialize-javascript": { 4136 | "version": "1.5.0", 4137 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", 4138 | "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", 4139 | "dev": true 4140 | }, 4141 | "serverless-mocha-plugin": { 4142 | "version": "1.8.3", 4143 | "resolved": "https://registry.npmjs.org/serverless-mocha-plugin/-/serverless-mocha-plugin-1.8.3.tgz", 4144 | "integrity": "sha512-UN84iH/KdJH9V3jS29LC0wTCmdMZ+tqUJZn+Scxo82SHMqaj005LRfLjx8l18Z12uSUNGFmIR0j5QzQfSfcbBQ==", 4145 | "dev": true, 4146 | "requires": { 4147 | "aws-sdk": "2.276.1", 4148 | "bluebird": "3.4.6", 4149 | "chai": "3.5.0", 4150 | "delayed-stream": "1.0.0", 4151 | "ejs": "2.6.1", 4152 | "fs-extra": "1.0.0", 4153 | "lambda-wrapper": "0.3.0", 4154 | "mocha": "4.1.0", 4155 | "yaml-edit": "0.1.3" 4156 | } 4157 | }, 4158 | "serverless-offline": { 4159 | "version": "3.25.6", 4160 | "resolved": "https://registry.npmjs.org/serverless-offline/-/serverless-offline-3.25.6.tgz", 4161 | "integrity": "sha512-wEfbjHOWfKHirf3nTKSwAYvdbRqxrQuQFfYENTDE4VhOBM5S+sZrUCBj71sLnv0rhBlzMp6rZpBMfzU+63IfAw==", 4162 | "dev": true, 4163 | "requires": { 4164 | "babel-register": "6.26.0", 4165 | "boom": "4.3.1", 4166 | "h2o2": "5.4.0", 4167 | "hapi": "14.2.0", 4168 | "hapi-cors-headers": "1.0.3", 4169 | "js-string-escape": "1.0.1", 4170 | "jsonpath-plus": "0.16.0", 4171 | "jsonwebtoken": "8.3.0", 4172 | "lodash": "4.17.10", 4173 | "uuid": "3.3.2", 4174 | "velocityjs": "0.9.6" 4175 | }, 4176 | "dependencies": { 4177 | "uuid": { 4178 | "version": "3.3.2", 4179 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 4180 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 4181 | "dev": true 4182 | } 4183 | } 4184 | }, 4185 | "serverless-webpack": { 4186 | "version": "5.2.0", 4187 | "resolved": "https://registry.npmjs.org/serverless-webpack/-/serverless-webpack-5.2.0.tgz", 4188 | "integrity": "sha512-6nELLxkx+FSvzdIrhX0x67SJIBjm938EMhO9/+NFIX6WmuPplVaVF/VARZ3X7uTWj+WrkauOXn/F4bzayTfPkw==", 4189 | "dev": true, 4190 | "requires": { 4191 | "archiver": "2.1.1", 4192 | "bluebird": "3.5.1", 4193 | "fs-extra": "4.0.3", 4194 | "glob": "7.1.2", 4195 | "is-builtin-module": "1.0.0", 4196 | "lodash": "4.17.10", 4197 | "semver": "5.5.0", 4198 | "ts-node": "3.3.0" 4199 | }, 4200 | "dependencies": { 4201 | "bluebird": { 4202 | "version": "3.5.1", 4203 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 4204 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 4205 | "dev": true 4206 | }, 4207 | "fs-extra": { 4208 | "version": "4.0.3", 4209 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", 4210 | "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", 4211 | "dev": true, 4212 | "requires": { 4213 | "graceful-fs": "4.1.11", 4214 | "jsonfile": "4.0.0", 4215 | "universalify": "0.1.2" 4216 | } 4217 | }, 4218 | "jsonfile": { 4219 | "version": "4.0.0", 4220 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 4221 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 4222 | "dev": true, 4223 | "requires": { 4224 | "graceful-fs": "4.1.11" 4225 | } 4226 | } 4227 | } 4228 | }, 4229 | "set-immediate-shim": { 4230 | "version": "1.0.1", 4231 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 4232 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 4233 | "dev": true 4234 | }, 4235 | "set-value": { 4236 | "version": "2.0.0", 4237 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", 4238 | "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", 4239 | "dev": true, 4240 | "requires": { 4241 | "extend-shallow": "2.0.1", 4242 | "is-extendable": "0.1.1", 4243 | "is-plain-object": "2.0.4", 4244 | "split-string": "3.1.0" 4245 | }, 4246 | "dependencies": { 4247 | "extend-shallow": { 4248 | "version": "2.0.1", 4249 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 4250 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 4251 | "dev": true, 4252 | "requires": { 4253 | "is-extendable": "0.1.1" 4254 | } 4255 | } 4256 | } 4257 | }, 4258 | "setimmediate": { 4259 | "version": "1.0.5", 4260 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 4261 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 4262 | "dev": true 4263 | }, 4264 | "sha.js": { 4265 | "version": "2.4.11", 4266 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 4267 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 4268 | "dev": true, 4269 | "requires": { 4270 | "inherits": "2.0.3", 4271 | "safe-buffer": "5.1.2" 4272 | } 4273 | }, 4274 | "shot": { 4275 | "version": "3.4.2", 4276 | "resolved": "https://registry.npmjs.org/shot/-/shot-3.4.2.tgz", 4277 | "integrity": "sha1-Hlw/bysmZJrcQvfrNQIUpaApHWc=", 4278 | "dev": true, 4279 | "requires": { 4280 | "hoek": "4.2.1", 4281 | "joi": "10.6.0" 4282 | }, 4283 | "dependencies": { 4284 | "joi": { 4285 | "version": "10.6.0", 4286 | "resolved": "https://registry.npmjs.org/joi/-/joi-10.6.0.tgz", 4287 | "integrity": "sha512-hBF3LcqyAid+9X/pwg+eXjD2QBZI5eXnBFJYaAkH4SK3mp9QSRiiQnDYlmlz5pccMvnLcJRS4whhDOTCkmsAdQ==", 4288 | "dev": true, 4289 | "requires": { 4290 | "hoek": "4.2.1", 4291 | "isemail": "2.2.1", 4292 | "items": "2.1.1", 4293 | "topo": "2.0.2" 4294 | } 4295 | } 4296 | } 4297 | }, 4298 | "slash": { 4299 | "version": "1.0.0", 4300 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 4301 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 4302 | "dev": true 4303 | }, 4304 | "sliced": { 4305 | "version": "1.0.1", 4306 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 4307 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 4308 | }, 4309 | "snapdragon": { 4310 | "version": "0.8.2", 4311 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 4312 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 4313 | "dev": true, 4314 | "requires": { 4315 | "base": "0.11.2", 4316 | "debug": "2.6.9", 4317 | "define-property": "0.2.5", 4318 | "extend-shallow": "2.0.1", 4319 | "map-cache": "0.2.2", 4320 | "source-map": "0.5.7", 4321 | "source-map-resolve": "0.5.2", 4322 | "use": "3.1.1" 4323 | }, 4324 | "dependencies": { 4325 | "debug": { 4326 | "version": "2.6.9", 4327 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 4328 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 4329 | "dev": true, 4330 | "requires": { 4331 | "ms": "2.0.0" 4332 | } 4333 | }, 4334 | "define-property": { 4335 | "version": "0.2.5", 4336 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 4337 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 4338 | "dev": true, 4339 | "requires": { 4340 | "is-descriptor": "0.1.6" 4341 | } 4342 | }, 4343 | "extend-shallow": { 4344 | "version": "2.0.1", 4345 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 4346 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 4347 | "dev": true, 4348 | "requires": { 4349 | "is-extendable": "0.1.1" 4350 | } 4351 | } 4352 | } 4353 | }, 4354 | "snapdragon-node": { 4355 | "version": "2.1.1", 4356 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 4357 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 4358 | "dev": true, 4359 | "requires": { 4360 | "define-property": "1.0.0", 4361 | "isobject": "3.0.1", 4362 | "snapdragon-util": "3.0.1" 4363 | }, 4364 | "dependencies": { 4365 | "define-property": { 4366 | "version": "1.0.0", 4367 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 4368 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 4369 | "dev": true, 4370 | "requires": { 4371 | "is-descriptor": "1.0.2" 4372 | } 4373 | }, 4374 | "is-accessor-descriptor": { 4375 | "version": "1.0.0", 4376 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 4377 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 4378 | "dev": true, 4379 | "requires": { 4380 | "kind-of": "6.0.2" 4381 | } 4382 | }, 4383 | "is-data-descriptor": { 4384 | "version": "1.0.0", 4385 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 4386 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 4387 | "dev": true, 4388 | "requires": { 4389 | "kind-of": "6.0.2" 4390 | } 4391 | }, 4392 | "is-descriptor": { 4393 | "version": "1.0.2", 4394 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 4395 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 4396 | "dev": true, 4397 | "requires": { 4398 | "is-accessor-descriptor": "1.0.0", 4399 | "is-data-descriptor": "1.0.0", 4400 | "kind-of": "6.0.2" 4401 | } 4402 | } 4403 | } 4404 | }, 4405 | "snapdragon-util": { 4406 | "version": "3.0.1", 4407 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 4408 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 4409 | "dev": true, 4410 | "requires": { 4411 | "kind-of": "3.2.2" 4412 | }, 4413 | "dependencies": { 4414 | "kind-of": { 4415 | "version": "3.2.2", 4416 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4417 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4418 | "dev": true, 4419 | "requires": { 4420 | "is-buffer": "1.1.6" 4421 | } 4422 | } 4423 | } 4424 | }, 4425 | "source-list-map": { 4426 | "version": "2.0.0", 4427 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", 4428 | "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", 4429 | "dev": true 4430 | }, 4431 | "source-map": { 4432 | "version": "0.5.7", 4433 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4434 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4435 | "dev": true 4436 | }, 4437 | "source-map-resolve": { 4438 | "version": "0.5.2", 4439 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", 4440 | "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", 4441 | "dev": true, 4442 | "requires": { 4443 | "atob": "2.1.1", 4444 | "decode-uri-component": "0.2.0", 4445 | "resolve-url": "0.2.1", 4446 | "source-map-url": "0.4.0", 4447 | "urix": "0.1.0" 4448 | } 4449 | }, 4450 | "source-map-support": { 4451 | "version": "0.4.18", 4452 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 4453 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 4454 | "dev": true, 4455 | "requires": { 4456 | "source-map": "0.5.7" 4457 | } 4458 | }, 4459 | "source-map-url": { 4460 | "version": "0.4.0", 4461 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 4462 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 4463 | "dev": true 4464 | }, 4465 | "split-string": { 4466 | "version": "3.1.0", 4467 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 4468 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 4469 | "dev": true, 4470 | "requires": { 4471 | "extend-shallow": "3.0.2" 4472 | } 4473 | }, 4474 | "ssri": { 4475 | "version": "5.3.0", 4476 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", 4477 | "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", 4478 | "dev": true, 4479 | "requires": { 4480 | "safe-buffer": "5.1.2" 4481 | } 4482 | }, 4483 | "statehood": { 4484 | "version": "4.1.0", 4485 | "resolved": "https://registry.npmjs.org/statehood/-/statehood-4.1.0.tgz", 4486 | "integrity": "sha1-iih30T2YUKq2zod6VLd43w9DrNs=", 4487 | "dev": true, 4488 | "requires": { 4489 | "boom": "3.2.2", 4490 | "cryptiles": "3.1.2", 4491 | "hoek": "4.2.1", 4492 | "iron": "4.0.5", 4493 | "items": "2.1.1", 4494 | "joi": "9.2.0" 4495 | }, 4496 | "dependencies": { 4497 | "boom": { 4498 | "version": "3.2.2", 4499 | "resolved": "https://registry.npmjs.org/boom/-/boom-3.2.2.tgz", 4500 | "integrity": "sha1-DwzF0ErcUAO4x9cfQsynJx/vDng=", 4501 | "dev": true, 4502 | "requires": { 4503 | "hoek": "4.2.1" 4504 | } 4505 | } 4506 | } 4507 | }, 4508 | "static-extend": { 4509 | "version": "0.1.2", 4510 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 4511 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 4512 | "dev": true, 4513 | "requires": { 4514 | "define-property": "0.2.5", 4515 | "object-copy": "0.1.0" 4516 | }, 4517 | "dependencies": { 4518 | "define-property": { 4519 | "version": "0.2.5", 4520 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 4521 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 4522 | "dev": true, 4523 | "requires": { 4524 | "is-descriptor": "0.1.6" 4525 | } 4526 | } 4527 | } 4528 | }, 4529 | "stream-browserify": { 4530 | "version": "2.0.1", 4531 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 4532 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 4533 | "dev": true, 4534 | "requires": { 4535 | "inherits": "2.0.3", 4536 | "readable-stream": "2.3.6" 4537 | } 4538 | }, 4539 | "stream-each": { 4540 | "version": "1.2.2", 4541 | "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", 4542 | "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", 4543 | "dev": true, 4544 | "requires": { 4545 | "end-of-stream": "1.4.1", 4546 | "stream-shift": "1.0.0" 4547 | } 4548 | }, 4549 | "stream-http": { 4550 | "version": "2.8.3", 4551 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", 4552 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", 4553 | "dev": true, 4554 | "requires": { 4555 | "builtin-status-codes": "3.0.0", 4556 | "inherits": "2.0.3", 4557 | "readable-stream": "2.3.6", 4558 | "to-arraybuffer": "1.0.1", 4559 | "xtend": "4.0.1" 4560 | } 4561 | }, 4562 | "stream-shift": { 4563 | "version": "1.0.0", 4564 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", 4565 | "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", 4566 | "dev": true 4567 | }, 4568 | "string_decoder": { 4569 | "version": "1.1.1", 4570 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 4571 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 4572 | "dev": true, 4573 | "requires": { 4574 | "safe-buffer": "5.1.2" 4575 | } 4576 | }, 4577 | "strip-ansi": { 4578 | "version": "3.0.1", 4579 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 4580 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 4581 | "dev": true, 4582 | "requires": { 4583 | "ansi-regex": "2.1.1" 4584 | } 4585 | }, 4586 | "strip-bom": { 4587 | "version": "3.0.0", 4588 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4589 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4590 | "dev": true 4591 | }, 4592 | "strip-json-comments": { 4593 | "version": "2.0.1", 4594 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 4595 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 4596 | "dev": true 4597 | }, 4598 | "subtext": { 4599 | "version": "4.4.1", 4600 | "resolved": "https://registry.npmjs.org/subtext/-/subtext-4.4.1.tgz", 4601 | "integrity": "sha1-L87JRd5CkoPD0YsVH/D6HxuHrsk=", 4602 | "dev": true, 4603 | "requires": { 4604 | "boom": "5.2.0", 4605 | "content": "3.0.7", 4606 | "hoek": "4.2.1", 4607 | "pez": "2.1.5", 4608 | "wreck": "12.5.1" 4609 | }, 4610 | "dependencies": { 4611 | "boom": { 4612 | "version": "5.2.0", 4613 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 4614 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 4615 | "dev": true, 4616 | "requires": { 4617 | "hoek": "4.2.1" 4618 | } 4619 | }, 4620 | "wreck": { 4621 | "version": "12.5.1", 4622 | "resolved": "https://registry.npmjs.org/wreck/-/wreck-12.5.1.tgz", 4623 | "integrity": "sha512-l5DUGrc+yDyIflpty1x9XuMj1ehVjC/dTbF3/BasOO77xk0EdEa4M/DuOY8W88MQDAD0fEDqyjc8bkIMHd2E9A==", 4624 | "dev": true, 4625 | "requires": { 4626 | "boom": "5.2.0", 4627 | "hoek": "4.2.1" 4628 | } 4629 | } 4630 | } 4631 | }, 4632 | "supports-color": { 4633 | "version": "4.4.0", 4634 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", 4635 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 4636 | "dev": true, 4637 | "requires": { 4638 | "has-flag": "2.0.0" 4639 | } 4640 | }, 4641 | "tapable": { 4642 | "version": "1.0.0", 4643 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", 4644 | "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", 4645 | "dev": true 4646 | }, 4647 | "tar-stream": { 4648 | "version": "1.6.1", 4649 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", 4650 | "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", 4651 | "dev": true, 4652 | "requires": { 4653 | "bl": "1.2.2", 4654 | "buffer-alloc": "1.2.0", 4655 | "end-of-stream": "1.4.1", 4656 | "fs-constants": "1.0.0", 4657 | "readable-stream": "2.3.6", 4658 | "to-buffer": "1.1.1", 4659 | "xtend": "4.0.1" 4660 | } 4661 | }, 4662 | "through2": { 4663 | "version": "2.0.3", 4664 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 4665 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 4666 | "dev": true, 4667 | "requires": { 4668 | "readable-stream": "2.3.6", 4669 | "xtend": "4.0.1" 4670 | } 4671 | }, 4672 | "timers-browserify": { 4673 | "version": "2.0.10", 4674 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", 4675 | "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", 4676 | "dev": true, 4677 | "requires": { 4678 | "setimmediate": "1.0.5" 4679 | } 4680 | }, 4681 | "to-arraybuffer": { 4682 | "version": "1.0.1", 4683 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 4684 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 4685 | "dev": true 4686 | }, 4687 | "to-buffer": { 4688 | "version": "1.1.1", 4689 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", 4690 | "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", 4691 | "dev": true 4692 | }, 4693 | "to-fast-properties": { 4694 | "version": "1.0.3", 4695 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 4696 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 4697 | "dev": true 4698 | }, 4699 | "to-object-path": { 4700 | "version": "0.3.0", 4701 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 4702 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 4703 | "dev": true, 4704 | "requires": { 4705 | "kind-of": "3.2.2" 4706 | }, 4707 | "dependencies": { 4708 | "kind-of": { 4709 | "version": "3.2.2", 4710 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4711 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4712 | "dev": true, 4713 | "requires": { 4714 | "is-buffer": "1.1.6" 4715 | } 4716 | } 4717 | } 4718 | }, 4719 | "to-regex": { 4720 | "version": "3.0.2", 4721 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 4722 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 4723 | "dev": true, 4724 | "requires": { 4725 | "define-property": "2.0.2", 4726 | "extend-shallow": "3.0.2", 4727 | "regex-not": "1.0.2", 4728 | "safe-regex": "1.1.0" 4729 | } 4730 | }, 4731 | "to-regex-range": { 4732 | "version": "2.1.1", 4733 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 4734 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 4735 | "dev": true, 4736 | "requires": { 4737 | "is-number": "3.0.0", 4738 | "repeat-string": "1.6.1" 4739 | } 4740 | }, 4741 | "topo": { 4742 | "version": "2.0.2", 4743 | "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", 4744 | "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", 4745 | "dev": true, 4746 | "requires": { 4747 | "hoek": "4.2.1" 4748 | } 4749 | }, 4750 | "trim-right": { 4751 | "version": "1.0.1", 4752 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 4753 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 4754 | "dev": true 4755 | }, 4756 | "ts-node": { 4757 | "version": "3.3.0", 4758 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz", 4759 | "integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=", 4760 | "dev": true, 4761 | "requires": { 4762 | "arrify": "1.0.1", 4763 | "chalk": "2.4.1", 4764 | "diff": "3.3.1", 4765 | "make-error": "1.3.4", 4766 | "minimist": "1.2.0", 4767 | "mkdirp": "0.5.1", 4768 | "source-map-support": "0.4.18", 4769 | "tsconfig": "6.0.0", 4770 | "v8flags": "3.1.1", 4771 | "yn": "2.0.0" 4772 | }, 4773 | "dependencies": { 4774 | "ansi-styles": { 4775 | "version": "3.2.1", 4776 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 4777 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 4778 | "dev": true, 4779 | "requires": { 4780 | "color-convert": "1.9.2" 4781 | } 4782 | }, 4783 | "chalk": { 4784 | "version": "2.4.1", 4785 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 4786 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 4787 | "dev": true, 4788 | "requires": { 4789 | "ansi-styles": "3.2.1", 4790 | "escape-string-regexp": "1.0.5", 4791 | "supports-color": "5.4.0" 4792 | } 4793 | }, 4794 | "has-flag": { 4795 | "version": "3.0.0", 4796 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 4797 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 4798 | "dev": true 4799 | }, 4800 | "minimist": { 4801 | "version": "1.2.0", 4802 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 4803 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 4804 | "dev": true 4805 | }, 4806 | "supports-color": { 4807 | "version": "5.4.0", 4808 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 4809 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 4810 | "dev": true, 4811 | "requires": { 4812 | "has-flag": "3.0.0" 4813 | } 4814 | } 4815 | } 4816 | }, 4817 | "tsconfig": { 4818 | "version": "6.0.0", 4819 | "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", 4820 | "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", 4821 | "dev": true, 4822 | "requires": { 4823 | "strip-bom": "3.0.0", 4824 | "strip-json-comments": "2.0.1" 4825 | } 4826 | }, 4827 | "tslib": { 4828 | "version": "1.9.3", 4829 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", 4830 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", 4831 | "dev": true 4832 | }, 4833 | "tty-browserify": { 4834 | "version": "0.0.0", 4835 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 4836 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 4837 | "dev": true 4838 | }, 4839 | "type-detect": { 4840 | "version": "1.0.0", 4841 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", 4842 | "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", 4843 | "dev": true 4844 | }, 4845 | "typedarray": { 4846 | "version": "0.0.6", 4847 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 4848 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 4849 | "dev": true 4850 | }, 4851 | "uglify-es": { 4852 | "version": "3.3.9", 4853 | "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", 4854 | "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", 4855 | "dev": true, 4856 | "requires": { 4857 | "commander": "2.13.0", 4858 | "source-map": "0.6.1" 4859 | }, 4860 | "dependencies": { 4861 | "commander": { 4862 | "version": "2.13.0", 4863 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", 4864 | "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", 4865 | "dev": true 4866 | }, 4867 | "source-map": { 4868 | "version": "0.6.1", 4869 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4870 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4871 | "dev": true 4872 | } 4873 | } 4874 | }, 4875 | "uglifyjs-webpack-plugin": { 4876 | "version": "1.2.7", 4877 | "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", 4878 | "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", 4879 | "dev": true, 4880 | "requires": { 4881 | "cacache": "10.0.4", 4882 | "find-cache-dir": "1.0.0", 4883 | "schema-utils": "0.4.5", 4884 | "serialize-javascript": "1.5.0", 4885 | "source-map": "0.6.1", 4886 | "uglify-es": "3.3.9", 4887 | "webpack-sources": "1.1.0", 4888 | "worker-farm": "1.6.0" 4889 | }, 4890 | "dependencies": { 4891 | "source-map": { 4892 | "version": "0.6.1", 4893 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4894 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4895 | "dev": true 4896 | } 4897 | } 4898 | }, 4899 | "union-value": { 4900 | "version": "1.0.0", 4901 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", 4902 | "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", 4903 | "dev": true, 4904 | "requires": { 4905 | "arr-union": "3.1.0", 4906 | "get-value": "2.0.6", 4907 | "is-extendable": "0.1.1", 4908 | "set-value": "0.4.3" 4909 | }, 4910 | "dependencies": { 4911 | "extend-shallow": { 4912 | "version": "2.0.1", 4913 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 4914 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 4915 | "dev": true, 4916 | "requires": { 4917 | "is-extendable": "0.1.1" 4918 | } 4919 | }, 4920 | "set-value": { 4921 | "version": "0.4.3", 4922 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", 4923 | "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", 4924 | "dev": true, 4925 | "requires": { 4926 | "extend-shallow": "2.0.1", 4927 | "is-extendable": "0.1.1", 4928 | "is-plain-object": "2.0.4", 4929 | "to-object-path": "0.3.0" 4930 | } 4931 | } 4932 | } 4933 | }, 4934 | "unique-filename": { 4935 | "version": "1.1.0", 4936 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", 4937 | "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", 4938 | "dev": true, 4939 | "requires": { 4940 | "unique-slug": "2.0.0" 4941 | } 4942 | }, 4943 | "unique-slug": { 4944 | "version": "2.0.0", 4945 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", 4946 | "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", 4947 | "dev": true, 4948 | "requires": { 4949 | "imurmurhash": "0.1.4" 4950 | } 4951 | }, 4952 | "universalify": { 4953 | "version": "0.1.2", 4954 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 4955 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 4956 | "dev": true 4957 | }, 4958 | "unset-value": { 4959 | "version": "1.0.0", 4960 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 4961 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 4962 | "dev": true, 4963 | "requires": { 4964 | "has-value": "0.3.1", 4965 | "isobject": "3.0.1" 4966 | }, 4967 | "dependencies": { 4968 | "has-value": { 4969 | "version": "0.3.1", 4970 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 4971 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 4972 | "dev": true, 4973 | "requires": { 4974 | "get-value": "2.0.6", 4975 | "has-values": "0.1.4", 4976 | "isobject": "2.1.0" 4977 | }, 4978 | "dependencies": { 4979 | "isobject": { 4980 | "version": "2.1.0", 4981 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 4982 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 4983 | "dev": true, 4984 | "requires": { 4985 | "isarray": "1.0.0" 4986 | } 4987 | } 4988 | } 4989 | }, 4990 | "has-values": { 4991 | "version": "0.1.4", 4992 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 4993 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 4994 | "dev": true 4995 | } 4996 | } 4997 | }, 4998 | "upath": { 4999 | "version": "1.1.0", 5000 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", 5001 | "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", 5002 | "dev": true 5003 | }, 5004 | "uri-js": { 5005 | "version": "4.2.2", 5006 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 5007 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 5008 | "dev": true, 5009 | "requires": { 5010 | "punycode": "2.1.1" 5011 | }, 5012 | "dependencies": { 5013 | "punycode": { 5014 | "version": "2.1.1", 5015 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 5016 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 5017 | "dev": true 5018 | } 5019 | } 5020 | }, 5021 | "urix": { 5022 | "version": "0.1.0", 5023 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 5024 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 5025 | "dev": true 5026 | }, 5027 | "url": { 5028 | "version": "0.10.3", 5029 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", 5030 | "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", 5031 | "dev": true, 5032 | "requires": { 5033 | "punycode": "1.3.2", 5034 | "querystring": "0.2.0" 5035 | } 5036 | }, 5037 | "use": { 5038 | "version": "3.1.1", 5039 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 5040 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 5041 | "dev": true 5042 | }, 5043 | "util": { 5044 | "version": "0.10.4", 5045 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 5046 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 5047 | "dev": true, 5048 | "requires": { 5049 | "inherits": "2.0.3" 5050 | } 5051 | }, 5052 | "util-deprecate": { 5053 | "version": "1.0.2", 5054 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 5055 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 5056 | "dev": true 5057 | }, 5058 | "uuid": { 5059 | "version": "3.1.0", 5060 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 5061 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 5062 | "dev": true 5063 | }, 5064 | "v8flags": { 5065 | "version": "3.1.1", 5066 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", 5067 | "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", 5068 | "dev": true, 5069 | "requires": { 5070 | "homedir-polyfill": "1.0.1" 5071 | } 5072 | }, 5073 | "velocityjs": { 5074 | "version": "0.9.6", 5075 | "resolved": "https://registry.npmjs.org/velocityjs/-/velocityjs-0.9.6.tgz", 5076 | "integrity": "sha1-bsgumaonSS0tYjYMFhr8T4LbieI=", 5077 | "dev": true 5078 | }, 5079 | "vise": { 5080 | "version": "2.0.2", 5081 | "resolved": "https://registry.npmjs.org/vise/-/vise-2.0.2.tgz", 5082 | "integrity": "sha1-awjo+0y3bjpQzW3Q7DczjoEaDTk=", 5083 | "dev": true, 5084 | "requires": { 5085 | "hoek": "4.2.1" 5086 | } 5087 | }, 5088 | "vm-browserify": { 5089 | "version": "0.0.4", 5090 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 5091 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 5092 | "dev": true, 5093 | "requires": { 5094 | "indexof": "0.0.1" 5095 | } 5096 | }, 5097 | "watchpack": { 5098 | "version": "1.6.0", 5099 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", 5100 | "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", 5101 | "dev": true, 5102 | "requires": { 5103 | "chokidar": "2.0.4", 5104 | "graceful-fs": "4.1.11", 5105 | "neo-async": "2.5.1" 5106 | } 5107 | }, 5108 | "webpack": { 5109 | "version": "4.16.1", 5110 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.1.tgz", 5111 | "integrity": "sha512-6jpzObU18y7lXDJz7XCLvzgrqcJ0rZ2jhKvnTivza9gM2GvPW93xxtmEll2GgmdC0zVQAtbHrH/9BtyMjSDZfA==", 5112 | "dev": true, 5113 | "requires": { 5114 | "@webassemblyjs/ast": "1.5.13", 5115 | "@webassemblyjs/helper-module-context": "1.5.13", 5116 | "@webassemblyjs/wasm-edit": "1.5.13", 5117 | "@webassemblyjs/wasm-opt": "1.5.13", 5118 | "@webassemblyjs/wasm-parser": "1.5.13", 5119 | "acorn": "5.7.1", 5120 | "acorn-dynamic-import": "3.0.0", 5121 | "ajv": "6.5.2", 5122 | "ajv-keywords": "3.2.0", 5123 | "chrome-trace-event": "1.0.0", 5124 | "enhanced-resolve": "4.1.0", 5125 | "eslint-scope": "4.0.0", 5126 | "json-parse-better-errors": "1.0.2", 5127 | "loader-runner": "2.3.0", 5128 | "loader-utils": "1.1.0", 5129 | "memory-fs": "0.4.1", 5130 | "micromatch": "3.1.10", 5131 | "mkdirp": "0.5.1", 5132 | "neo-async": "2.5.1", 5133 | "node-libs-browser": "2.1.0", 5134 | "schema-utils": "0.4.5", 5135 | "tapable": "1.0.0", 5136 | "uglifyjs-webpack-plugin": "1.2.7", 5137 | "watchpack": "1.6.0", 5138 | "webpack-sources": "1.1.0" 5139 | } 5140 | }, 5141 | "webpack-sources": { 5142 | "version": "1.1.0", 5143 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", 5144 | "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", 5145 | "dev": true, 5146 | "requires": { 5147 | "source-list-map": "2.0.0", 5148 | "source-map": "0.6.1" 5149 | }, 5150 | "dependencies": { 5151 | "source-map": { 5152 | "version": "0.6.1", 5153 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 5154 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 5155 | "dev": true 5156 | } 5157 | } 5158 | }, 5159 | "worker-farm": { 5160 | "version": "1.6.0", 5161 | "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", 5162 | "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", 5163 | "dev": true, 5164 | "requires": { 5165 | "errno": "0.1.7" 5166 | } 5167 | }, 5168 | "wrappy": { 5169 | "version": "1.0.2", 5170 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 5171 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 5172 | "dev": true 5173 | }, 5174 | "wreck": { 5175 | "version": "9.0.0", 5176 | "resolved": "https://registry.npmjs.org/wreck/-/wreck-9.0.0.tgz", 5177 | "integrity": "sha1-HeY9SbsHuU/nGIZLi+YxduYzMew=", 5178 | "dev": true, 5179 | "requires": { 5180 | "boom": "3.2.2", 5181 | "hoek": "4.2.1" 5182 | }, 5183 | "dependencies": { 5184 | "boom": { 5185 | "version": "3.2.2", 5186 | "resolved": "https://registry.npmjs.org/boom/-/boom-3.2.2.tgz", 5187 | "integrity": "sha1-DwzF0ErcUAO4x9cfQsynJx/vDng=", 5188 | "dev": true, 5189 | "requires": { 5190 | "hoek": "4.2.1" 5191 | } 5192 | } 5193 | } 5194 | }, 5195 | "xml2js": { 5196 | "version": "0.4.19", 5197 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", 5198 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", 5199 | "dev": true, 5200 | "requires": { 5201 | "sax": "1.2.1", 5202 | "xmlbuilder": "9.0.7" 5203 | } 5204 | }, 5205 | "xmlbuilder": { 5206 | "version": "9.0.7", 5207 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", 5208 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", 5209 | "dev": true 5210 | }, 5211 | "xtend": { 5212 | "version": "4.0.1", 5213 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 5214 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 5215 | "dev": true 5216 | }, 5217 | "y18n": { 5218 | "version": "4.0.0", 5219 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 5220 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 5221 | "dev": true 5222 | }, 5223 | "yallist": { 5224 | "version": "2.1.2", 5225 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 5226 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 5227 | "dev": true 5228 | }, 5229 | "yaml-edit": { 5230 | "version": "0.1.3", 5231 | "resolved": "https://registry.npmjs.org/yaml-edit/-/yaml-edit-0.1.3.tgz", 5232 | "integrity": "sha1-103V8F78QquRhSbAlPAJhiHOLXM=", 5233 | "dev": true 5234 | }, 5235 | "yn": { 5236 | "version": "2.0.0", 5237 | "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", 5238 | "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", 5239 | "dev": true 5240 | }, 5241 | "zip-stream": { 5242 | "version": "1.2.0", 5243 | "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", 5244 | "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", 5245 | "dev": true, 5246 | "requires": { 5247 | "archiver-utils": "1.3.0", 5248 | "compress-commons": "1.2.2", 5249 | "lodash": "4.17.10", 5250 | "readable-stream": "2.3.6" 5251 | } 5252 | } 5253 | } 5254 | } 5255 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-api", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "deploy": "npm test && sls deploy --stage staging", 7 | "deploy:prod": "npm test && sls deploy --stage prod", 8 | "start": "serverless offline start", 9 | "test": "serverless invoke test" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "serverless-mocha-plugin": "^1.8.3", 16 | "serverless-offline": "^3.25.6", 17 | "serverless-webpack": "^5.2.0", 18 | "webpack": "^4.16.1" 19 | }, 20 | "dependencies": { 21 | "mongoose": "^5.2.4" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /serverless.yml: -------------------------------------------------------------------------------- 1 | service: my-api 2 | 3 | provider: 4 | name: aws 5 | runtime: nodejs8.10 6 | stage: ${opt:stage, "dev"} # overriden by serverless --stage xxxx 7 | region: eu-central-1 8 | environment: 9 | # Try to fetch MY_API_MONGODB_URL_xxxx from SSM. 10 | # Use "mongodb://localhost:27017" if the above doesn't exist 11 | MONGODB_URL: ${ssm:MY_API_MONGODB_URL_${self:provider.stage}~true, "mongodb://localhost:27017/test"} 12 | 13 | functions: 14 | listUsers: 15 | handler: handlers/users.list 16 | events: 17 | - http: 18 | path: /users 19 | method: get 20 | cors: true 21 | getUser: 22 | handler: handlers/users.get 23 | events: 24 | - http: 25 | path: /users/{id+} 26 | method: get 27 | cors: true 28 | addUser: 29 | handler: handlers/users.add 30 | events: 31 | - http: 32 | path: /users 33 | method: post 34 | cors: true 35 | updateUser: 36 | handler: handlers/users.update 37 | events: 38 | - http: 39 | path: /users/{id+} 40 | method: put 41 | cors: true 42 | removeUser: 43 | handler: handlers/users.remove 44 | events: 45 | - http: 46 | path: /users 47 | method: delete 48 | cors: true 49 | 50 | plugins: 51 | - serverless-webpack 52 | - serverless-offline 53 | - serverless-mocha-plugin 54 | -------------------------------------------------------------------------------- /test/test-completion-hooks.js: -------------------------------------------------------------------------------- 1 | let testSuites = 0 2 | 3 | function started() { 4 | testSuites++ 5 | } 6 | 7 | function completed() { 8 | if (--testSuites <= 0) { 9 | setImmediate(() => process.exit(process.exitCode)) 10 | } 11 | } 12 | 13 | function failed() { 14 | process.exitCode = 1 15 | } 16 | 17 | function addCompletionHooks() { 18 | // Mocha hooks will run on the context of 19 | // the spec file calling this function 20 | before(started) 21 | 22 | after(completed) 23 | 24 | afterEach(function () { 25 | if (this.currentTest.state === 'failed') { 26 | failed() 27 | } 28 | }) 29 | } 30 | 31 | module.exports = addCompletionHooks 32 | -------------------------------------------------------------------------------- /test/users.spec.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const mochaPlugin = require('serverless-mocha-plugin') 4 | const expect = mochaPlugin.chai.expect 5 | const addCompletionHooks = require("./test-completion-hooks") 6 | 7 | const wrappedList = mochaPlugin.getWrapper('listUsers', '/handlers/users.js', 'list') 8 | const wrappedGet = mochaPlugin.getWrapper('getUser', '/handlers/users.js', 'get') 9 | const wrappedAdd = mochaPlugin.getWrapper('addUser', '/handlers/users.js', 'add') 10 | const wrappedUpdate = mochaPlugin.getWrapper('updateUser', '/handlers/users.js', 'update') 11 | const wrappedRemove = mochaPlugin.getWrapper('removeUser', '/handlers/users.js', 'remove') 12 | 13 | // Completion hooks 14 | 15 | addCompletionHooks() 16 | 17 | // Specs 18 | 19 | describe('My API', () => { 20 | it('listUsers should return an empty list by default', () => { 21 | return wrappedList.run({}).then(response => { 22 | expect(response).to.not.be.empty 23 | expect(response.statusCode).to.equal(200) 24 | 25 | const list = JSON.parse(response.body) 26 | expect(list).to.be.an.instanceOf(Array) 27 | expect(list).to.deep.equal([]) 28 | }) 29 | }) 30 | 31 | it('getUser should return 404 if not found', () => { 32 | const nonExistingId = "000000000000000011112222" 33 | return wrappedGet.run({ pathParameters: { id: nonExistingId } }).then(response => { 34 | expect(response).to.not.be.empty 35 | expect(response.statusCode).to.equal(404) 36 | expect(response.body).to.equal("") 37 | }) 38 | }) 39 | 40 | it('updateUser should return 404 if not found', () => { 41 | const nonExistingId = "000000000000000011112222" 42 | return wrappedAdd.run({ pathParameters: { id: nonExistingId } }).then(response => { 43 | expect(response).to.not.be.empty 44 | expect(response.statusCode).to.equal(404) 45 | expect(response.body).to.equal("") 46 | }) 47 | }) 48 | 49 | it('removeUser should return 404 if not found', () => { 50 | const nonExistingId = "000000000000000011112222" 51 | return wrappedRemove.run({ pathParameters: { id: nonExistingId } }).then(response => { 52 | expect(response).to.not.be.empty 53 | expect(response.statusCode).to.equal(404) 54 | expect(response.body).to.equal("") 55 | }) 56 | }) 57 | 58 | it('addUser should accept and store a new user', () => { 59 | const payload = { 60 | name: "John", 61 | lastName: "Smith", 62 | email: "user@email.com" 63 | } 64 | return wrappedAdd.run({ body: JSON.stringify(payload) }).then(response => { 65 | expect(response).to.not.be.empty 66 | expect(response.body).to.not.be.empty 67 | expect(response.statusCode).to.equal(200) 68 | 69 | const result = JSON.parse(response.body) 70 | expect(result._id).to.have.length.gt(0) 71 | 72 | return wrappedGet.run({ pathParameters: { id: result._id } }) 73 | }).then(response => { 74 | expect(response).to.not.be.empty 75 | expect(response.statusCode).to.equal(200) 76 | 77 | const remoteUser = JSON.parse(response.body) 78 | expect(remoteUser).to.be.an.instanceOf(Object) 79 | expect(remoteUser._id).to.have.length.gt(0) 80 | expect(remoteUser.name).to.equal(payload.name) 81 | expect(remoteUser.lastName).to.equal(payload.lastName) 82 | expect(remoteUser.email).to.equal(payload.email) 83 | 84 | return wrappedList.run({}) 85 | }).then(response => { 86 | expect(response).to.not.be.empty 87 | expect(response.statusCode).to.equal(200) 88 | 89 | const list = JSON.parse(response.body) 90 | expect(list).to.be.an.instanceOf(Array) 91 | expect(list).to.have.lengthOf(1) 92 | }) 93 | }) 94 | 95 | it('updateUser should update existing users', () => { 96 | const payload = { 97 | name: "Jane", 98 | lastName: "Smithee", 99 | email: "user2@email.com" 100 | } 101 | let userId 102 | return wrappedList.run({}).then(response => { 103 | expect(response).to.not.be.empty 104 | expect(response.statusCode).to.equal(200) 105 | 106 | const list = JSON.parse(response.body) 107 | expect(list).to.be.an.instanceOf(Array) 108 | expect(list).to.have.lengthOf(1) 109 | expect(list[0]).to.not.be.empty 110 | expect(list[0]._id).to.not.be.empty 111 | 112 | userId = list[0]._id 113 | 114 | return wrappedUpdate.run({ pathParameters: { id: userId }, body: JSON.stringify(payload) }) 115 | }).then(response => { 116 | expect(response).to.not.be.empty 117 | expect(response.body).to.not.be.empty 118 | expect(response.statusCode).to.equal(200) 119 | 120 | const result = JSON.parse(response.body) 121 | expect(result._id).to.have.length.gt(0) 122 | 123 | return wrappedGet.run({ pathParameters: { id: result._id } }) 124 | }).then(response => { 125 | expect(response).to.not.be.empty 126 | expect(response.statusCode).to.equal(200) 127 | 128 | const remoteUser = JSON.parse(response.body) 129 | expect(remoteUser).to.be.an.instanceOf(Object) 130 | expect(remoteUser._id).to.have.length.gt(0) 131 | expect(remoteUser.name).to.equal(payload.name) 132 | expect(remoteUser.lastName).to.equal(payload.lastName) 133 | expect(remoteUser.email).to.equal(payload.email) 134 | }) 135 | }) 136 | 137 | it('removeUser should remove existing users', () => { 138 | let userId 139 | return wrappedList.run({}).then(response => { 140 | expect(response).to.not.be.empty 141 | expect(response.statusCode).to.equal(200) 142 | 143 | const list = JSON.parse(response.body) 144 | expect(list).to.be.an.instanceOf(Array) 145 | expect(list).to.have.lengthOf(1) 146 | expect(list[0]).to.not.be.empty 147 | expect(list[0]._id).to.not.be.empty 148 | 149 | userId = list[0]._id 150 | 151 | return wrappedRemove.run({ pathParameters: { id: userId } }) 152 | }).then(response => { 153 | expect(response).to.not.be.empty 154 | expect(response.body).to.not.be.empty 155 | expect(response.statusCode).to.equal(200) 156 | 157 | const result = JSON.parse(response.body) 158 | expect(result._id).to.have.length.gt(0) 159 | 160 | return wrappedList.run({}) 161 | }).then(response => { 162 | expect(response).to.not.be.empty 163 | expect(response.statusCode).to.equal(200) 164 | 165 | const list = JSON.parse(response.body) 166 | expect(list).to.be.an.instanceOf(Array) 167 | expect(list).to.deep.equal([]) 168 | }) 169 | }) 170 | 171 | }) 172 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const slsw = require('serverless-webpack') 2 | 3 | const config = { 4 | entry: slsw.lib.entries, 5 | target: 'node', 6 | mode: slsw.lib.webpack.isLocal ? "development" : "production" 7 | } 8 | 9 | module.exports = config 10 | --------------------------------------------------------------------------------