├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── hapi.js ├── index.d.ts ├── index.test-d.ts ├── package-lock.json ├── package.json ├── tsconfig.json └── tslint.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | test.js 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '10' 4 | 5 | cache: npm 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 - Michał Miszczyszyn 4 | 5 | All rights reserved. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # typesafe-hapi 2 | 3 | typesafe-hapi is a fork of [hapi](https://github.com/hapijs/hapi) which aims to improve typesafety. More precisely, this is a fork of [@types/hapi__hapi](https://www.npmjs.com/package/@types/hapi__hapi) because it has just redefined the essential APIs of hapi. 4 | 5 | typesafe-hapi currently matches the API of hapi 18.3.x. It was tested with TypeScript 3.4.5. 6 | 7 | ## How it works 8 | `typesafe-hapi` uses `typesafe-joi` to infer correct type from Joi schemas automatically. It uses possesed type information to typecheck: 9 | 10 | * request.query 11 | * request.payload 12 | * request.params 13 | * response 14 | 15 | ## Example 16 | 17 | ```ts 18 | const payloadSchema = Joi.object({ 19 | user: Joi.object({ 20 | name: Joi.string().required(), 21 | email: Joi.string().required(), 22 | }).required(), 23 | }).required(); 24 | 25 | const querySchema = Joi.object({ 26 | search: Joi.string().optional().allow('', null), 27 | }).required(); 28 | 29 | const paramsSchema = Joi.object({ 30 | id: Joi.number().required() 31 | }).required(); 32 | 33 | const responseSchema = Joi.object({ 34 | id: Joi.number().required(), 35 | name: Joi.string().required(), 36 | email: Joi.string().required(), 37 | search: Joi.string().optional().allow(null), 38 | }).required(); 39 | 40 | server.route({ 41 | method: 'POST', 42 | path: '/:id', 43 | options: { 44 | validate: { 45 | payload: payloadSchema, 46 | query: querySchema, 47 | params: paramsSchema, 48 | }, 49 | response: { 50 | schema: responseSchema, 51 | }, 52 | }, 53 | handler(request) { 54 | // type of `payload` is automatically inferred based on `options.validate.payload` schema 55 | const payload = request.payload; // { user: { name: string; email: string; }; } 56 | const query = request.query; // { search?: string | null | undefined; } 57 | const params = request.params; // { id: number; } 58 | 59 | // return type is also typechecked based on `options.response.schema` 60 | return { 61 | id: params.id, 62 | name: payload.user.name, // string 63 | email: payload.user.email, // string 64 | search: query.search, // string | null | undefined 65 | }; 66 | }, 67 | }); 68 | ``` 69 | 70 | Neat, huh? See more examples in [index.test-d.ts](https://github.com/mmiszy/typesafe-hapi/blob/master/index.test-d.ts). 71 | 72 | ## Usage 73 | 74 | Import and use hapi from `typesafe-hapi`: 75 | 76 | ```typescript 77 | import * as Hapi from 'typesafe-hapi' 78 | ``` 79 | 80 | In order to avoid any compatibility issues, and to be able to use existing packages and plugins easily, you should create an alias for `typesafe-hapi` and rename it to just `hapi`. In your `tsconfig.json`: 81 | 82 | ```json 83 | { 84 | "compilerOptions": { 85 | // … other options 86 | "paths": { 87 | "hapi": ["node_modules/typesafe-hapi"], 88 | "joi": ["node_modules/typesafe-joi"] 89 | } 90 | } 91 | } 92 | ``` 93 | -------------------------------------------------------------------------------- /hapi.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@hapi/hapi'); 2 | -------------------------------------------------------------------------------- /index.test-d.ts: -------------------------------------------------------------------------------- 1 | import Hapi from 'hapi'; 2 | import Joi from 'typesafe-joi'; 3 | 4 | const server = new Hapi.Server(); 5 | 6 | /** 7 | * User's codebase 8 | */ 9 | const payloadSchema = Joi.object({ 10 | user: Joi.object({ 11 | name: Joi.string().required(), 12 | email: Joi.string().required(), 13 | }).required(), 14 | }).required(); 15 | 16 | const querySchema = Joi.object({ 17 | search: Joi.string().optional().allow('', null), 18 | }).required(); 19 | 20 | const paramsSchema = Joi.object({ 21 | id: Joi.number().required() 22 | }).required(); 23 | 24 | const responseSchema = Joi.object({ 25 | id: Joi.number().required(), 26 | name: Joi.string().required(), 27 | email: Joi.string().required(), 28 | search: Joi.string().optional().allow(null), 29 | }).required(); 30 | 31 | server.route({ 32 | method: 'POST', 33 | path: '/:id', 34 | options: { 35 | validate: { 36 | payload: payloadSchema, 37 | query: querySchema, 38 | params: paramsSchema, 39 | }, 40 | response: { 41 | schema: responseSchema, 42 | }, 43 | }, 44 | handler(request) { 45 | // type of `payload` is automatically inferred based on `options.validate.payload` schema 46 | const payload = request.payload; // $ExpectType { user: { name: string; email: string; } & {}; } & {} 47 | const query = request.query; // $ExpectType {} & { search?: string | null | undefined; } 48 | const params = request.params; // $ExpectType { id: number; } & {} 49 | 50 | // return type is also automatically inferred based on `options.response.schema` 51 | return { 52 | id: params.id, 53 | name: payload.user.name, // $ExpectType string 54 | email: payload.user.email, // $ExpectType string 55 | search: query.search, // $ExpectType string | null | undefined 56 | }; 57 | }, 58 | }); 59 | 60 | server.route({ 61 | method: 'GET', 62 | path: '/health-check', 63 | options: { 64 | description: 'Health check endpoint', 65 | tags: ['api'], 66 | }, 67 | handler(_request) { 68 | return null; 69 | }, 70 | }); 71 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typesafe-hapi", 3 | "version": "4.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@hapi/accept": { 8 | "version": "3.2.3", 9 | "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-3.2.3.tgz", 10 | "integrity": "sha512-qEzsOJkCAJZxwj3iF83bSG9Lxy8Bpbrt8mRLNdvSALT6vlU2cYh6ZEHKEZPy4h/Mo31Su3j0rJgFF91+W1RWDQ==", 11 | "requires": { 12 | "@hapi/boom": "7.x.x", 13 | "@hapi/hoek": "8.x.x" 14 | } 15 | }, 16 | "@hapi/address": { 17 | "version": "2.1.2", 18 | "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.2.tgz", 19 | "integrity": "sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q==" 20 | }, 21 | "@hapi/ammo": { 22 | "version": "3.1.1", 23 | "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-3.1.1.tgz", 24 | "integrity": "sha512-NYFK27VSPGyQ/KmOQedpQH4PSjE7awLntepX68vrYtRvuJO21W1kX0bK2p3C+6ltUwtCQSvmNT8a4uMVAysC6Q==", 25 | "requires": { 26 | "@hapi/hoek": "8.x.x" 27 | } 28 | }, 29 | "@hapi/b64": { 30 | "version": "4.2.1", 31 | "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-4.2.1.tgz", 32 | "integrity": "sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA==", 33 | "requires": { 34 | "@hapi/hoek": "8.x.x" 35 | } 36 | }, 37 | "@hapi/boom": { 38 | "version": "7.4.11", 39 | "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", 40 | "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", 41 | "requires": { 42 | "@hapi/hoek": "8.x.x" 43 | } 44 | }, 45 | "@hapi/bounce": { 46 | "version": "1.3.2", 47 | "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-1.3.2.tgz", 48 | "integrity": "sha512-3bnb1AlcEByFZnpDIidxQyw1Gds81z/1rSqlx4bIEE+wUN0ATj0D49B5cE1wGocy90Rp/de4tv7GjsKd5RQeew==", 49 | "requires": { 50 | "@hapi/boom": "7.x.x", 51 | "@hapi/hoek": "^8.3.1" 52 | } 53 | }, 54 | "@hapi/bourne": { 55 | "version": "1.3.2", 56 | "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", 57 | "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" 58 | }, 59 | "@hapi/call": { 60 | "version": "5.1.1", 61 | "resolved": "https://registry.npmjs.org/@hapi/call/-/call-5.1.1.tgz", 62 | "integrity": "sha512-M6fC+9+K/ZB4hIdVQ8i0kc/6J5PWlW3PEWYKAAZpw0sk+28LiRTSF8BjOWwmiIjZWWs42AnEIiFJA0YrvcDnlw==", 63 | "requires": { 64 | "@hapi/boom": "7.x.x", 65 | "@hapi/hoek": "8.x.x" 66 | } 67 | }, 68 | "@hapi/catbox": { 69 | "version": "10.2.3", 70 | "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-10.2.3.tgz", 71 | "integrity": "sha512-kN9hXO4NYyOHW09CXiuj5qW1syc/0XeVOBsNNk0Tz89wWNQE5h21WF+VsfAw3uFR8swn/Wj3YEVBnWqo82m/JQ==", 72 | "requires": { 73 | "@hapi/boom": "7.x.x", 74 | "@hapi/hoek": "8.x.x", 75 | "@hapi/joi": "16.x.x", 76 | "@hapi/podium": "3.x.x" 77 | }, 78 | "dependencies": { 79 | "@hapi/joi": { 80 | "version": "16.1.7", 81 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz", 82 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==", 83 | "requires": { 84 | "@hapi/address": "^2.1.2", 85 | "@hapi/formula": "^1.2.0", 86 | "@hapi/hoek": "^8.2.4", 87 | "@hapi/pinpoint": "^1.0.2", 88 | "@hapi/topo": "^3.1.3" 89 | } 90 | } 91 | } 92 | }, 93 | "@hapi/catbox-memory": { 94 | "version": "4.1.1", 95 | "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-4.1.1.tgz", 96 | "integrity": "sha512-T6Hdy8DExzG0jY7C8yYWZB4XHfc0v+p1EGkwxl2HoaPYAmW7I3E59M/IvmSVpis8RPcIoBp41ZpO2aZPBpM2Ww==", 97 | "requires": { 98 | "@hapi/boom": "7.x.x", 99 | "@hapi/hoek": "8.x.x" 100 | } 101 | }, 102 | "@hapi/content": { 103 | "version": "4.1.0", 104 | "resolved": "https://registry.npmjs.org/@hapi/content/-/content-4.1.0.tgz", 105 | "integrity": "sha512-hv2Czsl49hnWDEfRZOFow/BmYbKyfEknmk3k83gOp6moFn5ceHB4xVcna8OwsGfy8dxO81lhpPy+JgQEaU4SWw==", 106 | "requires": { 107 | "@hapi/boom": "7.x.x" 108 | } 109 | }, 110 | "@hapi/cryptiles": { 111 | "version": "4.2.1", 112 | "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-4.2.1.tgz", 113 | "integrity": "sha512-XoqgKsHK0l/VpqPs+tr6j6vE+VQ3+2bkF2stvttmc7xAOf1oSAwHcJ0tlp/6MxMysktt1IEY0Csy3khKaP9/uQ==", 114 | "requires": { 115 | "@hapi/boom": "7.x.x" 116 | } 117 | }, 118 | "@hapi/file": { 119 | "version": "1.0.0", 120 | "resolved": "https://registry.npmjs.org/@hapi/file/-/file-1.0.0.tgz", 121 | "integrity": "sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ==" 122 | }, 123 | "@hapi/formula": { 124 | "version": "1.2.0", 125 | "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz", 126 | "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==" 127 | }, 128 | "@hapi/hapi": { 129 | "version": "18.4.0", 130 | "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-18.4.0.tgz", 131 | "integrity": "sha512-uk9zqknRLcNVQKgrPURm85DqkdroWP8eDRekh/IPoKvC4VjdZSn6EH2eUriOwyud/CldeBS3HDIJ/PtRj3VxDQ==", 132 | "requires": { 133 | "@hapi/accept": "3.x.x", 134 | "@hapi/ammo": "3.x.x", 135 | "@hapi/boom": "7.x.x", 136 | "@hapi/bounce": "1.x.x", 137 | "@hapi/call": "5.x.x", 138 | "@hapi/catbox": "10.x.x", 139 | "@hapi/catbox-memory": "4.x.x", 140 | "@hapi/heavy": "6.x.x", 141 | "@hapi/hoek": "8.x.x", 142 | "@hapi/joi": "15.x.x", 143 | "@hapi/mimos": "4.x.x", 144 | "@hapi/podium": "3.x.x", 145 | "@hapi/shot": "4.x.x", 146 | "@hapi/somever": "2.x.x", 147 | "@hapi/statehood": "6.x.x", 148 | "@hapi/subtext": "6.x.x", 149 | "@hapi/teamwork": "3.x.x", 150 | "@hapi/topo": "3.x.x" 151 | } 152 | }, 153 | "@hapi/heavy": { 154 | "version": "6.2.2", 155 | "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-6.2.2.tgz", 156 | "integrity": "sha512-PY1dCCO6dsze7RlafIRhTaGeyTgVe49A/lSkxbhKGjQ7x46o/OFf7hLiRqTCDh3atcEKf6362EaB3+kTUbCsVA==", 157 | "requires": { 158 | "@hapi/boom": "7.x.x", 159 | "@hapi/hoek": "8.x.x", 160 | "@hapi/joi": "16.x.x" 161 | }, 162 | "dependencies": { 163 | "@hapi/joi": { 164 | "version": "16.1.7", 165 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz", 166 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==", 167 | "requires": { 168 | "@hapi/address": "^2.1.2", 169 | "@hapi/formula": "^1.2.0", 170 | "@hapi/hoek": "^8.2.4", 171 | "@hapi/pinpoint": "^1.0.2", 172 | "@hapi/topo": "^3.1.3" 173 | } 174 | } 175 | } 176 | }, 177 | "@hapi/hoek": { 178 | "version": "8.3.2", 179 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.3.2.tgz", 180 | "integrity": "sha512-NP5SG4bzix+EtSMtcudp8TvI0lB46mXNo8uFpTDw6tqxGx4z5yx+giIunEFA0Z7oUO4DuWrOJV9xqR2tJVEdyA==" 181 | }, 182 | "@hapi/iron": { 183 | "version": "5.1.4", 184 | "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-5.1.4.tgz", 185 | "integrity": "sha512-+ElC+OCiwWLjlJBmm8ZEWjlfzTMQTdgPnU/TsoU5QsktspIWmWi9IU4kU83nH+X/SSya8TP8h8P11Wr5L7dkQQ==", 186 | "requires": { 187 | "@hapi/b64": "4.x.x", 188 | "@hapi/boom": "7.x.x", 189 | "@hapi/bourne": "1.x.x", 190 | "@hapi/cryptiles": "4.x.x", 191 | "@hapi/hoek": "8.x.x" 192 | } 193 | }, 194 | "@hapi/joi": { 195 | "version": "15.1.0", 196 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.0.tgz", 197 | "integrity": "sha512-n6kaRQO8S+kepUTbXL9O/UOL788Odqs38/VOfoCrATDtTvyfiO3fgjlSRaNkHabpTLgM7qru9ifqXlXbXk8SeQ==", 198 | "requires": { 199 | "@hapi/address": "2.x.x", 200 | "@hapi/hoek": "6.x.x", 201 | "@hapi/marker": "1.x.x", 202 | "@hapi/topo": "3.x.x" 203 | }, 204 | "dependencies": { 205 | "@hapi/hoek": { 206 | "version": "6.2.4", 207 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-6.2.4.tgz", 208 | "integrity": "sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A==" 209 | } 210 | } 211 | }, 212 | "@hapi/marker": { 213 | "version": "1.0.0", 214 | "resolved": "https://registry.npmjs.org/@hapi/marker/-/marker-1.0.0.tgz", 215 | "integrity": "sha512-JOfdekTXnJexfE8PyhZFyHvHjt81rBFSAbTIRAhF2vv/2Y1JzoKsGqxH/GpZJoF7aEfYok8JVcAHmSz1gkBieA==" 216 | }, 217 | "@hapi/mimos": { 218 | "version": "4.1.1", 219 | "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-4.1.1.tgz", 220 | "integrity": "sha512-CXoi/zfcTWfKYX756eEea8rXJRIb9sR4d7VwyAH9d3BkDyNgAesZxvqIdm55npQc6S9mU3FExinMAQVlIkz0eA==", 221 | "requires": { 222 | "@hapi/hoek": "8.x.x", 223 | "mime-db": "1.x.x" 224 | } 225 | }, 226 | "@hapi/nigel": { 227 | "version": "3.1.1", 228 | "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-3.1.1.tgz", 229 | "integrity": "sha512-R9YWx4S8yu0gcCBrMUDCiEFm1SQT895dMlYoeNBp8I6YhF1BFF1iYPueKA2Kkp9BvyHdjmvrxCOns7GMmpl+Fw==", 230 | "requires": { 231 | "@hapi/hoek": "8.x.x", 232 | "@hapi/vise": "3.x.x" 233 | } 234 | }, 235 | "@hapi/pez": { 236 | "version": "4.1.1", 237 | "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-4.1.1.tgz", 238 | "integrity": "sha512-TUa2C7Xk6J69HWrm+Ad+O6dFvdVAG0BiFUYaRsmkdWjFIfwHBCaOI1dWT/juNukSb39Lj6/mDVyjN+H4nKB3xg==", 239 | "requires": { 240 | "@hapi/b64": "4.x.x", 241 | "@hapi/boom": "7.x.x", 242 | "@hapi/content": "4.x.x", 243 | "@hapi/hoek": "8.x.x", 244 | "@hapi/nigel": "3.x.x" 245 | } 246 | }, 247 | "@hapi/pinpoint": { 248 | "version": "1.0.2", 249 | "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz", 250 | "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==" 251 | }, 252 | "@hapi/podium": { 253 | "version": "3.4.2", 254 | "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-3.4.2.tgz", 255 | "integrity": "sha512-g9zlAkRL2uDlnEo64xzEhFLblf4fdL5Z6evAO0wJhdxEvokI/+6ryv7k6uhND481LiLzQz8qTtPYMuhH1hichw==", 256 | "requires": { 257 | "@hapi/hoek": "8.x.x", 258 | "@hapi/joi": "16.x.x" 259 | }, 260 | "dependencies": { 261 | "@hapi/joi": { 262 | "version": "16.1.7", 263 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz", 264 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==", 265 | "requires": { 266 | "@hapi/address": "^2.1.2", 267 | "@hapi/formula": "^1.2.0", 268 | "@hapi/hoek": "^8.2.4", 269 | "@hapi/pinpoint": "^1.0.2", 270 | "@hapi/topo": "^3.1.3" 271 | } 272 | } 273 | } 274 | }, 275 | "@hapi/shot": { 276 | "version": "4.1.2", 277 | "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-4.1.2.tgz", 278 | "integrity": "sha512-6LeHLjvsq/bQ0R+fhEyr7mqExRGguNTrxFZf5DyKe3CK6pNabiGgYO4JVFaRrLZ3JyuhkS0fo8iiRE2Ql2oA/A==", 279 | "requires": { 280 | "@hapi/hoek": "8.x.x", 281 | "@hapi/joi": "16.x.x" 282 | }, 283 | "dependencies": { 284 | "@hapi/joi": { 285 | "version": "16.1.7", 286 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz", 287 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==", 288 | "requires": { 289 | "@hapi/address": "^2.1.2", 290 | "@hapi/formula": "^1.2.0", 291 | "@hapi/hoek": "^8.2.4", 292 | "@hapi/pinpoint": "^1.0.2", 293 | "@hapi/topo": "^3.1.3" 294 | } 295 | } 296 | } 297 | }, 298 | "@hapi/somever": { 299 | "version": "2.1.1", 300 | "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-2.1.1.tgz", 301 | "integrity": "sha512-cic5Sto4KGd9B0oQSdKTokju+rYhCbdpzbMb0EBnrH5Oc1z048hY8PaZ1lx2vBD7I/XIfTQVQetBH57fU51XRA==", 302 | "requires": { 303 | "@hapi/bounce": "1.x.x", 304 | "@hapi/hoek": "8.x.x" 305 | } 306 | }, 307 | "@hapi/statehood": { 308 | "version": "6.1.2", 309 | "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-6.1.2.tgz", 310 | "integrity": "sha512-pYXw1x6npz/UfmtcpUhuMvdK5kuOGTKcJNfLqdNptzietK2UZH5RzNJSlv5bDHeSmordFM3kGItcuQWX2lj2nQ==", 311 | "requires": { 312 | "@hapi/boom": "7.x.x", 313 | "@hapi/bounce": "1.x.x", 314 | "@hapi/bourne": "1.x.x", 315 | "@hapi/cryptiles": "4.x.x", 316 | "@hapi/hoek": "8.x.x", 317 | "@hapi/iron": "5.x.x", 318 | "@hapi/joi": "16.x.x" 319 | }, 320 | "dependencies": { 321 | "@hapi/joi": { 322 | "version": "16.1.7", 323 | "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.7.tgz", 324 | "integrity": "sha512-anaIgnZhNooG3LJLrTFzgGALTiO97zRA1UkvQHm9KxxoSiIzCozB3RCNCpDnfhTJD72QlrHA8nwGmNgpFFCIeg==", 325 | "requires": { 326 | "@hapi/address": "^2.1.2", 327 | "@hapi/formula": "^1.2.0", 328 | "@hapi/hoek": "^8.2.4", 329 | "@hapi/pinpoint": "^1.0.2", 330 | "@hapi/topo": "^3.1.3" 331 | } 332 | } 333 | } 334 | }, 335 | "@hapi/subtext": { 336 | "version": "6.1.2", 337 | "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-6.1.2.tgz", 338 | "integrity": "sha512-G1kqD1E2QdxpvpL26WieIyo3z0qCa/sAGSa2TJI/PYPWCR9rL0rqFvhWY774xPZ4uK1PV3TIaJcx8AruAvxclg==", 339 | "requires": { 340 | "@hapi/boom": "7.x.x", 341 | "@hapi/bourne": "1.x.x", 342 | "@hapi/content": "4.x.x", 343 | "@hapi/file": "1.x.x", 344 | "@hapi/hoek": "8.x.x", 345 | "@hapi/pez": "4.x.x", 346 | "@hapi/wreck": "15.x.x" 347 | } 348 | }, 349 | "@hapi/teamwork": { 350 | "version": "3.3.1", 351 | "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-3.3.1.tgz", 352 | "integrity": "sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ==" 353 | }, 354 | "@hapi/topo": { 355 | "version": "3.1.6", 356 | "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", 357 | "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", 358 | "requires": { 359 | "@hapi/hoek": "^8.3.0" 360 | } 361 | }, 362 | "@hapi/vise": { 363 | "version": "3.1.1", 364 | "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-3.1.1.tgz", 365 | "integrity": "sha512-OXarbiCSadvtg+bSdVPqu31Z1JoBL+FwNYz3cYoBKQ5xq1/Cr4A3IkGpAZbAuxU5y4NL5pZFZG3d2a3ZGm/dOQ==", 366 | "requires": { 367 | "@hapi/hoek": "8.x.x" 368 | } 369 | }, 370 | "@hapi/wreck": { 371 | "version": "15.1.0", 372 | "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-15.1.0.tgz", 373 | "integrity": "sha512-tQczYRTTeYBmvhsek/D49En/5khcShaBEmzrAaDjMrFXKJRuF8xA8+tlq1ETLBFwGd6Do6g2OC74rt11kzawzg==", 374 | "requires": { 375 | "@hapi/boom": "7.x.x", 376 | "@hapi/bourne": "1.x.x", 377 | "@hapi/hoek": "8.x.x" 378 | } 379 | }, 380 | "@types/hapi__boom": { 381 | "version": "7.4.1", 382 | "resolved": "https://registry.npmjs.org/@types/hapi__boom/-/hapi__boom-7.4.1.tgz", 383 | "integrity": "sha512-x/ZK824GomII7Yoei/nMoB46NQcSfGe0iVpZK3uUivxIAfUUSzRvu8RQO7ZkKapIgzgshHZc+GR+z/BQ8l2VLg==" 384 | }, 385 | "@types/hapi__catbox": { 386 | "version": "10.2.2", 387 | "resolved": "https://registry.npmjs.org/@types/hapi__catbox/-/hapi__catbox-10.2.2.tgz", 388 | "integrity": "sha512-AWK70LgRsRWL1TNw+aT0IlS56E0pobvFdr/en0K8XazyK4Ey6T/jXhQqv/iQ6FJAAU+somMzgmt9fWq2TaaOkA==" 389 | }, 390 | "@types/hapi__iron": { 391 | "version": "5.1.0", 392 | "resolved": "https://registry.npmjs.org/@types/hapi__iron/-/hapi__iron-5.1.0.tgz", 393 | "integrity": "sha512-RxYHIc8wFe8M1jMwgovskoHNVjuP1q0tUGCNnbHnhA4SBMyYg+JHIAz8yFibSwgF4gWYh5yHMpbmK5kmnG4HRA==", 394 | "requires": { 395 | "@types/node": "*" 396 | } 397 | }, 398 | "@types/hapi__joi": { 399 | "version": "15.0.4", 400 | "resolved": "https://registry.npmjs.org/@types/hapi__joi/-/hapi__joi-15.0.4.tgz", 401 | "integrity": "sha512-VSS6zc7AIOdHVXmqKaGNPYl8eGrMvWi0R5pt3evJL3UdxO8XS28/XAkBXNyLQoymHxhMd4bF3o1U9mZkWDeN8w==", 402 | "dev": true, 403 | "requires": { 404 | "@types/hapi__joi": "*" 405 | } 406 | }, 407 | "@types/hapi__mimos": { 408 | "version": "4.1.0", 409 | "resolved": "https://registry.npmjs.org/@types/hapi__mimos/-/hapi__mimos-4.1.0.tgz", 410 | "integrity": "sha512-hcdSoYa32wcP+sEfyf85ieGwElwokcZ/mma8eyqQ4OTHeCAGwfaoiGxjG4z1Dm+RGhIYLHlW54ji5FFwahH12A==", 411 | "requires": { 412 | "@types/mime-db": "*" 413 | } 414 | }, 415 | "@types/hapi__podium": { 416 | "version": "3.4.0", 417 | "resolved": "https://registry.npmjs.org/@types/hapi__podium/-/hapi__podium-3.4.0.tgz", 418 | "integrity": "sha512-LE85jLgqR5HscGQ7SaSz6FMRsKlQ1wHVbYc9u0yq7NKDRvZiQFIrr3Pl1RPzK7QNUdZP8zmJibe8q0JcafTAJQ==" 419 | }, 420 | "@types/hapi__shot": { 421 | "version": "4.1.0", 422 | "resolved": "https://registry.npmjs.org/@types/hapi__shot/-/hapi__shot-4.1.0.tgz", 423 | "integrity": "sha512-vIySJYkwIGXMB5eFaZu3U8dS9CAZmteJfmkRn9bYH5uNcSvVgiwDROiwAkD7ej88qA+RZPkUK70KmeDs3LRHvw==", 424 | "requires": { 425 | "@types/node": "*" 426 | } 427 | }, 428 | "@types/mime-db": { 429 | "version": "1.27.0", 430 | "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.27.0.tgz", 431 | "integrity": "sha1-m8AUof0f30dknBpUxt15ZrgoR5I=" 432 | }, 433 | "@types/node": { 434 | "version": "12.11.2", 435 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.2.tgz", 436 | "integrity": "sha512-dsfE4BHJkLQW+reOS6b17xhZ/6FB1rB8eRRvO08nn5o+voxf3i74tuyFWNH6djdfgX7Sm5s6LD8t6mJug4dpDw==" 437 | }, 438 | "@types/parsimmon": { 439 | "version": "1.10.0", 440 | "resolved": "https://registry.npmjs.org/@types/parsimmon/-/parsimmon-1.10.0.tgz", 441 | "integrity": "sha512-bsTIJFVQv7jnvNiC42ld2pQW2KRI+pAG243L+iATvqzy3X6+NH1obz2itRKDZZ8VVhN3wjwYax/VBGCcXzgTqQ==", 442 | "dev": true 443 | }, 444 | "ajv": { 445 | "version": "6.10.2", 446 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 447 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 448 | "dev": true, 449 | "requires": { 450 | "fast-deep-equal": "^2.0.1", 451 | "fast-json-stable-stringify": "^2.0.0", 452 | "json-schema-traverse": "^0.4.1", 453 | "uri-js": "^4.2.2" 454 | } 455 | }, 456 | "ansi-regex": { 457 | "version": "3.0.0", 458 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 459 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 460 | "dev": true 461 | }, 462 | "ansi-styles": { 463 | "version": "2.2.1", 464 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 465 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 466 | "dev": true 467 | }, 468 | "argparse": { 469 | "version": "1.0.10", 470 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 471 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 472 | "dev": true, 473 | "requires": { 474 | "sprintf-js": "~1.0.2" 475 | } 476 | }, 477 | "asn1": { 478 | "version": "0.2.4", 479 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 480 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 481 | "dev": true, 482 | "requires": { 483 | "safer-buffer": "~2.1.0" 484 | } 485 | }, 486 | "assert-plus": { 487 | "version": "1.0.0", 488 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 489 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 490 | "dev": true 491 | }, 492 | "asynckit": { 493 | "version": "0.4.0", 494 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 495 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 496 | "dev": true 497 | }, 498 | "aws-sign2": { 499 | "version": "0.7.0", 500 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 501 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 502 | "dev": true 503 | }, 504 | "aws4": { 505 | "version": "1.8.0", 506 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 507 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", 508 | "dev": true 509 | }, 510 | "babel-code-frame": { 511 | "version": "6.26.0", 512 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 513 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 514 | "dev": true, 515 | "requires": { 516 | "chalk": "^1.1.3", 517 | "esutils": "^2.0.2", 518 | "js-tokens": "^3.0.2" 519 | }, 520 | "dependencies": { 521 | "ansi-regex": { 522 | "version": "2.1.1", 523 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 524 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 525 | "dev": true 526 | }, 527 | "chalk": { 528 | "version": "1.1.3", 529 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 530 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 531 | "dev": true, 532 | "requires": { 533 | "ansi-styles": "^2.2.1", 534 | "escape-string-regexp": "^1.0.2", 535 | "has-ansi": "^2.0.0", 536 | "strip-ansi": "^3.0.0", 537 | "supports-color": "^2.0.0" 538 | } 539 | }, 540 | "strip-ansi": { 541 | "version": "3.0.1", 542 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 543 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 544 | "dev": true, 545 | "requires": { 546 | "ansi-regex": "^2.0.0" 547 | } 548 | } 549 | } 550 | }, 551 | "balanced-match": { 552 | "version": "1.0.0", 553 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 554 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 555 | "dev": true 556 | }, 557 | "bcrypt-pbkdf": { 558 | "version": "1.0.2", 559 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 560 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 561 | "dev": true, 562 | "requires": { 563 | "tweetnacl": "^0.14.3" 564 | } 565 | }, 566 | "brace-expansion": { 567 | "version": "1.1.11", 568 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 569 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 570 | "dev": true, 571 | "requires": { 572 | "balanced-match": "^1.0.0", 573 | "concat-map": "0.0.1" 574 | } 575 | }, 576 | "builtin-modules": { 577 | "version": "1.1.1", 578 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 579 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 580 | "dev": true 581 | }, 582 | "camelcase": { 583 | "version": "5.3.1", 584 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 585 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 586 | "dev": true 587 | }, 588 | "caseless": { 589 | "version": "0.12.0", 590 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 591 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 592 | "dev": true 593 | }, 594 | "chalk": { 595 | "version": "2.4.2", 596 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 597 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 598 | "dev": true, 599 | "requires": { 600 | "ansi-styles": "^3.2.1", 601 | "escape-string-regexp": "^1.0.5", 602 | "supports-color": "^5.3.0" 603 | }, 604 | "dependencies": { 605 | "ansi-styles": { 606 | "version": "3.2.1", 607 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 608 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 609 | "dev": true, 610 | "requires": { 611 | "color-convert": "^1.9.0" 612 | } 613 | }, 614 | "supports-color": { 615 | "version": "5.5.0", 616 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 617 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 618 | "dev": true, 619 | "requires": { 620 | "has-flag": "^3.0.0" 621 | } 622 | } 623 | } 624 | }, 625 | "cliui": { 626 | "version": "4.1.0", 627 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", 628 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", 629 | "dev": true, 630 | "requires": { 631 | "string-width": "^2.1.1", 632 | "strip-ansi": "^4.0.0", 633 | "wrap-ansi": "^2.0.0" 634 | } 635 | }, 636 | "code-point-at": { 637 | "version": "1.1.0", 638 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 639 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 640 | "dev": true 641 | }, 642 | "color-convert": { 643 | "version": "1.9.3", 644 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 645 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 646 | "dev": true, 647 | "requires": { 648 | "color-name": "1.1.3" 649 | } 650 | }, 651 | "color-name": { 652 | "version": "1.1.3", 653 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 654 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 655 | "dev": true 656 | }, 657 | "combined-stream": { 658 | "version": "1.0.8", 659 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 660 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 661 | "dev": true, 662 | "requires": { 663 | "delayed-stream": "~1.0.0" 664 | } 665 | }, 666 | "command-exists": { 667 | "version": "1.2.8", 668 | "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", 669 | "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==", 670 | "dev": true 671 | }, 672 | "commander": { 673 | "version": "2.20.3", 674 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 675 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 676 | "dev": true 677 | }, 678 | "concat-map": { 679 | "version": "0.0.1", 680 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 681 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 682 | "dev": true 683 | }, 684 | "core-util-is": { 685 | "version": "1.0.2", 686 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 687 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 688 | "dev": true 689 | }, 690 | "cross-spawn": { 691 | "version": "6.0.5", 692 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 693 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 694 | "dev": true, 695 | "requires": { 696 | "nice-try": "^1.0.4", 697 | "path-key": "^2.0.1", 698 | "semver": "^5.5.0", 699 | "shebang-command": "^1.2.0", 700 | "which": "^1.2.9" 701 | }, 702 | "dependencies": { 703 | "semver": { 704 | "version": "5.7.1", 705 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 706 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 707 | "dev": true 708 | } 709 | } 710 | }, 711 | "dashdash": { 712 | "version": "1.14.1", 713 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 714 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 715 | "dev": true, 716 | "requires": { 717 | "assert-plus": "^1.0.0" 718 | } 719 | }, 720 | "decamelize": { 721 | "version": "1.2.0", 722 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 723 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 724 | "dev": true 725 | }, 726 | "definitelytyped-header-parser": { 727 | "version": "3.7.2", 728 | "resolved": "https://registry.npmjs.org/definitelytyped-header-parser/-/definitelytyped-header-parser-3.7.2.tgz", 729 | "integrity": "sha512-nlkiv+QLlRSc3C3qAbusWPaBiyPLldwRFnrxvoxjdZHvHbIh2+U09qdmzzWV35Rs/I3MMhcoWRcVUi3M1G935Q==", 730 | "dev": true, 731 | "requires": { 732 | "@types/parsimmon": "^1.3.0", 733 | "parsimmon": "^1.2.0" 734 | } 735 | }, 736 | "delayed-stream": { 737 | "version": "1.0.0", 738 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 739 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 740 | "dev": true 741 | }, 742 | "diff": { 743 | "version": "3.5.0", 744 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 745 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 746 | "dev": true 747 | }, 748 | "download-file-sync": { 749 | "version": "1.0.4", 750 | "resolved": "https://registry.npmjs.org/download-file-sync/-/download-file-sync-1.0.4.tgz", 751 | "integrity": "sha1-0+PFQ/g29BA5RVuQNMcuNVsDYBk=", 752 | "dev": true 753 | }, 754 | "dts-critic": { 755 | "version": "2.1.0", 756 | "resolved": "https://registry.npmjs.org/dts-critic/-/dts-critic-2.1.0.tgz", 757 | "integrity": "sha512-vXfmzBfaC4sBML2Er1YfFbcknyxp9t16x1NF0nTYj20gDR1dCF8aOpu/c+CgySxFyqEyLq6t0FkmWwpZEX6VLQ==", 758 | "dev": true, 759 | "requires": { 760 | "command-exists": "^1.2.8", 761 | "definitelytyped-header-parser": "^1.2.0", 762 | "download-file-sync": "^1.0.4", 763 | "semver": "^6.2.0", 764 | "yargs": "^12.0.5" 765 | }, 766 | "dependencies": { 767 | "definitelytyped-header-parser": { 768 | "version": "1.2.0", 769 | "resolved": "https://registry.npmjs.org/definitelytyped-header-parser/-/definitelytyped-header-parser-1.2.0.tgz", 770 | "integrity": "sha512-xpg8uu/2YD/reaVsZV4oJ4g7UDYFqQGWvT1W9Tsj6q4VtWBSaig38Qgah0ZMnQGF9kAsAim08EXDO1nSi0+Nog==", 771 | "dev": true, 772 | "requires": { 773 | "@types/parsimmon": "^1.3.0", 774 | "parsimmon": "^1.2.0" 775 | } 776 | } 777 | } 778 | }, 779 | "dtslint": { 780 | "version": "0.9.8", 781 | "resolved": "https://registry.npmjs.org/dtslint/-/dtslint-0.9.8.tgz", 782 | "integrity": "sha512-cxxGo0mQO9mFQcUShtPbmmoZ+PrUczEV6R/PaN06dnv2IbgtIgLyrO8NBeU7VeHMxpe6exESy48oom97LWUIkA==", 783 | "dev": true, 784 | "requires": { 785 | "definitelytyped-header-parser": "^3.7.2", 786 | "dts-critic": "^2.1.0", 787 | "fs-extra": "^6.0.1", 788 | "request": "^2.88.0", 789 | "strip-json-comments": "^2.0.1", 790 | "tslint": "5.14.0", 791 | "typescript": "^3.8.0-dev.20191022" 792 | }, 793 | "dependencies": { 794 | "typescript": { 795 | "version": "3.8.0-dev.20191022", 796 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.0-dev.20191022.tgz", 797 | "integrity": "sha512-bPzngFizYevpE3s4mb3uTR0zeB5SFZRO1/zDk1FF+TjJHFZ0+DR09RQjMVd+8RU3iZAe7GeTHHboDlq+EtkPjA==", 798 | "dev": true 799 | } 800 | } 801 | }, 802 | "ecc-jsbn": { 803 | "version": "0.1.2", 804 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 805 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 806 | "dev": true, 807 | "requires": { 808 | "jsbn": "~0.1.0", 809 | "safer-buffer": "^2.1.0" 810 | } 811 | }, 812 | "end-of-stream": { 813 | "version": "1.4.4", 814 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 815 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 816 | "dev": true, 817 | "requires": { 818 | "once": "^1.4.0" 819 | } 820 | }, 821 | "escape-string-regexp": { 822 | "version": "1.0.5", 823 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 824 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 825 | "dev": true 826 | }, 827 | "esprima": { 828 | "version": "4.0.1", 829 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 830 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 831 | "dev": true 832 | }, 833 | "esutils": { 834 | "version": "2.0.3", 835 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 836 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 837 | "dev": true 838 | }, 839 | "execa": { 840 | "version": "1.0.0", 841 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 842 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 843 | "dev": true, 844 | "requires": { 845 | "cross-spawn": "^6.0.0", 846 | "get-stream": "^4.0.0", 847 | "is-stream": "^1.1.0", 848 | "npm-run-path": "^2.0.0", 849 | "p-finally": "^1.0.0", 850 | "signal-exit": "^3.0.0", 851 | "strip-eof": "^1.0.0" 852 | } 853 | }, 854 | "extend": { 855 | "version": "3.0.2", 856 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 857 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 858 | "dev": true 859 | }, 860 | "extsprintf": { 861 | "version": "1.3.0", 862 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 863 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 864 | "dev": true 865 | }, 866 | "fast-deep-equal": { 867 | "version": "2.0.1", 868 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 869 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 870 | "dev": true 871 | }, 872 | "fast-json-stable-stringify": { 873 | "version": "2.0.0", 874 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 875 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 876 | "dev": true 877 | }, 878 | "find-up": { 879 | "version": "3.0.0", 880 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 881 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 882 | "dev": true, 883 | "requires": { 884 | "locate-path": "^3.0.0" 885 | } 886 | }, 887 | "forever-agent": { 888 | "version": "0.6.1", 889 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 890 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 891 | "dev": true 892 | }, 893 | "form-data": { 894 | "version": "2.3.3", 895 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 896 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 897 | "dev": true, 898 | "requires": { 899 | "asynckit": "^0.4.0", 900 | "combined-stream": "^1.0.6", 901 | "mime-types": "^2.1.12" 902 | } 903 | }, 904 | "fs-extra": { 905 | "version": "6.0.1", 906 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", 907 | "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", 908 | "dev": true, 909 | "requires": { 910 | "graceful-fs": "^4.1.2", 911 | "jsonfile": "^4.0.0", 912 | "universalify": "^0.1.0" 913 | } 914 | }, 915 | "fs.realpath": { 916 | "version": "1.0.0", 917 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 918 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 919 | "dev": true 920 | }, 921 | "get-caller-file": { 922 | "version": "1.0.3", 923 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 924 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", 925 | "dev": true 926 | }, 927 | "get-stream": { 928 | "version": "4.1.0", 929 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 930 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 931 | "dev": true, 932 | "requires": { 933 | "pump": "^3.0.0" 934 | } 935 | }, 936 | "getpass": { 937 | "version": "0.1.7", 938 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 939 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 940 | "dev": true, 941 | "requires": { 942 | "assert-plus": "^1.0.0" 943 | } 944 | }, 945 | "glob": { 946 | "version": "7.1.5", 947 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", 948 | "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", 949 | "dev": true, 950 | "requires": { 951 | "fs.realpath": "^1.0.0", 952 | "inflight": "^1.0.4", 953 | "inherits": "2", 954 | "minimatch": "^3.0.4", 955 | "once": "^1.3.0", 956 | "path-is-absolute": "^1.0.0" 957 | } 958 | }, 959 | "graceful-fs": { 960 | "version": "4.2.2", 961 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", 962 | "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", 963 | "dev": true 964 | }, 965 | "har-schema": { 966 | "version": "2.0.0", 967 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 968 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 969 | "dev": true 970 | }, 971 | "har-validator": { 972 | "version": "5.1.3", 973 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 974 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 975 | "dev": true, 976 | "requires": { 977 | "ajv": "^6.5.5", 978 | "har-schema": "^2.0.0" 979 | } 980 | }, 981 | "has-ansi": { 982 | "version": "2.0.0", 983 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 984 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 985 | "dev": true, 986 | "requires": { 987 | "ansi-regex": "^2.0.0" 988 | }, 989 | "dependencies": { 990 | "ansi-regex": { 991 | "version": "2.1.1", 992 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 993 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 994 | "dev": true 995 | } 996 | } 997 | }, 998 | "has-flag": { 999 | "version": "3.0.0", 1000 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1001 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1002 | "dev": true 1003 | }, 1004 | "http-signature": { 1005 | "version": "1.2.0", 1006 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1007 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1008 | "dev": true, 1009 | "requires": { 1010 | "assert-plus": "^1.0.0", 1011 | "jsprim": "^1.2.2", 1012 | "sshpk": "^1.7.0" 1013 | } 1014 | }, 1015 | "inflight": { 1016 | "version": "1.0.6", 1017 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1018 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1019 | "dev": true, 1020 | "requires": { 1021 | "once": "^1.3.0", 1022 | "wrappy": "1" 1023 | } 1024 | }, 1025 | "inherits": { 1026 | "version": "2.0.4", 1027 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1028 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1029 | "dev": true 1030 | }, 1031 | "invert-kv": { 1032 | "version": "2.0.0", 1033 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", 1034 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", 1035 | "dev": true 1036 | }, 1037 | "is-fullwidth-code-point": { 1038 | "version": "2.0.0", 1039 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1040 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1041 | "dev": true 1042 | }, 1043 | "is-stream": { 1044 | "version": "1.1.0", 1045 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1046 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 1047 | "dev": true 1048 | }, 1049 | "is-typedarray": { 1050 | "version": "1.0.0", 1051 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1052 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1053 | "dev": true 1054 | }, 1055 | "isexe": { 1056 | "version": "2.0.0", 1057 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1058 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1059 | "dev": true 1060 | }, 1061 | "isstream": { 1062 | "version": "0.1.2", 1063 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1064 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1065 | "dev": true 1066 | }, 1067 | "js-tokens": { 1068 | "version": "3.0.2", 1069 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1070 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1071 | "dev": true 1072 | }, 1073 | "js-yaml": { 1074 | "version": "3.13.1", 1075 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 1076 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 1077 | "dev": true, 1078 | "requires": { 1079 | "argparse": "^1.0.7", 1080 | "esprima": "^4.0.0" 1081 | } 1082 | }, 1083 | "jsbn": { 1084 | "version": "0.1.1", 1085 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1086 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1087 | "dev": true 1088 | }, 1089 | "json-schema": { 1090 | "version": "0.2.3", 1091 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1092 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 1093 | "dev": true 1094 | }, 1095 | "json-schema-traverse": { 1096 | "version": "0.4.1", 1097 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1098 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1099 | "dev": true 1100 | }, 1101 | "json-stringify-safe": { 1102 | "version": "5.0.1", 1103 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1104 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1105 | "dev": true 1106 | }, 1107 | "jsonfile": { 1108 | "version": "4.0.0", 1109 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 1110 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 1111 | "dev": true, 1112 | "requires": { 1113 | "graceful-fs": "^4.1.6" 1114 | } 1115 | }, 1116 | "jsprim": { 1117 | "version": "1.4.1", 1118 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1119 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1120 | "dev": true, 1121 | "requires": { 1122 | "assert-plus": "1.0.0", 1123 | "extsprintf": "1.3.0", 1124 | "json-schema": "0.2.3", 1125 | "verror": "1.10.0" 1126 | } 1127 | }, 1128 | "lcid": { 1129 | "version": "2.0.0", 1130 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", 1131 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", 1132 | "dev": true, 1133 | "requires": { 1134 | "invert-kv": "^2.0.0" 1135 | } 1136 | }, 1137 | "locate-path": { 1138 | "version": "3.0.0", 1139 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1140 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1141 | "dev": true, 1142 | "requires": { 1143 | "p-locate": "^3.0.0", 1144 | "path-exists": "^3.0.0" 1145 | } 1146 | }, 1147 | "map-age-cleaner": { 1148 | "version": "0.1.3", 1149 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 1150 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 1151 | "dev": true, 1152 | "requires": { 1153 | "p-defer": "^1.0.0" 1154 | } 1155 | }, 1156 | "mem": { 1157 | "version": "4.3.0", 1158 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 1159 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 1160 | "dev": true, 1161 | "requires": { 1162 | "map-age-cleaner": "^0.1.1", 1163 | "mimic-fn": "^2.0.0", 1164 | "p-is-promise": "^2.0.0" 1165 | } 1166 | }, 1167 | "mime-db": { 1168 | "version": "1.42.0", 1169 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", 1170 | "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" 1171 | }, 1172 | "mime-types": { 1173 | "version": "2.1.24", 1174 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 1175 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 1176 | "dev": true, 1177 | "requires": { 1178 | "mime-db": "1.40.0" 1179 | }, 1180 | "dependencies": { 1181 | "mime-db": { 1182 | "version": "1.40.0", 1183 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 1184 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", 1185 | "dev": true 1186 | } 1187 | } 1188 | }, 1189 | "mimic-fn": { 1190 | "version": "2.1.0", 1191 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1192 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1193 | "dev": true 1194 | }, 1195 | "minimatch": { 1196 | "version": "3.0.4", 1197 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1198 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1199 | "dev": true, 1200 | "requires": { 1201 | "brace-expansion": "^1.1.7" 1202 | } 1203 | }, 1204 | "minimist": { 1205 | "version": "0.0.8", 1206 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1207 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1208 | "dev": true 1209 | }, 1210 | "mkdirp": { 1211 | "version": "0.5.1", 1212 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1213 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1214 | "dev": true, 1215 | "requires": { 1216 | "minimist": "0.0.8" 1217 | } 1218 | }, 1219 | "nice-try": { 1220 | "version": "1.0.5", 1221 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1222 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 1223 | "dev": true 1224 | }, 1225 | "npm-run-path": { 1226 | "version": "2.0.2", 1227 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1228 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 1229 | "dev": true, 1230 | "requires": { 1231 | "path-key": "^2.0.0" 1232 | } 1233 | }, 1234 | "number-is-nan": { 1235 | "version": "1.0.1", 1236 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1237 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1238 | "dev": true 1239 | }, 1240 | "oauth-sign": { 1241 | "version": "0.9.0", 1242 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1243 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 1244 | "dev": true 1245 | }, 1246 | "once": { 1247 | "version": "1.4.0", 1248 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1249 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1250 | "dev": true, 1251 | "requires": { 1252 | "wrappy": "1" 1253 | } 1254 | }, 1255 | "os-locale": { 1256 | "version": "3.1.0", 1257 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", 1258 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", 1259 | "dev": true, 1260 | "requires": { 1261 | "execa": "^1.0.0", 1262 | "lcid": "^2.0.0", 1263 | "mem": "^4.0.0" 1264 | } 1265 | }, 1266 | "p-defer": { 1267 | "version": "1.0.0", 1268 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 1269 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", 1270 | "dev": true 1271 | }, 1272 | "p-finally": { 1273 | "version": "1.0.0", 1274 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1275 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 1276 | "dev": true 1277 | }, 1278 | "p-is-promise": { 1279 | "version": "2.1.0", 1280 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 1281 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", 1282 | "dev": true 1283 | }, 1284 | "p-limit": { 1285 | "version": "2.2.1", 1286 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", 1287 | "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", 1288 | "dev": true, 1289 | "requires": { 1290 | "p-try": "^2.0.0" 1291 | } 1292 | }, 1293 | "p-locate": { 1294 | "version": "3.0.0", 1295 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1296 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1297 | "dev": true, 1298 | "requires": { 1299 | "p-limit": "^2.0.0" 1300 | } 1301 | }, 1302 | "p-try": { 1303 | "version": "2.2.0", 1304 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1305 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1306 | "dev": true 1307 | }, 1308 | "parsimmon": { 1309 | "version": "1.13.0", 1310 | "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.13.0.tgz", 1311 | "integrity": "sha512-5UIrOCW+gjbILkjKPgTgmq8LKf8TT3Iy7kN2VD7OtQ81facKn8B4gG1X94jWqXYZsxG2KbJhrv/Yq/5H6BQn7A==", 1312 | "dev": true 1313 | }, 1314 | "path-exists": { 1315 | "version": "3.0.0", 1316 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1317 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1318 | "dev": true 1319 | }, 1320 | "path-is-absolute": { 1321 | "version": "1.0.1", 1322 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1323 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1324 | "dev": true 1325 | }, 1326 | "path-key": { 1327 | "version": "2.0.1", 1328 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1329 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1330 | "dev": true 1331 | }, 1332 | "path-parse": { 1333 | "version": "1.0.6", 1334 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1335 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1336 | "dev": true 1337 | }, 1338 | "performance-now": { 1339 | "version": "2.1.0", 1340 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1341 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 1342 | "dev": true 1343 | }, 1344 | "psl": { 1345 | "version": "1.4.0", 1346 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", 1347 | "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", 1348 | "dev": true 1349 | }, 1350 | "pump": { 1351 | "version": "3.0.0", 1352 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1353 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1354 | "dev": true, 1355 | "requires": { 1356 | "end-of-stream": "^1.1.0", 1357 | "once": "^1.3.1" 1358 | } 1359 | }, 1360 | "punycode": { 1361 | "version": "2.1.1", 1362 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1363 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1364 | "dev": true 1365 | }, 1366 | "qs": { 1367 | "version": "6.5.2", 1368 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1369 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 1370 | "dev": true 1371 | }, 1372 | "request": { 1373 | "version": "2.88.0", 1374 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 1375 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 1376 | "dev": true, 1377 | "requires": { 1378 | "aws-sign2": "~0.7.0", 1379 | "aws4": "^1.8.0", 1380 | "caseless": "~0.12.0", 1381 | "combined-stream": "~1.0.6", 1382 | "extend": "~3.0.2", 1383 | "forever-agent": "~0.6.1", 1384 | "form-data": "~2.3.2", 1385 | "har-validator": "~5.1.0", 1386 | "http-signature": "~1.2.0", 1387 | "is-typedarray": "~1.0.0", 1388 | "isstream": "~0.1.2", 1389 | "json-stringify-safe": "~5.0.1", 1390 | "mime-types": "~2.1.19", 1391 | "oauth-sign": "~0.9.0", 1392 | "performance-now": "^2.1.0", 1393 | "qs": "~6.5.2", 1394 | "safe-buffer": "^5.1.2", 1395 | "tough-cookie": "~2.4.3", 1396 | "tunnel-agent": "^0.6.0", 1397 | "uuid": "^3.3.2" 1398 | } 1399 | }, 1400 | "require-directory": { 1401 | "version": "2.1.1", 1402 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1403 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1404 | "dev": true 1405 | }, 1406 | "require-main-filename": { 1407 | "version": "1.0.1", 1408 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 1409 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 1410 | "dev": true 1411 | }, 1412 | "resolve": { 1413 | "version": "1.12.0", 1414 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", 1415 | "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", 1416 | "dev": true, 1417 | "requires": { 1418 | "path-parse": "^1.0.6" 1419 | } 1420 | }, 1421 | "safe-buffer": { 1422 | "version": "5.2.0", 1423 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 1424 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", 1425 | "dev": true 1426 | }, 1427 | "safer-buffer": { 1428 | "version": "2.1.2", 1429 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1430 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1431 | "dev": true 1432 | }, 1433 | "semver": { 1434 | "version": "6.3.0", 1435 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1436 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1437 | "dev": true 1438 | }, 1439 | "set-blocking": { 1440 | "version": "2.0.0", 1441 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1442 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1443 | "dev": true 1444 | }, 1445 | "shebang-command": { 1446 | "version": "1.2.0", 1447 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1448 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1449 | "dev": true, 1450 | "requires": { 1451 | "shebang-regex": "^1.0.0" 1452 | } 1453 | }, 1454 | "shebang-regex": { 1455 | "version": "1.0.0", 1456 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1457 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1458 | "dev": true 1459 | }, 1460 | "signal-exit": { 1461 | "version": "3.0.2", 1462 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1463 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1464 | "dev": true 1465 | }, 1466 | "sprintf-js": { 1467 | "version": "1.0.3", 1468 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1469 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1470 | "dev": true 1471 | }, 1472 | "sshpk": { 1473 | "version": "1.16.1", 1474 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1475 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1476 | "dev": true, 1477 | "requires": { 1478 | "asn1": "~0.2.3", 1479 | "assert-plus": "^1.0.0", 1480 | "bcrypt-pbkdf": "^1.0.0", 1481 | "dashdash": "^1.12.0", 1482 | "ecc-jsbn": "~0.1.1", 1483 | "getpass": "^0.1.1", 1484 | "jsbn": "~0.1.0", 1485 | "safer-buffer": "^2.0.2", 1486 | "tweetnacl": "~0.14.0" 1487 | } 1488 | }, 1489 | "string-width": { 1490 | "version": "2.1.1", 1491 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1492 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1493 | "dev": true, 1494 | "requires": { 1495 | "is-fullwidth-code-point": "^2.0.0", 1496 | "strip-ansi": "^4.0.0" 1497 | } 1498 | }, 1499 | "strip-ansi": { 1500 | "version": "4.0.0", 1501 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1502 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1503 | "dev": true, 1504 | "requires": { 1505 | "ansi-regex": "^3.0.0" 1506 | } 1507 | }, 1508 | "strip-eof": { 1509 | "version": "1.0.0", 1510 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1511 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 1512 | "dev": true 1513 | }, 1514 | "strip-json-comments": { 1515 | "version": "2.0.1", 1516 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1517 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1518 | "dev": true 1519 | }, 1520 | "supports-color": { 1521 | "version": "2.0.0", 1522 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1523 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1524 | "dev": true 1525 | }, 1526 | "tough-cookie": { 1527 | "version": "2.4.3", 1528 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1529 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1530 | "dev": true, 1531 | "requires": { 1532 | "psl": "^1.1.24", 1533 | "punycode": "^1.4.1" 1534 | }, 1535 | "dependencies": { 1536 | "punycode": { 1537 | "version": "1.4.1", 1538 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1539 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1540 | "dev": true 1541 | } 1542 | } 1543 | }, 1544 | "tslib": { 1545 | "version": "1.10.0", 1546 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 1547 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", 1548 | "dev": true 1549 | }, 1550 | "tslint": { 1551 | "version": "5.14.0", 1552 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.14.0.tgz", 1553 | "integrity": "sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==", 1554 | "dev": true, 1555 | "requires": { 1556 | "babel-code-frame": "^6.22.0", 1557 | "builtin-modules": "^1.1.1", 1558 | "chalk": "^2.3.0", 1559 | "commander": "^2.12.1", 1560 | "diff": "^3.2.0", 1561 | "glob": "^7.1.1", 1562 | "js-yaml": "^3.7.0", 1563 | "minimatch": "^3.0.4", 1564 | "mkdirp": "^0.5.1", 1565 | "resolve": "^1.3.2", 1566 | "semver": "^5.3.0", 1567 | "tslib": "^1.8.0", 1568 | "tsutils": "^2.29.0" 1569 | }, 1570 | "dependencies": { 1571 | "semver": { 1572 | "version": "5.7.1", 1573 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1574 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1575 | "dev": true 1576 | } 1577 | } 1578 | }, 1579 | "tsutils": { 1580 | "version": "2.29.0", 1581 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", 1582 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", 1583 | "dev": true, 1584 | "requires": { 1585 | "tslib": "^1.8.1" 1586 | } 1587 | }, 1588 | "tunnel-agent": { 1589 | "version": "0.6.0", 1590 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1591 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1592 | "dev": true, 1593 | "requires": { 1594 | "safe-buffer": "^5.0.1" 1595 | } 1596 | }, 1597 | "tweetnacl": { 1598 | "version": "0.14.5", 1599 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1600 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 1601 | "dev": true 1602 | }, 1603 | "typesafe-joi": { 1604 | "version": "2.0.6", 1605 | "resolved": "https://registry.npmjs.org/typesafe-joi/-/typesafe-joi-2.0.6.tgz", 1606 | "integrity": "sha512-bCFahfvOW9DjMEbq+XPajlVEbESW0WfKxkDKq5lgggCUAjfwIqVdjvV4mquXZuSfLMJirBZe15/jE8hkXOt5JQ==", 1607 | "dev": true, 1608 | "requires": { 1609 | "@types/hapi__joi": "^15.0.1", 1610 | "@types/node": "*" 1611 | } 1612 | }, 1613 | "typescript": { 1614 | "version": "3.6.4", 1615 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", 1616 | "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", 1617 | "dev": true 1618 | }, 1619 | "universalify": { 1620 | "version": "0.1.2", 1621 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1622 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1623 | "dev": true 1624 | }, 1625 | "uri-js": { 1626 | "version": "4.2.2", 1627 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1628 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1629 | "dev": true, 1630 | "requires": { 1631 | "punycode": "^2.1.0" 1632 | } 1633 | }, 1634 | "uuid": { 1635 | "version": "3.3.3", 1636 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", 1637 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", 1638 | "dev": true 1639 | }, 1640 | "verror": { 1641 | "version": "1.10.0", 1642 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1643 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1644 | "dev": true, 1645 | "requires": { 1646 | "assert-plus": "^1.0.0", 1647 | "core-util-is": "1.0.2", 1648 | "extsprintf": "^1.2.0" 1649 | } 1650 | }, 1651 | "which": { 1652 | "version": "1.3.1", 1653 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1654 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1655 | "dev": true, 1656 | "requires": { 1657 | "isexe": "^2.0.0" 1658 | } 1659 | }, 1660 | "which-module": { 1661 | "version": "2.0.0", 1662 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1663 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 1664 | "dev": true 1665 | }, 1666 | "wrap-ansi": { 1667 | "version": "2.1.0", 1668 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 1669 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 1670 | "dev": true, 1671 | "requires": { 1672 | "string-width": "^1.0.1", 1673 | "strip-ansi": "^3.0.1" 1674 | }, 1675 | "dependencies": { 1676 | "ansi-regex": { 1677 | "version": "2.1.1", 1678 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1679 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 1680 | "dev": true 1681 | }, 1682 | "is-fullwidth-code-point": { 1683 | "version": "1.0.0", 1684 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1685 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1686 | "dev": true, 1687 | "requires": { 1688 | "number-is-nan": "^1.0.0" 1689 | } 1690 | }, 1691 | "string-width": { 1692 | "version": "1.0.2", 1693 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1694 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1695 | "dev": true, 1696 | "requires": { 1697 | "code-point-at": "^1.0.0", 1698 | "is-fullwidth-code-point": "^1.0.0", 1699 | "strip-ansi": "^3.0.0" 1700 | } 1701 | }, 1702 | "strip-ansi": { 1703 | "version": "3.0.1", 1704 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1705 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1706 | "dev": true, 1707 | "requires": { 1708 | "ansi-regex": "^2.0.0" 1709 | } 1710 | } 1711 | } 1712 | }, 1713 | "wrappy": { 1714 | "version": "1.0.2", 1715 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1716 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1717 | "dev": true 1718 | }, 1719 | "y18n": { 1720 | "version": "4.0.0", 1721 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1722 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 1723 | "dev": true 1724 | }, 1725 | "yargs": { 1726 | "version": "12.0.5", 1727 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", 1728 | "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", 1729 | "dev": true, 1730 | "requires": { 1731 | "cliui": "^4.0.0", 1732 | "decamelize": "^1.2.0", 1733 | "find-up": "^3.0.0", 1734 | "get-caller-file": "^1.0.1", 1735 | "os-locale": "^3.0.0", 1736 | "require-directory": "^2.1.1", 1737 | "require-main-filename": "^1.0.1", 1738 | "set-blocking": "^2.0.0", 1739 | "string-width": "^2.0.0", 1740 | "which-module": "^2.0.0", 1741 | "y18n": "^3.2.1 || ^4.0.0", 1742 | "yargs-parser": "^11.1.1" 1743 | } 1744 | }, 1745 | "yargs-parser": { 1746 | "version": "11.1.1", 1747 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", 1748 | "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", 1749 | "dev": true, 1750 | "requires": { 1751 | "camelcase": "^5.0.0", 1752 | "decamelize": "^1.2.0" 1753 | } 1754 | } 1755 | } 1756 | } 1757 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typesafe-hapi", 3 | "description": "A fork of hapi that produces typed results TypeScript", 4 | "version": "4.0.1", 5 | "main": "hapi.js", 6 | "types": "index.d.ts", 7 | "repository": "https://github.com/mmiszy/typesafe-hapi.git", 8 | "author": "Michal Miszczyszyn ", 9 | "license": "MIT", 10 | "scripts": { 11 | "test": "dtslint" 12 | }, 13 | "keywords": [ 14 | "hapi", 15 | "typescript", 16 | "validation" 17 | ], 18 | "dependencies": { 19 | "@hapi/hapi": "18.4.0", 20 | "@types/hapi__boom": "7.4.1", 21 | "@types/hapi__catbox": "10.2.2", 22 | "@types/hapi__iron": "5.1.0", 23 | "@types/hapi__mimos": "4.1.0", 24 | "@types/hapi__podium": "3.4.0", 25 | "@types/hapi__shot": "4.1.0", 26 | "@types/node": "*" 27 | }, 28 | "peerDependencies": { 29 | "typesafe-joi": "2.0.6" 30 | }, 31 | "devDependencies": { 32 | "@hapi/joi": "15.1.0", 33 | "dtslint": "0.9.8", 34 | "typesafe-joi": "2.0.6", 35 | "typescript": "3.6.4" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "strict": true, 5 | "esModuleInterop": true, 6 | "paths": { 7 | "typesafe-hapi": ["./"], 8 | "hapi": ["./"] 9 | }, 10 | "lib": ["es2015"] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "dtslint/dtslint.json", 3 | "rules": { 4 | "no-redundant-jsdoc": false, 5 | "max-line-length": false, 6 | "no-unnecessary-generics": false, 7 | "strict-export-declare-modifiers": false 8 | } 9 | } 10 | --------------------------------------------------------------------------------