├── .gitignore ├── LICENSE ├── README.md ├── gulpfile.js ├── package.json ├── src ├── controllers │ └── speaker.controller.ts ├── data │ ├── data-source.ts │ ├── slide │ │ └── slide.repository.ts │ └── speaker │ │ ├── db.ts │ │ └── speaker.repository.ts ├── index.ts └── models │ └── speaker │ ├── id-speaker.ts │ ├── index.ts │ ├── location-speaker.ts │ ├── name.ts │ ├── picture-speaker.ts │ ├── speaker.ts │ └── speakers.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | npm-debug.log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Luis Aviles 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # node-typescript-app 2 | A `node` server with a set of `RESTful` services using entirely `TypeScript` language. 3 | 4 | ## Support this project 5 | - Star GitHub repository :star: 6 | - Follow updates on [Twitter](https://twitter.com/luixaviles) 7 | 8 | ## Slides 9 | Please find some slides with the relevant code explanation here: [https://luixaviles.com/ng-colombia-2017](https://luixaviles.com/ng-colombia-2017) 10 | 11 | ## Features 12 | - TypeScript language 13 | - Gulp tasks + TypeScript plugin 14 | - Experimental TypeScript decorators. 15 | - TypeScript decorators for `RESTful` services through [routing-controllers](https://github.com/pleerock/routing-controllers) 16 | - Use of `Dependency Injection` pattern: [injection-js](https://github.com/mgechev/injection-js). 17 | 18 | # Running Server locally 19 | ## Prerequisites 20 | 21 | First, ensure you have the following installed: 22 | 23 | 1. Node - Download and Install latest version of Node: [NodeJS](http://http://nodejs.org) 24 | 2. Git - Download and Install [Git](http://git-scm.com) 25 | 3. Gulp - `npm install -g gulp-cli` 26 | 27 | After that, use `Git bash` to run all commands if you are on Windows platform. 28 | 29 | ## Clone repository 30 | 31 | In order to start the project use: 32 | 33 | ```bash 34 | $ git clone https://github.com/luixaviles/node-typescript-app.git 35 | $ cd node-typescript-app 36 | ``` 37 | 38 | ## Install dependencies 39 | 40 | You'll need to download some node modules defined into `package.json` file. 41 | 42 | ``` 43 | npm install 44 | ``` 45 | 46 | ## Build the app 47 | Run the following command 48 | 49 | ``` 50 | gulp build 51 | ``` 52 | 53 | This will generate a `dist` directory(JavaScript output files). 54 | 55 | ## Run the app 56 | 57 | ``` 58 | npm start 59 | ``` 60 | 61 | Now open your browser here: [http://localhost:3000/speakers](http://localhost:3000/speakers) 62 | 63 | You'll have available the following `RESTful` services: 64 | 65 | ``` 66 | GET http://localhost:3000/speakers 67 | GET http://localhost:3000/speakers/:id 68 | POST http://localhost:3000/speakers 69 | PUT http://localhost:3000/speakers/:id 70 | DELETE http://localhost:3000/speakers/:id 71 | 72 | GET http://localhost:3000/speakers/:id/slides 73 | GET http://localhost:3000/speakers/:id/slides/:idSlide 74 | ``` 75 | 76 | If you want to change the port, please update `index.ts` file. 77 | 78 | ## License 79 | 80 | MIT 81 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require("gulp"); 2 | var ts = require("gulp-typescript"); 3 | const del = require('del'); 4 | var tsProject = ts.createProject("tsconfig.json"); 5 | 6 | gulp.task("build", ['clean'], function () { 7 | return tsProject.src() 8 | .pipe(tsProject()) 9 | .js.pipe(gulp.dest("./dist")); 10 | }); 11 | 12 | gulp.task('clean', function(){ 13 | return del(['dist/**', '!dist'], { 14 | force:true 15 | }); 16 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-typescript-app", 3 | "version": "0.0.1", 4 | "description": "A Node server app written using TypeScript", 5 | "author": "Luis Aviles", 6 | "license": "MIT", 7 | "scripts": { 8 | "build": "gulp build", 9 | "start": "node dist/index.js" 10 | }, 11 | "dependencies": { 12 | "@types/body-parser": "^1.17.0", 13 | "@types/express": "^4.16.0", 14 | "@types/multer": "^1.3.7", 15 | "body-parser": "^1.18.3", 16 | "cors": "^2.8.5", 17 | "express": "^4.16.4", 18 | "injection-js": "^2.2.1", 19 | "multer": "^1.4.1", 20 | "reflect-metadata": "^0.1.12", 21 | "routing-controllers": "^0.7.7" 22 | }, 23 | "devDependencies": { 24 | "del": "^3.0.0", 25 | "gulp": "^3.9.1", 26 | "gulp-typescript": "^5.0.0-alpha.3", 27 | "typescript": "^3.1.6" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/controllers/speaker.controller.ts: -------------------------------------------------------------------------------- 1 | import { Request, Response } from 'express'; 2 | import { ReflectiveInjector, Injector } from 'injection-js'; 3 | import { JsonController, Param, Body, Get, Post, Put, Delete, Req, Res } from 'routing-controllers'; 4 | import { Speakers, Speaker } from '../models/speaker'; 5 | import { SpeakerRepository } from '../data/speaker/speaker.repository'; 6 | import { SlideRepository } from '../data/slide/slide.repository'; 7 | import { DataSource } from '../data/data-source'; 8 | 9 | const injector = ReflectiveInjector.resolveAndCreate([ 10 | DataSource, 11 | SpeakerRepository, 12 | SlideRepository 13 | ]); 14 | @JsonController() 15 | export class SpeakerController { 16 | private dataSource: DataSource = injector.get(DataSource); 17 | private speakerRepository: SpeakerRepository; 18 | private slideRepository: SlideRepository; 19 | 20 | constructor() { 21 | this.speakerRepository = this.dataSource.getSpeakerRepository(); 22 | this.slideRepository = this.dataSource.getSlideRepository(); 23 | } 24 | 25 | @Get('/speakers') 26 | getAll() { 27 | return this.speakerRepository.getAll(); 28 | } 29 | 30 | @Get('/speakers/:id') 31 | getOne(@Req() request: Request, 32 | @Res() response: Response, 33 | @Param("id") id: string) { 34 | return response.send(this.speakerRepository.get(id)); 35 | } 36 | 37 | @Post('/speakers') 38 | post(@Req() request: Request, 39 | @Res() response: Response, 40 | @Body() speaker: Speaker) { 41 | return response.send(this.speakerRepository.save(speaker)); 42 | } 43 | 44 | @Put('/speakers/:id') 45 | put(@Req() request: Request, 46 | @Res() response: Response, 47 | @Param('id') id: string, 48 | @Body() speaker: Speaker) { 49 | return response.send(this.speakerRepository.update(id, speaker)); 50 | } 51 | 52 | @Delete('/speakers/:id') 53 | remove(@Param('id') id: string) { 54 | return 'Removing speaker...'; 55 | } 56 | 57 | @Get('/speakers/:id/slides') 58 | getSlides(@Req() request: Request, 59 | @Res() response: Response, 60 | @Param("id") id: string) { 61 | return response.send(this.slideRepository.getAll(id)); 62 | } 63 | 64 | @Get('/speakers/:id/slides/:idSlide') 65 | getSlide(@Req() request: Request, 66 | @Res() response: Response, 67 | @Param("id") id: string, 68 | @Param("idSlide") idSlide: string,) { 69 | return response.send(this.slideRepository.get(id, idSlide)); 70 | } 71 | } -------------------------------------------------------------------------------- /src/data/data-source.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from 'injection-js'; 2 | import { SpeakerRepository } from './speaker/speaker.repository'; 3 | import { SlideRepository } from './slide/slide.repository'; 4 | 5 | @Injectable() 6 | export class DataSource { 7 | 8 | constructor(private speakerRepository: SpeakerRepository, 9 | private slideRepository: SlideRepository) {} 10 | 11 | getSpeakerRepository(): SpeakerRepository { 12 | return this.speakerRepository; 13 | } 14 | 15 | getSlideRepository(): SlideRepository { 16 | return this.slideRepository; 17 | } 18 | } -------------------------------------------------------------------------------- /src/data/slide/slide.repository.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from 'injection-js'; 2 | 3 | @Injectable() 4 | export class SlideRepository { 5 | 6 | getAll(idSpeaker: string) { 7 | return 'Returns all slides'; 8 | } 9 | 10 | get(idSpeaker: string, id: string) { 11 | return 'Returns slide #' + id; 12 | } 13 | 14 | save(idSpeaker: string, slide: any) { 15 | return 'Saving slide'; 16 | } 17 | } -------------------------------------------------------------------------------- /src/data/speaker/db.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | "results": [ 3 | { 4 | "gender": "male", 5 | "name": { 6 | "title": "mr", 7 | "first": "clarence", 8 | "last": "watkins" 9 | }, 10 | "location": { 11 | "street": "8817 boghall road", 12 | "city": "shannon", 13 | "state": "louth", 14 | "postcode": 30792 15 | }, 16 | "email": "clarence.watkins@example.com", 17 | "login": { 18 | "username": "beautifulwolf889", 19 | "password": "missy", 20 | "salt": "ZgDWPw3a", 21 | "md5": "94c4c19bcc50d275b883583a740ab947", 22 | "sha1": "f29439dfb460042e428eaa4d1ff558bf90e4ae48", 23 | "sha256": "d83944fb844b5cb21dc19d3cf2e04a331d9932b493e76dcff2f14e75cc6cf9fe" 24 | }, 25 | "dob": "1973-06-10 01:30:59", 26 | "registered": "2002-12-14 21:27:01", 27 | "phone": "041-375-4004", 28 | "cell": "081-703-8421", 29 | "id": { 30 | "name": "PPS", 31 | "value": "4585933T" 32 | }, 33 | "picture": { 34 | "large": "https://randomuser.me/api/portraits/men/32.jpg", 35 | "medium": "https://randomuser.me/api/portraits/med/men/32.jpg", 36 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/32.jpg" 37 | }, 38 | "nat": "IE" 39 | }, 40 | { 41 | "gender": "female", 42 | "name": { 43 | "title": "miss", 44 | "first": "theadora", 45 | "last": "oenema" 46 | }, 47 | "location": { 48 | "street": "8511 nicolaasweg", 49 | "city": "hellendoorn", 50 | "state": "zeeland", 51 | "postcode": 91150 52 | }, 53 | "email": "theadora.oenema@example.com", 54 | "login": { 55 | "username": "orangemeercat964", 56 | "password": "pantie", 57 | "salt": "krBbmXAn", 58 | "md5": "72f2d7600132aedaef06450a2740a0dd", 59 | "sha1": "37b34e8211dfdc750a1c5222617379680ac23ec7", 60 | "sha256": "4916b3ab2d100e68cafb55fa3449897b44b420451be30d3003fcb1dfca049559" 61 | }, 62 | "dob": "1967-04-02 09:25:50", 63 | "registered": "2010-07-01 08:08:09", 64 | "phone": "(768)-537-6865", 65 | "cell": "(891)-336-6606", 66 | "id": { 67 | "name": "BSN", 68 | "value": "32422449" 69 | }, 70 | "picture": { 71 | "large": "https://randomuser.me/api/portraits/women/56.jpg", 72 | "medium": "https://randomuser.me/api/portraits/med/women/56.jpg", 73 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/56.jpg" 74 | }, 75 | "nat": "NL" 76 | }, 77 | { 78 | "gender": "female", 79 | "name": { 80 | "title": "ms", 81 | "first": "merijn", 82 | "last": "merkus" 83 | }, 84 | "location": { 85 | "street": "8134 servetstraat", 86 | "city": "cranendonck", 87 | "state": "flevoland", 88 | "postcode": 37369 89 | }, 90 | "email": "merijn.merkus@example.com", 91 | "login": { 92 | "username": "lazymouse802", 93 | "password": "lalakers", 94 | "salt": "mllermRw", 95 | "md5": "d81971d38792310007c40bfdf698488f", 96 | "sha1": "df6c3e550a70485cbbf40b9af18b172ec2e51b12", 97 | "sha256": "9edfb142c06e884f6d2ce0e5b107c46f4e1714ec1a0ae3045596379d440db41b" 98 | }, 99 | "dob": "1956-04-02 11:26:09", 100 | "registered": "2013-04-17 11:02:56", 101 | "phone": "(103)-224-5599", 102 | "cell": "(034)-416-3294", 103 | "id": { 104 | "name": "BSN", 105 | "value": "72751361" 106 | }, 107 | "picture": { 108 | "large": "https://randomuser.me/api/portraits/women/43.jpg", 109 | "medium": "https://randomuser.me/api/portraits/med/women/43.jpg", 110 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/43.jpg" 111 | }, 112 | "nat": "NL" 113 | }, 114 | { 115 | "gender": "female", 116 | "name": { 117 | "title": "miss", 118 | "first": "melissa", 119 | "last": "davis" 120 | }, 121 | "location": { 122 | "street": "8649 manor road", 123 | "city": "portmarnock", 124 | "state": "donegal", 125 | "postcode": 82999 126 | }, 127 | "email": "melissa.davis@example.com", 128 | "login": { 129 | "username": "heavyladybug631", 130 | "password": "buzzer", 131 | "salt": "RryE4Vzi", 132 | "md5": "2e4c668ee033e3ae04ed7d29532b3354", 133 | "sha1": "301890a5c4c05cf8c6d4777aee427b9d511bfc8d", 134 | "sha256": "340ff4e9e23804650f53b92b3e5f931984648bb9de1630377243e294f625d98c" 135 | }, 136 | "dob": "1988-07-20 05:53:35", 137 | "registered": "2012-03-22 15:02:02", 138 | "phone": "071-791-0708", 139 | "cell": "081-307-1454", 140 | "id": { 141 | "name": "PPS", 142 | "value": "8715793T" 143 | }, 144 | "picture": { 145 | "large": "https://randomuser.me/api/portraits/women/75.jpg", 146 | "medium": "https://randomuser.me/api/portraits/med/women/75.jpg", 147 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/75.jpg" 148 | }, 149 | "nat": "IE" 150 | }, 151 | { 152 | "gender": "male", 153 | "name": { 154 | "title": "mr", 155 | "first": "rodney", 156 | "last": "rodriguez" 157 | }, 158 | "location": { 159 | "street": "7892 college st", 160 | "city": "west valley city", 161 | "state": "tennessee", 162 | "postcode": 81332 163 | }, 164 | "email": "rodney.rodriguez@example.com", 165 | "login": { 166 | "username": "biggorilla248", 167 | "password": "close-up", 168 | "salt": "H4z5jtrh", 169 | "md5": "d0080094c5026f2f2ea74abf1cb5fea9", 170 | "sha1": "346cf07bd91454a858a94fc01f6b02bfb2c625ea", 171 | "sha256": "c4acce9d1835254c28163fdfaa4fa190777251453f35c485fb935169acb7fcbd" 172 | }, 173 | "dob": "1949-10-22 21:49:42", 174 | "registered": "2007-08-14 23:42:17", 175 | "phone": "(128)-437-1804", 176 | "cell": "(786)-961-4546", 177 | "id": { 178 | "name": "SSN", 179 | "value": "034-47-1417" 180 | }, 181 | "picture": { 182 | "large": "https://randomuser.me/api/portraits/men/86.jpg", 183 | "medium": "https://randomuser.me/api/portraits/med/men/86.jpg", 184 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/86.jpg" 185 | }, 186 | "nat": "US" 187 | }, 188 | { 189 | "gender": "female", 190 | "name": { 191 | "title": "ms", 192 | "first": "eliene", 193 | "last": "van den borne" 194 | }, 195 | "location": { 196 | "street": "5293 annastraat", 197 | "city": "rijswijk", 198 | "state": "groningen", 199 | "postcode": 16461 200 | }, 201 | "email": "eliene.vandenborne@example.com", 202 | "login": { 203 | "username": "beautifulduck581", 204 | "password": "scanner", 205 | "salt": "0jnqYJY2", 206 | "md5": "9beae3aaf327aff756a794ebdce26cb3", 207 | "sha1": "e7ec77844cd9f6962402c975cecc5803848bb18f", 208 | "sha256": "4269ae6c7d6134f4d9e1f7a558b2869ad98e0dcac31ed6846c2ea8e8b12d1391" 209 | }, 210 | "dob": "1972-01-16 11:09:13", 211 | "registered": "2006-11-10 23:18:26", 212 | "phone": "(222)-479-9712", 213 | "cell": "(397)-560-7438", 214 | "id": { 215 | "name": "BSN", 216 | "value": "76484217" 217 | }, 218 | "picture": { 219 | "large": "https://randomuser.me/api/portraits/women/88.jpg", 220 | "medium": "https://randomuser.me/api/portraits/med/women/88.jpg", 221 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/88.jpg" 222 | }, 223 | "nat": "NL" 224 | }, 225 | { 226 | "gender": "female", 227 | "name": { 228 | "title": "ms", 229 | "first": "vildan", 230 | "last": "akar" 231 | }, 232 | "location": { 233 | "street": "4090 necatibey cd", 234 | "city": "gümüşhane", 235 | "state": "aydın", 236 | "postcode": 54934 237 | }, 238 | "email": "vildan.akar@example.com", 239 | "login": { 240 | "username": "bluedog192", 241 | "password": "doomsday", 242 | "salt": "FT7Ii5az", 243 | "md5": "61b0187de795da946751109ea6ec261e", 244 | "sha1": "5e285f949d98ae26c670d85995896e29d6c4508e", 245 | "sha256": "9a9fb6f0525a490f601d187873b5c924f6894f5eb45b1628eaace13df55bc7e5" 246 | }, 247 | "dob": "1976-12-16 06:05:33", 248 | "registered": "2012-02-15 00:56:52", 249 | "phone": "(502)-418-8510", 250 | "cell": "(969)-962-1701", 251 | "id": { 252 | "name": "", 253 | "value": null 254 | }, 255 | "picture": { 256 | "large": "https://randomuser.me/api/portraits/women/26.jpg", 257 | "medium": "https://randomuser.me/api/portraits/med/women/26.jpg", 258 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/26.jpg" 259 | }, 260 | "nat": "TR" 261 | }, 262 | { 263 | "gender": "male", 264 | "name": { 265 | "title": "mr", 266 | "first": "kevin", 267 | "last": "oliver" 268 | }, 269 | "location": { 270 | "street": "3145 new street", 271 | "city": "wolverhampton", 272 | "state": "avon", 273 | "postcode": "G3 0SB" 274 | }, 275 | "email": "kevin.oliver@example.com", 276 | "login": { 277 | "username": "greenladybug240", 278 | "password": "bitter", 279 | "salt": "c9gzLG4Z", 280 | "md5": "5a2f32e450c33097f3f603ecccf19093", 281 | "sha1": "7248586e3f0346d8d69863cfbb196a259e301ff7", 282 | "sha256": "49f797c40c7b357c0b4d198df8d8060514f2bc6a0e6cca05b620708bb70063ca" 283 | }, 284 | "dob": "1949-01-13 14:39:15", 285 | "registered": "2003-01-05 10:19:43", 286 | "phone": "0151 229 2663", 287 | "cell": "0796-181-118", 288 | "id": { 289 | "name": "NINO", 290 | "value": "XK 53 79 20 Q" 291 | }, 292 | "picture": { 293 | "large": "https://randomuser.me/api/portraits/men/69.jpg", 294 | "medium": "https://randomuser.me/api/portraits/med/men/69.jpg", 295 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/69.jpg" 296 | }, 297 | "nat": "GB" 298 | }, 299 | { 300 | "gender": "female", 301 | "name": { 302 | "title": "ms", 303 | "first": "giulia", 304 | "last": "guerin" 305 | }, 306 | "location": { 307 | "street": "1476 avenue de l'abbé-roussel", 308 | "city": "vitry-sur-seine", 309 | "state": "haute-garonne", 310 | "postcode": 18063 311 | }, 312 | "email": "giulia.guerin@example.com", 313 | "login": { 314 | "username": "beautifulpeacock370", 315 | "password": "smackdow", 316 | "salt": "TczYT5BM", 317 | "md5": "0fb0c3d725592255dcbc66817a52f7e3", 318 | "sha1": "4f6a7cd790893987de4d7dc2325c443d5c660960", 319 | "sha256": "15f6a0d0fbd9670fb6ba3f3d1fc52e9f34c447245f662723a152ec4f014f0ff6" 320 | }, 321 | "dob": "1965-08-29 21:41:09", 322 | "registered": "2015-12-03 08:23:36", 323 | "phone": "03-61-24-26-39", 324 | "cell": "06-40-75-54-78", 325 | "id": { 326 | "name": "INSEE", 327 | "value": "265770625516 71" 328 | }, 329 | "picture": { 330 | "large": "https://randomuser.me/api/portraits/women/54.jpg", 331 | "medium": "https://randomuser.me/api/portraits/med/women/54.jpg", 332 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/54.jpg" 333 | }, 334 | "nat": "FR" 335 | }, 336 | { 337 | "gender": "male", 338 | "name": { 339 | "title": "mr", 340 | "first": "alexander", 341 | "last": "martin" 342 | }, 343 | "location": { 344 | "street": "2073 calle covadonga", 345 | "city": "barcelona", 346 | "state": "aragón", 347 | "postcode": 14397 348 | }, 349 | "email": "alexander.martin@example.com", 350 | "login": { 351 | "username": "purplebear280", 352 | "password": "baddest", 353 | "salt": "402IW3yz", 354 | "md5": "f6c766b9ac0fdf50476e8134ec3e1ffa", 355 | "sha1": "b4f3ce1e59a04f7287c9defd30be61ee5ddb818d", 356 | "sha256": "1d6314d4e4d4448bf95e826115de6a1fa0ee6902cc6b0f2c6abfd72009964736" 357 | }, 358 | "dob": "1964-05-09 06:12:55", 359 | "registered": "2005-03-19 13:06:56", 360 | "phone": "938-723-305", 361 | "cell": "630-469-918", 362 | "id": { 363 | "name": "DNI", 364 | "value": "34357033-I" 365 | }, 366 | "picture": { 367 | "large": "https://randomuser.me/api/portraits/men/73.jpg", 368 | "medium": "https://randomuser.me/api/portraits/med/men/73.jpg", 369 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/73.jpg" 370 | }, 371 | "nat": "ES" 372 | }, 373 | { 374 | "gender": "male", 375 | "name": { 376 | "title": "mr", 377 | "first": "zachary", 378 | "last": "flores" 379 | }, 380 | "location": { 381 | "street": "3442 green lane", 382 | "city": "aberdeen", 383 | "state": "hampshire", 384 | "postcode": "WU00 1YQ" 385 | }, 386 | "email": "zachary.flores@example.com", 387 | "login": { 388 | "username": "blueswan516", 389 | "password": "michele", 390 | "salt": "sUT7Q4Ig", 391 | "md5": "64dfe47292f8407d085e89ca64336656", 392 | "sha1": "ca414dac95608a603df02b66b356fc38ce66ba51", 393 | "sha256": "153fb88cb615a70572ce2c580e14c696f1597498b2a7180c2fd4ce16a2460788" 394 | }, 395 | "dob": "1961-08-13 18:58:37", 396 | "registered": "2009-04-08 20:53:19", 397 | "phone": "026 8535 1990", 398 | "cell": "0729-742-650", 399 | "id": { 400 | "name": "NINO", 401 | "value": "ON 27 23 28 Y" 402 | }, 403 | "picture": { 404 | "large": "https://randomuser.me/api/portraits/men/56.jpg", 405 | "medium": "https://randomuser.me/api/portraits/med/men/56.jpg", 406 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/56.jpg" 407 | }, 408 | "nat": "GB" 409 | }, 410 | { 411 | "gender": "female", 412 | "name": { 413 | "title": "mrs", 414 | "first": "alma", 415 | "last": "sørensen" 416 | }, 417 | "location": { 418 | "street": "8313 vester alle", 419 | "city": "støvring ", 420 | "state": "nordjylland", 421 | "postcode": 39195 422 | }, 423 | "email": "alma.sørensen@example.com", 424 | "login": { 425 | "username": "crazysnake605", 426 | "password": "boston1", 427 | "salt": "h6RmDuLj", 428 | "md5": "b439225a9ec76eb4a702b5c40370ef07", 429 | "sha1": "cbcc30b0594681314050b1d66fd46bec5fb2aa74", 430 | "sha256": "3b023720dcf0532317f0f2d75c72a63871a31bcf8ad6b624c62b13517e079c99" 431 | }, 432 | "dob": "1974-12-31 18:23:54", 433 | "registered": "2006-07-28 22:48:30", 434 | "phone": "00159024", 435 | "cell": "82018907", 436 | "id": { 437 | "name": "CPR", 438 | "value": "995319-1992" 439 | }, 440 | "picture": { 441 | "large": "https://randomuser.me/api/portraits/women/42.jpg", 442 | "medium": "https://randomuser.me/api/portraits/med/women/42.jpg", 443 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/42.jpg" 444 | }, 445 | "nat": "DK" 446 | }, 447 | { 448 | "gender": "male", 449 | "name": { 450 | "title": "mr", 451 | "first": "iker", 452 | "last": "gomez" 453 | }, 454 | "location": { 455 | "street": "7447 calle de téllez", 456 | "city": "jerez de la frontera", 457 | "state": "castilla la mancha", 458 | "postcode": 32259 459 | }, 460 | "email": "iker.gomez@example.com", 461 | "login": { 462 | "username": "organickoala614", 463 | "password": "nellie", 464 | "salt": "N5dUzVGZ", 465 | "md5": "d134ab8e099966c1b79314e1b4a7e0d8", 466 | "sha1": "ec8229c22dbdd1e12e168a4f65226c890fd25d62", 467 | "sha256": "b30f91bcb615afc19fe831322a2581eaea146f8a56b7d079596de206eba5607b" 468 | }, 469 | "dob": "1982-05-15 10:24:12", 470 | "registered": "2012-02-01 17:25:42", 471 | "phone": "910-829-850", 472 | "cell": "615-035-271", 473 | "id": { 474 | "name": "DNI", 475 | "value": "70154774-M" 476 | }, 477 | "picture": { 478 | "large": "https://randomuser.me/api/portraits/men/83.jpg", 479 | "medium": "https://randomuser.me/api/portraits/med/men/83.jpg", 480 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/83.jpg" 481 | }, 482 | "nat": "ES" 483 | }, 484 | { 485 | "gender": "female", 486 | "name": { 487 | "title": "ms", 488 | "first": "joann", 489 | "last": "long" 490 | }, 491 | "location": { 492 | "street": "2750 w dallas st", 493 | "city": "melbourne", 494 | "state": "western australia", 495 | "postcode": 1605 496 | }, 497 | "email": "joann.long@example.com", 498 | "login": { 499 | "username": "whitemeercat220", 500 | "password": "mclaren", 501 | "salt": "TWxi633T", 502 | "md5": "9c9529b3bc11f9bace32c21912b04ee4", 503 | "sha1": "0c878e074a3f539e39f72dabd28230e67cea2c54", 504 | "sha256": "39629aa80e3ce84315c0a6336923316734f818f7baae02d9eaf9d26bd599b46b" 505 | }, 506 | "dob": "1954-02-09 09:48:32", 507 | "registered": "2006-06-27 19:09:36", 508 | "phone": "01-6921-4480", 509 | "cell": "0496-621-279", 510 | "id": { 511 | "name": "TFN", 512 | "value": "109083955" 513 | }, 514 | "picture": { 515 | "large": "https://randomuser.me/api/portraits/women/33.jpg", 516 | "medium": "https://randomuser.me/api/portraits/med/women/33.jpg", 517 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/33.jpg" 518 | }, 519 | "nat": "AU" 520 | }, 521 | { 522 | "gender": "female", 523 | "name": { 524 | "title": "miss", 525 | "first": "ava", 526 | "last": "gaillard" 527 | }, 528 | "location": { 529 | "street": "3884 avenue paul eluard", 530 | "city": "perpignan", 531 | "state": "haute-corse", 532 | "postcode": 12274 533 | }, 534 | "email": "ava.gaillard@example.com", 535 | "login": { 536 | "username": "tinymeercat228", 537 | "password": "doberman", 538 | "salt": "pDXAACKj", 539 | "md5": "5c19d34abd3244f0101c633bb2df34de", 540 | "sha1": "5911df4b5988532f6df2c78a6be4b3418f5f9185", 541 | "sha256": "d8089ce1b524b0bf7de0a1280695952f27a976aa91aa5837a960ef7d3f004cb7" 542 | }, 543 | "dob": "1951-01-07 14:05:21", 544 | "registered": "2016-07-01 06:02:40", 545 | "phone": "01-25-33-55-81", 546 | "cell": "06-72-99-08-26", 547 | "id": { 548 | "name": "INSEE", 549 | "value": "251044732159 40" 550 | }, 551 | "picture": { 552 | "large": "https://randomuser.me/api/portraits/women/96.jpg", 553 | "medium": "https://randomuser.me/api/portraits/med/women/96.jpg", 554 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/96.jpg" 555 | }, 556 | "nat": "FR" 557 | }, 558 | { 559 | "gender": "male", 560 | "name": { 561 | "title": "mr", 562 | "first": "leevi", 563 | "last": "marttila" 564 | }, 565 | "location": { 566 | "street": "7189 hämeenkatu", 567 | "city": "töysä", 568 | "state": "southern savonia", 569 | "postcode": 58988 570 | }, 571 | "email": "leevi.marttila@example.com", 572 | "login": { 573 | "username": "orangefish300", 574 | "password": "catwoman", 575 | "salt": "csDDT13m", 576 | "md5": "0fccd3a9454ff7a00b9742defa2d3b2d", 577 | "sha1": "667160ab6debbe07bf851b0552b65dce4ffa5a1e", 578 | "sha256": "4a123d4e85f405447bd4b10ac0da1c668c51f871ba369437f5859ba43418f516" 579 | }, 580 | "dob": "1952-03-12 11:45:49", 581 | "registered": "2012-10-19 06:17:58", 582 | "phone": "05-947-874", 583 | "cell": "048-038-66-11", 584 | "id": { 585 | "name": "HETU", 586 | "value": "552-419Y" 587 | }, 588 | "picture": { 589 | "large": "https://randomuser.me/api/portraits/men/76.jpg", 590 | "medium": "https://randomuser.me/api/portraits/med/men/76.jpg", 591 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/76.jpg" 592 | }, 593 | "nat": "FI" 594 | }, 595 | { 596 | "gender": "male", 597 | "name": { 598 | "title": "mr", 599 | "first": "jesse", 600 | "last": "peltonen" 601 | }, 602 | "location": { 603 | "street": "2313 bulevardi", 604 | "city": "tervola", 605 | "state": "päijät-häme", 606 | "postcode": 99845 607 | }, 608 | "email": "jesse.peltonen@example.com", 609 | "login": { 610 | "username": "organicelephant262", 611 | "password": "just4fun", 612 | "salt": "cWcIgiuw", 613 | "md5": "622b674f19c92bf2396846c073f68b90", 614 | "sha1": "3dd996de596e6c27847564c947e91c4c53630f46", 615 | "sha256": "ed31d4bb28462ee8907509ba3087e15183d70d2813a5c6045f8486d760f42e7f" 616 | }, 617 | "dob": "1991-08-07 13:05:38", 618 | "registered": "2007-02-27 02:52:38", 619 | "phone": "06-767-026", 620 | "cell": "043-119-58-82", 621 | "id": { 622 | "name": "HETU", 623 | "value": "1091-7657" 624 | }, 625 | "picture": { 626 | "large": "https://randomuser.me/api/portraits/men/13.jpg", 627 | "medium": "https://randomuser.me/api/portraits/med/men/13.jpg", 628 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/13.jpg" 629 | }, 630 | "nat": "FI" 631 | }, 632 | { 633 | "gender": "female", 634 | "name": { 635 | "title": "mrs", 636 | "first": "باران", 637 | "last": "احمدی" 638 | }, 639 | "location": { 640 | "street": "1145 شهید عباس افضلی", 641 | "city": "تبریز", 642 | "state": "آذربایجان غربی", 643 | "postcode": 76179 644 | }, 645 | "email": "باران.احمدی@example.com", 646 | "login": { 647 | "username": "goldenmeercat674", 648 | "password": "marco", 649 | "salt": "0hor1hf9", 650 | "md5": "92f4ea48c549425610b99db747056585", 651 | "sha1": "0461eb42e47d912af3aeb61b8d8c5dc73ddcece3", 652 | "sha256": "c803cc830af6891d75dab6cef9ac4d699aca2faea96233f9f708c1b7cd076b0e" 653 | }, 654 | "dob": "1963-02-09 06:20:57", 655 | "registered": "2002-09-22 03:46:06", 656 | "phone": "037-85557812", 657 | "cell": "0922-989-4885", 658 | "id": { 659 | "name": "", 660 | "value": null 661 | }, 662 | "picture": { 663 | "large": "https://randomuser.me/api/portraits/women/57.jpg", 664 | "medium": "https://randomuser.me/api/portraits/med/women/57.jpg", 665 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/57.jpg" 666 | }, 667 | "nat": "IR" 668 | }, 669 | { 670 | "gender": "male", 671 | "name": { 672 | "title": "mr", 673 | "first": "salah", 674 | "last": "velders" 675 | }, 676 | "location": { 677 | "street": "3754 kruisstraat", 678 | "city": "veendam", 679 | "state": "zuid-holland", 680 | "postcode": 85838 681 | }, 682 | "email": "salah.velders@example.com", 683 | "login": { 684 | "username": "bluedog363", 685 | "password": "skinny", 686 | "salt": "cFyjr1I6", 687 | "md5": "e6e8555f160f4bcdabdef4872baeff2d", 688 | "sha1": "9dc7287396450e021a16711b972ea188ac78afbc", 689 | "sha256": "1775796bfd8feaee9cd0844142449418d1a1f8740ea83cc1b97477d22074340c" 690 | }, 691 | "dob": "1979-12-06 15:18:10", 692 | "registered": "2010-04-25 17:34:54", 693 | "phone": "(322)-400-7566", 694 | "cell": "(623)-049-0959", 695 | "id": { 696 | "name": "BSN", 697 | "value": "15920098" 698 | }, 699 | "picture": { 700 | "large": "https://randomuser.me/api/portraits/men/77.jpg", 701 | "medium": "https://randomuser.me/api/portraits/med/men/77.jpg", 702 | "thumbnail": "https://randomuser.me/api/portraits/thumb/men/77.jpg" 703 | }, 704 | "nat": "NL" 705 | }, 706 | { 707 | "gender": "female", 708 | "name": { 709 | "title": "ms", 710 | "first": "carolyn", 711 | "last": "sullivan" 712 | }, 713 | "location": { 714 | "street": "6051 mockingbird hill", 715 | "city": "warragul", 716 | "state": "south australia", 717 | "postcode": 7646 718 | }, 719 | "email": "carolyn.sullivan@example.com", 720 | "login": { 721 | "username": "greenelephant974", 722 | "password": "skirt", 723 | "salt": "pc0GqZKN", 724 | "md5": "2d68345d4f1843bed219fb42d0a904ee", 725 | "sha1": "70de490e6a2770c87bd8ad073a85988d895473da", 726 | "sha256": "15107df251ce910e65516d39c2c009efc8c999d02e4309d41de40cfab7582f73" 727 | }, 728 | "dob": "1944-11-30 20:09:07", 729 | "registered": "2003-10-09 11:46:50", 730 | "phone": "06-2492-1437", 731 | "cell": "0430-761-521", 732 | "id": { 733 | "name": "TFN", 734 | "value": "989024437" 735 | }, 736 | "picture": { 737 | "large": "https://randomuser.me/api/portraits/women/49.jpg", 738 | "medium": "https://randomuser.me/api/portraits/med/women/49.jpg", 739 | "thumbnail": "https://randomuser.me/api/portraits/thumb/women/49.jpg" 740 | }, 741 | "nat": "AU" 742 | } 743 | ], 744 | "info": { 745 | "seed": "d4dbe25be43f2731", 746 | "results": 20, 747 | "page": 1, 748 | "version": "1.1" 749 | } 750 | } 751 | -------------------------------------------------------------------------------- /src/data/speaker/speaker.repository.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from 'injection-js'; 2 | 3 | import { default as SPEAKERS } from './db'; 4 | import { Speakers, Speaker } from '../../models/speaker'; 5 | 6 | @Injectable() 7 | export class SpeakerRepository { 8 | speakers: Speakers = SPEAKERS; 9 | 10 | getAll(): Speakers { 11 | return this.speakers; 12 | } 13 | 14 | get(id: number | string): Speaker { 15 | const array = this.speakers.results.filter(s => s.id.value === id); 16 | return array[0]; 17 | } 18 | 19 | save(speaker: Speaker): Speaker { 20 | speaker.id.value = 'ramdomid'; 21 | this.speakers.results.push(speaker); 22 | 23 | return speaker; 24 | } 25 | 26 | update(id: string, speaker: Speaker): Speaker { 27 | const index = this.speakers.results.findIndex((s: Speaker) => s.id.value === id); 28 | this.speakers.results[index] = speaker; 29 | 30 | return speaker; 31 | } 32 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import 'reflect-metadata'; 2 | import { createExpressServer } from 'routing-controllers'; 3 | import { SpeakerController } from './controllers/speaker.controller'; 4 | 5 | const app = createExpressServer({ 6 | cors: true, 7 | controllers: [SpeakerController] 8 | }); 9 | 10 | const PORT = 3000; 11 | 12 | app.listen(PORT); 13 | console.log(`Running local server on http://localhost:${PORT}/speakers`); -------------------------------------------------------------------------------- /src/models/speaker/id-speaker.ts: -------------------------------------------------------------------------------- 1 | export interface IdSpeaker { 2 | name: string; 3 | value: string; 4 | } 5 | -------------------------------------------------------------------------------- /src/models/speaker/index.ts: -------------------------------------------------------------------------------- 1 | export { Speaker } from './speaker'; 2 | export { Speakers } from './speakers'; -------------------------------------------------------------------------------- /src/models/speaker/location-speaker.ts: -------------------------------------------------------------------------------- 1 | export interface LocationSpeaker { 2 | street: string; 3 | city: string; 4 | state: string; 5 | postcode: number; 6 | } 7 | -------------------------------------------------------------------------------- /src/models/speaker/name.ts: -------------------------------------------------------------------------------- 1 | export interface Name { 2 | first: string; 3 | last: string; 4 | } 5 | -------------------------------------------------------------------------------- /src/models/speaker/picture-speaker.ts: -------------------------------------------------------------------------------- 1 | export interface PictureSpeaker { 2 | large: string; 3 | medium: string; 4 | } 5 | -------------------------------------------------------------------------------- /src/models/speaker/speaker.ts: -------------------------------------------------------------------------------- 1 | import { IdSpeaker } from './id-speaker' 2 | import { Name } from './name' 3 | import { LocationSpeaker } from './location-speaker' 4 | import { PictureSpeaker } from './picture-speaker' 5 | 6 | export interface Speaker { 7 | id: IdSpeaker; 8 | gender: string; 9 | name: Name; 10 | location: LocationSpeaker; 11 | email: string; 12 | picture: PictureSpeaker; 13 | registered: string; 14 | } 15 | -------------------------------------------------------------------------------- /src/models/speaker/speakers.ts: -------------------------------------------------------------------------------- 1 | import { Speaker } from './speaker'; 2 | 3 | export interface Speakers { 4 | results: Speaker[] 5 | } 6 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "src/index.ts", 4 | "src/controllers/**/*.ts", 5 | "src/models/**/*.ts", 6 | "src/data/**/*.ts", 7 | "src/helpers/**/*.ts" 8 | ], 9 | "compilerOptions": { 10 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */ 11 | "module": "commonjs", /* Specify module code generation: 'none', commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ 12 | "allowJs": true, /* Allow javascript files to be compiled. */ 13 | "strict": true, /* Enable all strict type-checking options. */ 14 | "noEmitOnError": true, 15 | /* Experimental Options */ 16 | "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 17 | "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */ 18 | } 19 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/body-parser@*", "@types/body-parser@^1.17.0": 6 | version "1.17.0" 7 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 8 | dependencies: 9 | "@types/connect" "*" 10 | "@types/node" "*" 11 | 12 | "@types/connect@*": 13 | version "3.4.32" 14 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 15 | dependencies: 16 | "@types/node" "*" 17 | 18 | "@types/events@*": 19 | version "1.2.0" 20 | resolved "http://registry.npmjs.org/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 21 | 22 | "@types/express-serve-static-core@*": 23 | version "4.16.0" 24 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 25 | dependencies: 26 | "@types/events" "*" 27 | "@types/node" "*" 28 | "@types/range-parser" "*" 29 | 30 | "@types/express@*", "@types/express@^4.16.0": 31 | version "4.16.0" 32 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 33 | dependencies: 34 | "@types/body-parser" "*" 35 | "@types/express-serve-static-core" "*" 36 | "@types/serve-static" "*" 37 | 38 | "@types/mime@*": 39 | version "2.0.0" 40 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 41 | 42 | "@types/multer@^1.3.7": 43 | version "1.3.7" 44 | resolved "https://registry.yarnpkg.com/@types/multer/-/multer-1.3.7.tgz#9fe1de9f44f401ff2eaf0d4468cf16935a9c6866" 45 | dependencies: 46 | "@types/express" "*" 47 | 48 | "@types/node@*": 49 | version "10.12.7" 50 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.7.tgz#195808b2d4b2e7c33e75e7d9b24aeee88f94660d" 51 | 52 | "@types/range-parser@*": 53 | version "1.2.2" 54 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 55 | 56 | "@types/serve-static@*": 57 | version "1.13.2" 58 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 59 | dependencies: 60 | "@types/express-serve-static-core" "*" 61 | "@types/mime" "*" 62 | 63 | accepts@~1.3.5: 64 | version "1.3.5" 65 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 66 | dependencies: 67 | mime-types "~2.1.18" 68 | negotiator "0.6.1" 69 | 70 | ansi-colors@^1.0.1: 71 | version "1.1.0" 72 | resolved "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" 73 | dependencies: 74 | ansi-wrap "^0.1.0" 75 | 76 | ansi-colors@^2.0.2: 77 | version "2.0.5" 78 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-2.0.5.tgz#5da37825fef3e75f3bda47f760d64bfd10e15e10" 79 | 80 | ansi-gray@^0.1.1: 81 | version "0.1.1" 82 | resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" 83 | dependencies: 84 | ansi-wrap "0.1.0" 85 | 86 | ansi-regex@^2.0.0: 87 | version "2.1.1" 88 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 89 | 90 | ansi-styles@^2.2.1: 91 | version "2.2.1" 92 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 93 | 94 | ansi-wrap@0.1.0, ansi-wrap@^0.1.0: 95 | version "0.1.0" 96 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" 97 | 98 | append-buffer@^1.0.2: 99 | version "1.0.2" 100 | resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" 101 | dependencies: 102 | buffer-equal "^1.0.0" 103 | 104 | append-field@^1.0.0: 105 | version "1.0.0" 106 | resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" 107 | 108 | archy@^1.0.0: 109 | version "1.0.0" 110 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 111 | 112 | arr-diff@^4.0.0: 113 | version "4.0.0" 114 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 115 | 116 | arr-flatten@^1.1.0: 117 | version "1.1.0" 118 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 119 | 120 | arr-union@^3.1.0: 121 | version "3.1.0" 122 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 123 | 124 | array-differ@^1.0.0: 125 | version "1.0.0" 126 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 127 | 128 | array-each@^1.0.1: 129 | version "1.0.1" 130 | resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" 131 | 132 | array-flatten@1.1.1: 133 | version "1.1.1" 134 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 135 | 136 | array-slice@^1.0.0: 137 | version "1.1.0" 138 | resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" 139 | 140 | array-union@^1.0.1: 141 | version "1.0.2" 142 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 143 | dependencies: 144 | array-uniq "^1.0.1" 145 | 146 | array-uniq@^1.0.1, array-uniq@^1.0.2: 147 | version "1.0.3" 148 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 149 | 150 | array-unique@^0.3.2: 151 | version "0.3.2" 152 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 153 | 154 | assign-symbols@^1.0.0: 155 | version "1.0.0" 156 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 157 | 158 | atob@^2.1.1: 159 | version "2.1.2" 160 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 161 | 162 | balanced-match@^1.0.0: 163 | version "1.0.0" 164 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 165 | 166 | base@^0.11.1: 167 | version "0.11.2" 168 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 169 | dependencies: 170 | cache-base "^1.0.1" 171 | class-utils "^0.3.5" 172 | component-emitter "^1.2.1" 173 | define-property "^1.0.0" 174 | isobject "^3.0.1" 175 | mixin-deep "^1.2.0" 176 | pascalcase "^0.1.1" 177 | 178 | beeper@^1.0.0: 179 | version "1.1.1" 180 | resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" 181 | 182 | body-parser@1.18.3, body-parser@^1.18.3: 183 | version "1.18.3" 184 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 185 | dependencies: 186 | bytes "3.0.0" 187 | content-type "~1.0.4" 188 | debug "2.6.9" 189 | depd "~1.1.2" 190 | http-errors "~1.6.3" 191 | iconv-lite "0.4.23" 192 | on-finished "~2.3.0" 193 | qs "6.5.2" 194 | raw-body "2.3.3" 195 | type-is "~1.6.16" 196 | 197 | brace-expansion@^1.0.0, brace-expansion@^1.1.7: 198 | version "1.1.11" 199 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 200 | dependencies: 201 | balanced-match "^1.0.0" 202 | concat-map "0.0.1" 203 | 204 | braces@^2.3.1: 205 | version "2.3.2" 206 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 207 | dependencies: 208 | arr-flatten "^1.1.0" 209 | array-unique "^0.3.2" 210 | extend-shallow "^2.0.1" 211 | fill-range "^4.0.0" 212 | isobject "^3.0.1" 213 | repeat-element "^1.1.2" 214 | snapdragon "^0.8.1" 215 | snapdragon-node "^2.0.1" 216 | split-string "^3.0.2" 217 | to-regex "^3.0.1" 218 | 219 | buffer-equal@^1.0.0: 220 | version "1.0.0" 221 | resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" 222 | 223 | buffer-from@^1.0.0: 224 | version "1.1.1" 225 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 226 | 227 | busboy@^0.2.11: 228 | version "0.2.14" 229 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 230 | dependencies: 231 | dicer "0.2.5" 232 | readable-stream "1.1.x" 233 | 234 | bytes@3.0.0: 235 | version "3.0.0" 236 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 237 | 238 | cache-base@^1.0.1: 239 | version "1.0.1" 240 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 241 | dependencies: 242 | collection-visit "^1.0.0" 243 | component-emitter "^1.2.1" 244 | get-value "^2.0.6" 245 | has-value "^1.0.0" 246 | isobject "^3.0.1" 247 | set-value "^2.0.0" 248 | to-object-path "^0.3.0" 249 | union-value "^1.0.0" 250 | unset-value "^1.0.0" 251 | 252 | chalk@^1.0.0: 253 | version "1.1.3" 254 | resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 255 | dependencies: 256 | ansi-styles "^2.2.1" 257 | escape-string-regexp "^1.0.2" 258 | has-ansi "^2.0.0" 259 | strip-ansi "^3.0.0" 260 | supports-color "^2.0.0" 261 | 262 | class-transformer@^0.1.9: 263 | version "0.1.10" 264 | resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.1.10.tgz#350f168ebb4c1f87edb18b98dd973681fc20fff7" 265 | 266 | class-utils@^0.3.5: 267 | version "0.3.6" 268 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 269 | dependencies: 270 | arr-union "^3.1.0" 271 | define-property "^0.2.5" 272 | isobject "^3.0.0" 273 | static-extend "^0.1.1" 274 | 275 | class-validator@^0.8.1: 276 | version "0.8.5" 277 | resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.8.5.tgz#484785acda98f68549c3a84dc1bb2f77b736dc58" 278 | dependencies: 279 | validator "9.2.0" 280 | 281 | clone-buffer@^1.0.0: 282 | version "1.0.0" 283 | resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 284 | 285 | clone-stats@^0.0.1: 286 | version "0.0.1" 287 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" 288 | 289 | clone-stats@^1.0.0: 290 | version "1.0.0" 291 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" 292 | 293 | clone@^0.2.0: 294 | version "0.2.0" 295 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" 296 | 297 | clone@^1.0.0, clone@^1.0.2: 298 | version "1.0.4" 299 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 300 | 301 | clone@^2.1.1: 302 | version "2.1.2" 303 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 304 | 305 | cloneable-readable@^1.0.0: 306 | version "1.1.2" 307 | resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" 308 | dependencies: 309 | inherits "^2.0.1" 310 | process-nextick-args "^2.0.0" 311 | readable-stream "^2.3.5" 312 | 313 | collection-visit@^1.0.0: 314 | version "1.0.0" 315 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 316 | dependencies: 317 | map-visit "^1.0.0" 318 | object-visit "^1.0.0" 319 | 320 | color-support@^1.1.3: 321 | version "1.1.3" 322 | resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" 323 | 324 | component-emitter@^1.2.1: 325 | version "1.2.1" 326 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 327 | 328 | concat-map@0.0.1: 329 | version "0.0.1" 330 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 331 | 332 | concat-stream@^1.5.2: 333 | version "1.6.2" 334 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 335 | dependencies: 336 | buffer-from "^1.0.0" 337 | inherits "^2.0.3" 338 | readable-stream "^2.2.2" 339 | typedarray "^0.0.6" 340 | 341 | content-disposition@0.5.2: 342 | version "0.5.2" 343 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 344 | 345 | content-type@~1.0.4: 346 | version "1.0.4" 347 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 348 | 349 | convert-source-map@^1.5.0: 350 | version "1.6.0" 351 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 352 | dependencies: 353 | safe-buffer "~5.1.1" 354 | 355 | cookie-signature@1.0.6: 356 | version "1.0.6" 357 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 358 | 359 | cookie@0.3.1, cookie@^0.3.1: 360 | version "0.3.1" 361 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 362 | 363 | copy-descriptor@^0.1.0: 364 | version "0.1.1" 365 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 366 | 367 | core-util-is@~1.0.0: 368 | version "1.0.2" 369 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 370 | 371 | cors@^2.8.5: 372 | version "2.8.5" 373 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 374 | dependencies: 375 | object-assign "^4" 376 | vary "^1" 377 | 378 | dateformat@^2.0.0: 379 | version "2.2.0" 380 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" 381 | 382 | debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 383 | version "2.6.9" 384 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 385 | dependencies: 386 | ms "2.0.0" 387 | 388 | decode-uri-component@^0.2.0: 389 | version "0.2.0" 390 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 391 | 392 | defaults@^1.0.0: 393 | version "1.0.3" 394 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 395 | dependencies: 396 | clone "^1.0.2" 397 | 398 | define-properties@^1.1.2: 399 | version "1.1.3" 400 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 401 | dependencies: 402 | object-keys "^1.0.12" 403 | 404 | define-property@^0.2.5: 405 | version "0.2.5" 406 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 407 | dependencies: 408 | is-descriptor "^0.1.0" 409 | 410 | define-property@^1.0.0: 411 | version "1.0.0" 412 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 413 | dependencies: 414 | is-descriptor "^1.0.0" 415 | 416 | define-property@^2.0.2: 417 | version "2.0.2" 418 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 419 | dependencies: 420 | is-descriptor "^1.0.2" 421 | isobject "^3.0.1" 422 | 423 | del@^3.0.0: 424 | version "3.0.0" 425 | resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" 426 | dependencies: 427 | globby "^6.1.0" 428 | is-path-cwd "^1.0.0" 429 | is-path-in-cwd "^1.0.0" 430 | p-map "^1.1.1" 431 | pify "^3.0.0" 432 | rimraf "^2.2.8" 433 | 434 | depd@~1.1.2: 435 | version "1.1.2" 436 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 437 | 438 | deprecated@^0.0.1: 439 | version "0.0.1" 440 | resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" 441 | 442 | destroy@~1.0.4: 443 | version "1.0.4" 444 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 445 | 446 | detect-file@^1.0.0: 447 | version "1.0.0" 448 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" 449 | 450 | dicer@0.2.5: 451 | version "0.2.5" 452 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 453 | dependencies: 454 | readable-stream "1.1.x" 455 | streamsearch "0.1.2" 456 | 457 | duplexer2@0.0.2: 458 | version "0.0.2" 459 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" 460 | dependencies: 461 | readable-stream "~1.1.9" 462 | 463 | duplexify@^3.6.0: 464 | version "3.6.1" 465 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" 466 | dependencies: 467 | end-of-stream "^1.0.0" 468 | inherits "^2.0.1" 469 | readable-stream "^2.0.0" 470 | stream-shift "^1.0.0" 471 | 472 | ee-first@1.1.1: 473 | version "1.1.1" 474 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 475 | 476 | encodeurl@~1.0.2: 477 | version "1.0.2" 478 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 479 | 480 | end-of-stream@^1.0.0, end-of-stream@^1.1.0: 481 | version "1.4.1" 482 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 483 | dependencies: 484 | once "^1.4.0" 485 | 486 | end-of-stream@~0.1.5: 487 | version "0.1.5" 488 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" 489 | dependencies: 490 | once "~1.3.0" 491 | 492 | escape-html@~1.0.3: 493 | version "1.0.3" 494 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 495 | 496 | escape-string-regexp@^1.0.2: 497 | version "1.0.5" 498 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 499 | 500 | etag@~1.8.1: 501 | version "1.8.1" 502 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 503 | 504 | expand-brackets@^2.1.4: 505 | version "2.1.4" 506 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 507 | dependencies: 508 | debug "^2.3.3" 509 | define-property "^0.2.5" 510 | extend-shallow "^2.0.1" 511 | posix-character-classes "^0.1.0" 512 | regex-not "^1.0.0" 513 | snapdragon "^0.8.1" 514 | to-regex "^3.0.1" 515 | 516 | expand-tilde@^2.0.0, expand-tilde@^2.0.2: 517 | version "2.0.2" 518 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" 519 | dependencies: 520 | homedir-polyfill "^1.0.1" 521 | 522 | express@^4.16.4: 523 | version "4.16.4" 524 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" 525 | dependencies: 526 | accepts "~1.3.5" 527 | array-flatten "1.1.1" 528 | body-parser "1.18.3" 529 | content-disposition "0.5.2" 530 | content-type "~1.0.4" 531 | cookie "0.3.1" 532 | cookie-signature "1.0.6" 533 | debug "2.6.9" 534 | depd "~1.1.2" 535 | encodeurl "~1.0.2" 536 | escape-html "~1.0.3" 537 | etag "~1.8.1" 538 | finalhandler "1.1.1" 539 | fresh "0.5.2" 540 | merge-descriptors "1.0.1" 541 | methods "~1.1.2" 542 | on-finished "~2.3.0" 543 | parseurl "~1.3.2" 544 | path-to-regexp "0.1.7" 545 | proxy-addr "~2.0.4" 546 | qs "6.5.2" 547 | range-parser "~1.2.0" 548 | safe-buffer "5.1.2" 549 | send "0.16.2" 550 | serve-static "1.13.2" 551 | setprototypeof "1.1.0" 552 | statuses "~1.4.0" 553 | type-is "~1.6.16" 554 | utils-merge "1.0.1" 555 | vary "~1.1.2" 556 | 557 | extend-shallow@^2.0.1: 558 | version "2.0.1" 559 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 560 | dependencies: 561 | is-extendable "^0.1.0" 562 | 563 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 564 | version "3.0.2" 565 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 566 | dependencies: 567 | assign-symbols "^1.0.0" 568 | is-extendable "^1.0.1" 569 | 570 | extend@^3.0.0: 571 | version "3.0.2" 572 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 573 | 574 | extglob@^2.0.4: 575 | version "2.0.4" 576 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 577 | dependencies: 578 | array-unique "^0.3.2" 579 | define-property "^1.0.0" 580 | expand-brackets "^2.1.4" 581 | extend-shallow "^2.0.1" 582 | fragment-cache "^0.2.1" 583 | regex-not "^1.0.0" 584 | snapdragon "^0.8.1" 585 | to-regex "^3.0.1" 586 | 587 | fancy-log@^1.1.0: 588 | version "1.3.2" 589 | resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" 590 | dependencies: 591 | ansi-gray "^0.1.1" 592 | color-support "^1.1.3" 593 | time-stamp "^1.0.0" 594 | 595 | fill-range@^4.0.0: 596 | version "4.0.0" 597 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 598 | dependencies: 599 | extend-shallow "^2.0.1" 600 | is-number "^3.0.0" 601 | repeat-string "^1.6.1" 602 | to-regex-range "^2.1.0" 603 | 604 | finalhandler@1.1.1: 605 | version "1.1.1" 606 | resolved "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 607 | dependencies: 608 | debug "2.6.9" 609 | encodeurl "~1.0.2" 610 | escape-html "~1.0.3" 611 | on-finished "~2.3.0" 612 | parseurl "~1.3.2" 613 | statuses "~1.4.0" 614 | unpipe "~1.0.0" 615 | 616 | find-index@^0.1.1: 617 | version "0.1.1" 618 | resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" 619 | 620 | findup-sync@^2.0.0: 621 | version "2.0.0" 622 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" 623 | dependencies: 624 | detect-file "^1.0.0" 625 | is-glob "^3.1.0" 626 | micromatch "^3.0.4" 627 | resolve-dir "^1.0.1" 628 | 629 | fined@^1.0.1: 630 | version "1.1.0" 631 | resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" 632 | dependencies: 633 | expand-tilde "^2.0.2" 634 | is-plain-object "^2.0.3" 635 | object.defaults "^1.1.0" 636 | object.pick "^1.2.0" 637 | parse-filepath "^1.0.1" 638 | 639 | first-chunk-stream@^1.0.0: 640 | version "1.0.0" 641 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" 642 | 643 | flagged-respawn@^1.0.0: 644 | version "1.0.0" 645 | resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" 646 | 647 | flush-write-stream@^1.0.2: 648 | version "1.0.3" 649 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" 650 | dependencies: 651 | inherits "^2.0.1" 652 | readable-stream "^2.0.4" 653 | 654 | for-in@^1.0.1, for-in@^1.0.2: 655 | version "1.0.2" 656 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 657 | 658 | for-own@^1.0.0: 659 | version "1.0.0" 660 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" 661 | dependencies: 662 | for-in "^1.0.1" 663 | 664 | forwarded@~0.1.2: 665 | version "0.1.2" 666 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 667 | 668 | fragment-cache@^0.2.1: 669 | version "0.2.1" 670 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 671 | dependencies: 672 | map-cache "^0.2.2" 673 | 674 | fresh@0.5.2: 675 | version "0.5.2" 676 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 677 | 678 | fs-mkdirp-stream@^1.0.0: 679 | version "1.0.0" 680 | resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" 681 | dependencies: 682 | graceful-fs "^4.1.11" 683 | through2 "^2.0.3" 684 | 685 | fs.realpath@^1.0.0: 686 | version "1.0.0" 687 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 688 | 689 | function-bind@^1.1.1: 690 | version "1.1.1" 691 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 692 | 693 | gaze@^0.5.1: 694 | version "0.5.2" 695 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" 696 | dependencies: 697 | globule "~0.1.0" 698 | 699 | get-value@^2.0.3, get-value@^2.0.6: 700 | version "2.0.6" 701 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 702 | 703 | glob-parent@^3.1.0: 704 | version "3.1.0" 705 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 706 | dependencies: 707 | is-glob "^3.1.0" 708 | path-dirname "^1.0.0" 709 | 710 | glob-stream@^3.1.5: 711 | version "3.1.18" 712 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" 713 | dependencies: 714 | glob "^4.3.1" 715 | glob2base "^0.0.12" 716 | minimatch "^2.0.1" 717 | ordered-read-streams "^0.1.0" 718 | through2 "^0.6.1" 719 | unique-stream "^1.0.0" 720 | 721 | glob-stream@^6.1.0: 722 | version "6.1.0" 723 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" 724 | dependencies: 725 | extend "^3.0.0" 726 | glob "^7.1.1" 727 | glob-parent "^3.1.0" 728 | is-negated-glob "^1.0.0" 729 | ordered-read-streams "^1.0.0" 730 | pumpify "^1.3.5" 731 | readable-stream "^2.1.5" 732 | remove-trailing-separator "^1.0.1" 733 | to-absolute-glob "^2.0.0" 734 | unique-stream "^2.0.2" 735 | 736 | glob-watcher@^0.0.6: 737 | version "0.0.6" 738 | resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" 739 | dependencies: 740 | gaze "^0.5.1" 741 | 742 | glob2base@^0.0.12: 743 | version "0.0.12" 744 | resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" 745 | dependencies: 746 | find-index "^0.1.1" 747 | 748 | glob@^4.3.1: 749 | version "4.5.3" 750 | resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" 751 | dependencies: 752 | inflight "^1.0.4" 753 | inherits "2" 754 | minimatch "^2.0.1" 755 | once "^1.3.0" 756 | 757 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: 758 | version "7.1.3" 759 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 760 | dependencies: 761 | fs.realpath "^1.0.0" 762 | inflight "^1.0.4" 763 | inherits "2" 764 | minimatch "^3.0.4" 765 | once "^1.3.0" 766 | path-is-absolute "^1.0.0" 767 | 768 | glob@~3.1.21: 769 | version "3.1.21" 770 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" 771 | dependencies: 772 | graceful-fs "~1.2.0" 773 | inherits "1" 774 | minimatch "~0.2.11" 775 | 776 | global-modules@^1.0.0: 777 | version "1.0.0" 778 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" 779 | dependencies: 780 | global-prefix "^1.0.1" 781 | is-windows "^1.0.1" 782 | resolve-dir "^1.0.0" 783 | 784 | global-prefix@^1.0.1: 785 | version "1.0.2" 786 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" 787 | dependencies: 788 | expand-tilde "^2.0.2" 789 | homedir-polyfill "^1.0.1" 790 | ini "^1.3.4" 791 | is-windows "^1.0.1" 792 | which "^1.2.14" 793 | 794 | globby@^6.1.0: 795 | version "6.1.0" 796 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 797 | dependencies: 798 | array-union "^1.0.1" 799 | glob "^7.0.3" 800 | object-assign "^4.0.1" 801 | pify "^2.0.0" 802 | pinkie-promise "^2.0.0" 803 | 804 | globule@~0.1.0: 805 | version "0.1.0" 806 | resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" 807 | dependencies: 808 | glob "~3.1.21" 809 | lodash "~1.0.1" 810 | minimatch "~0.2.11" 811 | 812 | glogg@^1.0.0: 813 | version "1.0.1" 814 | resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" 815 | dependencies: 816 | sparkles "^1.0.0" 817 | 818 | graceful-fs@^3.0.0: 819 | version "3.0.11" 820 | resolved "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" 821 | dependencies: 822 | natives "^1.1.0" 823 | 824 | graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.6: 825 | version "4.1.15" 826 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 827 | 828 | graceful-fs@~1.2.0: 829 | version "1.2.3" 830 | resolved "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" 831 | 832 | gulp-typescript@^5.0.0-alpha.3: 833 | version "5.0.0-alpha.3" 834 | resolved "https://registry.yarnpkg.com/gulp-typescript/-/gulp-typescript-5.0.0-alpha.3.tgz#c49a306cbbb8c97f5fe8a79208671b6642ef9861" 835 | dependencies: 836 | ansi-colors "^2.0.2" 837 | plugin-error "^1.0.1" 838 | source-map "^0.7.3" 839 | through2 "^2.0.3" 840 | vinyl "^2.1.0" 841 | vinyl-fs "^3.0.3" 842 | 843 | gulp-util@^3.0.0: 844 | version "3.0.8" 845 | resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" 846 | dependencies: 847 | array-differ "^1.0.0" 848 | array-uniq "^1.0.2" 849 | beeper "^1.0.0" 850 | chalk "^1.0.0" 851 | dateformat "^2.0.0" 852 | fancy-log "^1.1.0" 853 | gulplog "^1.0.0" 854 | has-gulplog "^0.1.0" 855 | lodash._reescape "^3.0.0" 856 | lodash._reevaluate "^3.0.0" 857 | lodash._reinterpolate "^3.0.0" 858 | lodash.template "^3.0.0" 859 | minimist "^1.1.0" 860 | multipipe "^0.1.2" 861 | object-assign "^3.0.0" 862 | replace-ext "0.0.1" 863 | through2 "^2.0.0" 864 | vinyl "^0.5.0" 865 | 866 | gulp@^3.9.1: 867 | version "3.9.1" 868 | resolved "http://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" 869 | dependencies: 870 | archy "^1.0.0" 871 | chalk "^1.0.0" 872 | deprecated "^0.0.1" 873 | gulp-util "^3.0.0" 874 | interpret "^1.0.0" 875 | liftoff "^2.1.0" 876 | minimist "^1.1.0" 877 | orchestrator "^0.3.0" 878 | pretty-hrtime "^1.0.0" 879 | semver "^4.1.0" 880 | tildify "^1.0.0" 881 | v8flags "^2.0.2" 882 | vinyl-fs "^0.3.0" 883 | 884 | gulplog@^1.0.0: 885 | version "1.0.0" 886 | resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" 887 | dependencies: 888 | glogg "^1.0.0" 889 | 890 | has-ansi@^2.0.0: 891 | version "2.0.0" 892 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 893 | dependencies: 894 | ansi-regex "^2.0.0" 895 | 896 | has-gulplog@^0.1.0: 897 | version "0.1.0" 898 | resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" 899 | dependencies: 900 | sparkles "^1.0.0" 901 | 902 | has-symbols@^1.0.0: 903 | version "1.0.0" 904 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 905 | 906 | has-value@^0.3.1: 907 | version "0.3.1" 908 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 909 | dependencies: 910 | get-value "^2.0.3" 911 | has-values "^0.1.4" 912 | isobject "^2.0.0" 913 | 914 | has-value@^1.0.0: 915 | version "1.0.0" 916 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 917 | dependencies: 918 | get-value "^2.0.6" 919 | has-values "^1.0.0" 920 | isobject "^3.0.0" 921 | 922 | has-values@^0.1.4: 923 | version "0.1.4" 924 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 925 | 926 | has-values@^1.0.0: 927 | version "1.0.0" 928 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 929 | dependencies: 930 | is-number "^3.0.0" 931 | kind-of "^4.0.0" 932 | 933 | homedir-polyfill@^1.0.1: 934 | version "1.0.1" 935 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 936 | dependencies: 937 | parse-passwd "^1.0.0" 938 | 939 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 940 | version "1.6.3" 941 | resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 942 | dependencies: 943 | depd "~1.1.2" 944 | inherits "2.0.3" 945 | setprototypeof "1.1.0" 946 | statuses ">= 1.4.0 < 2" 947 | 948 | iconv-lite@0.4.23: 949 | version "0.4.23" 950 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 951 | dependencies: 952 | safer-buffer ">= 2.1.2 < 3" 953 | 954 | inflight@^1.0.4: 955 | version "1.0.6" 956 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 957 | dependencies: 958 | once "^1.3.0" 959 | wrappy "1" 960 | 961 | inherits@1: 962 | version "1.0.2" 963 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" 964 | 965 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 966 | version "2.0.3" 967 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 968 | 969 | ini@^1.3.4: 970 | version "1.3.5" 971 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 972 | 973 | injection-js@^2.2.1: 974 | version "2.2.1" 975 | resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.2.1.tgz#a8d6a085b2f0b8d8650f6f4487f6abb8cc0d67ce" 976 | 977 | interpret@^1.0.0: 978 | version "1.1.0" 979 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" 980 | 981 | ipaddr.js@1.8.0: 982 | version "1.8.0" 983 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 984 | 985 | is-absolute@^1.0.0: 986 | version "1.0.0" 987 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" 988 | dependencies: 989 | is-relative "^1.0.0" 990 | is-windows "^1.0.1" 991 | 992 | is-accessor-descriptor@^0.1.6: 993 | version "0.1.6" 994 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 995 | dependencies: 996 | kind-of "^3.0.2" 997 | 998 | is-accessor-descriptor@^1.0.0: 999 | version "1.0.0" 1000 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1001 | dependencies: 1002 | kind-of "^6.0.0" 1003 | 1004 | is-buffer@^1.1.5: 1005 | version "1.1.6" 1006 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1007 | 1008 | is-data-descriptor@^0.1.4: 1009 | version "0.1.4" 1010 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1011 | dependencies: 1012 | kind-of "^3.0.2" 1013 | 1014 | is-data-descriptor@^1.0.0: 1015 | version "1.0.0" 1016 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1017 | dependencies: 1018 | kind-of "^6.0.0" 1019 | 1020 | is-descriptor@^0.1.0: 1021 | version "0.1.6" 1022 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1023 | dependencies: 1024 | is-accessor-descriptor "^0.1.6" 1025 | is-data-descriptor "^0.1.4" 1026 | kind-of "^5.0.0" 1027 | 1028 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1029 | version "1.0.2" 1030 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1031 | dependencies: 1032 | is-accessor-descriptor "^1.0.0" 1033 | is-data-descriptor "^1.0.0" 1034 | kind-of "^6.0.2" 1035 | 1036 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1037 | version "0.1.1" 1038 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1039 | 1040 | is-extendable@^1.0.1: 1041 | version "1.0.1" 1042 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1043 | dependencies: 1044 | is-plain-object "^2.0.4" 1045 | 1046 | is-extglob@^2.1.0: 1047 | version "2.1.1" 1048 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1049 | 1050 | is-glob@^3.1.0: 1051 | version "3.1.0" 1052 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1053 | dependencies: 1054 | is-extglob "^2.1.0" 1055 | 1056 | is-negated-glob@^1.0.0: 1057 | version "1.0.0" 1058 | resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" 1059 | 1060 | is-number@^3.0.0: 1061 | version "3.0.0" 1062 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1063 | dependencies: 1064 | kind-of "^3.0.2" 1065 | 1066 | is-path-cwd@^1.0.0: 1067 | version "1.0.0" 1068 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1069 | 1070 | is-path-in-cwd@^1.0.0: 1071 | version "1.0.1" 1072 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 1073 | dependencies: 1074 | is-path-inside "^1.0.0" 1075 | 1076 | is-path-inside@^1.0.0: 1077 | version "1.0.1" 1078 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1079 | dependencies: 1080 | path-is-inside "^1.0.1" 1081 | 1082 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1083 | version "2.0.4" 1084 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1085 | dependencies: 1086 | isobject "^3.0.1" 1087 | 1088 | is-relative@^1.0.0: 1089 | version "1.0.0" 1090 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" 1091 | dependencies: 1092 | is-unc-path "^1.0.0" 1093 | 1094 | is-unc-path@^1.0.0: 1095 | version "1.0.0" 1096 | resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" 1097 | dependencies: 1098 | unc-path-regex "^0.1.2" 1099 | 1100 | is-utf8@^0.2.0, is-utf8@^0.2.1: 1101 | version "0.2.1" 1102 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1103 | 1104 | is-valid-glob@^1.0.0: 1105 | version "1.0.0" 1106 | resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" 1107 | 1108 | is-windows@^1.0.1, is-windows@^1.0.2: 1109 | version "1.0.2" 1110 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1111 | 1112 | isarray@0.0.1: 1113 | version "0.0.1" 1114 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1115 | 1116 | isarray@1.0.0, isarray@~1.0.0: 1117 | version "1.0.0" 1118 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1119 | 1120 | isexe@^2.0.0: 1121 | version "2.0.0" 1122 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1123 | 1124 | isobject@^2.0.0: 1125 | version "2.1.0" 1126 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1127 | dependencies: 1128 | isarray "1.0.0" 1129 | 1130 | isobject@^3.0.0, isobject@^3.0.1: 1131 | version "3.0.1" 1132 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1133 | 1134 | json-stable-stringify@^1.0.0: 1135 | version "1.0.1" 1136 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1137 | dependencies: 1138 | jsonify "~0.0.0" 1139 | 1140 | jsonify@~0.0.0: 1141 | version "0.0.0" 1142 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1143 | 1144 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1145 | version "3.2.2" 1146 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1147 | dependencies: 1148 | is-buffer "^1.1.5" 1149 | 1150 | kind-of@^4.0.0: 1151 | version "4.0.0" 1152 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1153 | dependencies: 1154 | is-buffer "^1.1.5" 1155 | 1156 | kind-of@^5.0.0: 1157 | version "5.1.0" 1158 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1159 | 1160 | kind-of@^6.0.0, kind-of@^6.0.2: 1161 | version "6.0.2" 1162 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1163 | 1164 | lazystream@^1.0.0: 1165 | version "1.0.0" 1166 | resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" 1167 | dependencies: 1168 | readable-stream "^2.0.5" 1169 | 1170 | lead@^1.0.0: 1171 | version "1.0.0" 1172 | resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" 1173 | dependencies: 1174 | flush-write-stream "^1.0.2" 1175 | 1176 | liftoff@^2.1.0: 1177 | version "2.5.0" 1178 | resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" 1179 | dependencies: 1180 | extend "^3.0.0" 1181 | findup-sync "^2.0.0" 1182 | fined "^1.0.1" 1183 | flagged-respawn "^1.0.0" 1184 | is-plain-object "^2.0.4" 1185 | object.map "^1.0.0" 1186 | rechoir "^0.6.2" 1187 | resolve "^1.1.7" 1188 | 1189 | lodash._basecopy@^3.0.0: 1190 | version "3.0.1" 1191 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 1192 | 1193 | lodash._basetostring@^3.0.0: 1194 | version "3.0.1" 1195 | resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" 1196 | 1197 | lodash._basevalues@^3.0.0: 1198 | version "3.0.0" 1199 | resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" 1200 | 1201 | lodash._getnative@^3.0.0: 1202 | version "3.9.1" 1203 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 1204 | 1205 | lodash._isiterateecall@^3.0.0: 1206 | version "3.0.9" 1207 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 1208 | 1209 | lodash._reescape@^3.0.0: 1210 | version "3.0.0" 1211 | resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" 1212 | 1213 | lodash._reevaluate@^3.0.0: 1214 | version "3.0.0" 1215 | resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" 1216 | 1217 | lodash._reinterpolate@^3.0.0: 1218 | version "3.0.0" 1219 | resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" 1220 | 1221 | lodash._root@^3.0.0: 1222 | version "3.0.1" 1223 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" 1224 | 1225 | lodash.escape@^3.0.0: 1226 | version "3.2.0" 1227 | resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" 1228 | dependencies: 1229 | lodash._root "^3.0.0" 1230 | 1231 | lodash.isarguments@^3.0.0: 1232 | version "3.1.0" 1233 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 1234 | 1235 | lodash.isarray@^3.0.0: 1236 | version "3.0.4" 1237 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 1238 | 1239 | lodash.keys@^3.0.0: 1240 | version "3.1.2" 1241 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 1242 | dependencies: 1243 | lodash._getnative "^3.0.0" 1244 | lodash.isarguments "^3.0.0" 1245 | lodash.isarray "^3.0.0" 1246 | 1247 | lodash.restparam@^3.0.0: 1248 | version "3.6.1" 1249 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 1250 | 1251 | lodash.template@^3.0.0: 1252 | version "3.6.2" 1253 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" 1254 | dependencies: 1255 | lodash._basecopy "^3.0.0" 1256 | lodash._basetostring "^3.0.0" 1257 | lodash._basevalues "^3.0.0" 1258 | lodash._isiterateecall "^3.0.0" 1259 | lodash._reinterpolate "^3.0.0" 1260 | lodash.escape "^3.0.0" 1261 | lodash.keys "^3.0.0" 1262 | lodash.restparam "^3.0.0" 1263 | lodash.templatesettings "^3.0.0" 1264 | 1265 | lodash.templatesettings@^3.0.0: 1266 | version "3.1.1" 1267 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" 1268 | dependencies: 1269 | lodash._reinterpolate "^3.0.0" 1270 | lodash.escape "^3.0.0" 1271 | 1272 | lodash@~1.0.1: 1273 | version "1.0.2" 1274 | resolved "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" 1275 | 1276 | lru-cache@2: 1277 | version "2.7.3" 1278 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" 1279 | 1280 | make-iterator@^1.0.0: 1281 | version "1.0.1" 1282 | resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" 1283 | dependencies: 1284 | kind-of "^6.0.2" 1285 | 1286 | map-cache@^0.2.0, map-cache@^0.2.2: 1287 | version "0.2.2" 1288 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1289 | 1290 | map-visit@^1.0.0: 1291 | version "1.0.0" 1292 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1293 | dependencies: 1294 | object-visit "^1.0.0" 1295 | 1296 | media-typer@0.3.0: 1297 | version "0.3.0" 1298 | resolved "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1299 | 1300 | merge-descriptors@1.0.1: 1301 | version "1.0.1" 1302 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1303 | 1304 | methods@~1.1.2: 1305 | version "1.1.2" 1306 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1307 | 1308 | micromatch@^3.0.4: 1309 | version "3.1.10" 1310 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1311 | dependencies: 1312 | arr-diff "^4.0.0" 1313 | array-unique "^0.3.2" 1314 | braces "^2.3.1" 1315 | define-property "^2.0.2" 1316 | extend-shallow "^3.0.2" 1317 | extglob "^2.0.4" 1318 | fragment-cache "^0.2.1" 1319 | kind-of "^6.0.2" 1320 | nanomatch "^1.2.9" 1321 | object.pick "^1.3.0" 1322 | regex-not "^1.0.0" 1323 | snapdragon "^0.8.1" 1324 | to-regex "^3.0.2" 1325 | 1326 | mime-db@~1.37.0: 1327 | version "1.37.0" 1328 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" 1329 | 1330 | mime-types@~2.1.18: 1331 | version "2.1.21" 1332 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" 1333 | dependencies: 1334 | mime-db "~1.37.0" 1335 | 1336 | mime@1.4.1: 1337 | version "1.4.1" 1338 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 1339 | 1340 | minimatch@^2.0.1: 1341 | version "2.0.10" 1342 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" 1343 | dependencies: 1344 | brace-expansion "^1.0.0" 1345 | 1346 | minimatch@^3.0.4: 1347 | version "3.0.4" 1348 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1349 | dependencies: 1350 | brace-expansion "^1.1.7" 1351 | 1352 | minimatch@~0.2.11: 1353 | version "0.2.14" 1354 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" 1355 | dependencies: 1356 | lru-cache "2" 1357 | sigmund "~1.0.0" 1358 | 1359 | minimist@0.0.8: 1360 | version "0.0.8" 1361 | resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1362 | 1363 | minimist@^1.1.0: 1364 | version "1.2.0" 1365 | resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1366 | 1367 | mixin-deep@^1.2.0: 1368 | version "1.3.1" 1369 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 1370 | dependencies: 1371 | for-in "^1.0.2" 1372 | is-extendable "^1.0.1" 1373 | 1374 | mkdirp@^0.5.0, mkdirp@^0.5.1: 1375 | version "0.5.1" 1376 | resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1377 | dependencies: 1378 | minimist "0.0.8" 1379 | 1380 | ms@2.0.0: 1381 | version "2.0.0" 1382 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1383 | 1384 | multer@^1.4.1: 1385 | version "1.4.1" 1386 | resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.1.tgz#24b12a416a22fec2ade810539184bf138720159e" 1387 | dependencies: 1388 | append-field "^1.0.0" 1389 | busboy "^0.2.11" 1390 | concat-stream "^1.5.2" 1391 | mkdirp "^0.5.1" 1392 | object-assign "^4.1.1" 1393 | on-finished "^2.3.0" 1394 | type-is "^1.6.4" 1395 | xtend "^4.0.0" 1396 | 1397 | multipipe@^0.1.2: 1398 | version "0.1.2" 1399 | resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" 1400 | dependencies: 1401 | duplexer2 "0.0.2" 1402 | 1403 | nanomatch@^1.2.9: 1404 | version "1.2.13" 1405 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1406 | dependencies: 1407 | arr-diff "^4.0.0" 1408 | array-unique "^0.3.2" 1409 | define-property "^2.0.2" 1410 | extend-shallow "^3.0.2" 1411 | fragment-cache "^0.2.1" 1412 | is-windows "^1.0.2" 1413 | kind-of "^6.0.2" 1414 | object.pick "^1.3.0" 1415 | regex-not "^1.0.0" 1416 | snapdragon "^0.8.1" 1417 | to-regex "^3.0.1" 1418 | 1419 | natives@^1.1.0: 1420 | version "1.1.6" 1421 | resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" 1422 | 1423 | negotiator@0.6.1: 1424 | version "0.6.1" 1425 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1426 | 1427 | normalize-path@^2.1.1: 1428 | version "2.1.1" 1429 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1430 | dependencies: 1431 | remove-trailing-separator "^1.0.1" 1432 | 1433 | now-and-later@^2.0.0: 1434 | version "2.0.0" 1435 | resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" 1436 | dependencies: 1437 | once "^1.3.2" 1438 | 1439 | object-assign@^3.0.0: 1440 | version "3.0.0" 1441 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" 1442 | 1443 | object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: 1444 | version "4.1.1" 1445 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1446 | 1447 | object-copy@^0.1.0: 1448 | version "0.1.0" 1449 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 1450 | dependencies: 1451 | copy-descriptor "^0.1.0" 1452 | define-property "^0.2.5" 1453 | kind-of "^3.0.3" 1454 | 1455 | object-keys@^1.0.11, object-keys@^1.0.12: 1456 | version "1.0.12" 1457 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 1458 | 1459 | object-visit@^1.0.0: 1460 | version "1.0.1" 1461 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 1462 | dependencies: 1463 | isobject "^3.0.0" 1464 | 1465 | object.assign@^4.0.4: 1466 | version "4.1.0" 1467 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1468 | dependencies: 1469 | define-properties "^1.1.2" 1470 | function-bind "^1.1.1" 1471 | has-symbols "^1.0.0" 1472 | object-keys "^1.0.11" 1473 | 1474 | object.defaults@^1.1.0: 1475 | version "1.1.0" 1476 | resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" 1477 | dependencies: 1478 | array-each "^1.0.1" 1479 | array-slice "^1.0.0" 1480 | for-own "^1.0.0" 1481 | isobject "^3.0.0" 1482 | 1483 | object.map@^1.0.0: 1484 | version "1.0.1" 1485 | resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" 1486 | dependencies: 1487 | for-own "^1.0.0" 1488 | make-iterator "^1.0.0" 1489 | 1490 | object.pick@^1.2.0, object.pick@^1.3.0: 1491 | version "1.3.0" 1492 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 1493 | dependencies: 1494 | isobject "^3.0.1" 1495 | 1496 | on-finished@^2.3.0, on-finished@~2.3.0: 1497 | version "2.3.0" 1498 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1499 | dependencies: 1500 | ee-first "1.1.1" 1501 | 1502 | once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: 1503 | version "1.4.0" 1504 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1505 | dependencies: 1506 | wrappy "1" 1507 | 1508 | once@~1.3.0: 1509 | version "1.3.3" 1510 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" 1511 | dependencies: 1512 | wrappy "1" 1513 | 1514 | orchestrator@^0.3.0: 1515 | version "0.3.8" 1516 | resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" 1517 | dependencies: 1518 | end-of-stream "~0.1.5" 1519 | sequencify "~0.0.7" 1520 | stream-consume "~0.1.0" 1521 | 1522 | ordered-read-streams@^0.1.0: 1523 | version "0.1.0" 1524 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" 1525 | 1526 | ordered-read-streams@^1.0.0: 1527 | version "1.0.1" 1528 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" 1529 | dependencies: 1530 | readable-stream "^2.0.1" 1531 | 1532 | os-homedir@^1.0.0: 1533 | version "1.0.2" 1534 | resolved "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1535 | 1536 | p-map@^1.1.1: 1537 | version "1.2.0" 1538 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" 1539 | 1540 | parse-filepath@^1.0.1: 1541 | version "1.0.2" 1542 | resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" 1543 | dependencies: 1544 | is-absolute "^1.0.0" 1545 | map-cache "^0.2.0" 1546 | path-root "^0.1.1" 1547 | 1548 | parse-passwd@^1.0.0: 1549 | version "1.0.0" 1550 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 1551 | 1552 | parseurl@~1.3.2: 1553 | version "1.3.2" 1554 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 1555 | 1556 | pascalcase@^0.1.1: 1557 | version "0.1.1" 1558 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 1559 | 1560 | path-dirname@^1.0.0: 1561 | version "1.0.2" 1562 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 1563 | 1564 | path-is-absolute@^1.0.0: 1565 | version "1.0.1" 1566 | resolved "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1567 | 1568 | path-is-inside@^1.0.1: 1569 | version "1.0.2" 1570 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1571 | 1572 | path-parse@^1.0.5: 1573 | version "1.0.6" 1574 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1575 | 1576 | path-root-regex@^0.1.0: 1577 | version "0.1.2" 1578 | resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" 1579 | 1580 | path-root@^0.1.1: 1581 | version "0.1.1" 1582 | resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" 1583 | dependencies: 1584 | path-root-regex "^0.1.0" 1585 | 1586 | path-to-regexp@0.1.7: 1587 | version "0.1.7" 1588 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1589 | 1590 | pify@^2.0.0: 1591 | version "2.3.0" 1592 | resolved "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1593 | 1594 | pify@^3.0.0: 1595 | version "3.0.0" 1596 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1597 | 1598 | pinkie-promise@^2.0.0: 1599 | version "2.0.1" 1600 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1601 | dependencies: 1602 | pinkie "^2.0.0" 1603 | 1604 | pinkie@^2.0.0: 1605 | version "2.0.4" 1606 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1607 | 1608 | plugin-error@^1.0.1: 1609 | version "1.0.1" 1610 | resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" 1611 | dependencies: 1612 | ansi-colors "^1.0.1" 1613 | arr-diff "^4.0.0" 1614 | arr-union "^3.1.0" 1615 | extend-shallow "^3.0.2" 1616 | 1617 | posix-character-classes@^0.1.0: 1618 | version "0.1.1" 1619 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 1620 | 1621 | pretty-hrtime@^1.0.0: 1622 | version "1.0.3" 1623 | resolved "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" 1624 | 1625 | process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: 1626 | version "2.0.0" 1627 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1628 | 1629 | proxy-addr@~2.0.4: 1630 | version "2.0.4" 1631 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" 1632 | dependencies: 1633 | forwarded "~0.1.2" 1634 | ipaddr.js "1.8.0" 1635 | 1636 | pump@^2.0.0: 1637 | version "2.0.1" 1638 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 1639 | dependencies: 1640 | end-of-stream "^1.1.0" 1641 | once "^1.3.1" 1642 | 1643 | pumpify@^1.3.5: 1644 | version "1.5.1" 1645 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" 1646 | dependencies: 1647 | duplexify "^3.6.0" 1648 | inherits "^2.0.3" 1649 | pump "^2.0.0" 1650 | 1651 | qs@6.5.2: 1652 | version "6.5.2" 1653 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1654 | 1655 | range-parser@~1.2.0: 1656 | version "1.2.0" 1657 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1658 | 1659 | raw-body@2.3.3: 1660 | version "2.3.3" 1661 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 1662 | dependencies: 1663 | bytes "3.0.0" 1664 | http-errors "1.6.3" 1665 | iconv-lite "0.4.23" 1666 | unpipe "1.0.0" 1667 | 1668 | readable-stream@1.1.x, readable-stream@~1.1.9: 1669 | version "1.1.14" 1670 | resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1671 | dependencies: 1672 | core-util-is "~1.0.0" 1673 | inherits "~2.0.1" 1674 | isarray "0.0.1" 1675 | string_decoder "~0.10.x" 1676 | 1677 | "readable-stream@>=1.0.33-1 <1.1.0-0": 1678 | version "1.0.34" 1679 | resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 1680 | dependencies: 1681 | core-util-is "~1.0.0" 1682 | inherits "~2.0.1" 1683 | isarray "0.0.1" 1684 | string_decoder "~0.10.x" 1685 | 1686 | readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@~2.3.6: 1687 | version "2.3.6" 1688 | resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1689 | dependencies: 1690 | core-util-is "~1.0.0" 1691 | inherits "~2.0.3" 1692 | isarray "~1.0.0" 1693 | process-nextick-args "~2.0.0" 1694 | safe-buffer "~5.1.1" 1695 | string_decoder "~1.1.1" 1696 | util-deprecate "~1.0.1" 1697 | 1698 | rechoir@^0.6.2: 1699 | version "0.6.2" 1700 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 1701 | dependencies: 1702 | resolve "^1.1.6" 1703 | 1704 | reflect-metadata@^0.1.12: 1705 | version "0.1.12" 1706 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" 1707 | 1708 | regex-not@^1.0.0, regex-not@^1.0.2: 1709 | version "1.0.2" 1710 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 1711 | dependencies: 1712 | extend-shallow "^3.0.2" 1713 | safe-regex "^1.1.0" 1714 | 1715 | remove-bom-buffer@^3.0.0: 1716 | version "3.0.0" 1717 | resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" 1718 | dependencies: 1719 | is-buffer "^1.1.5" 1720 | is-utf8 "^0.2.1" 1721 | 1722 | remove-bom-stream@^1.2.0: 1723 | version "1.2.0" 1724 | resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" 1725 | dependencies: 1726 | remove-bom-buffer "^3.0.0" 1727 | safe-buffer "^5.1.0" 1728 | through2 "^2.0.3" 1729 | 1730 | remove-trailing-separator@^1.0.1: 1731 | version "1.1.0" 1732 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1733 | 1734 | repeat-element@^1.1.2: 1735 | version "1.1.3" 1736 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 1737 | 1738 | repeat-string@^1.6.1: 1739 | version "1.6.1" 1740 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1741 | 1742 | replace-ext@0.0.1: 1743 | version "0.0.1" 1744 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" 1745 | 1746 | replace-ext@^1.0.0: 1747 | version "1.0.0" 1748 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 1749 | 1750 | resolve-dir@^1.0.0, resolve-dir@^1.0.1: 1751 | version "1.0.1" 1752 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" 1753 | dependencies: 1754 | expand-tilde "^2.0.0" 1755 | global-modules "^1.0.0" 1756 | 1757 | resolve-options@^1.1.0: 1758 | version "1.1.0" 1759 | resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" 1760 | dependencies: 1761 | value-or-function "^3.0.0" 1762 | 1763 | resolve-url@^0.2.1: 1764 | version "0.2.1" 1765 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 1766 | 1767 | resolve@^1.1.6, resolve@^1.1.7: 1768 | version "1.8.1" 1769 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1770 | dependencies: 1771 | path-parse "^1.0.5" 1772 | 1773 | ret@~0.1.10: 1774 | version "0.1.15" 1775 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 1776 | 1777 | rimraf@^2.2.8: 1778 | version "2.6.2" 1779 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1780 | dependencies: 1781 | glob "^7.0.5" 1782 | 1783 | routing-controllers@^0.7.7: 1784 | version "0.7.7" 1785 | resolved "https://registry.yarnpkg.com/routing-controllers/-/routing-controllers-0.7.7.tgz#55b3dd3e676ade2527e522aad2834ac891cce0ee" 1786 | dependencies: 1787 | class-transformer "^0.1.9" 1788 | class-validator "^0.8.1" 1789 | cookie "^0.3.1" 1790 | glob "^7.0.5" 1791 | reflect-metadata "^0.1.12" 1792 | template-url "^1.0.0" 1793 | 1794 | safe-buffer@5.1.2, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1795 | version "5.1.2" 1796 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1797 | 1798 | safe-regex@^1.1.0: 1799 | version "1.1.0" 1800 | resolved "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 1801 | dependencies: 1802 | ret "~0.1.10" 1803 | 1804 | "safer-buffer@>= 2.1.2 < 3": 1805 | version "2.1.2" 1806 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1807 | 1808 | semver@^4.1.0: 1809 | version "4.3.6" 1810 | resolved "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" 1811 | 1812 | send@0.16.2: 1813 | version "0.16.2" 1814 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 1815 | dependencies: 1816 | debug "2.6.9" 1817 | depd "~1.1.2" 1818 | destroy "~1.0.4" 1819 | encodeurl "~1.0.2" 1820 | escape-html "~1.0.3" 1821 | etag "~1.8.1" 1822 | fresh "0.5.2" 1823 | http-errors "~1.6.2" 1824 | mime "1.4.1" 1825 | ms "2.0.0" 1826 | on-finished "~2.3.0" 1827 | range-parser "~1.2.0" 1828 | statuses "~1.4.0" 1829 | 1830 | sequencify@~0.0.7: 1831 | version "0.0.7" 1832 | resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" 1833 | 1834 | serve-static@1.13.2: 1835 | version "1.13.2" 1836 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 1837 | dependencies: 1838 | encodeurl "~1.0.2" 1839 | escape-html "~1.0.3" 1840 | parseurl "~1.3.2" 1841 | send "0.16.2" 1842 | 1843 | set-value@^0.4.3: 1844 | version "0.4.3" 1845 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 1846 | dependencies: 1847 | extend-shallow "^2.0.1" 1848 | is-extendable "^0.1.1" 1849 | is-plain-object "^2.0.1" 1850 | to-object-path "^0.3.0" 1851 | 1852 | set-value@^2.0.0: 1853 | version "2.0.0" 1854 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 1855 | dependencies: 1856 | extend-shallow "^2.0.1" 1857 | is-extendable "^0.1.1" 1858 | is-plain-object "^2.0.3" 1859 | split-string "^3.0.1" 1860 | 1861 | setprototypeof@1.1.0: 1862 | version "1.1.0" 1863 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1864 | 1865 | sigmund@~1.0.0: 1866 | version "1.0.1" 1867 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 1868 | 1869 | snapdragon-node@^2.0.1: 1870 | version "2.1.1" 1871 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 1872 | dependencies: 1873 | define-property "^1.0.0" 1874 | isobject "^3.0.0" 1875 | snapdragon-util "^3.0.1" 1876 | 1877 | snapdragon-util@^3.0.1: 1878 | version "3.0.1" 1879 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 1880 | dependencies: 1881 | kind-of "^3.2.0" 1882 | 1883 | snapdragon@^0.8.1: 1884 | version "0.8.2" 1885 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 1886 | dependencies: 1887 | base "^0.11.1" 1888 | debug "^2.2.0" 1889 | define-property "^0.2.5" 1890 | extend-shallow "^2.0.1" 1891 | map-cache "^0.2.2" 1892 | source-map "^0.5.6" 1893 | source-map-resolve "^0.5.0" 1894 | use "^3.1.0" 1895 | 1896 | source-map-resolve@^0.5.0: 1897 | version "0.5.2" 1898 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 1899 | dependencies: 1900 | atob "^2.1.1" 1901 | decode-uri-component "^0.2.0" 1902 | resolve-url "^0.2.1" 1903 | source-map-url "^0.4.0" 1904 | urix "^0.1.0" 1905 | 1906 | source-map-url@^0.4.0: 1907 | version "0.4.0" 1908 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 1909 | 1910 | source-map@^0.5.6: 1911 | version "0.5.7" 1912 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1913 | 1914 | source-map@^0.7.3: 1915 | version "0.7.3" 1916 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 1917 | 1918 | sparkles@^1.0.0: 1919 | version "1.0.1" 1920 | resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" 1921 | 1922 | split-string@^3.0.1, split-string@^3.0.2: 1923 | version "3.1.0" 1924 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 1925 | dependencies: 1926 | extend-shallow "^3.0.0" 1927 | 1928 | static-extend@^0.1.1: 1929 | version "0.1.2" 1930 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 1931 | dependencies: 1932 | define-property "^0.2.5" 1933 | object-copy "^0.1.0" 1934 | 1935 | "statuses@>= 1.4.0 < 2": 1936 | version "1.5.0" 1937 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1938 | 1939 | statuses@~1.4.0: 1940 | version "1.4.0" 1941 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 1942 | 1943 | stream-consume@~0.1.0: 1944 | version "0.1.1" 1945 | resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" 1946 | 1947 | stream-shift@^1.0.0: 1948 | version "1.0.0" 1949 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 1950 | 1951 | streamsearch@0.1.2: 1952 | version "0.1.2" 1953 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 1954 | 1955 | string_decoder@~0.10.x: 1956 | version "0.10.31" 1957 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1958 | 1959 | string_decoder@~1.1.1: 1960 | version "1.1.1" 1961 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1962 | dependencies: 1963 | safe-buffer "~5.1.0" 1964 | 1965 | strip-ansi@^3.0.0: 1966 | version "3.0.1" 1967 | resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1968 | dependencies: 1969 | ansi-regex "^2.0.0" 1970 | 1971 | strip-bom@^1.0.0: 1972 | version "1.0.0" 1973 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" 1974 | dependencies: 1975 | first-chunk-stream "^1.0.0" 1976 | is-utf8 "^0.2.0" 1977 | 1978 | supports-color@^2.0.0: 1979 | version "2.0.0" 1980 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1981 | 1982 | template-url@^1.0.0: 1983 | version "1.0.0" 1984 | resolved "https://registry.yarnpkg.com/template-url/-/template-url-1.0.0.tgz#d9456bee70cac6617b462a7b08db29fb813a0b09" 1985 | 1986 | through2-filter@^2.0.0: 1987 | version "2.0.0" 1988 | resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" 1989 | dependencies: 1990 | through2 "~2.0.0" 1991 | xtend "~4.0.0" 1992 | 1993 | through2@^0.6.1: 1994 | version "0.6.5" 1995 | resolved "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 1996 | dependencies: 1997 | readable-stream ">=1.0.33-1 <1.1.0-0" 1998 | xtend ">=4.0.0 <4.1.0-0" 1999 | 2000 | through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: 2001 | version "2.0.5" 2002 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" 2003 | dependencies: 2004 | readable-stream "~2.3.6" 2005 | xtend "~4.0.1" 2006 | 2007 | tildify@^1.0.0: 2008 | version "1.2.0" 2009 | resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" 2010 | dependencies: 2011 | os-homedir "^1.0.0" 2012 | 2013 | time-stamp@^1.0.0: 2014 | version "1.1.0" 2015 | resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" 2016 | 2017 | to-absolute-glob@^2.0.0: 2018 | version "2.0.2" 2019 | resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" 2020 | dependencies: 2021 | is-absolute "^1.0.0" 2022 | is-negated-glob "^1.0.0" 2023 | 2024 | to-object-path@^0.3.0: 2025 | version "0.3.0" 2026 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 2027 | dependencies: 2028 | kind-of "^3.0.2" 2029 | 2030 | to-regex-range@^2.1.0: 2031 | version "2.1.1" 2032 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 2033 | dependencies: 2034 | is-number "^3.0.0" 2035 | repeat-string "^1.6.1" 2036 | 2037 | to-regex@^3.0.1, to-regex@^3.0.2: 2038 | version "3.0.2" 2039 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 2040 | dependencies: 2041 | define-property "^2.0.2" 2042 | extend-shallow "^3.0.2" 2043 | regex-not "^1.0.2" 2044 | safe-regex "^1.1.0" 2045 | 2046 | to-through@^2.0.0: 2047 | version "2.0.0" 2048 | resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" 2049 | dependencies: 2050 | through2 "^2.0.3" 2051 | 2052 | type-is@^1.6.4, type-is@~1.6.16: 2053 | version "1.6.16" 2054 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 2055 | dependencies: 2056 | media-typer "0.3.0" 2057 | mime-types "~2.1.18" 2058 | 2059 | typedarray@^0.0.6: 2060 | version "0.0.6" 2061 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2062 | 2063 | typescript@^3.1.6: 2064 | version "3.1.6" 2065 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" 2066 | 2067 | unc-path-regex@^0.1.2: 2068 | version "0.1.2" 2069 | resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" 2070 | 2071 | union-value@^1.0.0: 2072 | version "1.0.0" 2073 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 2074 | dependencies: 2075 | arr-union "^3.1.0" 2076 | get-value "^2.0.6" 2077 | is-extendable "^0.1.1" 2078 | set-value "^0.4.3" 2079 | 2080 | unique-stream@^1.0.0: 2081 | version "1.0.0" 2082 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" 2083 | 2084 | unique-stream@^2.0.2: 2085 | version "2.2.1" 2086 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" 2087 | dependencies: 2088 | json-stable-stringify "^1.0.0" 2089 | through2-filter "^2.0.0" 2090 | 2091 | unpipe@1.0.0, unpipe@~1.0.0: 2092 | version "1.0.0" 2093 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2094 | 2095 | unset-value@^1.0.0: 2096 | version "1.0.0" 2097 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 2098 | dependencies: 2099 | has-value "^0.3.1" 2100 | isobject "^3.0.0" 2101 | 2102 | urix@^0.1.0: 2103 | version "0.1.0" 2104 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 2105 | 2106 | use@^3.1.0: 2107 | version "3.1.1" 2108 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 2109 | 2110 | user-home@^1.1.1: 2111 | version "1.1.1" 2112 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 2113 | 2114 | util-deprecate@~1.0.1: 2115 | version "1.0.2" 2116 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2117 | 2118 | utils-merge@1.0.1: 2119 | version "1.0.1" 2120 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2121 | 2122 | v8flags@^2.0.2: 2123 | version "2.1.1" 2124 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 2125 | dependencies: 2126 | user-home "^1.1.1" 2127 | 2128 | validator@9.2.0: 2129 | version "9.2.0" 2130 | resolved "https://registry.yarnpkg.com/validator/-/validator-9.2.0.tgz#ad216eed5f37cac31a6fe00ceab1f6b88bded03e" 2131 | 2132 | value-or-function@^3.0.0: 2133 | version "3.0.0" 2134 | resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" 2135 | 2136 | vary@^1, vary@~1.1.2: 2137 | version "1.1.2" 2138 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2139 | 2140 | vinyl-fs@^0.3.0: 2141 | version "0.3.14" 2142 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" 2143 | dependencies: 2144 | defaults "^1.0.0" 2145 | glob-stream "^3.1.5" 2146 | glob-watcher "^0.0.6" 2147 | graceful-fs "^3.0.0" 2148 | mkdirp "^0.5.0" 2149 | strip-bom "^1.0.0" 2150 | through2 "^0.6.1" 2151 | vinyl "^0.4.0" 2152 | 2153 | vinyl-fs@^3.0.3: 2154 | version "3.0.3" 2155 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" 2156 | dependencies: 2157 | fs-mkdirp-stream "^1.0.0" 2158 | glob-stream "^6.1.0" 2159 | graceful-fs "^4.0.0" 2160 | is-valid-glob "^1.0.0" 2161 | lazystream "^1.0.0" 2162 | lead "^1.0.0" 2163 | object.assign "^4.0.4" 2164 | pumpify "^1.3.5" 2165 | readable-stream "^2.3.3" 2166 | remove-bom-buffer "^3.0.0" 2167 | remove-bom-stream "^1.2.0" 2168 | resolve-options "^1.1.0" 2169 | through2 "^2.0.0" 2170 | to-through "^2.0.0" 2171 | value-or-function "^3.0.0" 2172 | vinyl "^2.0.0" 2173 | vinyl-sourcemap "^1.1.0" 2174 | 2175 | vinyl-sourcemap@^1.1.0: 2176 | version "1.1.0" 2177 | resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" 2178 | dependencies: 2179 | append-buffer "^1.0.2" 2180 | convert-source-map "^1.5.0" 2181 | graceful-fs "^4.1.6" 2182 | normalize-path "^2.1.1" 2183 | now-and-later "^2.0.0" 2184 | remove-bom-buffer "^3.0.0" 2185 | vinyl "^2.0.0" 2186 | 2187 | vinyl@^0.4.0: 2188 | version "0.4.6" 2189 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" 2190 | dependencies: 2191 | clone "^0.2.0" 2192 | clone-stats "^0.0.1" 2193 | 2194 | vinyl@^0.5.0: 2195 | version "0.5.3" 2196 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" 2197 | dependencies: 2198 | clone "^1.0.0" 2199 | clone-stats "^0.0.1" 2200 | replace-ext "0.0.1" 2201 | 2202 | vinyl@^2.0.0, vinyl@^2.1.0: 2203 | version "2.2.0" 2204 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" 2205 | dependencies: 2206 | clone "^2.1.1" 2207 | clone-buffer "^1.0.0" 2208 | clone-stats "^1.0.0" 2209 | cloneable-readable "^1.0.0" 2210 | remove-trailing-separator "^1.0.1" 2211 | replace-ext "^1.0.0" 2212 | 2213 | which@^1.2.14: 2214 | version "1.3.1" 2215 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2216 | dependencies: 2217 | isexe "^2.0.0" 2218 | 2219 | wrappy@1: 2220 | version "1.0.2" 2221 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2222 | 2223 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: 2224 | version "4.0.1" 2225 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 2226 | --------------------------------------------------------------------------------