├── README.md
├── backend
├── .gitignore
├── package.json
├── src
│ ├── auth.js
│ ├── index.js
│ └── routes.js
└── yarn.lock
├── final
├── .gitkeep
├── README.md
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
├── src
│ ├── App.js
│ ├── Context
│ │ ├── AuthContext.js
│ │ └── hooks
│ │ │ └── useAuth.js
│ ├── api.js
│ ├── history.js
│ ├── index.js
│ ├── pages
│ │ ├── Login.js
│ │ └── Users.js
│ └── routes.js
└── yarn.lock
└── starter
├── .gitignore
├── README.md
├── package.json
├── public
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
├── src
├── App.js
├── api.js
├── history.js
├── index.js
├── pages
│ ├── Login.js
│ └── Users.js
└── routes.js
└── yarn.lock
/README.md:
--------------------------------------------------------------------------------
1 | # Autenticação JWT com Context API e React Router
2 |
3 | Estes são os arquivos iniciais da aula sobre Context API que está disponível no [YouTube](https://youtu.be/AClyxTbfI08).
4 |
5 | Este projeto utiliza o [Create React App](https://github.com/facebook/create-react-app) e uma API em NodeJS que não demanda nenhum banco de dados.
6 |
7 | ## Instalação
8 |
9 | Você precisará ter o [NodeJS](https://nodejs.org) instalado na sua máquina, e, após isso, clonar este repositório:
10 | ```sh
11 | $ git clone https://github.com/maateusilva/youtube-context-api.git
12 | ```
13 |
14 | Depois disso, instale as dependências do Front-end e do Back-end:
15 | ```sh
16 | $ cd youtube-context-api/backend && yarn install # ou npm install
17 | $ cd ../starter && yarn install # ou npm install
18 | ```
19 |
20 | ## Executando a aplicação
21 |
22 | Primeiro acesse a pasta do back-end e execute o seguinte comando:
23 | ```sh
24 | $ yarn dev # ou npm run dev
25 | ```
26 |
27 | Agora é só executar o front-end:
28 | ```sh
29 | $ yarn start # ou npm start
30 | ```
31 |
--------------------------------------------------------------------------------
/backend/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
--------------------------------------------------------------------------------
/backend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "backend",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "license": "MIT",
6 | "scripts": {
7 | "dev": "nodemon src/index.js"
8 | },
9 | "dependencies": {
10 | "cors": "^2.8.5",
11 | "express": "^4.17.1",
12 | "jsonwebtoken": "^8.5.1"
13 | },
14 | "devDependencies": {
15 | "nodemon": "^2.0.2"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/backend/src/auth.js:
--------------------------------------------------------------------------------
1 | const jwt = require('jsonwebtoken');
2 | const { promisify } = require('util');
3 |
4 | async function validate(req, res, next) {
5 | const { authorization } = req.headers;
6 |
7 | if (!authorization) {
8 | return res.sendStatus(401);
9 | }
10 |
11 | const [, token] = authorization.split(' ');
12 |
13 | try {
14 | await promisify(jwt.verify)(token, 'PRIVATEKEY');
15 |
16 | return next();
17 | } catch (err) {
18 | return res.sendStatus(401);
19 | }
20 | }
21 |
22 | module.exports = validate;
23 |
--------------------------------------------------------------------------------
/backend/src/index.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const cors = require('cors');
3 |
4 | const routes = require('./routes');
5 |
6 | const app = express();
7 |
8 | app.use(cors());
9 | app.use(routes);
10 |
11 | app.listen(3333, () => console.log('running'));
--------------------------------------------------------------------------------
/backend/src/routes.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const jwt = require('jsonwebtoken');
3 |
4 | const authMiddleware = require('./auth');
5 |
6 | const router = express.Router();
7 |
8 | router.post('/authenticate', (req, res) => {
9 | const user = {
10 | id: 1,
11 | name: 'Mateus Silva',
12 | company: 'DevAcademy',
13 | website: 'https://devacademy.com.br',
14 | };
15 |
16 | return res.json({
17 | user,
18 | token: jwt.sign(user, 'PRIVATEKEY'),
19 | });
20 | });
21 |
22 | /**
23 | * Private route
24 | */
25 | router.use(authMiddleware);
26 |
27 | router.get('/users', async (req, res) => {
28 | return res.json([
29 | {
30 | id: 1,
31 | name: 'Mateus Silva',
32 | website: 'https://devacademy.com.br',
33 | },
34 | {
35 | id: 2,
36 | name: 'Mark Zuckerberg',
37 | website: 'https://facebook.com',
38 | },
39 | {
40 | id: 3,
41 | name: 'Bill Gates',
42 | website: 'https://www.microsoft.com',
43 | },
44 | ]);
45 | });
46 |
47 | module.exports = router;
48 |
--------------------------------------------------------------------------------
/backend/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | abbrev@1:
6 | version "1.1.1"
7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
8 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
9 |
10 | accepts@~1.3.7:
11 | version "1.3.7"
12 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
13 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
14 | dependencies:
15 | mime-types "~2.1.24"
16 | negotiator "0.6.2"
17 |
18 | ansi-align@^2.0.0:
19 | version "2.0.0"
20 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
21 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=
22 | dependencies:
23 | string-width "^2.0.0"
24 |
25 | ansi-regex@^3.0.0:
26 | version "3.0.0"
27 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
28 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
29 |
30 | ansi-styles@^3.2.1:
31 | version "3.2.1"
32 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
33 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
34 | dependencies:
35 | color-convert "^1.9.0"
36 |
37 | anymatch@~3.1.1:
38 | version "3.1.1"
39 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
40 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
41 | dependencies:
42 | normalize-path "^3.0.0"
43 | picomatch "^2.0.4"
44 |
45 | array-flatten@1.1.1:
46 | version "1.1.1"
47 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
48 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
49 |
50 | balanced-match@^1.0.0:
51 | version "1.0.0"
52 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
53 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
54 |
55 | binary-extensions@^2.0.0:
56 | version "2.0.0"
57 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
58 | integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
59 |
60 | body-parser@1.19.0:
61 | version "1.19.0"
62 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
63 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
64 | dependencies:
65 | bytes "3.1.0"
66 | content-type "~1.0.4"
67 | debug "2.6.9"
68 | depd "~1.1.2"
69 | http-errors "1.7.2"
70 | iconv-lite "0.4.24"
71 | on-finished "~2.3.0"
72 | qs "6.7.0"
73 | raw-body "2.4.0"
74 | type-is "~1.6.17"
75 |
76 | boxen@^1.2.1:
77 | version "1.3.0"
78 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
79 | integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
80 | dependencies:
81 | ansi-align "^2.0.0"
82 | camelcase "^4.0.0"
83 | chalk "^2.0.1"
84 | cli-boxes "^1.0.0"
85 | string-width "^2.0.0"
86 | term-size "^1.2.0"
87 | widest-line "^2.0.0"
88 |
89 | brace-expansion@^1.1.7:
90 | version "1.1.11"
91 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
92 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
93 | dependencies:
94 | balanced-match "^1.0.0"
95 | concat-map "0.0.1"
96 |
97 | braces@~3.0.2:
98 | version "3.0.2"
99 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
100 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
101 | dependencies:
102 | fill-range "^7.0.1"
103 |
104 | buffer-equal-constant-time@1.0.1:
105 | version "1.0.1"
106 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
107 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
108 |
109 | bytes@3.1.0:
110 | version "3.1.0"
111 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
112 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
113 |
114 | camelcase@^4.0.0:
115 | version "4.1.0"
116 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
117 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
118 |
119 | capture-stack-trace@^1.0.0:
120 | version "1.0.1"
121 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
122 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
123 |
124 | chalk@^2.0.1:
125 | version "2.4.2"
126 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
127 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
128 | dependencies:
129 | ansi-styles "^3.2.1"
130 | escape-string-regexp "^1.0.5"
131 | supports-color "^5.3.0"
132 |
133 | chokidar@^3.2.2:
134 | version "3.3.1"
135 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
136 | integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
137 | dependencies:
138 | anymatch "~3.1.1"
139 | braces "~3.0.2"
140 | glob-parent "~5.1.0"
141 | is-binary-path "~2.1.0"
142 | is-glob "~4.0.1"
143 | normalize-path "~3.0.0"
144 | readdirp "~3.3.0"
145 | optionalDependencies:
146 | fsevents "~2.1.2"
147 |
148 | ci-info@^1.5.0:
149 | version "1.6.0"
150 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
151 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
152 |
153 | cli-boxes@^1.0.0:
154 | version "1.0.0"
155 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
156 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
157 |
158 | color-convert@^1.9.0:
159 | version "1.9.3"
160 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
161 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
162 | dependencies:
163 | color-name "1.1.3"
164 |
165 | color-name@1.1.3:
166 | version "1.1.3"
167 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
168 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
169 |
170 | concat-map@0.0.1:
171 | version "0.0.1"
172 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
173 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
174 |
175 | configstore@^3.0.0:
176 | version "3.1.2"
177 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
178 | integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==
179 | dependencies:
180 | dot-prop "^4.1.0"
181 | graceful-fs "^4.1.2"
182 | make-dir "^1.0.0"
183 | unique-string "^1.0.0"
184 | write-file-atomic "^2.0.0"
185 | xdg-basedir "^3.0.0"
186 |
187 | content-disposition@0.5.3:
188 | version "0.5.3"
189 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
190 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
191 | dependencies:
192 | safe-buffer "5.1.2"
193 |
194 | content-type@~1.0.4:
195 | version "1.0.4"
196 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
197 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
198 |
199 | cookie-signature@1.0.6:
200 | version "1.0.6"
201 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
202 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
203 |
204 | cookie@0.4.0:
205 | version "0.4.0"
206 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
207 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
208 |
209 | cors@^2.8.5:
210 | version "2.8.5"
211 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
212 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
213 | dependencies:
214 | object-assign "^4"
215 | vary "^1"
216 |
217 | create-error-class@^3.0.0:
218 | version "3.0.2"
219 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
220 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
221 | dependencies:
222 | capture-stack-trace "^1.0.0"
223 |
224 | cross-spawn@^5.0.1:
225 | version "5.1.0"
226 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
227 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
228 | dependencies:
229 | lru-cache "^4.0.1"
230 | shebang-command "^1.2.0"
231 | which "^1.2.9"
232 |
233 | crypto-random-string@^1.0.0:
234 | version "1.0.0"
235 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
236 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
237 |
238 | debug@2.6.9, debug@^2.2.0:
239 | version "2.6.9"
240 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
241 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
242 | dependencies:
243 | ms "2.0.0"
244 |
245 | debug@^3.2.6:
246 | version "3.2.6"
247 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
248 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
249 | dependencies:
250 | ms "^2.1.1"
251 |
252 | deep-extend@^0.6.0:
253 | version "0.6.0"
254 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
255 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
256 |
257 | depd@~1.1.2:
258 | version "1.1.2"
259 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
260 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
261 |
262 | destroy@~1.0.4:
263 | version "1.0.4"
264 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
265 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
266 |
267 | dot-prop@^4.1.0:
268 | version "4.2.0"
269 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
270 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
271 | dependencies:
272 | is-obj "^1.0.0"
273 |
274 | duplexer3@^0.1.4:
275 | version "0.1.4"
276 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
277 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
278 |
279 | ecdsa-sig-formatter@1.0.11:
280 | version "1.0.11"
281 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
282 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
283 | dependencies:
284 | safe-buffer "^5.0.1"
285 |
286 | ee-first@1.1.1:
287 | version "1.1.1"
288 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
289 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
290 |
291 | encodeurl@~1.0.2:
292 | version "1.0.2"
293 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
294 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
295 |
296 | escape-html@~1.0.3:
297 | version "1.0.3"
298 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
299 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
300 |
301 | escape-string-regexp@^1.0.5:
302 | version "1.0.5"
303 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
304 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
305 |
306 | etag@~1.8.1:
307 | version "1.8.1"
308 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
309 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
310 |
311 | execa@^0.7.0:
312 | version "0.7.0"
313 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
314 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
315 | dependencies:
316 | cross-spawn "^5.0.1"
317 | get-stream "^3.0.0"
318 | is-stream "^1.1.0"
319 | npm-run-path "^2.0.0"
320 | p-finally "^1.0.0"
321 | signal-exit "^3.0.0"
322 | strip-eof "^1.0.0"
323 |
324 | express@^4.17.1:
325 | version "4.17.1"
326 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
327 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
328 | dependencies:
329 | accepts "~1.3.7"
330 | array-flatten "1.1.1"
331 | body-parser "1.19.0"
332 | content-disposition "0.5.3"
333 | content-type "~1.0.4"
334 | cookie "0.4.0"
335 | cookie-signature "1.0.6"
336 | debug "2.6.9"
337 | depd "~1.1.2"
338 | encodeurl "~1.0.2"
339 | escape-html "~1.0.3"
340 | etag "~1.8.1"
341 | finalhandler "~1.1.2"
342 | fresh "0.5.2"
343 | merge-descriptors "1.0.1"
344 | methods "~1.1.2"
345 | on-finished "~2.3.0"
346 | parseurl "~1.3.3"
347 | path-to-regexp "0.1.7"
348 | proxy-addr "~2.0.5"
349 | qs "6.7.0"
350 | range-parser "~1.2.1"
351 | safe-buffer "5.1.2"
352 | send "0.17.1"
353 | serve-static "1.14.1"
354 | setprototypeof "1.1.1"
355 | statuses "~1.5.0"
356 | type-is "~1.6.18"
357 | utils-merge "1.0.1"
358 | vary "~1.1.2"
359 |
360 | fill-range@^7.0.1:
361 | version "7.0.1"
362 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
363 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
364 | dependencies:
365 | to-regex-range "^5.0.1"
366 |
367 | finalhandler@~1.1.2:
368 | version "1.1.2"
369 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
370 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
371 | dependencies:
372 | debug "2.6.9"
373 | encodeurl "~1.0.2"
374 | escape-html "~1.0.3"
375 | on-finished "~2.3.0"
376 | parseurl "~1.3.3"
377 | statuses "~1.5.0"
378 | unpipe "~1.0.0"
379 |
380 | forwarded@~0.1.2:
381 | version "0.1.2"
382 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
383 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
384 |
385 | fresh@0.5.2:
386 | version "0.5.2"
387 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
388 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
389 |
390 | fsevents@~2.1.2:
391 | version "2.1.2"
392 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
393 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
394 |
395 | get-stream@^3.0.0:
396 | version "3.0.0"
397 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
398 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
399 |
400 | glob-parent@~5.1.0:
401 | version "5.1.1"
402 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
403 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
404 | dependencies:
405 | is-glob "^4.0.1"
406 |
407 | global-dirs@^0.1.0:
408 | version "0.1.1"
409 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
410 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=
411 | dependencies:
412 | ini "^1.3.4"
413 |
414 | got@^6.7.1:
415 | version "6.7.1"
416 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
417 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
418 | dependencies:
419 | create-error-class "^3.0.0"
420 | duplexer3 "^0.1.4"
421 | get-stream "^3.0.0"
422 | is-redirect "^1.0.0"
423 | is-retry-allowed "^1.0.0"
424 | is-stream "^1.0.0"
425 | lowercase-keys "^1.0.0"
426 | safe-buffer "^5.0.1"
427 | timed-out "^4.0.0"
428 | unzip-response "^2.0.1"
429 | url-parse-lax "^1.0.0"
430 |
431 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
432 | version "4.2.3"
433 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
434 | integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
435 |
436 | has-flag@^3.0.0:
437 | version "3.0.0"
438 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
439 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
440 |
441 | http-errors@1.7.2:
442 | version "1.7.2"
443 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
444 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
445 | dependencies:
446 | depd "~1.1.2"
447 | inherits "2.0.3"
448 | setprototypeof "1.1.1"
449 | statuses ">= 1.5.0 < 2"
450 | toidentifier "1.0.0"
451 |
452 | http-errors@~1.7.2:
453 | version "1.7.3"
454 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
455 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
456 | dependencies:
457 | depd "~1.1.2"
458 | inherits "2.0.4"
459 | setprototypeof "1.1.1"
460 | statuses ">= 1.5.0 < 2"
461 | toidentifier "1.0.0"
462 |
463 | iconv-lite@0.4.24:
464 | version "0.4.24"
465 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
466 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
467 | dependencies:
468 | safer-buffer ">= 2.1.2 < 3"
469 |
470 | ignore-by-default@^1.0.1:
471 | version "1.0.1"
472 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
473 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
474 |
475 | import-lazy@^2.1.0:
476 | version "2.1.0"
477 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
478 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
479 |
480 | imurmurhash@^0.1.4:
481 | version "0.1.4"
482 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
483 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
484 |
485 | inherits@2.0.3:
486 | version "2.0.3"
487 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
488 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
489 |
490 | inherits@2.0.4:
491 | version "2.0.4"
492 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
493 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
494 |
495 | ini@^1.3.4, ini@~1.3.0:
496 | version "1.3.5"
497 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
498 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
499 |
500 | ipaddr.js@1.9.1:
501 | version "1.9.1"
502 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
503 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
504 |
505 | is-binary-path@~2.1.0:
506 | version "2.1.0"
507 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
508 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
509 | dependencies:
510 | binary-extensions "^2.0.0"
511 |
512 | is-ci@^1.0.10:
513 | version "1.2.1"
514 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
515 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
516 | dependencies:
517 | ci-info "^1.5.0"
518 |
519 | is-extglob@^2.1.1:
520 | version "2.1.1"
521 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
522 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
523 |
524 | is-fullwidth-code-point@^2.0.0:
525 | version "2.0.0"
526 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
527 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
528 |
529 | is-glob@^4.0.1, is-glob@~4.0.1:
530 | version "4.0.1"
531 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
532 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
533 | dependencies:
534 | is-extglob "^2.1.1"
535 |
536 | is-installed-globally@^0.1.0:
537 | version "0.1.0"
538 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
539 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=
540 | dependencies:
541 | global-dirs "^0.1.0"
542 | is-path-inside "^1.0.0"
543 |
544 | is-npm@^1.0.0:
545 | version "1.0.0"
546 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
547 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
548 |
549 | is-number@^7.0.0:
550 | version "7.0.0"
551 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
552 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
553 |
554 | is-obj@^1.0.0:
555 | version "1.0.1"
556 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
557 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
558 |
559 | is-path-inside@^1.0.0:
560 | version "1.0.1"
561 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
562 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
563 | dependencies:
564 | path-is-inside "^1.0.1"
565 |
566 | is-redirect@^1.0.0:
567 | version "1.0.0"
568 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
569 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
570 |
571 | is-retry-allowed@^1.0.0:
572 | version "1.2.0"
573 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
574 | integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
575 |
576 | is-stream@^1.0.0, is-stream@^1.1.0:
577 | version "1.1.0"
578 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
579 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
580 |
581 | isexe@^2.0.0:
582 | version "2.0.0"
583 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
584 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
585 |
586 | jsonwebtoken@^8.5.1:
587 | version "8.5.1"
588 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
589 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
590 | dependencies:
591 | jws "^3.2.2"
592 | lodash.includes "^4.3.0"
593 | lodash.isboolean "^3.0.3"
594 | lodash.isinteger "^4.0.4"
595 | lodash.isnumber "^3.0.3"
596 | lodash.isplainobject "^4.0.6"
597 | lodash.isstring "^4.0.1"
598 | lodash.once "^4.0.0"
599 | ms "^2.1.1"
600 | semver "^5.6.0"
601 |
602 | jwa@^1.4.1:
603 | version "1.4.1"
604 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
605 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
606 | dependencies:
607 | buffer-equal-constant-time "1.0.1"
608 | ecdsa-sig-formatter "1.0.11"
609 | safe-buffer "^5.0.1"
610 |
611 | jws@^3.2.2:
612 | version "3.2.2"
613 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
614 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
615 | dependencies:
616 | jwa "^1.4.1"
617 | safe-buffer "^5.0.1"
618 |
619 | latest-version@^3.0.0:
620 | version "3.1.0"
621 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
622 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
623 | dependencies:
624 | package-json "^4.0.0"
625 |
626 | lodash.includes@^4.3.0:
627 | version "4.3.0"
628 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
629 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
630 |
631 | lodash.isboolean@^3.0.3:
632 | version "3.0.3"
633 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
634 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
635 |
636 | lodash.isinteger@^4.0.4:
637 | version "4.0.4"
638 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
639 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
640 |
641 | lodash.isnumber@^3.0.3:
642 | version "3.0.3"
643 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
644 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
645 |
646 | lodash.isplainobject@^4.0.6:
647 | version "4.0.6"
648 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
649 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
650 |
651 | lodash.isstring@^4.0.1:
652 | version "4.0.1"
653 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
654 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
655 |
656 | lodash.once@^4.0.0:
657 | version "4.1.1"
658 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
659 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
660 |
661 | lowercase-keys@^1.0.0:
662 | version "1.0.1"
663 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
664 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
665 |
666 | lru-cache@^4.0.1:
667 | version "4.1.5"
668 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
669 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
670 | dependencies:
671 | pseudomap "^1.0.2"
672 | yallist "^2.1.2"
673 |
674 | make-dir@^1.0.0:
675 | version "1.3.0"
676 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
677 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
678 | dependencies:
679 | pify "^3.0.0"
680 |
681 | media-typer@0.3.0:
682 | version "0.3.0"
683 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
684 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
685 |
686 | merge-descriptors@1.0.1:
687 | version "1.0.1"
688 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
689 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
690 |
691 | methods@~1.1.2:
692 | version "1.1.2"
693 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
694 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
695 |
696 | mime-db@1.43.0:
697 | version "1.43.0"
698 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
699 | integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
700 |
701 | mime-types@~2.1.24:
702 | version "2.1.26"
703 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
704 | integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
705 | dependencies:
706 | mime-db "1.43.0"
707 |
708 | mime@1.6.0:
709 | version "1.6.0"
710 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
711 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
712 |
713 | minimatch@^3.0.4:
714 | version "3.0.4"
715 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
716 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
717 | dependencies:
718 | brace-expansion "^1.1.7"
719 |
720 | minimist@^1.2.0:
721 | version "1.2.5"
722 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
723 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
724 |
725 | ms@2.0.0:
726 | version "2.0.0"
727 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
728 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
729 |
730 | ms@2.1.1:
731 | version "2.1.1"
732 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
733 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
734 |
735 | ms@^2.1.1:
736 | version "2.1.2"
737 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
738 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
739 |
740 | negotiator@0.6.2:
741 | version "0.6.2"
742 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
743 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
744 |
745 | nodemon@^2.0.2:
746 | version "2.0.2"
747 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.2.tgz#9c7efeaaf9b8259295a97e5d4585ba8f0cbe50b0"
748 | integrity sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==
749 | dependencies:
750 | chokidar "^3.2.2"
751 | debug "^3.2.6"
752 | ignore-by-default "^1.0.1"
753 | minimatch "^3.0.4"
754 | pstree.remy "^1.1.7"
755 | semver "^5.7.1"
756 | supports-color "^5.5.0"
757 | touch "^3.1.0"
758 | undefsafe "^2.0.2"
759 | update-notifier "^2.5.0"
760 |
761 | nopt@~1.0.10:
762 | version "1.0.10"
763 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
764 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
765 | dependencies:
766 | abbrev "1"
767 |
768 | normalize-path@^3.0.0, normalize-path@~3.0.0:
769 | version "3.0.0"
770 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
771 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
772 |
773 | npm-run-path@^2.0.0:
774 | version "2.0.2"
775 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
776 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
777 | dependencies:
778 | path-key "^2.0.0"
779 |
780 | object-assign@^4:
781 | version "4.1.1"
782 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
783 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
784 |
785 | on-finished@~2.3.0:
786 | version "2.3.0"
787 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
788 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
789 | dependencies:
790 | ee-first "1.1.1"
791 |
792 | p-finally@^1.0.0:
793 | version "1.0.0"
794 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
795 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
796 |
797 | package-json@^4.0.0:
798 | version "4.0.1"
799 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
800 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=
801 | dependencies:
802 | got "^6.7.1"
803 | registry-auth-token "^3.0.1"
804 | registry-url "^3.0.3"
805 | semver "^5.1.0"
806 |
807 | parseurl@~1.3.3:
808 | version "1.3.3"
809 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
810 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
811 |
812 | path-is-inside@^1.0.1:
813 | version "1.0.2"
814 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
815 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
816 |
817 | path-key@^2.0.0:
818 | version "2.0.1"
819 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
820 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
821 |
822 | path-to-regexp@0.1.7:
823 | version "0.1.7"
824 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
825 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
826 |
827 | picomatch@^2.0.4, picomatch@^2.0.7:
828 | version "2.2.2"
829 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
830 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
831 |
832 | pify@^3.0.0:
833 | version "3.0.0"
834 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
835 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
836 |
837 | prepend-http@^1.0.1:
838 | version "1.0.4"
839 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
840 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
841 |
842 | proxy-addr@~2.0.5:
843 | version "2.0.6"
844 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
845 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
846 | dependencies:
847 | forwarded "~0.1.2"
848 | ipaddr.js "1.9.1"
849 |
850 | pseudomap@^1.0.2:
851 | version "1.0.2"
852 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
853 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
854 |
855 | pstree.remy@^1.1.7:
856 | version "1.1.7"
857 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3"
858 | integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==
859 |
860 | qs@6.7.0:
861 | version "6.7.0"
862 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
863 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
864 |
865 | range-parser@~1.2.1:
866 | version "1.2.1"
867 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
868 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
869 |
870 | raw-body@2.4.0:
871 | version "2.4.0"
872 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
873 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
874 | dependencies:
875 | bytes "3.1.0"
876 | http-errors "1.7.2"
877 | iconv-lite "0.4.24"
878 | unpipe "1.0.0"
879 |
880 | rc@^1.0.1, rc@^1.1.6:
881 | version "1.2.8"
882 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
883 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
884 | dependencies:
885 | deep-extend "^0.6.0"
886 | ini "~1.3.0"
887 | minimist "^1.2.0"
888 | strip-json-comments "~2.0.1"
889 |
890 | readdirp@~3.3.0:
891 | version "3.3.0"
892 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17"
893 | integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
894 | dependencies:
895 | picomatch "^2.0.7"
896 |
897 | registry-auth-token@^3.0.1:
898 | version "3.4.0"
899 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e"
900 | integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==
901 | dependencies:
902 | rc "^1.1.6"
903 | safe-buffer "^5.0.1"
904 |
905 | registry-url@^3.0.3:
906 | version "3.1.0"
907 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
908 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=
909 | dependencies:
910 | rc "^1.0.1"
911 |
912 | safe-buffer@5.1.2:
913 | version "5.1.2"
914 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
915 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
916 |
917 | safe-buffer@^5.0.1:
918 | version "5.2.0"
919 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
920 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
921 |
922 | "safer-buffer@>= 2.1.2 < 3":
923 | version "2.1.2"
924 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
925 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
926 |
927 | semver-diff@^2.0.0:
928 | version "2.1.0"
929 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
930 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=
931 | dependencies:
932 | semver "^5.0.3"
933 |
934 | semver@^5.0.3, semver@^5.1.0, semver@^5.6.0, semver@^5.7.1:
935 | version "5.7.1"
936 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
937 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
938 |
939 | send@0.17.1:
940 | version "0.17.1"
941 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
942 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
943 | dependencies:
944 | debug "2.6.9"
945 | depd "~1.1.2"
946 | destroy "~1.0.4"
947 | encodeurl "~1.0.2"
948 | escape-html "~1.0.3"
949 | etag "~1.8.1"
950 | fresh "0.5.2"
951 | http-errors "~1.7.2"
952 | mime "1.6.0"
953 | ms "2.1.1"
954 | on-finished "~2.3.0"
955 | range-parser "~1.2.1"
956 | statuses "~1.5.0"
957 |
958 | serve-static@1.14.1:
959 | version "1.14.1"
960 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
961 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
962 | dependencies:
963 | encodeurl "~1.0.2"
964 | escape-html "~1.0.3"
965 | parseurl "~1.3.3"
966 | send "0.17.1"
967 |
968 | setprototypeof@1.1.1:
969 | version "1.1.1"
970 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
971 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
972 |
973 | shebang-command@^1.2.0:
974 | version "1.2.0"
975 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
976 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
977 | dependencies:
978 | shebang-regex "^1.0.0"
979 |
980 | shebang-regex@^1.0.0:
981 | version "1.0.0"
982 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
983 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
984 |
985 | signal-exit@^3.0.0, signal-exit@^3.0.2:
986 | version "3.0.3"
987 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
988 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
989 |
990 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
991 | version "1.5.0"
992 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
993 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
994 |
995 | string-width@^2.0.0, string-width@^2.1.1:
996 | version "2.1.1"
997 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
998 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
999 | dependencies:
1000 | is-fullwidth-code-point "^2.0.0"
1001 | strip-ansi "^4.0.0"
1002 |
1003 | strip-ansi@^4.0.0:
1004 | version "4.0.0"
1005 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1006 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
1007 | dependencies:
1008 | ansi-regex "^3.0.0"
1009 |
1010 | strip-eof@^1.0.0:
1011 | version "1.0.0"
1012 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
1013 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
1014 |
1015 | strip-json-comments@~2.0.1:
1016 | version "2.0.1"
1017 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1018 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1019 |
1020 | supports-color@^5.3.0, supports-color@^5.5.0:
1021 | version "5.5.0"
1022 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1023 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1024 | dependencies:
1025 | has-flag "^3.0.0"
1026 |
1027 | term-size@^1.2.0:
1028 | version "1.2.0"
1029 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
1030 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
1031 | dependencies:
1032 | execa "^0.7.0"
1033 |
1034 | timed-out@^4.0.0:
1035 | version "4.0.1"
1036 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
1037 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
1038 |
1039 | to-regex-range@^5.0.1:
1040 | version "5.0.1"
1041 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1042 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1043 | dependencies:
1044 | is-number "^7.0.0"
1045 |
1046 | toidentifier@1.0.0:
1047 | version "1.0.0"
1048 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1049 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1050 |
1051 | touch@^3.1.0:
1052 | version "3.1.0"
1053 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
1054 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
1055 | dependencies:
1056 | nopt "~1.0.10"
1057 |
1058 | type-is@~1.6.17, type-is@~1.6.18:
1059 | version "1.6.18"
1060 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
1061 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
1062 | dependencies:
1063 | media-typer "0.3.0"
1064 | mime-types "~2.1.24"
1065 |
1066 | undefsafe@^2.0.2:
1067 | version "2.0.3"
1068 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
1069 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
1070 | dependencies:
1071 | debug "^2.2.0"
1072 |
1073 | unique-string@^1.0.0:
1074 | version "1.0.0"
1075 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
1076 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
1077 | dependencies:
1078 | crypto-random-string "^1.0.0"
1079 |
1080 | unpipe@1.0.0, unpipe@~1.0.0:
1081 | version "1.0.0"
1082 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1083 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
1084 |
1085 | unzip-response@^2.0.1:
1086 | version "2.0.1"
1087 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
1088 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
1089 |
1090 | update-notifier@^2.5.0:
1091 | version "2.5.0"
1092 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
1093 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
1094 | dependencies:
1095 | boxen "^1.2.1"
1096 | chalk "^2.0.1"
1097 | configstore "^3.0.0"
1098 | import-lazy "^2.1.0"
1099 | is-ci "^1.0.10"
1100 | is-installed-globally "^0.1.0"
1101 | is-npm "^1.0.0"
1102 | latest-version "^3.0.0"
1103 | semver-diff "^2.0.0"
1104 | xdg-basedir "^3.0.0"
1105 |
1106 | url-parse-lax@^1.0.0:
1107 | version "1.0.0"
1108 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
1109 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
1110 | dependencies:
1111 | prepend-http "^1.0.1"
1112 |
1113 | utils-merge@1.0.1:
1114 | version "1.0.1"
1115 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1116 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1117 |
1118 | vary@^1, vary@~1.1.2:
1119 | version "1.1.2"
1120 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1121 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1122 |
1123 | which@^1.2.9:
1124 | version "1.3.1"
1125 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1126 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1127 | dependencies:
1128 | isexe "^2.0.0"
1129 |
1130 | widest-line@^2.0.0:
1131 | version "2.0.1"
1132 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
1133 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==
1134 | dependencies:
1135 | string-width "^2.1.1"
1136 |
1137 | write-file-atomic@^2.0.0:
1138 | version "2.4.3"
1139 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
1140 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
1141 | dependencies:
1142 | graceful-fs "^4.1.11"
1143 | imurmurhash "^0.1.4"
1144 | signal-exit "^3.0.2"
1145 |
1146 | xdg-basedir@^3.0.0:
1147 | version "3.0.0"
1148 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
1149 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
1150 |
1151 | yallist@^2.1.2:
1152 | version "2.1.2"
1153 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1154 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
1155 |
--------------------------------------------------------------------------------
/final/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maateusilva/youtube-context-api/e22741d2f74bf0e99a983133ba35293d3cfd89bc/final/.gitkeep
--------------------------------------------------------------------------------
/final/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.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `yarn test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `yarn build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `yarn eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
46 | ### Code Splitting
47 |
48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
49 |
50 | ### Analyzing the Bundle Size
51 |
52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
53 |
54 | ### Making a Progressive Web App
55 |
56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
57 |
58 | ### Advanced Configuration
59 |
60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
61 |
62 | ### Deployment
63 |
64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
65 |
66 | ### `yarn build` fails to minify
67 |
68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
69 |
--------------------------------------------------------------------------------
/final/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fe",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^4.2.4",
7 | "@testing-library/react": "^9.3.2",
8 | "@testing-library/user-event": "^7.1.2",
9 | "axios": "^0.19.2",
10 | "history": "^4.10.1",
11 | "react": "^16.13.1",
12 | "react-dom": "^16.13.1",
13 | "react-router-dom": "^5.1.2",
14 | "react-scripts": "3.4.1"
15 | },
16 | "scripts": {
17 | "start": "react-scripts start",
18 | "build": "react-scripts build",
19 | "test": "react-scripts test",
20 | "eject": "react-scripts eject"
21 | },
22 | "eslintConfig": {
23 | "extends": "react-app"
24 | },
25 | "browserslist": {
26 | "production": [
27 | ">0.2%",
28 | "not dead",
29 | "not op_mini all"
30 | ],
31 | "development": [
32 | "last 1 chrome version",
33 | "last 1 firefox version",
34 | "last 1 safari version"
35 | ]
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/final/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maateusilva/youtube-context-api/e22741d2f74bf0e99a983133ba35293d3cfd89bc/final/public/favicon.ico
--------------------------------------------------------------------------------
/final/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |