├── README.md ├── backend ├── .gitignore ├── package.json ├── src │ ├── controllers │ │ └── UserController.ts │ ├── index.ts │ ├── routes.ts │ └── services │ │ └── EmailService.ts ├── tsconfig.json └── yarn.lock └── frontend ├── .gitignore ├── README.md ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── src ├── App.tsx ├── components │ └── User.tsx ├── index.tsx ├── react-app-env.d.ts └── services │ └── api.ts ├── tsconfig.json └── yarn.lock /README.md: -------------------------------------------------------------------------------- 1 |
Nesse vídeo eu quero desmistificar algumas opiniões sobre o TypeScript e mostrar como essa linguagem de programação tem ganhado tanto espaço no coração dos devs e também no mercado.
10 | 11 | 12 | ## 👨🏼💻 Instrutor 13 | 14 | - [Diego Fernandes](https://github.com/diego3g) 15 | 16 | ## ✋🏻 Pré-requisitos 17 | 18 | - [Node.js](https://nodejs.org/en/) 19 | - [Yarn](https://yarnpkg.com/pt-BR/docs/install) 20 | 21 | ## 🔥 Instalação e execução 22 | 23 | 1. Faça um clone desse repositório; 24 | 2. Entre na pasta `cd masterclass-typescript`; 25 | 3. Rode `yarn` dentro das pastas `backend` e `frontend` para instalar as dependências ; 26 | 4. Na pasta `backend` execute `yarn dev:server` pra iniciar o servidor de desenvolvimento; 27 | 5. Na pasta `frontend` execute `yarn start` pra iniciar o servidor de desenvolvimento; 28 | 29 | ## ⚡️ Como contribuir 30 | 31 | - Faça um fork desse repositório; 32 | - Cria uma branch com a sua feature: `git checkout -b minha-feature`; 33 | - Faça commit das suas alterações: `git commit -m 'feat: Minha nova feature'`; 34 | - Faça push para a sua branch: `git push origin minha-feature`. 35 | 36 | Depois que o merge da sua pull request for feito, você pode deletar a sua branch. 37 | 38 | ## 📝 Licença 39 | 40 | Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE.md) para mais detalhes. 41 | 42 | --- 43 | 44 | Feito com 💖 by Rocketseat 👋 [Entre na nossa comunidade!](https://discordapp.com/invite/gCRAFhc) 45 | -------------------------------------------------------------------------------- /backend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "dev:server": "ts-node-dev --respawn --transpileOnly src/index.ts" 8 | }, 9 | "devDependencies": { 10 | "@types/cors": "^2.8.6", 11 | "@types/express": "^4.17.2", 12 | "ts-node-dev": "^1.0.0-pre.44", 13 | "typescript": "^3.8.2" 14 | }, 15 | "dependencies": { 16 | "cors": "^2.8.5", 17 | "express": "^4.17.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /backend/src/controllers/UserController.ts: -------------------------------------------------------------------------------- 1 | import { Request, Response } from 'express'; 2 | import EmailService from '../services/EmailService'; 3 | 4 | const users = [ 5 | { name: 'Diego', email: 'diego@rocketseat.com.br' }, 6 | ]; 7 | 8 | export default { 9 | async index(req: Request, res: Response) { 10 | return res.json(users); 11 | }, 12 | 13 | async create(req: Request, res: Response) { 14 | const emailService = new EmailService(); 15 | 16 | emailService.sendMail({ 17 | to: { 18 | name: 'Diego Fernandes', 19 | email: 'diego@rocketseat.com.br' 20 | }, 21 | message: { 22 | subject: 'Bem-vindo ao sistema', 23 | body: 'Seja bem-vindo' 24 | } 25 | }); 26 | 27 | return res.send(); 28 | } 29 | }; -------------------------------------------------------------------------------- /backend/src/index.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import cors from 'cors'; 3 | import routes from './routes'; 4 | 5 | const app = express(); 6 | 7 | app.use(cors()); 8 | app.use(routes); 9 | 10 | app.listen(3333); 11 | 12 | // Babel, Sucrase -------------------------------------------------------------------------------- /backend/src/routes.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | import UserController from './controllers/UserController'; 3 | 4 | const routes = Router(); 5 | 6 | routes.get('/users', UserController.index); 7 | routes.post('/users', UserController.create); 8 | 9 | export default routes; -------------------------------------------------------------------------------- /backend/src/services/EmailService.ts: -------------------------------------------------------------------------------- 1 | interface IMailTo { 2 | name: string; 3 | email: string; 4 | } 5 | 6 | interface IMailMessage { 7 | subject: string; 8 | body: string; 9 | attachment?: string[]; 10 | } 11 | 12 | interface IMessageDTO { 13 | to: IMailTo; 14 | message: IMailMessage; 15 | } 16 | 17 | interface IEmailService { 18 | sendMail(request: IMessageDTO): void; 19 | } 20 | 21 | class EmailService implements IEmailService { 22 | sendMail({ to, message }: IMessageDTO) { 23 | console.log(`Email enviado para ${to.name}: ${message.subject}`); 24 | } 25 | } 26 | 27 | export default EmailService; -------------------------------------------------------------------------------- /backend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | // "incremental": true, /* Enable incremental compilation */ 5 | "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ 6 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 7 | // "lib": [], /* Specify library files to be included in the compilation. */ 8 | // "allowJs": true, /* Allow javascript files to be compiled. */ 9 | // "checkJs": true, /* Report errors in .js files. */ 10 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 11 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 12 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 13 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 14 | // "outFile": "./", /* Concatenate and emit output to single file. */ 15 | "outDir": "./dist", /* Redirect output structure to the directory. */ 16 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 17 | // "composite": true, /* Enable project compilation */ 18 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 19 | // "removeComments": true, /* Do not emit comments to output. */ 20 | // "noEmit": true, /* Do not emit outputs. */ 21 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 22 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 23 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 24 | 25 | /* Strict Type-Checking Options */ 26 | "strict": true, /* Enable all strict type-checking options. */ 27 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 28 | // "strictNullChecks": true, /* Enable strict null checks. */ 29 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 30 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 31 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 32 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 33 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 34 | 35 | /* Additional Checks */ 36 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 37 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 38 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 39 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 40 | 41 | /* Module Resolution Options */ 42 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 43 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 44 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 45 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 46 | // "typeRoots": [], /* List of folders to include type definitions from. */ 47 | // "types": [], /* Type declaration files to be included in compilation. */ 48 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 49 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 50 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 51 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 52 | 53 | /* Source Map Options */ 54 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 55 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 56 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 57 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 58 | 59 | /* Experimental Options */ 60 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 61 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 62 | 63 | /* Advanced Options */ 64 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /backend/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/body-parser@*": 6 | version "1.19.0" 7 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" 8 | integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 9 | dependencies: 10 | "@types/connect" "*" 11 | "@types/node" "*" 12 | 13 | "@types/connect@*": 14 | version "3.4.33" 15 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" 16 | integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== 17 | dependencies: 18 | "@types/node" "*" 19 | 20 | "@types/cors@^2.8.6": 21 | version "2.8.6" 22 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.6.tgz#cfaab33c49c15b1ded32f235111ce9123009bd02" 23 | integrity sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg== 24 | dependencies: 25 | "@types/express" "*" 26 | 27 | "@types/express-serve-static-core@*": 28 | version "4.17.2" 29 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf" 30 | integrity sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg== 31 | dependencies: 32 | "@types/node" "*" 33 | "@types/range-parser" "*" 34 | 35 | "@types/express@*", "@types/express@^4.17.2": 36 | version "4.17.2" 37 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c" 38 | integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA== 39 | dependencies: 40 | "@types/body-parser" "*" 41 | "@types/express-serve-static-core" "*" 42 | "@types/serve-static" "*" 43 | 44 | "@types/mime@*": 45 | version "2.0.1" 46 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" 47 | integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== 48 | 49 | "@types/node@*": 50 | version "13.7.5" 51 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.5.tgz#2da244d764666f85154274cac94a1cb5b88dcb8d" 52 | integrity sha512-PfSBCTQhAQg6QBP4UhXgrZ/wQ3pjfwBr4sA7Aul+pC9XwGgm9ezrJF7OiC/I4Kf+7VPu/5ThKngAruqxyctZfA== 53 | 54 | "@types/range-parser@*": 55 | version "1.2.3" 56 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 57 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 58 | 59 | "@types/serve-static@*": 60 | version "1.13.3" 61 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" 62 | integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== 63 | dependencies: 64 | "@types/express-serve-static-core" "*" 65 | "@types/mime" "*" 66 | 67 | "@types/strip-bom@^3.0.0": 68 | version "3.0.0" 69 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 70 | integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= 71 | 72 | "@types/strip-json-comments@0.0.30": 73 | version "0.0.30" 74 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 75 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 76 | 77 | accepts@~1.3.7: 78 | version "1.3.7" 79 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 80 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 81 | dependencies: 82 | mime-types "~2.1.24" 83 | negotiator "0.6.2" 84 | 85 | arg@^4.1.0: 86 | version "4.1.3" 87 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 88 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 89 | 90 | array-find-index@^1.0.1: 91 | version "1.0.2" 92 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 93 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 94 | 95 | array-flatten@1.1.1: 96 | version "1.1.1" 97 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 98 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 99 | 100 | balanced-match@^1.0.0: 101 | version "1.0.0" 102 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 103 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 104 | 105 | body-parser@1.19.0: 106 | version "1.19.0" 107 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 108 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 109 | dependencies: 110 | bytes "3.1.0" 111 | content-type "~1.0.4" 112 | debug "2.6.9" 113 | depd "~1.1.2" 114 | http-errors "1.7.2" 115 | iconv-lite "0.4.24" 116 | on-finished "~2.3.0" 117 | qs "6.7.0" 118 | raw-body "2.4.0" 119 | type-is "~1.6.17" 120 | 121 | brace-expansion@^1.1.7: 122 | version "1.1.11" 123 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 124 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 125 | dependencies: 126 | balanced-match "^1.0.0" 127 | concat-map "0.0.1" 128 | 129 | buffer-from@^1.0.0: 130 | version "1.1.1" 131 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 132 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 133 | 134 | bytes@3.1.0: 135 | version "3.1.0" 136 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 137 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 138 | 139 | camelcase-keys@^2.0.0: 140 | version "2.1.0" 141 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 142 | integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= 143 | dependencies: 144 | camelcase "^2.0.0" 145 | map-obj "^1.0.0" 146 | 147 | camelcase@^2.0.0: 148 | version "2.1.1" 149 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 150 | integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= 151 | 152 | concat-map@0.0.1: 153 | version "0.0.1" 154 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 155 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 156 | 157 | content-disposition@0.5.3: 158 | version "0.5.3" 159 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 160 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 161 | dependencies: 162 | safe-buffer "5.1.2" 163 | 164 | content-type@~1.0.4: 165 | version "1.0.4" 166 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 167 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 168 | 169 | cookie-signature@1.0.6: 170 | version "1.0.6" 171 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 172 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 173 | 174 | cookie@0.4.0: 175 | version "0.4.0" 176 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 177 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 178 | 179 | cors@^2.8.5: 180 | version "2.8.5" 181 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 182 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 183 | dependencies: 184 | object-assign "^4" 185 | vary "^1" 186 | 187 | currently-unhandled@^0.4.1: 188 | version "0.4.1" 189 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 190 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= 191 | dependencies: 192 | array-find-index "^1.0.1" 193 | 194 | dateformat@~1.0.4-1.2.3: 195 | version "1.0.12" 196 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" 197 | integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= 198 | dependencies: 199 | get-stdin "^4.0.1" 200 | meow "^3.3.0" 201 | 202 | debounce@^1.0.0: 203 | version "1.2.0" 204 | resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" 205 | integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== 206 | 207 | debug@2.6.9: 208 | version "2.6.9" 209 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 210 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 211 | dependencies: 212 | ms "2.0.0" 213 | 214 | decamelize@^1.1.2: 215 | version "1.2.0" 216 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 217 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 218 | 219 | depd@~1.1.2: 220 | version "1.1.2" 221 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 222 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 223 | 224 | destroy@~1.0.4: 225 | version "1.0.4" 226 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 227 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 228 | 229 | diff@^4.0.1: 230 | version "4.0.2" 231 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 232 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 233 | 234 | dynamic-dedupe@^0.3.0: 235 | version "0.3.0" 236 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 237 | integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE= 238 | dependencies: 239 | xtend "^4.0.0" 240 | 241 | ee-first@1.1.1: 242 | version "1.1.1" 243 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 244 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 245 | 246 | encodeurl@~1.0.2: 247 | version "1.0.2" 248 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 249 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 250 | 251 | error-ex@^1.2.0: 252 | version "1.3.2" 253 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 254 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 255 | dependencies: 256 | is-arrayish "^0.2.1" 257 | 258 | escape-html@~1.0.3: 259 | version "1.0.3" 260 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 261 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 262 | 263 | etag@~1.8.1: 264 | version "1.8.1" 265 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 266 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 267 | 268 | express@^4.17.1: 269 | version "4.17.1" 270 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 271 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 272 | dependencies: 273 | accepts "~1.3.7" 274 | array-flatten "1.1.1" 275 | body-parser "1.19.0" 276 | content-disposition "0.5.3" 277 | content-type "~1.0.4" 278 | cookie "0.4.0" 279 | cookie-signature "1.0.6" 280 | debug "2.6.9" 281 | depd "~1.1.2" 282 | encodeurl "~1.0.2" 283 | escape-html "~1.0.3" 284 | etag "~1.8.1" 285 | finalhandler "~1.1.2" 286 | fresh "0.5.2" 287 | merge-descriptors "1.0.1" 288 | methods "~1.1.2" 289 | on-finished "~2.3.0" 290 | parseurl "~1.3.3" 291 | path-to-regexp "0.1.7" 292 | proxy-addr "~2.0.5" 293 | qs "6.7.0" 294 | range-parser "~1.2.1" 295 | safe-buffer "5.1.2" 296 | send "0.17.1" 297 | serve-static "1.14.1" 298 | setprototypeof "1.1.1" 299 | statuses "~1.5.0" 300 | type-is "~1.6.18" 301 | utils-merge "1.0.1" 302 | vary "~1.1.2" 303 | 304 | filewatcher@~3.0.0: 305 | version "3.0.1" 306 | resolved "https://registry.yarnpkg.com/filewatcher/-/filewatcher-3.0.1.tgz#f4a1957355ddaf443ccd78a895f3d55e23c8a034" 307 | integrity sha1-9KGVc1Xdr0Q8zXiolfPVXiPIoDQ= 308 | dependencies: 309 | debounce "^1.0.0" 310 | 311 | finalhandler@~1.1.2: 312 | version "1.1.2" 313 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 314 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 315 | dependencies: 316 | debug "2.6.9" 317 | encodeurl "~1.0.2" 318 | escape-html "~1.0.3" 319 | on-finished "~2.3.0" 320 | parseurl "~1.3.3" 321 | statuses "~1.5.0" 322 | unpipe "~1.0.0" 323 | 324 | find-up@^1.0.0: 325 | version "1.1.2" 326 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 327 | integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= 328 | dependencies: 329 | path-exists "^2.0.0" 330 | pinkie-promise "^2.0.0" 331 | 332 | forwarded@~0.1.2: 333 | version "0.1.2" 334 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 335 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 336 | 337 | fresh@0.5.2: 338 | version "0.5.2" 339 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 340 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 341 | 342 | fs.realpath@^1.0.0: 343 | version "1.0.0" 344 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 345 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 346 | 347 | get-stdin@^4.0.1: 348 | version "4.0.1" 349 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 350 | integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= 351 | 352 | glob@^7.1.3: 353 | version "7.1.6" 354 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 355 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 356 | dependencies: 357 | fs.realpath "^1.0.0" 358 | inflight "^1.0.4" 359 | inherits "2" 360 | minimatch "^3.0.4" 361 | once "^1.3.0" 362 | path-is-absolute "^1.0.0" 363 | 364 | graceful-fs@^4.1.2: 365 | version "4.2.3" 366 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 367 | integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== 368 | 369 | growly@^1.3.0: 370 | version "1.3.0" 371 | resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" 372 | integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= 373 | 374 | hosted-git-info@^2.1.4: 375 | version "2.8.6" 376 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.6.tgz#3a6e6d0324c5371fc8c7ba7175e1e5d14578724d" 377 | integrity sha512-Kp6rShEsCHhF5dD3EWKdkgVA8ix90oSUJ0VY4g9goxxa0+f4lx63muTftn0mlJ/+8IESGWyKnP//V2D7S4ZbIQ== 378 | 379 | http-errors@1.7.2: 380 | version "1.7.2" 381 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 382 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 383 | dependencies: 384 | depd "~1.1.2" 385 | inherits "2.0.3" 386 | setprototypeof "1.1.1" 387 | statuses ">= 1.5.0 < 2" 388 | toidentifier "1.0.0" 389 | 390 | http-errors@~1.7.2: 391 | version "1.7.3" 392 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 393 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 394 | dependencies: 395 | depd "~1.1.2" 396 | inherits "2.0.4" 397 | setprototypeof "1.1.1" 398 | statuses ">= 1.5.0 < 2" 399 | toidentifier "1.0.0" 400 | 401 | iconv-lite@0.4.24: 402 | version "0.4.24" 403 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 404 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 405 | dependencies: 406 | safer-buffer ">= 2.1.2 < 3" 407 | 408 | indent-string@^2.1.0: 409 | version "2.1.0" 410 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 411 | integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= 412 | dependencies: 413 | repeating "^2.0.0" 414 | 415 | inflight@^1.0.4: 416 | version "1.0.6" 417 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 418 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 419 | dependencies: 420 | once "^1.3.0" 421 | wrappy "1" 422 | 423 | inherits@2, inherits@2.0.4: 424 | version "2.0.4" 425 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 426 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 427 | 428 | inherits@2.0.3: 429 | version "2.0.3" 430 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 431 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 432 | 433 | ipaddr.js@1.9.1: 434 | version "1.9.1" 435 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 436 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 437 | 438 | is-arrayish@^0.2.1: 439 | version "0.2.1" 440 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 441 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 442 | 443 | is-finite@^1.0.0: 444 | version "1.1.0" 445 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" 446 | integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== 447 | 448 | is-utf8@^0.2.0: 449 | version "0.2.1" 450 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 451 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= 452 | 453 | is-wsl@^1.1.0: 454 | version "1.1.0" 455 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" 456 | integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= 457 | 458 | isexe@^2.0.0: 459 | version "2.0.0" 460 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 461 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 462 | 463 | load-json-file@^1.0.0: 464 | version "1.1.0" 465 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 466 | integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= 467 | dependencies: 468 | graceful-fs "^4.1.2" 469 | parse-json "^2.2.0" 470 | pify "^2.0.0" 471 | pinkie-promise "^2.0.0" 472 | strip-bom "^2.0.0" 473 | 474 | loud-rejection@^1.0.0: 475 | version "1.6.0" 476 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 477 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= 478 | dependencies: 479 | currently-unhandled "^0.4.1" 480 | signal-exit "^3.0.0" 481 | 482 | make-error@^1.1.1: 483 | version "1.3.6" 484 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 485 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 486 | 487 | map-obj@^1.0.0, map-obj@^1.0.1: 488 | version "1.0.1" 489 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 490 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 491 | 492 | media-typer@0.3.0: 493 | version "0.3.0" 494 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 495 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 496 | 497 | meow@^3.3.0: 498 | version "3.7.0" 499 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 500 | integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= 501 | dependencies: 502 | camelcase-keys "^2.0.0" 503 | decamelize "^1.1.2" 504 | loud-rejection "^1.0.0" 505 | map-obj "^1.0.1" 506 | minimist "^1.1.3" 507 | normalize-package-data "^2.3.4" 508 | object-assign "^4.0.1" 509 | read-pkg-up "^1.0.1" 510 | redent "^1.0.0" 511 | trim-newlines "^1.0.0" 512 | 513 | merge-descriptors@1.0.1: 514 | version "1.0.1" 515 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 516 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 517 | 518 | methods@~1.1.2: 519 | version "1.1.2" 520 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 521 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 522 | 523 | mime-db@1.43.0: 524 | version "1.43.0" 525 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" 526 | integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== 527 | 528 | mime-types@~2.1.24: 529 | version "2.1.26" 530 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" 531 | integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== 532 | dependencies: 533 | mime-db "1.43.0" 534 | 535 | mime@1.6.0: 536 | version "1.6.0" 537 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 538 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 539 | 540 | minimatch@^3.0.4: 541 | version "3.0.4" 542 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 543 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 544 | dependencies: 545 | brace-expansion "^1.1.7" 546 | 547 | minimist@0.0.8: 548 | version "0.0.8" 549 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 550 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 551 | 552 | minimist@^1.1.3: 553 | version "1.2.0" 554 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 555 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 556 | 557 | mkdirp@^0.5.1: 558 | version "0.5.1" 559 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 560 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 561 | dependencies: 562 | minimist "0.0.8" 563 | 564 | ms@2.0.0: 565 | version "2.0.0" 566 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 567 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 568 | 569 | ms@2.1.1: 570 | version "2.1.1" 571 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 572 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 573 | 574 | negotiator@0.6.2: 575 | version "0.6.2" 576 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 577 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 578 | 579 | node-notifier@^5.4.0: 580 | version "5.4.3" 581 | resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" 582 | integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== 583 | dependencies: 584 | growly "^1.3.0" 585 | is-wsl "^1.1.0" 586 | semver "^5.5.0" 587 | shellwords "^0.1.1" 588 | which "^1.3.0" 589 | 590 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 591 | version "2.5.0" 592 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 593 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 594 | dependencies: 595 | hosted-git-info "^2.1.4" 596 | resolve "^1.10.0" 597 | semver "2 || 3 || 4 || 5" 598 | validate-npm-package-license "^3.0.1" 599 | 600 | object-assign@^4, object-assign@^4.0.1: 601 | version "4.1.1" 602 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 603 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 604 | 605 | on-finished@~2.3.0: 606 | version "2.3.0" 607 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 608 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 609 | dependencies: 610 | ee-first "1.1.1" 611 | 612 | once@^1.3.0: 613 | version "1.4.0" 614 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 615 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 616 | dependencies: 617 | wrappy "1" 618 | 619 | parse-json@^2.2.0: 620 | version "2.2.0" 621 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 622 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 623 | dependencies: 624 | error-ex "^1.2.0" 625 | 626 | parseurl@~1.3.3: 627 | version "1.3.3" 628 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 629 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 630 | 631 | path-exists@^2.0.0: 632 | version "2.1.0" 633 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 634 | integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= 635 | dependencies: 636 | pinkie-promise "^2.0.0" 637 | 638 | path-is-absolute@^1.0.0: 639 | version "1.0.1" 640 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 641 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 642 | 643 | path-parse@^1.0.6: 644 | version "1.0.6" 645 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 646 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 647 | 648 | path-to-regexp@0.1.7: 649 | version "0.1.7" 650 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 651 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 652 | 653 | path-type@^1.0.0: 654 | version "1.1.0" 655 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 656 | integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= 657 | dependencies: 658 | graceful-fs "^4.1.2" 659 | pify "^2.0.0" 660 | pinkie-promise "^2.0.0" 661 | 662 | pify@^2.0.0: 663 | version "2.3.0" 664 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 665 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 666 | 667 | pinkie-promise@^2.0.0: 668 | version "2.0.1" 669 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 670 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= 671 | dependencies: 672 | pinkie "^2.0.0" 673 | 674 | pinkie@^2.0.0: 675 | version "2.0.4" 676 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 677 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= 678 | 679 | proxy-addr@~2.0.5: 680 | version "2.0.6" 681 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" 682 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== 683 | dependencies: 684 | forwarded "~0.1.2" 685 | ipaddr.js "1.9.1" 686 | 687 | qs@6.7.0: 688 | version "6.7.0" 689 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 690 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 691 | 692 | range-parser@~1.2.1: 693 | version "1.2.1" 694 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 695 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 696 | 697 | raw-body@2.4.0: 698 | version "2.4.0" 699 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 700 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 701 | dependencies: 702 | bytes "3.1.0" 703 | http-errors "1.7.2" 704 | iconv-lite "0.4.24" 705 | unpipe "1.0.0" 706 | 707 | read-pkg-up@^1.0.1: 708 | version "1.0.1" 709 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 710 | integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= 711 | dependencies: 712 | find-up "^1.0.0" 713 | read-pkg "^1.0.0" 714 | 715 | read-pkg@^1.0.0: 716 | version "1.1.0" 717 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 718 | integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= 719 | dependencies: 720 | load-json-file "^1.0.0" 721 | normalize-package-data "^2.3.2" 722 | path-type "^1.0.0" 723 | 724 | redent@^1.0.0: 725 | version "1.0.0" 726 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 727 | integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= 728 | dependencies: 729 | indent-string "^2.1.0" 730 | strip-indent "^1.0.1" 731 | 732 | repeating@^2.0.0: 733 | version "2.0.1" 734 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 735 | integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= 736 | dependencies: 737 | is-finite "^1.0.0" 738 | 739 | resolve@^1.0.0, resolve@^1.10.0: 740 | version "1.15.1" 741 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" 742 | integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== 743 | dependencies: 744 | path-parse "^1.0.6" 745 | 746 | rimraf@^2.6.1: 747 | version "2.7.1" 748 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 749 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 750 | dependencies: 751 | glob "^7.1.3" 752 | 753 | safe-buffer@5.1.2: 754 | version "5.1.2" 755 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 756 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 757 | 758 | "safer-buffer@>= 2.1.2 < 3": 759 | version "2.1.2" 760 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 761 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 762 | 763 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 764 | version "5.7.1" 765 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 766 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 767 | 768 | send@0.17.1: 769 | version "0.17.1" 770 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 771 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 772 | dependencies: 773 | debug "2.6.9" 774 | depd "~1.1.2" 775 | destroy "~1.0.4" 776 | encodeurl "~1.0.2" 777 | escape-html "~1.0.3" 778 | etag "~1.8.1" 779 | fresh "0.5.2" 780 | http-errors "~1.7.2" 781 | mime "1.6.0" 782 | ms "2.1.1" 783 | on-finished "~2.3.0" 784 | range-parser "~1.2.1" 785 | statuses "~1.5.0" 786 | 787 | serve-static@1.14.1: 788 | version "1.14.1" 789 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 790 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 791 | dependencies: 792 | encodeurl "~1.0.2" 793 | escape-html "~1.0.3" 794 | parseurl "~1.3.3" 795 | send "0.17.1" 796 | 797 | setprototypeof@1.1.1: 798 | version "1.1.1" 799 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 800 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 801 | 802 | shellwords@^0.1.1: 803 | version "0.1.1" 804 | resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" 805 | integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== 806 | 807 | signal-exit@^3.0.0: 808 | version "3.0.2" 809 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 810 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 811 | 812 | source-map-support@^0.5.12, source-map-support@^0.5.6: 813 | version "0.5.16" 814 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" 815 | integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== 816 | dependencies: 817 | buffer-from "^1.0.0" 818 | source-map "^0.6.0" 819 | 820 | source-map@^0.6.0: 821 | version "0.6.1" 822 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 823 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 824 | 825 | spdx-correct@^3.0.0: 826 | version "3.1.0" 827 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 828 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 829 | dependencies: 830 | spdx-expression-parse "^3.0.0" 831 | spdx-license-ids "^3.0.0" 832 | 833 | spdx-exceptions@^2.1.0: 834 | version "2.2.0" 835 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 836 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 837 | 838 | spdx-expression-parse@^3.0.0: 839 | version "3.0.0" 840 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 841 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 842 | dependencies: 843 | spdx-exceptions "^2.1.0" 844 | spdx-license-ids "^3.0.0" 845 | 846 | spdx-license-ids@^3.0.0: 847 | version "3.0.5" 848 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 849 | integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 850 | 851 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 852 | version "1.5.0" 853 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 854 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 855 | 856 | strip-bom@^2.0.0: 857 | version "2.0.0" 858 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 859 | integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= 860 | dependencies: 861 | is-utf8 "^0.2.0" 862 | 863 | strip-bom@^3.0.0: 864 | version "3.0.0" 865 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 866 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 867 | 868 | strip-indent@^1.0.1: 869 | version "1.0.1" 870 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 871 | integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= 872 | dependencies: 873 | get-stdin "^4.0.1" 874 | 875 | strip-json-comments@^2.0.0: 876 | version "2.0.1" 877 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 878 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 879 | 880 | toidentifier@1.0.0: 881 | version "1.0.0" 882 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 883 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 884 | 885 | tree-kill@^1.2.1: 886 | version "1.2.2" 887 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 888 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 889 | 890 | trim-newlines@^1.0.0: 891 | version "1.0.0" 892 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 893 | integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= 894 | 895 | ts-node-dev@^1.0.0-pre.44: 896 | version "1.0.0-pre.44" 897 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.0.0-pre.44.tgz#2f4d666088481fb9c4e4f5bc8f15995bd8b06ecb" 898 | integrity sha512-M5ZwvB6FU3jtc70i5lFth86/6Qj5XR5nMMBwVxZF4cZhpO7XcbWw6tbNiJo22Zx0KfjEj9py5DANhwLOkPPufw== 899 | dependencies: 900 | dateformat "~1.0.4-1.2.3" 901 | dynamic-dedupe "^0.3.0" 902 | filewatcher "~3.0.0" 903 | minimist "^1.1.3" 904 | mkdirp "^0.5.1" 905 | node-notifier "^5.4.0" 906 | resolve "^1.0.0" 907 | rimraf "^2.6.1" 908 | source-map-support "^0.5.12" 909 | tree-kill "^1.2.1" 910 | ts-node "*" 911 | tsconfig "^7.0.0" 912 | 913 | ts-node@*: 914 | version "8.6.2" 915 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35" 916 | integrity sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg== 917 | dependencies: 918 | arg "^4.1.0" 919 | diff "^4.0.1" 920 | make-error "^1.1.1" 921 | source-map-support "^0.5.6" 922 | yn "3.1.1" 923 | 924 | tsconfig@^7.0.0: 925 | version "7.0.0" 926 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 927 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 928 | dependencies: 929 | "@types/strip-bom" "^3.0.0" 930 | "@types/strip-json-comments" "0.0.30" 931 | strip-bom "^3.0.0" 932 | strip-json-comments "^2.0.0" 933 | 934 | type-is@~1.6.17, type-is@~1.6.18: 935 | version "1.6.18" 936 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 937 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 938 | dependencies: 939 | media-typer "0.3.0" 940 | mime-types "~2.1.24" 941 | 942 | typescript@^3.8.2: 943 | version "3.8.2" 944 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a" 945 | integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ== 946 | 947 | unpipe@1.0.0, unpipe@~1.0.0: 948 | version "1.0.0" 949 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 950 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 951 | 952 | utils-merge@1.0.1: 953 | version "1.0.1" 954 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 955 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 956 | 957 | validate-npm-package-license@^3.0.1: 958 | version "3.0.4" 959 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 960 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 961 | dependencies: 962 | spdx-correct "^3.0.0" 963 | spdx-expression-parse "^3.0.0" 964 | 965 | vary@^1, vary@~1.1.2: 966 | version "1.1.2" 967 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 968 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 969 | 970 | which@^1.3.0: 971 | version "1.3.1" 972 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 973 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 974 | dependencies: 975 | isexe "^2.0.0" 976 | 977 | wrappy@1: 978 | version "1.0.2" 979 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 980 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 981 | 982 | xtend@^4.0.0: 983 | version "4.0.2" 984 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 985 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 986 | 987 | yn@3.1.1: 988 | version "3.1.1" 989 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 990 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 991 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `yarn start` 8 | 9 | Runs the app in the development mode.