├── .gitignore
├── README.md
├── app.js
├── controllers
└── PatientController.js
├── data.json
├── middlewares
├── corona.js
└── validate.js
├── package.json
├── routes.js
├── server.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Express Tutorial
6 |
7 | A Rest API that register patients and detect Corona symphtoms
8 |
9 |
10 |
11 |
12 | About the project |
13 | Goals |
14 | Installation |
15 | Routes |
16 | Licence
17 |
18 |
19 |
20 | ## :rocket: About the project
21 | An API Rest made with Express to register patients and detect Corona symptoms. The file system API provided by Node was used to persist patients data, since the goal of the tutorial was to focus on Express Fundamentals and not to set up a database.
22 |
23 |
24 | ## :ballot_box_with_check: Goals
25 | Understand how to create a server with Express, setting the routes, separating the entity operations with controllers and creating middlewares to do configurations or logics between two points.
26 |
27 |
28 | ## :checkered_flag: Installation
29 | First of all, make sure that you have Node.js installed on your machine.
30 | Choose a package manager (NPM or Yarn)
31 |
32 |
33 |
34 | Now, to install the dependencies
35 |
36 | ```
37 | yarn install
38 | ```
39 |
40 | To start the application
41 | ```
42 | yarn dev
43 |
44 | ```
45 |
46 | ## :incoming_envelope: Routes
47 |
48 | ## Status Codes
49 |
50 | This API returns the following status codes:
51 |
52 | | Status Code | Description |
53 | | :--- | :--- |
54 | | 200 | `OK` |
55 | | 401 | `UNAUTHORIZED` |
56 | | 404 | `NOT FOUND` |
57 | | 500 | `INTERNAL SERVER ERROR` |
58 |
59 | ## :memo: Licence
60 |
61 | MIT Licence. See the file [LICENSE](LICENSE.md) for more details.
62 |
63 | ---
64 |
65 | Made with ♥ by Laura :wave: [See my linkedin!](https://www.linkedin.com/in/laurabeatris/)
66 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | const express = require('express')
2 | const routes = require('./routes')
3 |
4 | class App {
5 | constructor () {
6 | this.server = express()
7 | this.middlewares()
8 | this.routes()
9 | }
10 |
11 | routes () {
12 | this.server.use(routes)
13 | }
14 |
15 | middlewares () {
16 | this.server.use(express.json())
17 | }
18 | }
19 |
20 | module.exports = new App().server
--------------------------------------------------------------------------------
/controllers/PatientController.js:
--------------------------------------------------------------------------------
1 | const data = require('../data.json')
2 | const fs = require('fs')
3 |
4 | class PatientController {
5 | store (req, res) {
6 | const { name, age, weight, height, symptoms } = req.body;
7 | const id = data.patients.length + 1;
8 |
9 | data.patients.push({id, name, age, weight, height, symptoms })
10 |
11 | // Registering the patient
12 | fs.writeFile("data.json", JSON.stringify(data, null, 2), (error) => {
13 | if (error) return res.status(error.status).json({
14 | error: {
15 | message: "Something when wrong while registering the patient",
16 | name: error.name
17 | }
18 | })
19 |
20 | return res.json({id, name, age, weight, height, symptoms })
21 | })
22 | }
23 |
24 | update (req, res) {
25 | const patientFound = data.patients.find(patient => patient.id == req.params.id)
26 | if (!patientFound) return res.status(404).json({error: { message: "Patient not found"}})
27 |
28 | const patient = {
29 | ...patientFound,
30 | ...req.body
31 | }
32 |
33 | data.patients[patient.id - 1] = patient
34 |
35 | return res.json(patient)
36 | }
37 |
38 | index (req, res) {
39 | return res.json(data.patients)
40 | }
41 |
42 | show (req, res) {
43 | const patientFound = data.patients.find(patient => patient.id == req.params.id)
44 | if (!patientFound) return res.status(404).json({error: { message: "Patient not found"}})
45 | return res.json(patientFound)
46 | }
47 |
48 | delete (req, res) {
49 | const filteredPatients = data.patients.filter(patient => patient.id != req.params.id)
50 | data.patients = filteredPatients
51 |
52 | return res.json(data.patients)
53 | }
54 | }
55 |
56 | module.exports = new PatientController()
--------------------------------------------------------------------------------
/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "patients": [
3 | {
4 | "id": 1,
5 | "name": "Laura Beatris",
6 | "age": 17,
7 | "weight": 55,
8 | "height": 1.51,
9 | "symptoms": [
10 | "fever",
11 | "cough"
12 | ]
13 | },
14 | {
15 | "id": 2,
16 | "name": "Junior",
17 | "age": 17,
18 | "weight": 55,
19 | "height": 1.51,
20 | "symptoms": [
21 | "fever"
22 | ]
23 | },
24 | {
25 | "id": 3,
26 | "name": "Luis",
27 | "age": 17,
28 | "weight": 100,
29 | "height": 1.51,
30 | "symptoms": [
31 | "fever"
32 | ]
33 | },
34 | {
35 | "id": 4,
36 | "name": "Adriano",
37 | "age": 80,
38 | "weight": 100,
39 | "height": 1.51,
40 | "symptoms": [
41 | "fever",
42 | "cough"
43 | ]
44 | },
45 | {
46 | "id": 5,
47 | "name": "Adriano",
48 | "age": "",
49 | "weight": 100,
50 | "height": 1.51,
51 | "symptoms": [
52 | "fever",
53 | "cough"
54 | ]
55 | },
56 | {
57 | "id": 6,
58 | "name": "Adriano Silveira",
59 | "age": 80,
60 | "weight": 100,
61 | "height": 1.51,
62 | "symptoms": [
63 | "fever",
64 | "cough"
65 | ]
66 | }
67 | ]
68 | }
--------------------------------------------------------------------------------
/middlewares/corona.js:
--------------------------------------------------------------------------------
1 | module.exports = (req, res, next) => {
2 | const { symptoms } = req.body
3 |
4 | if (
5 | symptoms.includes("fever") &&
6 | symptoms.includes("cough") &&
7 | symptoms.includes("muscle pain")
8 | ) {
9 | return res.status(401).json({message: `The patient ${req.body.name} has corona virus`})
10 | } else {
11 | return next()
12 | }
13 | }
--------------------------------------------------------------------------------
/middlewares/validate.js:
--------------------------------------------------------------------------------
1 | module.exports = (req, res, next) => {
2 | const dataKeys = Object.keys(req.body)
3 | dataKeys.forEach(key => {
4 | if (!req.body[key]) return res.json({error: `The field ${key} has an invalid value`})
5 | })
6 |
7 | return next()
8 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "express-tutorial",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "repository": "git@github.com:LauraBeatris/express-tutorial.git",
6 | "author": "LauraBeatris ",
7 | "license": "MIT",
8 | "dependencies": {
9 | "express": "^4.17.1"
10 | },
11 | "devDependencies": {
12 | "nodemon": "^2.0.2"
13 | },
14 | "scripts": {
15 | "dev": "nodemon server.js"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/routes.js:
--------------------------------------------------------------------------------
1 | const express = require("express");
2 | const router = express.Router();
3 |
4 | /* 1 - Criação de um servidor Express */
5 | /* 2 - Como configurar as rotas do app */
6 | /* 3 - Métodos http e operações CRUD */
7 | /* 4 - Separação de operaçôes por meio de Controllers */
8 | /* 5 - Criação de middlewares para executar lógicas */
9 |
10 | /* Controllers */
11 | const PatientController = require('./controllers/PatientController')
12 |
13 | /* Middlewares */
14 | const checkCorona = require('./middlewares/corona')
15 | const validateBody = require('./middlewares/validate')
16 |
17 | router.get("/", (_, res) => res.json({message: "Hello World"}));
18 |
19 | router.use(validateBody)
20 |
21 | // Creating patient - POST
22 | router.post('/patients', checkCorona, PatientController.store)
23 |
24 | // Read - Listing patients - GET (INDEX)
25 | router.get('/patients', PatientController.index)
26 |
27 | // Read - Showing a patient - GET (SHOW)
28 | router.get('/patients/:id', PatientController.show)
29 |
30 | // Update - Updating a patient - PUT
31 | router.put('/patients/:id', PatientController.update)
32 |
33 | // Delete - Deleting a patient - DELETE
34 | router.delete('/patients/:id', PatientController.delete)
35 |
36 | module.exports = router;
37 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | const app = require('./app')
2 |
3 | app.listen(3000)
--------------------------------------------------------------------------------
/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 | bytes@3.1.0:
105 | version "3.1.0"
106 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
107 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
108 |
109 | camelcase@^4.0.0:
110 | version "4.1.0"
111 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
112 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
113 |
114 | capture-stack-trace@^1.0.0:
115 | version "1.0.1"
116 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
117 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
118 |
119 | chalk@^2.0.1:
120 | version "2.4.2"
121 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
122 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
123 | dependencies:
124 | ansi-styles "^3.2.1"
125 | escape-string-regexp "^1.0.5"
126 | supports-color "^5.3.0"
127 |
128 | chokidar@^3.2.2:
129 | version "3.3.1"
130 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
131 | integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
132 | dependencies:
133 | anymatch "~3.1.1"
134 | braces "~3.0.2"
135 | glob-parent "~5.1.0"
136 | is-binary-path "~2.1.0"
137 | is-glob "~4.0.1"
138 | normalize-path "~3.0.0"
139 | readdirp "~3.3.0"
140 | optionalDependencies:
141 | fsevents "~2.1.2"
142 |
143 | ci-info@^1.5.0:
144 | version "1.6.0"
145 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
146 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
147 |
148 | cli-boxes@^1.0.0:
149 | version "1.0.0"
150 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
151 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
152 |
153 | color-convert@^1.9.0:
154 | version "1.9.3"
155 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
156 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
157 | dependencies:
158 | color-name "1.1.3"
159 |
160 | color-name@1.1.3:
161 | version "1.1.3"
162 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
163 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
164 |
165 | concat-map@0.0.1:
166 | version "0.0.1"
167 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
168 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
169 |
170 | configstore@^3.0.0:
171 | version "3.1.2"
172 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
173 | integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==
174 | dependencies:
175 | dot-prop "^4.1.0"
176 | graceful-fs "^4.1.2"
177 | make-dir "^1.0.0"
178 | unique-string "^1.0.0"
179 | write-file-atomic "^2.0.0"
180 | xdg-basedir "^3.0.0"
181 |
182 | content-disposition@0.5.3:
183 | version "0.5.3"
184 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
185 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
186 | dependencies:
187 | safe-buffer "5.1.2"
188 |
189 | content-type@~1.0.4:
190 | version "1.0.4"
191 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
192 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
193 |
194 | cookie-signature@1.0.6:
195 | version "1.0.6"
196 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
197 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
198 |
199 | cookie@0.4.0:
200 | version "0.4.0"
201 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
202 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
203 |
204 | create-error-class@^3.0.0:
205 | version "3.0.2"
206 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
207 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
208 | dependencies:
209 | capture-stack-trace "^1.0.0"
210 |
211 | cross-spawn@^5.0.1:
212 | version "5.1.0"
213 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
214 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
215 | dependencies:
216 | lru-cache "^4.0.1"
217 | shebang-command "^1.2.0"
218 | which "^1.2.9"
219 |
220 | crypto-random-string@^1.0.0:
221 | version "1.0.0"
222 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
223 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
224 |
225 | debug@2.6.9, debug@^2.2.0:
226 | version "2.6.9"
227 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
228 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
229 | dependencies:
230 | ms "2.0.0"
231 |
232 | debug@^3.2.6:
233 | version "3.2.6"
234 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
235 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
236 | dependencies:
237 | ms "^2.1.1"
238 |
239 | deep-extend@^0.6.0:
240 | version "0.6.0"
241 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
242 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
243 |
244 | depd@~1.1.2:
245 | version "1.1.2"
246 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
247 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
248 |
249 | destroy@~1.0.4:
250 | version "1.0.4"
251 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
252 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
253 |
254 | dot-prop@^4.1.0:
255 | version "4.2.0"
256 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
257 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
258 | dependencies:
259 | is-obj "^1.0.0"
260 |
261 | duplexer3@^0.1.4:
262 | version "0.1.4"
263 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
264 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
265 |
266 | ee-first@1.1.1:
267 | version "1.1.1"
268 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
269 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
270 |
271 | encodeurl@~1.0.2:
272 | version "1.0.2"
273 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
274 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
275 |
276 | escape-html@~1.0.3:
277 | version "1.0.3"
278 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
279 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
280 |
281 | escape-string-regexp@^1.0.5:
282 | version "1.0.5"
283 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
284 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
285 |
286 | etag@~1.8.1:
287 | version "1.8.1"
288 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
289 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
290 |
291 | execa@^0.7.0:
292 | version "0.7.0"
293 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
294 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
295 | dependencies:
296 | cross-spawn "^5.0.1"
297 | get-stream "^3.0.0"
298 | is-stream "^1.1.0"
299 | npm-run-path "^2.0.0"
300 | p-finally "^1.0.0"
301 | signal-exit "^3.0.0"
302 | strip-eof "^1.0.0"
303 |
304 | express@^4.17.1:
305 | version "4.17.1"
306 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
307 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
308 | dependencies:
309 | accepts "~1.3.7"
310 | array-flatten "1.1.1"
311 | body-parser "1.19.0"
312 | content-disposition "0.5.3"
313 | content-type "~1.0.4"
314 | cookie "0.4.0"
315 | cookie-signature "1.0.6"
316 | debug "2.6.9"
317 | depd "~1.1.2"
318 | encodeurl "~1.0.2"
319 | escape-html "~1.0.3"
320 | etag "~1.8.1"
321 | finalhandler "~1.1.2"
322 | fresh "0.5.2"
323 | merge-descriptors "1.0.1"
324 | methods "~1.1.2"
325 | on-finished "~2.3.0"
326 | parseurl "~1.3.3"
327 | path-to-regexp "0.1.7"
328 | proxy-addr "~2.0.5"
329 | qs "6.7.0"
330 | range-parser "~1.2.1"
331 | safe-buffer "5.1.2"
332 | send "0.17.1"
333 | serve-static "1.14.1"
334 | setprototypeof "1.1.1"
335 | statuses "~1.5.0"
336 | type-is "~1.6.18"
337 | utils-merge "1.0.1"
338 | vary "~1.1.2"
339 |
340 | fill-range@^7.0.1:
341 | version "7.0.1"
342 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
343 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
344 | dependencies:
345 | to-regex-range "^5.0.1"
346 |
347 | finalhandler@~1.1.2:
348 | version "1.1.2"
349 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
350 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
351 | dependencies:
352 | debug "2.6.9"
353 | encodeurl "~1.0.2"
354 | escape-html "~1.0.3"
355 | on-finished "~2.3.0"
356 | parseurl "~1.3.3"
357 | statuses "~1.5.0"
358 | unpipe "~1.0.0"
359 |
360 | forwarded@~0.1.2:
361 | version "0.1.2"
362 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
363 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
364 |
365 | fresh@0.5.2:
366 | version "0.5.2"
367 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
368 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
369 |
370 | fsevents@~2.1.2:
371 | version "2.1.2"
372 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
373 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
374 |
375 | get-stream@^3.0.0:
376 | version "3.0.0"
377 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
378 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
379 |
380 | glob-parent@~5.1.0:
381 | version "5.1.0"
382 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
383 | integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
384 | dependencies:
385 | is-glob "^4.0.1"
386 |
387 | global-dirs@^0.1.0:
388 | version "0.1.1"
389 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
390 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=
391 | dependencies:
392 | ini "^1.3.4"
393 |
394 | got@^6.7.1:
395 | version "6.7.1"
396 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
397 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
398 | dependencies:
399 | create-error-class "^3.0.0"
400 | duplexer3 "^0.1.4"
401 | get-stream "^3.0.0"
402 | is-redirect "^1.0.0"
403 | is-retry-allowed "^1.0.0"
404 | is-stream "^1.0.0"
405 | lowercase-keys "^1.0.0"
406 | safe-buffer "^5.0.1"
407 | timed-out "^4.0.0"
408 | unzip-response "^2.0.1"
409 | url-parse-lax "^1.0.0"
410 |
411 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
412 | version "4.2.3"
413 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
414 | integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
415 |
416 | has-flag@^3.0.0:
417 | version "3.0.0"
418 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
419 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
420 |
421 | http-errors@1.7.2:
422 | version "1.7.2"
423 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
424 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
425 | dependencies:
426 | depd "~1.1.2"
427 | inherits "2.0.3"
428 | setprototypeof "1.1.1"
429 | statuses ">= 1.5.0 < 2"
430 | toidentifier "1.0.0"
431 |
432 | http-errors@~1.7.2:
433 | version "1.7.3"
434 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
435 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
436 | dependencies:
437 | depd "~1.1.2"
438 | inherits "2.0.4"
439 | setprototypeof "1.1.1"
440 | statuses ">= 1.5.0 < 2"
441 | toidentifier "1.0.0"
442 |
443 | iconv-lite@0.4.24:
444 | version "0.4.24"
445 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
446 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
447 | dependencies:
448 | safer-buffer ">= 2.1.2 < 3"
449 |
450 | ignore-by-default@^1.0.1:
451 | version "1.0.1"
452 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
453 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
454 |
455 | import-lazy@^2.1.0:
456 | version "2.1.0"
457 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
458 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
459 |
460 | imurmurhash@^0.1.4:
461 | version "0.1.4"
462 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
463 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
464 |
465 | inherits@2.0.3:
466 | version "2.0.3"
467 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
468 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
469 |
470 | inherits@2.0.4:
471 | version "2.0.4"
472 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
473 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
474 |
475 | ini@^1.3.4, ini@~1.3.0:
476 | version "1.3.5"
477 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
478 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
479 |
480 | ipaddr.js@1.9.1:
481 | version "1.9.1"
482 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
483 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
484 |
485 | is-binary-path@~2.1.0:
486 | version "2.1.0"
487 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
488 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
489 | dependencies:
490 | binary-extensions "^2.0.0"
491 |
492 | is-ci@^1.0.10:
493 | version "1.2.1"
494 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
495 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
496 | dependencies:
497 | ci-info "^1.5.0"
498 |
499 | is-extglob@^2.1.1:
500 | version "2.1.1"
501 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
502 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
503 |
504 | is-fullwidth-code-point@^2.0.0:
505 | version "2.0.0"
506 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
507 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
508 |
509 | is-glob@^4.0.1, is-glob@~4.0.1:
510 | version "4.0.1"
511 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
512 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
513 | dependencies:
514 | is-extglob "^2.1.1"
515 |
516 | is-installed-globally@^0.1.0:
517 | version "0.1.0"
518 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
519 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=
520 | dependencies:
521 | global-dirs "^0.1.0"
522 | is-path-inside "^1.0.0"
523 |
524 | is-npm@^1.0.0:
525 | version "1.0.0"
526 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
527 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
528 |
529 | is-number@^7.0.0:
530 | version "7.0.0"
531 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
532 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
533 |
534 | is-obj@^1.0.0:
535 | version "1.0.1"
536 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
537 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
538 |
539 | is-path-inside@^1.0.0:
540 | version "1.0.1"
541 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
542 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
543 | dependencies:
544 | path-is-inside "^1.0.1"
545 |
546 | is-redirect@^1.0.0:
547 | version "1.0.0"
548 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
549 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
550 |
551 | is-retry-allowed@^1.0.0:
552 | version "1.2.0"
553 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
554 | integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
555 |
556 | is-stream@^1.0.0, is-stream@^1.1.0:
557 | version "1.1.0"
558 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
559 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
560 |
561 | isexe@^2.0.0:
562 | version "2.0.0"
563 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
564 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
565 |
566 | latest-version@^3.0.0:
567 | version "3.1.0"
568 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
569 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
570 | dependencies:
571 | package-json "^4.0.0"
572 |
573 | lowercase-keys@^1.0.0:
574 | version "1.0.1"
575 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
576 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
577 |
578 | lru-cache@^4.0.1:
579 | version "4.1.5"
580 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
581 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
582 | dependencies:
583 | pseudomap "^1.0.2"
584 | yallist "^2.1.2"
585 |
586 | make-dir@^1.0.0:
587 | version "1.3.0"
588 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
589 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
590 | dependencies:
591 | pify "^3.0.0"
592 |
593 | media-typer@0.3.0:
594 | version "0.3.0"
595 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
596 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
597 |
598 | merge-descriptors@1.0.1:
599 | version "1.0.1"
600 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
601 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
602 |
603 | methods@~1.1.2:
604 | version "1.1.2"
605 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
606 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
607 |
608 | mime-db@1.43.0:
609 | version "1.43.0"
610 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
611 | integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
612 |
613 | mime-types@~2.1.24:
614 | version "2.1.26"
615 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
616 | integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
617 | dependencies:
618 | mime-db "1.43.0"
619 |
620 | mime@1.6.0:
621 | version "1.6.0"
622 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
623 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
624 |
625 | minimatch@^3.0.4:
626 | version "3.0.4"
627 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
628 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
629 | dependencies:
630 | brace-expansion "^1.1.7"
631 |
632 | minimist@^1.2.0:
633 | version "1.2.5"
634 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
635 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
636 |
637 | ms@2.0.0:
638 | version "2.0.0"
639 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
640 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
641 |
642 | ms@2.1.1:
643 | version "2.1.1"
644 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
645 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
646 |
647 | ms@^2.1.1:
648 | version "2.1.2"
649 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
650 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
651 |
652 | negotiator@0.6.2:
653 | version "0.6.2"
654 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
655 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
656 |
657 | nodemon@^2.0.2:
658 | version "2.0.2"
659 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.2.tgz#9c7efeaaf9b8259295a97e5d4585ba8f0cbe50b0"
660 | integrity sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==
661 | dependencies:
662 | chokidar "^3.2.2"
663 | debug "^3.2.6"
664 | ignore-by-default "^1.0.1"
665 | minimatch "^3.0.4"
666 | pstree.remy "^1.1.7"
667 | semver "^5.7.1"
668 | supports-color "^5.5.0"
669 | touch "^3.1.0"
670 | undefsafe "^2.0.2"
671 | update-notifier "^2.5.0"
672 |
673 | nopt@~1.0.10:
674 | version "1.0.10"
675 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
676 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
677 | dependencies:
678 | abbrev "1"
679 |
680 | normalize-path@^3.0.0, normalize-path@~3.0.0:
681 | version "3.0.0"
682 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
683 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
684 |
685 | npm-run-path@^2.0.0:
686 | version "2.0.2"
687 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
688 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
689 | dependencies:
690 | path-key "^2.0.0"
691 |
692 | on-finished@~2.3.0:
693 | version "2.3.0"
694 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
695 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
696 | dependencies:
697 | ee-first "1.1.1"
698 |
699 | p-finally@^1.0.0:
700 | version "1.0.0"
701 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
702 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
703 |
704 | package-json@^4.0.0:
705 | version "4.0.1"
706 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
707 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=
708 | dependencies:
709 | got "^6.7.1"
710 | registry-auth-token "^3.0.1"
711 | registry-url "^3.0.3"
712 | semver "^5.1.0"
713 |
714 | parseurl@~1.3.3:
715 | version "1.3.3"
716 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
717 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
718 |
719 | path-is-inside@^1.0.1:
720 | version "1.0.2"
721 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
722 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
723 |
724 | path-key@^2.0.0:
725 | version "2.0.1"
726 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
727 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
728 |
729 | path-to-regexp@0.1.7:
730 | version "0.1.7"
731 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
732 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
733 |
734 | picomatch@^2.0.4, picomatch@^2.0.7:
735 | version "2.2.1"
736 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
737 | integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
738 |
739 | pify@^3.0.0:
740 | version "3.0.0"
741 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
742 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
743 |
744 | prepend-http@^1.0.1:
745 | version "1.0.4"
746 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
747 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
748 |
749 | proxy-addr@~2.0.5:
750 | version "2.0.6"
751 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
752 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
753 | dependencies:
754 | forwarded "~0.1.2"
755 | ipaddr.js "1.9.1"
756 |
757 | pseudomap@^1.0.2:
758 | version "1.0.2"
759 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
760 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
761 |
762 | pstree.remy@^1.1.7:
763 | version "1.1.7"
764 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3"
765 | integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==
766 |
767 | qs@6.7.0:
768 | version "6.7.0"
769 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
770 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
771 |
772 | range-parser@~1.2.1:
773 | version "1.2.1"
774 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
775 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
776 |
777 | raw-body@2.4.0:
778 | version "2.4.0"
779 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
780 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
781 | dependencies:
782 | bytes "3.1.0"
783 | http-errors "1.7.2"
784 | iconv-lite "0.4.24"
785 | unpipe "1.0.0"
786 |
787 | rc@^1.0.1, rc@^1.1.6:
788 | version "1.2.8"
789 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
790 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
791 | dependencies:
792 | deep-extend "^0.6.0"
793 | ini "~1.3.0"
794 | minimist "^1.2.0"
795 | strip-json-comments "~2.0.1"
796 |
797 | readdirp@~3.3.0:
798 | version "3.3.0"
799 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17"
800 | integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
801 | dependencies:
802 | picomatch "^2.0.7"
803 |
804 | registry-auth-token@^3.0.1:
805 | version "3.4.0"
806 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e"
807 | integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==
808 | dependencies:
809 | rc "^1.1.6"
810 | safe-buffer "^5.0.1"
811 |
812 | registry-url@^3.0.3:
813 | version "3.1.0"
814 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
815 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=
816 | dependencies:
817 | rc "^1.0.1"
818 |
819 | safe-buffer@5.1.2:
820 | version "5.1.2"
821 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
822 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
823 |
824 | safe-buffer@^5.0.1:
825 | version "5.2.0"
826 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
827 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
828 |
829 | "safer-buffer@>= 2.1.2 < 3":
830 | version "2.1.2"
831 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
832 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
833 |
834 | semver-diff@^2.0.0:
835 | version "2.1.0"
836 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
837 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=
838 | dependencies:
839 | semver "^5.0.3"
840 |
841 | semver@^5.0.3, semver@^5.1.0, semver@^5.7.1:
842 | version "5.7.1"
843 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
844 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
845 |
846 | send@0.17.1:
847 | version "0.17.1"
848 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
849 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
850 | dependencies:
851 | debug "2.6.9"
852 | depd "~1.1.2"
853 | destroy "~1.0.4"
854 | encodeurl "~1.0.2"
855 | escape-html "~1.0.3"
856 | etag "~1.8.1"
857 | fresh "0.5.2"
858 | http-errors "~1.7.2"
859 | mime "1.6.0"
860 | ms "2.1.1"
861 | on-finished "~2.3.0"
862 | range-parser "~1.2.1"
863 | statuses "~1.5.0"
864 |
865 | serve-static@1.14.1:
866 | version "1.14.1"
867 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
868 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
869 | dependencies:
870 | encodeurl "~1.0.2"
871 | escape-html "~1.0.3"
872 | parseurl "~1.3.3"
873 | send "0.17.1"
874 |
875 | setprototypeof@1.1.1:
876 | version "1.1.1"
877 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
878 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
879 |
880 | shebang-command@^1.2.0:
881 | version "1.2.0"
882 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
883 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
884 | dependencies:
885 | shebang-regex "^1.0.0"
886 |
887 | shebang-regex@^1.0.0:
888 | version "1.0.0"
889 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
890 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
891 |
892 | signal-exit@^3.0.0, signal-exit@^3.0.2:
893 | version "3.0.2"
894 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
895 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
896 |
897 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
898 | version "1.5.0"
899 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
900 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
901 |
902 | string-width@^2.0.0, string-width@^2.1.1:
903 | version "2.1.1"
904 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
905 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
906 | dependencies:
907 | is-fullwidth-code-point "^2.0.0"
908 | strip-ansi "^4.0.0"
909 |
910 | strip-ansi@^4.0.0:
911 | version "4.0.0"
912 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
913 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
914 | dependencies:
915 | ansi-regex "^3.0.0"
916 |
917 | strip-eof@^1.0.0:
918 | version "1.0.0"
919 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
920 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
921 |
922 | strip-json-comments@~2.0.1:
923 | version "2.0.1"
924 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
925 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
926 |
927 | supports-color@^5.3.0, supports-color@^5.5.0:
928 | version "5.5.0"
929 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
930 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
931 | dependencies:
932 | has-flag "^3.0.0"
933 |
934 | term-size@^1.2.0:
935 | version "1.2.0"
936 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
937 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
938 | dependencies:
939 | execa "^0.7.0"
940 |
941 | timed-out@^4.0.0:
942 | version "4.0.1"
943 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
944 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
945 |
946 | to-regex-range@^5.0.1:
947 | version "5.0.1"
948 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
949 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
950 | dependencies:
951 | is-number "^7.0.0"
952 |
953 | toidentifier@1.0.0:
954 | version "1.0.0"
955 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
956 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
957 |
958 | touch@^3.1.0:
959 | version "3.1.0"
960 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
961 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
962 | dependencies:
963 | nopt "~1.0.10"
964 |
965 | type-is@~1.6.17, type-is@~1.6.18:
966 | version "1.6.18"
967 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
968 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
969 | dependencies:
970 | media-typer "0.3.0"
971 | mime-types "~2.1.24"
972 |
973 | undefsafe@^2.0.2:
974 | version "2.0.3"
975 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
976 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
977 | dependencies:
978 | debug "^2.2.0"
979 |
980 | unique-string@^1.0.0:
981 | version "1.0.0"
982 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
983 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
984 | dependencies:
985 | crypto-random-string "^1.0.0"
986 |
987 | unpipe@1.0.0, unpipe@~1.0.0:
988 | version "1.0.0"
989 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
990 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
991 |
992 | unzip-response@^2.0.1:
993 | version "2.0.1"
994 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
995 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
996 |
997 | update-notifier@^2.5.0:
998 | version "2.5.0"
999 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
1000 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
1001 | dependencies:
1002 | boxen "^1.2.1"
1003 | chalk "^2.0.1"
1004 | configstore "^3.0.0"
1005 | import-lazy "^2.1.0"
1006 | is-ci "^1.0.10"
1007 | is-installed-globally "^0.1.0"
1008 | is-npm "^1.0.0"
1009 | latest-version "^3.0.0"
1010 | semver-diff "^2.0.0"
1011 | xdg-basedir "^3.0.0"
1012 |
1013 | url-parse-lax@^1.0.0:
1014 | version "1.0.0"
1015 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
1016 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
1017 | dependencies:
1018 | prepend-http "^1.0.1"
1019 |
1020 | utils-merge@1.0.1:
1021 | version "1.0.1"
1022 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1023 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1024 |
1025 | vary@~1.1.2:
1026 | version "1.1.2"
1027 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1028 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1029 |
1030 | which@^1.2.9:
1031 | version "1.3.1"
1032 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1033 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1034 | dependencies:
1035 | isexe "^2.0.0"
1036 |
1037 | widest-line@^2.0.0:
1038 | version "2.0.1"
1039 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
1040 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==
1041 | dependencies:
1042 | string-width "^2.1.1"
1043 |
1044 | write-file-atomic@^2.0.0:
1045 | version "2.4.3"
1046 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
1047 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
1048 | dependencies:
1049 | graceful-fs "^4.1.11"
1050 | imurmurhash "^0.1.4"
1051 | signal-exit "^3.0.2"
1052 |
1053 | xdg-basedir@^3.0.0:
1054 | version "3.0.0"
1055 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
1056 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
1057 |
1058 | yallist@^2.1.2:
1059 | version "2.1.2"
1060 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1061 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
1062 |
--------------------------------------------------------------------------------