├── Backend
├── .gitignore
├── Procfile
├── nodemon.json
├── routes
│ └── video.js
├── package.json
├── app.js
├── controllers
│ └── video.js
├── access.log
└── package-lock.json
├── .gitignore
├── Frontend
├── .firebaserc
├── public
│ ├── robots.txt
│ ├── favicon.ico
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── index.html
├── src
│ ├── .DS_Store
│ ├── components
│ │ ├── .DS_Store
│ │ ├── Loading.js
│ │ ├── Modal.js
│ │ ├── Modal.module.css
│ │ ├── Loading.module.css
│ │ ├── VideoDetail.module.css
│ │ └── VideoDetail.js
│ ├── index.js
│ ├── index.css
│ ├── App.module.css
│ └── App.js
├── firebase.json
├── package.json
└── .gitignore
└── README.md
/Backend/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/Backend/Procfile:
--------------------------------------------------------------------------------
1 | web: node app.js
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | # Local Netlify folder
3 | .netlify
4 |
--------------------------------------------------------------------------------
/Backend/nodemon.json:
--------------------------------------------------------------------------------
1 | {
2 | "env":{
3 | "PORT":"8080"
4 | }
5 | }
--------------------------------------------------------------------------------
/Frontend/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "youtubedownload-frontend"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/Frontend/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/Frontend/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amogh-nagar/YTDownloader/HEAD/Frontend/src/.DS_Store
--------------------------------------------------------------------------------
/Frontend/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amogh-nagar/YTDownloader/HEAD/Frontend/public/favicon.ico
--------------------------------------------------------------------------------
/Frontend/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amogh-nagar/YTDownloader/HEAD/Frontend/public/logo192.png
--------------------------------------------------------------------------------
/Frontend/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amogh-nagar/YTDownloader/HEAD/Frontend/public/logo512.png
--------------------------------------------------------------------------------
/Frontend/src/components/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amogh-nagar/YTDownloader/HEAD/Frontend/src/components/.DS_Store
--------------------------------------------------------------------------------
/Frontend/src/components/Loading.js:
--------------------------------------------------------------------------------
1 | import styles from './Loading.module.css'
2 |
3 | const Loading = () => {
4 | return (
5 |
Loading...
6 | )}
7 |
8 | export default Loading
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Youtube Video Downloader
2 | Where you can download YT videos of different qualities 😍
3 | Tech Stack Used- Nodejs,Reactjs and Mongodb(will implement Mongodb soon...🙂)
4 |
5 | Link - https://download-frontend.web.app/
6 |
--------------------------------------------------------------------------------
/Backend/routes/video.js:
--------------------------------------------------------------------------------
1 | const express=require('express')
2 | const router=express.Router()
3 | const videocontroller=require('../controllers/video')
4 |
5 |
6 | router.get('/',videocontroller.downloadvideo)
7 |
8 | router.get('/detail',videocontroller.videodetails)
9 |
10 |
11 |
12 | module.exports=router;
--------------------------------------------------------------------------------
/Frontend/src/index.js:
--------------------------------------------------------------------------------
1 | import ReactDOM from 'react-dom';
2 | import { BrowserRouter } from 'react-router-dom';
3 |
4 | import './index.css';
5 | import App from './App';
6 |
7 | ReactDOM.render(
8 |
9 |
10 | ,
11 | document.getElementById('root')
12 | );
13 |
--------------------------------------------------------------------------------
/Frontend/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "build",
4 | "ignore": [
5 | "firebase.json",
6 | "**/.*",
7 | "**/node_modules/**"
8 | ],
9 | "rewrites": [
10 | {
11 | "source": "**",
12 | "destination": "/index.html"
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Frontend/src/index.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Lato:wght@700&family=Open+Sans:wght@400;700&display=swap');
2 |
3 | * {
4 | box-sizing: border-box;
5 | }
6 |
7 | body {font-family: 'Roboto Mono', monospace;
8 | margin: 0;
9 | }
10 |
11 | h1,
12 | h2,
13 | h3,
14 | h4,
15 | h5,
16 | h6 {
17 | font-family: 'Lato', sans-serif;
18 | }
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Frontend/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/Frontend/src/components/Modal.js:
--------------------------------------------------------------------------------
1 | import ReactDOM from "react-dom";
2 |
3 | import styles from "./Modal.module.css";
4 |
5 | const Backdrop = ({onClick}) => {
6 | return ;
7 | };
8 |
9 | const Maincontainer = (props) => {
10 | return {props.children}
;
11 | };
12 |
13 | const Modal = (props) => {
14 | let overlay = document.getElementById("overlays");
15 | return (
16 |
17 | {ReactDOM.createPortal(,overlay)}
18 | {ReactDOM.createPortal(,overlay)}
19 |
20 |
21 |
22 | );
23 | };
24 |
25 | export default Modal;
26 |
--------------------------------------------------------------------------------
/Backend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Backend",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "dependencies": {
7 | "axios": "^0.21.1",
8 | "body-parser": "^1.19.0",
9 | "compression": "^1.7.4",
10 | "cors": "^2.8.5",
11 | "express": "^4.17.1",
12 | "gtts": "^0.2.1",
13 | "helmet": "^4.6.0",
14 | "morgan": "^1.10.0",
15 | "nodemon": "^2.0.12",
16 | "request": "^2.88.2",
17 | "ytdl-core": "^4.9.0"
18 | },
19 | "devDependencies": {},
20 | "engines":{
21 | "node":"v14.15.5"
22 | },
23 | "scripts": {
24 | "test": "echo \"Error: no test specified\" && exit 1",
25 | "start": "node app.js",
26 | "start:dev": "nodemon app.js"
27 | },
28 | "keywords": [],
29 | "author": "",
30 | "license": "ISC"
31 | }
32 |
--------------------------------------------------------------------------------
/Frontend/src/components/Modal.module.css:
--------------------------------------------------------------------------------
1 | .backdrop {
2 | height: 100%;
3 | width: 100%;
4 | position: fixed;
5 | top: 0;
6 | left: 0;
7 | display: flex;
8 | align-items: center;
9 | justify-content: center;
10 | background-color: rgba(0, 0, 0, 0.75);
11 | z-index: 10;
12 | }
13 |
14 | .container {
15 | background-color: rgb(47, 204, 178);
16 | display: flex;
17 | padding: 5rem 7px;
18 | margin: 0px 5px;
19 | justify-content: center;
20 | align-items: center;
21 | z-index: 20;
22 | position: fixed;
23 | left: 5%;
24 | width: 90%;
25 | top: 20vh;
26 | box-shadow: 4px 7px 12px 5px rgba(0, 0, 0, 0.5);
27 | margin: auto;
28 | }
29 |
30 | @media screen and (max-width: 1000px) {
31 | .container {
32 | flex-direction: column-reverse;
33 | top: 10vh;
34 | padding: 4px 7px;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-complete-guide",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^5.11.6",
7 | "@testing-library/react": "^11.2.2",
8 | "@testing-library/user-event": "^12.5.0",
9 | "a11y-react-emoji": "^1.1.3",
10 | "axios": "^0.21.1",
11 | "js-file-download": "^0.4.12",
12 | "react": "^17.0.1",
13 | "react-dom": "^17.0.1",
14 | "react-router-dom": "^5.2.0",
15 | "react-scripts": "4.0.1",
16 | "web-vitals": "^0.2.4"
17 | },
18 | "scripts": {
19 | "start": "react-scripts start",
20 | "build": "react-scripts build",
21 | "test": "react-scripts test",
22 | "eject": "react-scripts eject"
23 | },
24 | "eslintConfig": {
25 | "extends": [
26 | "react-app",
27 | "react-app/jest"
28 | ]
29 | },
30 | "browserslist": {
31 | "production": [
32 | ">0.2%",
33 | "not dead",
34 | "not op_mini all"
35 | ],
36 | "development": [
37 | "last 1 chrome version",
38 | "last 1 firefox version",
39 | "last 1 safari version"
40 | ]
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Backend/app.js:
--------------------------------------------------------------------------------
1 | const fs=require('fs')
2 | const path=require('path')
3 | const express = require("express");
4 | const helmet=require('helmet')
5 | const cors = require("cors");
6 | const app = express();
7 | const morgan=require('morgan')
8 | const compression=require('compression')
9 | const bodyparser=require('body-parser')
10 | const videoroutes=require('./routes/video')
11 |
12 | app.use(cors());
13 |
14 |
15 |
16 | //PRODUCTION
17 | const access=fs.createWriteStream(path.join(__dirname,'access.log'),{flags:'a'})
18 |
19 | app.use(helmet())
20 | app.use(compression())//compresses file size downloded from server //must if using heroku
21 | app.use(morgan('combined',{stream:access}))//logging requests
22 |
23 | app.use(bodyparser.json())
24 |
25 |
26 | //For Disabling the Browser's automatic cache downloading
27 | app.disable('etag')
28 |
29 | //CORS
30 | app.use((req, res, next) => {
31 | res.setHeader("Access-Control-Allow-Origin", "*");
32 | res.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE");
33 | res.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization");
34 | next();
35 | });
36 |
37 | app.use('/video',videoroutes)
38 |
39 | const connect = () => {
40 | app.listen(process.env.PORT||8080);
41 | console.log("Connected!");
42 | };
43 |
44 | connect();
45 |
--------------------------------------------------------------------------------
/Frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | firebase-debug.log*
8 | firebase-debug.*.log*
9 |
10 | # Firebase cache
11 | .firebase/
12 |
13 | # Firebase config
14 |
15 | # Uncomment this if you'd like others to create their own Firebase project.
16 | # For a team working on the same Firebase project(s), it is recommended to leave
17 | # it commented so all members can deploy to the same project(s) in .firebaserc.
18 | # .firebaserc
19 |
20 | # Runtime data
21 | pids
22 | *.pid
23 | *.seed
24 | *.pid.lock
25 |
26 | # Directory for instrumented libs generated by jscoverage/JSCover
27 | lib-cov
28 |
29 | # Coverage directory used by tools like istanbul
30 | coverage
31 |
32 | # nyc test coverage
33 | .nyc_output
34 |
35 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
36 | .grunt
37 |
38 | # Bower dependency directory (https://bower.io/)
39 | bower_components
40 |
41 | # node-waf configuration
42 | .lock-wscript
43 |
44 | # Compiled binary addons (http://nodejs.org/api/addons.html)
45 | build/Release
46 |
47 | # Dependency directories
48 | node_modules/
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Optional REPL history
57 | .node_repl_history
58 |
59 | # Output of 'npm pack'
60 | *.tgz
61 |
62 | # Yarn Integrity file
63 | .yarn-integrity
64 |
65 | # dotenv environment variables file
66 | .env
67 |
68 |
69 | build
--------------------------------------------------------------------------------
/Frontend/src/App.module.css:
--------------------------------------------------------------------------------
1 | .main {
2 | height: 100vh;
3 | width: 100%;
4 | display: flex;
5 | justify-content: center;
6 | align-items: center;
7 | background: lightblue;
8 | flex-direction: column;
9 | }
10 | .message {
11 | color: #00c0ff;
12 | margin: 20px 0px;
13 | }
14 | .container {
15 | height: 250px;
16 | width: 25vw;
17 | background-color: #3d5ff5;
18 | border-radius: 5px;
19 | box-shadow: 5px 10px 13px 4px rgba(0, 0, 0, 0.5);
20 | display: flex;
21 | justify-content: center;
22 | align-items: center;
23 | }
24 |
25 | .form {
26 | height: 40%;
27 | }
28 |
29 | .form label {
30 | display: block;
31 | color: rgba(15, 30, 80, 0.822);
32 | font-size: 20px;
33 | font-weight: 300;
34 | }
35 |
36 | .form input {
37 | display: block;
38 | width: 200px;
39 | border-radius: 5px;
40 | margin: 4px 0px;
41 | height: 2rem;
42 | }
43 |
44 | .form input:focus {
45 | outline: none;
46 | background-color: rgb(129, 152, 255);
47 | }
48 |
49 | .form button {
50 | border-radius: 5px;
51 | background-color: rgb(67, 211, 255);
52 | margin: 4px 0px;
53 | color: white;
54 | padding: 5px 7px;
55 | }
56 |
57 | .form button:active,
58 | .form button:hover {
59 | background-color: rgb(32, 146, 240);
60 | }
61 |
62 | .form p {
63 | color: red;
64 | font-size: 13px;
65 | }
66 |
67 | .form button:disabled {
68 | color: #ff1547;
69 | background-color: #ff6347;
70 | animation: bump 1s ease-in-out;
71 | }
72 | @keyframes bump {
73 | 0% {
74 | transform: scale(1);
75 | }
76 | 50% {
77 | transform: scale(1.5);
78 | }
79 | 100% {
80 | transform: scale(1);
81 | }
82 | }
83 |
84 | @media screen and (max-width: 900px) {
85 | .container {
86 | width: 300px;
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/Frontend/src/components/Loading.module.css:
--------------------------------------------------------------------------------
1 | .loader {
2 | font-size: 10px;
3 | margin: 50px auto;
4 | text-indent: -9999em;
5 | width: 11em;
6 | height: 11em;
7 | border-radius: 50%;
8 | background: #ffffff;
9 | /* background: green; */
10 | background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
11 | background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
12 | background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
13 | background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
14 | background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
15 | position: relative;
16 | -webkit-animation: load3 1.4s infinite linear;
17 | animation: load3 1.4s infinite linear;
18 | -webkit-transform: translateZ(0);
19 | -ms-transform: translateZ(0);
20 | transform: translateZ(0);
21 | }
22 | .loader:before {
23 | width: 50%;
24 | height: 50%;
25 | background: #ffffff;
26 | /* background: blue; */
27 | border-radius: 100% 0 0 0;
28 | position: absolute;
29 | top: 0;
30 | left: 0;
31 | content: '';
32 | }
33 | .loader:after {
34 | background: #0dc5c1;
35 |
36 | /* background: red; */
37 |
38 | width: 75%;
39 | height: 75%;
40 | border-radius: 50%;
41 | content: '';
42 | margin: auto;
43 | position: absolute;
44 | top: 0;
45 | left: 0;
46 | bottom: 0;
47 | right: 0;
48 | }
49 | @-webkit-keyframes load3 {
50 | 0% {
51 | -webkit-transform: rotate(0deg);
52 | transform: rotate(0deg);
53 | }
54 | 100% {
55 | -webkit-transform: rotate(360deg);
56 | transform: rotate(360deg);
57 | }
58 | }
59 | @keyframes load3 {
60 | 0% {
61 | -webkit-transform: rotate(0deg);
62 | transform: rotate(0deg);
63 | }
64 | 100% {
65 | -webkit-transform: rotate(360deg);
66 | transform: rotate(360deg);
67 | }
68 | }
--------------------------------------------------------------------------------
/Frontend/src/components/VideoDetail.module.css:
--------------------------------------------------------------------------------
1 | .details {
2 | margin: 0px 5px;
3 | padding: 5px 7px;
4 | color: white;
5 | position: relative;
6 | /* display:flex;
7 | align-items:center;
8 | justify-content:center;
9 | flex-direction:column-reverse */
10 | }
11 |
12 | .details a {
13 | text-decoration: none;
14 | /* color:rgb(2, 7, 7); */
15 |
16 | background-color: rgba(96, 243, 223, 0.849);
17 | border-radius: 5px;
18 | padding: 4px 10px;
19 | margin: 5px 0px;
20 | bottom: 0;
21 | position: relative;
22 | transition: all 1s ease-in-out;
23 | }
24 |
25 | .details a:hover {
26 | background-color: rgb(41, 175, 184);
27 | }
28 |
29 | .details h2 {
30 | font-size: 40px;
31 | }
32 |
33 | .details p {
34 | font-family: "Courier New", Courier, monospace;
35 | font-style: bold;
36 | font-size: 1rem;
37 | color: black;
38 | }
39 |
40 | .details button {
41 | padding: 4px 7px;
42 | margin: 5px 7px;
43 | background-color: rgb(131, 241, 245);
44 | border-radius: 5px;
45 | color: darkblue;
46 | transition: all 1s ease-in-out;
47 | }
48 |
49 | .details button:hover,
50 | .details button:active {
51 | background-color: rgb(51, 177, 250);
52 | }
53 |
54 | .details select {
55 | margin: 0px 7px;
56 | padding: 4px 7px;
57 | border-radius: 5px;
58 | background-color: rgb(191, 250, 250);
59 | color: darkgreen;
60 | }
61 | .details select:active {
62 | outline: none;
63 | }
64 |
65 | img {
66 | margin: 25px 7px;
67 | }
68 |
69 | .error{
70 | padding:10px 5px;
71 | }
72 |
73 | @media screen and (max-width: 1000px) {
74 | img{
75 | width:80%;
76 | height:70%
77 | }
78 |
79 | .details {
80 | padding: 1px 3px;
81 | }
82 | .details a {
83 | margin: 2px 3px;
84 | padding: 2px 3px;
85 | }
86 | .details button {
87 | margin: 3px 4px;
88 | }
89 | .details h2{
90 | font-size:25px
91 | }
92 | .details p {
93 | font-size: 15px;
94 | }
95 | .details .repo {
96 | margin: 3px 4px;
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/Backend/controllers/video.js:
--------------------------------------------------------------------------------
1 | const ytdl = require("ytdl-core");
2 | const path = require("path");
3 | const fs = require("fs");
4 | const Path = path.join(__dirname, "video.mp4");
5 |
6 | exports.downloadvideo = (req, res, next) => {
7 | // console.log(req.query);
8 | // console.log(req.params.url)
9 | let url = req.query.url;
10 | let itag = +req.query.itag;
11 | let format = req.query.format;
12 | // console.log(itag)
13 | // console.log(typeof itag)
14 |
15 | res.setHeader(
16 | "Content-Disposition",
17 | 'attachment;filename="Download.' + format + '"'
18 | );
19 | ytdl(url, {
20 | filter: (format) => format.itag === itag,
21 | }).pipe(res);
22 | // let stream=ytdl(url,{format:'mp4'})
23 | // console.log(stream)
24 | // stream.pipe(fs.createWriteStream(Path))
25 | // res.status(200).json({});
26 | // console.log(Path)
27 | };
28 |
29 | exports.videodetails = async (req, res, next) => {
30 | let url = req.query.url;
31 | try {
32 | let info = await ytdl.getInfo(url);
33 | // let arr=info.formats.filter(x=>x.hasAudio!==false)
34 | // console.log(arr)
35 | // console.log("info.formats ",info.formats)
36 | // let audioformats=ytdl.filterFormats(info.formats,'audioonly')
37 | // console.log("audioonly ",audioformats);
38 | let thumbnaildetails = info.videoDetails.thumbnails[3].url;
39 | let title = info.videoDetails.title;
40 | let description = info.videoDetails.description;
41 |
42 | let channel = info.videoDetails.author.channel_url;
43 | res.status(200).json({
44 | thumbnail: thumbnaildetails,
45 | title,
46 | description,
47 | channel,
48 | qualities: info.formats,
49 | // onlyaudio:audioformats
50 | });
51 | } catch (err) {
52 | res.status(200).json({
53 | thumbnail:"",
54 | title: "Some Error Occured",
55 | description: "This is because of Some Invalid URL, You've entered",
56 | channel: "",
57 | qualities: [],
58 | });
59 | }
60 | };
61 |
--------------------------------------------------------------------------------
/Frontend/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
18 |
19 |
28 |
29 |
30 |
34 | YTDownloader
35 |
36 |
37 |
38 |
39 |
40 |
41 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Frontend/src/components/VideoDetail.js:
--------------------------------------------------------------------------------
1 | import Modal from "./Modal";
2 | import styles from "./VideoDetail.module.css";
3 | import Loading from "./Loading";
4 | import Emoji from "a11y-react-emoji";
5 |
6 | const VideoDetail = (props) => {
7 | let qualityarr = [];
8 | if (props.videodetails.qualities.length > 0) {
9 | qualityarr = props.videodetails.qualities.map((quality) => {
10 | if (quality.container === "mp4") {
11 | if (quality.hasAudio && quality.hasVideo) {
12 | return (
13 |
16 | );
17 | } else if (!quality.hasAudio && quality.hasVideo) {
18 | return (
19 |
22 | );
23 | } else if (quality.hasAudio && !quality.hasVideo) {
24 | return (
25 |
28 | );
29 | } else {
30 | return null;
31 | }
32 | }
33 | return null;
34 | });
35 | // qualityarr.push()
36 | qualityarr = qualityarr.filter((quality) => quality !== null);
37 | }
38 | const downloadhandler = () => {
39 | let x = document.getElementById("itags").value;
40 | let format = "mp4";
41 | window.location.href = `http://localhost:8080/video?url=${props.inputurl}&itag=${x}&format=${format}`;
42 | };
43 | // s://udownloader.herokuapp.com
44 | return (
45 |
46 | {props.isloading ? (
47 |
48 | ) : (
49 | <>
50 |
51 |
{props.videodetails.title}
52 |
53 | Youtube is , Have fun with{" "}
54 |
55 | 📺
56 | Do not Forget to give a to the{" "}
57 |
63 | Repo
64 |
65 |
66 | {props.videodetails.channel.length > 0 ? (
67 | <>
68 |
73 | Channel
74 |
75 |
76 |
84 |
85 |
86 | >
87 | ) : (
88 |
89 |
{props.videodetails.description}
90 | )}
91 |
92 |
93 | {props.videodetails.channel.length > 0 &&
}
94 |
95 | >
96 | )}
97 |
98 | );
99 | };
100 |
101 | export default VideoDetail;
102 |
--------------------------------------------------------------------------------
/Frontend/src/App.js:
--------------------------------------------------------------------------------
1 | import {useState, useEffect} from "react";
2 | import styles from "./App.module.css";
3 | import VideoDetail from "./components/VideoDetail";
4 | import Emoji from "a11y-react-emoji";
5 |
6 | let inital = true;
7 |
8 | function App() {
9 | const [input, setinput] = useState("");
10 | const [videodetail, setvideodetail] = useState({
11 | thumbnail: "",
12 | title: "",
13 | description: "",
14 | channel: "",
15 | qualities: [],
16 | });
17 | const [clicked, setclicked] = useState(false);
18 | const [isloading, setisloading] = useState(false);
19 | const [error, seterror] = useState(false);
20 |
21 | useEffect(() => {
22 | if (inital) {
23 | inital = false;
24 | return;
25 | }
26 | const timeout = setTimeout(() => {
27 | if (!(input.includes("youtube.com") || input.includes("youtu.be"))) {
28 | seterror(true);
29 | } else {
30 | seterror(false);
31 | }
32 | }, 1000);
33 |
34 | return () => {
35 | clearTimeout(timeout);
36 | };
37 | }, [input]);
38 |
39 | const submithandler = (e) => {
40 | e.preventDefault();
41 | console.log("input: ", input);
42 | if (!(input.includes("youtube.com") || input.includes("youtu.be"))) {
43 | seterror(true);
44 | return;
45 | }
46 | seterror(false);
47 | setisloading(true);
48 | // https://udownloader.herokuapp.com
49 | fetch(`http://localhost:8080/video/detail?url=${input}`)
50 | .then((res) => {
51 | return res.json();
52 | })
53 | .then((data) => {
54 | console.log(data);
55 | if(data.qualities.length>0){
56 | setvideodetail({
57 | thumbnail: data.thumbnail,
58 | title: data.title,
59 | description: data.description,
60 | channel: data.channel,
61 | qualities: data.qualities,
62 | });}
63 | else{
64 | setvideodetail({
65 | thumbnail: "https://www.google.com/search?q=not+found+image&sa=X&bih=694&biw=1517&hl=en&sxsrf=ALeKk03E3W3PEh14YWV7SJsUVoSuo_Nyaw:1627125921344&tbm=isch&source=iu&ictx=1&fir=JQDPf07Li2Eu1M%252CgrWb3R2wvjO76M%252C_&vet=1&usg=AI4_-kRtzEHTCJD6WyzpdKqjRSnAC4fFTw&ved=2ahUKEwjAmq-0zPvxAhUozjgGHXcvDtgQ9QF6BAgOEAE#imgrc=JQDPf07Li2Eu1M",
66 | title: data.title,
67 | description: data.description,
68 | channel: '',
69 | qualities: [],
70 | });
71 | }
72 | setisloading(false);
73 | })
74 | .catch((err) => {
75 | console.log(err);
76 | });
77 | };
78 |
79 | const clickhandler = () => {
80 | setclicked((prevState) => {
81 | return !prevState;
82 | });
83 | };
84 |
85 | const blurhandler = () => {
86 | if (!(input.includes("youtube.com") || input.includes("youtu.be"))) {
87 | seterror(true);
88 | } else {
89 | seterror(false);
90 | }
91 | };
92 |
93 | return (
94 |
95 |
96 | Made with in JS
97 |
98 | {clicked && !error && (
99 |
105 | )}
106 |
133 |
134 | );
135 | }
136 |
137 | export default App;
138 |
--------------------------------------------------------------------------------
/Backend/access.log:
--------------------------------------------------------------------------------
1 | ::1 - - [23/Jul/2021:05:38:57 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
2 | ::1 - - [23/Jul/2021:05:39:35 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
3 | ::1 - - [23/Jul/2021:05:40:26 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
4 | ::1 - - [23/Jul/2021:05:40:46 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
5 | ::1 - - [23/Jul/2021:05:43:06 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
6 | ::1 - - [23/Jul/2021:10:44:24 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
7 | ::1 - - [23/Jul/2021:10:49:05 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
8 | ::1 - - [23/Jul/2021:10:50:27 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
9 | ::1 - - [23/Jul/2021:10:50:49 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
10 | ::1 - - [23/Jul/2021:10:52:14 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
11 | ::1 - - [23/Jul/2021:10:55:02 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
12 | ::1 - - [23/Jul/2021:10:55:44 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
13 | ::1 - - [23/Jul/2021:11:02:52 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
14 | ::1 - - [23/Jul/2021:11:04:04 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
15 | ::1 - - [23/Jul/2021:11:04:23 +0000] "GET /video?url=https://www.youtube.com/watch?v=mWRsgZuwf_8&itag=18&format=mp4 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
16 | ::1 - - [23/Jul/2021:11:10:04 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
17 | ::1 - - [24/Jul/2021:11:32:22 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
18 | ::1 - - [24/Jul/2021:11:36:22 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
19 | ::1 - - [24/Jul/2021:11:36:43 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NR HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
20 | ::1 - - [24/Jul/2021:11:37:31 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NR HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
21 | ::1 - - [24/Jul/2021:11:37:45 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
22 | ::1 - - [24/Jul/2021:11:37:56 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYl HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
23 | ::1 - - [24/Jul/2021:11:39:16 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYl HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
24 | ::1 - - [24/Jul/2021:11:39:30 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
25 | ::1 - - [24/Jul/2021:11:39:37 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFu HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
26 | ::1 - - [24/Jul/2021:11:41:34 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFu HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
27 | ::1 - - [24/Jul/2021:11:42:30 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
28 | ::1 - - [24/Jul/2021:11:42:40 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XFuWEuKI HTTP/1.1" 200 237 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
29 | ::1 - - [24/Jul/2021:11:43:24 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XFuWEuKI HTTP/1.1" 200 125 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
30 | ::1 - - [24/Jul/2021:11:44:19 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XFuWEuKI HTTP/1.1" 200 125 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
31 | ::1 - - [24/Jul/2021:11:45:40 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XFuWEuKI HTTP/1.1" 200 125 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
32 | ::1 - - [24/Jul/2021:11:47:12 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
33 | ::1 - - [24/Jul/2021:11:48:55 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=4NRXx6U8ABQ HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
34 | ::1 - - [24/Jul/2021:11:50:20 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
35 | ::1 - - [24/Jul/2021:11:53:45 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
36 | ::1 - - [24/Jul/2021:11:54:54 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XlFuWEuKI HTTP/1.1" 200 125 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
37 | ::1 - - [24/Jul/2021:11:55:18 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
38 | ::1 - - [24/Jul/2021:11:55:34 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWE HTTP/1.1" 200 125 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
39 | ::1 - - [24/Jul/2021:11:56:39 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
40 | ::1 - - [24/Jul/2021:11:56:47 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFKI HTTP/1.1" 200 136 "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
41 | ::1 - - [24/Jul/2021:11:57:03 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=XXYlFuWEuKI HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
42 | ::1 - - [24/Jul/2021:11:57:14 +0000] "GET /video?url=https://www.youtube.com/watch?v=XXYlFuWEuKI&itag=18&format=mp4 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36"
43 | ::1 - - [24/Jul/2021:18:08:20 +0000] "GET /video/detail?url=https://www.youtube.com/watch?v=mWRsgZuwf_8 HTTP/1.1" 200 - "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
44 |
--------------------------------------------------------------------------------
/Backend/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Backend",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@sindresorhus/is": {
8 | "version": "0.14.0",
9 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
10 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
11 | },
12 | "@szmarczak/http-timer": {
13 | "version": "1.1.2",
14 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
15 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
16 | "requires": {
17 | "defer-to-connect": "^1.0.1"
18 | }
19 | },
20 | "abbrev": {
21 | "version": "1.1.1",
22 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
23 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
24 | },
25 | "accepts": {
26 | "version": "1.3.7",
27 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
28 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
29 | "requires": {
30 | "mime-types": "~2.1.24",
31 | "negotiator": "0.6.2"
32 | }
33 | },
34 | "ajv": {
35 | "version": "6.12.6",
36 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
37 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
38 | "requires": {
39 | "fast-deep-equal": "^3.1.1",
40 | "fast-json-stable-stringify": "^2.0.0",
41 | "json-schema-traverse": "^0.4.1",
42 | "uri-js": "^4.2.2"
43 | }
44 | },
45 | "ansi-align": {
46 | "version": "3.0.0",
47 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
48 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
49 | "requires": {
50 | "string-width": "^3.0.0"
51 | },
52 | "dependencies": {
53 | "ansi-regex": {
54 | "version": "4.1.0",
55 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
56 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
57 | },
58 | "is-fullwidth-code-point": {
59 | "version": "2.0.0",
60 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
61 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
62 | },
63 | "string-width": {
64 | "version": "3.1.0",
65 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
66 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
67 | "requires": {
68 | "emoji-regex": "^7.0.1",
69 | "is-fullwidth-code-point": "^2.0.0",
70 | "strip-ansi": "^5.1.0"
71 | }
72 | },
73 | "strip-ansi": {
74 | "version": "5.2.0",
75 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
76 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
77 | "requires": {
78 | "ansi-regex": "^4.1.0"
79 | }
80 | }
81 | }
82 | },
83 | "ansi-regex": {
84 | "version": "2.1.1",
85 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
86 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
87 | },
88 | "ansi-styles": {
89 | "version": "4.3.0",
90 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
91 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
92 | "requires": {
93 | "color-convert": "^2.0.1"
94 | }
95 | },
96 | "anymatch": {
97 | "version": "3.1.2",
98 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
99 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
100 | "requires": {
101 | "normalize-path": "^3.0.0",
102 | "picomatch": "^2.0.4"
103 | }
104 | },
105 | "array-flatten": {
106 | "version": "1.1.1",
107 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
108 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
109 | },
110 | "asn1": {
111 | "version": "0.2.4",
112 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
113 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
114 | "requires": {
115 | "safer-buffer": "~2.1.0"
116 | }
117 | },
118 | "assert-plus": {
119 | "version": "1.0.0",
120 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
121 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
122 | },
123 | "async": {
124 | "version": "1.5.2",
125 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
126 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
127 | },
128 | "asynckit": {
129 | "version": "0.4.0",
130 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
131 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
132 | },
133 | "aws-sign2": {
134 | "version": "0.7.0",
135 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
136 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
137 | },
138 | "aws4": {
139 | "version": "1.11.0",
140 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
141 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
142 | },
143 | "axios": {
144 | "version": "0.21.1",
145 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
146 | "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
147 | "requires": {
148 | "follow-redirects": "^1.10.0"
149 | }
150 | },
151 | "balanced-match": {
152 | "version": "1.0.2",
153 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
154 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
155 | },
156 | "basic-auth": {
157 | "version": "2.0.1",
158 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
159 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
160 | "requires": {
161 | "safe-buffer": "5.1.2"
162 | },
163 | "dependencies": {
164 | "safe-buffer": {
165 | "version": "5.1.2",
166 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
167 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
168 | }
169 | }
170 | },
171 | "bcrypt-pbkdf": {
172 | "version": "1.0.2",
173 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
174 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
175 | "requires": {
176 | "tweetnacl": "^0.14.3"
177 | }
178 | },
179 | "binary-extensions": {
180 | "version": "2.2.0",
181 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
182 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
183 | },
184 | "body-parser": {
185 | "version": "1.19.0",
186 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
187 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
188 | "requires": {
189 | "bytes": "3.1.0",
190 | "content-type": "~1.0.4",
191 | "debug": "2.6.9",
192 | "depd": "~1.1.2",
193 | "http-errors": "1.7.2",
194 | "iconv-lite": "0.4.24",
195 | "on-finished": "~2.3.0",
196 | "qs": "6.7.0",
197 | "raw-body": "2.4.0",
198 | "type-is": "~1.6.17"
199 | },
200 | "dependencies": {
201 | "qs": {
202 | "version": "6.7.0",
203 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
204 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
205 | }
206 | }
207 | },
208 | "boxen": {
209 | "version": "4.2.0",
210 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
211 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
212 | "requires": {
213 | "ansi-align": "^3.0.0",
214 | "camelcase": "^5.3.1",
215 | "chalk": "^3.0.0",
216 | "cli-boxes": "^2.2.0",
217 | "string-width": "^4.1.0",
218 | "term-size": "^2.1.0",
219 | "type-fest": "^0.8.1",
220 | "widest-line": "^3.1.0"
221 | },
222 | "dependencies": {
223 | "ansi-regex": {
224 | "version": "5.0.0",
225 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
226 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
227 | },
228 | "camelcase": {
229 | "version": "5.3.1",
230 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
231 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
232 | },
233 | "emoji-regex": {
234 | "version": "8.0.0",
235 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
236 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
237 | },
238 | "is-fullwidth-code-point": {
239 | "version": "3.0.0",
240 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
241 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
242 | },
243 | "string-width": {
244 | "version": "4.2.2",
245 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
246 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
247 | "requires": {
248 | "emoji-regex": "^8.0.0",
249 | "is-fullwidth-code-point": "^3.0.0",
250 | "strip-ansi": "^6.0.0"
251 | }
252 | },
253 | "strip-ansi": {
254 | "version": "6.0.0",
255 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
256 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
257 | "requires": {
258 | "ansi-regex": "^5.0.0"
259 | }
260 | }
261 | }
262 | },
263 | "brace-expansion": {
264 | "version": "1.1.11",
265 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
266 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
267 | "requires": {
268 | "balanced-match": "^1.0.0",
269 | "concat-map": "0.0.1"
270 | }
271 | },
272 | "braces": {
273 | "version": "3.0.2",
274 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
275 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
276 | "requires": {
277 | "fill-range": "^7.0.1"
278 | }
279 | },
280 | "bytes": {
281 | "version": "3.1.0",
282 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
283 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
284 | },
285 | "cacheable-request": {
286 | "version": "6.1.0",
287 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
288 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
289 | "requires": {
290 | "clone-response": "^1.0.2",
291 | "get-stream": "^5.1.0",
292 | "http-cache-semantics": "^4.0.0",
293 | "keyv": "^3.0.0",
294 | "lowercase-keys": "^2.0.0",
295 | "normalize-url": "^4.1.0",
296 | "responselike": "^1.0.2"
297 | },
298 | "dependencies": {
299 | "get-stream": {
300 | "version": "5.2.0",
301 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
302 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
303 | "requires": {
304 | "pump": "^3.0.0"
305 | }
306 | },
307 | "lowercase-keys": {
308 | "version": "2.0.0",
309 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
310 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
311 | }
312 | }
313 | },
314 | "camelcase": {
315 | "version": "3.0.0",
316 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
317 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
318 | },
319 | "caseless": {
320 | "version": "0.12.0",
321 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
322 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
323 | },
324 | "chalk": {
325 | "version": "3.0.0",
326 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
327 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
328 | "requires": {
329 | "ansi-styles": "^4.1.0",
330 | "supports-color": "^7.1.0"
331 | },
332 | "dependencies": {
333 | "has-flag": {
334 | "version": "4.0.0",
335 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
336 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
337 | },
338 | "supports-color": {
339 | "version": "7.2.0",
340 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
341 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
342 | "requires": {
343 | "has-flag": "^4.0.0"
344 | }
345 | }
346 | }
347 | },
348 | "chokidar": {
349 | "version": "3.5.2",
350 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
351 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
352 | "requires": {
353 | "anymatch": "~3.1.2",
354 | "braces": "~3.0.2",
355 | "fsevents": "~2.3.2",
356 | "glob-parent": "~5.1.2",
357 | "is-binary-path": "~2.1.0",
358 | "is-glob": "~4.0.1",
359 | "normalize-path": "~3.0.0",
360 | "readdirp": "~3.6.0"
361 | }
362 | },
363 | "ci-info": {
364 | "version": "2.0.0",
365 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
366 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
367 | },
368 | "cli-boxes": {
369 | "version": "2.2.1",
370 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
371 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
372 | },
373 | "cliui": {
374 | "version": "3.2.0",
375 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
376 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
377 | "requires": {
378 | "string-width": "^1.0.1",
379 | "strip-ansi": "^3.0.1",
380 | "wrap-ansi": "^2.0.0"
381 | }
382 | },
383 | "clone-response": {
384 | "version": "1.0.2",
385 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
386 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
387 | "requires": {
388 | "mimic-response": "^1.0.0"
389 | }
390 | },
391 | "code-point-at": {
392 | "version": "1.1.0",
393 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
394 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
395 | },
396 | "color-convert": {
397 | "version": "2.0.1",
398 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
399 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
400 | "requires": {
401 | "color-name": "~1.1.4"
402 | }
403 | },
404 | "color-name": {
405 | "version": "1.1.4",
406 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
407 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
408 | },
409 | "combined-stream": {
410 | "version": "1.0.8",
411 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
412 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
413 | "requires": {
414 | "delayed-stream": "~1.0.0"
415 | }
416 | },
417 | "compressible": {
418 | "version": "2.0.18",
419 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
420 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
421 | "requires": {
422 | "mime-db": ">= 1.43.0 < 2"
423 | }
424 | },
425 | "compression": {
426 | "version": "1.7.4",
427 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
428 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
429 | "requires": {
430 | "accepts": "~1.3.5",
431 | "bytes": "3.0.0",
432 | "compressible": "~2.0.16",
433 | "debug": "2.6.9",
434 | "on-headers": "~1.0.2",
435 | "safe-buffer": "5.1.2",
436 | "vary": "~1.1.2"
437 | },
438 | "dependencies": {
439 | "bytes": {
440 | "version": "3.0.0",
441 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
442 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
443 | },
444 | "safe-buffer": {
445 | "version": "5.1.2",
446 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
447 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
448 | }
449 | }
450 | },
451 | "concat-map": {
452 | "version": "0.0.1",
453 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
454 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
455 | },
456 | "configstore": {
457 | "version": "5.0.1",
458 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
459 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
460 | "requires": {
461 | "dot-prop": "^5.2.0",
462 | "graceful-fs": "^4.1.2",
463 | "make-dir": "^3.0.0",
464 | "unique-string": "^2.0.0",
465 | "write-file-atomic": "^3.0.0",
466 | "xdg-basedir": "^4.0.0"
467 | }
468 | },
469 | "content-disposition": {
470 | "version": "0.5.3",
471 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
472 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
473 | "requires": {
474 | "safe-buffer": "5.1.2"
475 | },
476 | "dependencies": {
477 | "safe-buffer": {
478 | "version": "5.1.2",
479 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
480 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
481 | }
482 | }
483 | },
484 | "content-type": {
485 | "version": "1.0.4",
486 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
487 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
488 | },
489 | "cookie": {
490 | "version": "0.4.0",
491 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
492 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
493 | },
494 | "cookie-signature": {
495 | "version": "1.0.6",
496 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
497 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
498 | },
499 | "core-util-is": {
500 | "version": "1.0.2",
501 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
502 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
503 | },
504 | "cors": {
505 | "version": "2.8.5",
506 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
507 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
508 | "requires": {
509 | "object-assign": "^4",
510 | "vary": "^1"
511 | }
512 | },
513 | "crypto-random-string": {
514 | "version": "2.0.0",
515 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
516 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
517 | },
518 | "dashdash": {
519 | "version": "1.14.1",
520 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
521 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
522 | "requires": {
523 | "assert-plus": "^1.0.0"
524 | }
525 | },
526 | "debug": {
527 | "version": "2.6.9",
528 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
529 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
530 | "requires": {
531 | "ms": "2.0.0"
532 | }
533 | },
534 | "decamelize": {
535 | "version": "1.2.0",
536 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
537 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
538 | },
539 | "decompress-response": {
540 | "version": "3.3.0",
541 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
542 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
543 | "requires": {
544 | "mimic-response": "^1.0.0"
545 | }
546 | },
547 | "deep-extend": {
548 | "version": "0.6.0",
549 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
550 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
551 | },
552 | "defer-to-connect": {
553 | "version": "1.1.3",
554 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
555 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
556 | },
557 | "delayed-stream": {
558 | "version": "1.0.0",
559 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
560 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
561 | },
562 | "depd": {
563 | "version": "1.1.2",
564 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
565 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
566 | },
567 | "destroy": {
568 | "version": "1.0.4",
569 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
570 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
571 | },
572 | "dot-prop": {
573 | "version": "5.3.0",
574 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
575 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
576 | "requires": {
577 | "is-obj": "^2.0.0"
578 | }
579 | },
580 | "duplexer3": {
581 | "version": "0.1.4",
582 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
583 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
584 | },
585 | "ecc-jsbn": {
586 | "version": "0.1.2",
587 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
588 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
589 | "requires": {
590 | "jsbn": "~0.1.0",
591 | "safer-buffer": "^2.1.0"
592 | }
593 | },
594 | "ee-first": {
595 | "version": "1.1.1",
596 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
597 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
598 | },
599 | "emoji-regex": {
600 | "version": "7.0.3",
601 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
602 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
603 | },
604 | "encodeurl": {
605 | "version": "1.0.2",
606 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
607 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
608 | },
609 | "end-of-stream": {
610 | "version": "1.4.4",
611 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
612 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
613 | "requires": {
614 | "once": "^1.4.0"
615 | }
616 | },
617 | "error-ex": {
618 | "version": "1.3.2",
619 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
620 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
621 | "requires": {
622 | "is-arrayish": "^0.2.1"
623 | }
624 | },
625 | "escape-goat": {
626 | "version": "2.1.1",
627 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
628 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
629 | },
630 | "escape-html": {
631 | "version": "1.0.3",
632 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
633 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
634 | },
635 | "escape-string-regexp": {
636 | "version": "1.0.5",
637 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
638 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
639 | },
640 | "etag": {
641 | "version": "1.8.1",
642 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
643 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
644 | },
645 | "express": {
646 | "version": "4.17.1",
647 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
648 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
649 | "requires": {
650 | "accepts": "~1.3.7",
651 | "array-flatten": "1.1.1",
652 | "body-parser": "1.19.0",
653 | "content-disposition": "0.5.3",
654 | "content-type": "~1.0.4",
655 | "cookie": "0.4.0",
656 | "cookie-signature": "1.0.6",
657 | "debug": "2.6.9",
658 | "depd": "~1.1.2",
659 | "encodeurl": "~1.0.2",
660 | "escape-html": "~1.0.3",
661 | "etag": "~1.8.1",
662 | "finalhandler": "~1.1.2",
663 | "fresh": "0.5.2",
664 | "merge-descriptors": "1.0.1",
665 | "methods": "~1.1.2",
666 | "on-finished": "~2.3.0",
667 | "parseurl": "~1.3.3",
668 | "path-to-regexp": "0.1.7",
669 | "proxy-addr": "~2.0.5",
670 | "qs": "6.7.0",
671 | "range-parser": "~1.2.1",
672 | "safe-buffer": "5.1.2",
673 | "send": "0.17.1",
674 | "serve-static": "1.14.1",
675 | "setprototypeof": "1.1.1",
676 | "statuses": "~1.5.0",
677 | "type-is": "~1.6.18",
678 | "utils-merge": "1.0.1",
679 | "vary": "~1.1.2"
680 | },
681 | "dependencies": {
682 | "qs": {
683 | "version": "6.7.0",
684 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
685 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
686 | },
687 | "safe-buffer": {
688 | "version": "5.1.2",
689 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
690 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
691 | }
692 | }
693 | },
694 | "extend": {
695 | "version": "3.0.2",
696 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
697 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
698 | },
699 | "extsprintf": {
700 | "version": "1.3.0",
701 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
702 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
703 | },
704 | "fast-deep-equal": {
705 | "version": "3.1.3",
706 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
707 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
708 | },
709 | "fast-json-stable-stringify": {
710 | "version": "2.1.0",
711 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
712 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
713 | },
714 | "fill-range": {
715 | "version": "7.0.1",
716 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
717 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
718 | "requires": {
719 | "to-regex-range": "^5.0.1"
720 | }
721 | },
722 | "finalhandler": {
723 | "version": "1.1.2",
724 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
725 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
726 | "requires": {
727 | "debug": "2.6.9",
728 | "encodeurl": "~1.0.2",
729 | "escape-html": "~1.0.3",
730 | "on-finished": "~2.3.0",
731 | "parseurl": "~1.3.3",
732 | "statuses": "~1.5.0",
733 | "unpipe": "~1.0.0"
734 | }
735 | },
736 | "find-up": {
737 | "version": "1.1.2",
738 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
739 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
740 | "requires": {
741 | "path-exists": "^2.0.0",
742 | "pinkie-promise": "^2.0.0"
743 | }
744 | },
745 | "follow-redirects": {
746 | "version": "1.14.1",
747 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
748 | "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg=="
749 | },
750 | "forever-agent": {
751 | "version": "0.6.1",
752 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
753 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
754 | },
755 | "form-data": {
756 | "version": "2.3.3",
757 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
758 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
759 | "requires": {
760 | "asynckit": "^0.4.0",
761 | "combined-stream": "^1.0.6",
762 | "mime-types": "^2.1.12"
763 | }
764 | },
765 | "forwarded": {
766 | "version": "0.2.0",
767 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
768 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
769 | },
770 | "fresh": {
771 | "version": "0.5.2",
772 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
773 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
774 | },
775 | "fsevents": {
776 | "version": "2.3.2",
777 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
778 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
779 | "optional": true
780 | },
781 | "function-bind": {
782 | "version": "1.1.1",
783 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
784 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
785 | },
786 | "get-caller-file": {
787 | "version": "1.0.3",
788 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
789 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
790 | },
791 | "get-stream": {
792 | "version": "4.1.0",
793 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
794 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
795 | "requires": {
796 | "pump": "^3.0.0"
797 | }
798 | },
799 | "getpass": {
800 | "version": "0.1.7",
801 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
802 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
803 | "requires": {
804 | "assert-plus": "^1.0.0"
805 | }
806 | },
807 | "glob-parent": {
808 | "version": "5.1.2",
809 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
810 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
811 | "requires": {
812 | "is-glob": "^4.0.1"
813 | }
814 | },
815 | "global-dirs": {
816 | "version": "2.1.0",
817 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
818 | "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
819 | "requires": {
820 | "ini": "1.3.7"
821 | }
822 | },
823 | "got": {
824 | "version": "9.6.0",
825 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
826 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
827 | "requires": {
828 | "@sindresorhus/is": "^0.14.0",
829 | "@szmarczak/http-timer": "^1.1.2",
830 | "cacheable-request": "^6.0.0",
831 | "decompress-response": "^3.3.0",
832 | "duplexer3": "^0.1.4",
833 | "get-stream": "^4.1.0",
834 | "lowercase-keys": "^1.0.1",
835 | "mimic-response": "^1.0.1",
836 | "p-cancelable": "^1.0.0",
837 | "to-readable-stream": "^1.0.0",
838 | "url-parse-lax": "^3.0.0"
839 | }
840 | },
841 | "graceful-fs": {
842 | "version": "4.2.6",
843 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
844 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
845 | },
846 | "gtts": {
847 | "version": "0.2.1",
848 | "resolved": "https://registry.npmjs.org/gtts/-/gtts-0.2.1.tgz",
849 | "integrity": "sha1-ry9D1tulZ8sVvIF/6K0VxCAA/9I=",
850 | "requires": {
851 | "async": "^1.5.2",
852 | "escape-string-regexp": "^1.0.4",
853 | "multistream": "^2.0.5",
854 | "request": "^2.67.0",
855 | "yargs": "^4.7.1"
856 | }
857 | },
858 | "har-schema": {
859 | "version": "2.0.0",
860 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
861 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
862 | },
863 | "har-validator": {
864 | "version": "5.1.5",
865 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
866 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
867 | "requires": {
868 | "ajv": "^6.12.3",
869 | "har-schema": "^2.0.0"
870 | }
871 | },
872 | "has": {
873 | "version": "1.0.3",
874 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
875 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
876 | "requires": {
877 | "function-bind": "^1.1.1"
878 | }
879 | },
880 | "has-flag": {
881 | "version": "3.0.0",
882 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
883 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
884 | },
885 | "has-yarn": {
886 | "version": "2.1.0",
887 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
888 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
889 | },
890 | "helmet": {
891 | "version": "4.6.0",
892 | "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz",
893 | "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg=="
894 | },
895 | "hosted-git-info": {
896 | "version": "2.8.9",
897 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
898 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
899 | },
900 | "http-cache-semantics": {
901 | "version": "4.1.0",
902 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
903 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
904 | },
905 | "http-errors": {
906 | "version": "1.7.2",
907 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
908 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
909 | "requires": {
910 | "depd": "~1.1.2",
911 | "inherits": "2.0.3",
912 | "setprototypeof": "1.1.1",
913 | "statuses": ">= 1.5.0 < 2",
914 | "toidentifier": "1.0.0"
915 | },
916 | "dependencies": {
917 | "inherits": {
918 | "version": "2.0.3",
919 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
920 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
921 | }
922 | }
923 | },
924 | "http-signature": {
925 | "version": "1.2.0",
926 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
927 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
928 | "requires": {
929 | "assert-plus": "^1.0.0",
930 | "jsprim": "^1.2.2",
931 | "sshpk": "^1.7.0"
932 | }
933 | },
934 | "iconv-lite": {
935 | "version": "0.4.24",
936 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
937 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
938 | "requires": {
939 | "safer-buffer": ">= 2.1.2 < 3"
940 | }
941 | },
942 | "ignore-by-default": {
943 | "version": "1.0.1",
944 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
945 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
946 | },
947 | "import-lazy": {
948 | "version": "2.1.0",
949 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
950 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
951 | },
952 | "imurmurhash": {
953 | "version": "0.1.4",
954 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
955 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
956 | },
957 | "inherits": {
958 | "version": "2.0.4",
959 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
960 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
961 | },
962 | "ini": {
963 | "version": "1.3.7",
964 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
965 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
966 | },
967 | "invert-kv": {
968 | "version": "1.0.0",
969 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
970 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
971 | },
972 | "ipaddr.js": {
973 | "version": "1.9.1",
974 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
975 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
976 | },
977 | "is-arrayish": {
978 | "version": "0.2.1",
979 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
980 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
981 | },
982 | "is-binary-path": {
983 | "version": "2.1.0",
984 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
985 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
986 | "requires": {
987 | "binary-extensions": "^2.0.0"
988 | }
989 | },
990 | "is-ci": {
991 | "version": "2.0.0",
992 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
993 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
994 | "requires": {
995 | "ci-info": "^2.0.0"
996 | }
997 | },
998 | "is-core-module": {
999 | "version": "2.5.0",
1000 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
1001 | "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
1002 | "requires": {
1003 | "has": "^1.0.3"
1004 | }
1005 | },
1006 | "is-extglob": {
1007 | "version": "2.1.1",
1008 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1009 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
1010 | },
1011 | "is-fullwidth-code-point": {
1012 | "version": "1.0.0",
1013 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1014 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
1015 | "requires": {
1016 | "number-is-nan": "^1.0.0"
1017 | }
1018 | },
1019 | "is-glob": {
1020 | "version": "4.0.1",
1021 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1022 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1023 | "requires": {
1024 | "is-extglob": "^2.1.1"
1025 | }
1026 | },
1027 | "is-installed-globally": {
1028 | "version": "0.3.2",
1029 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
1030 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
1031 | "requires": {
1032 | "global-dirs": "^2.0.1",
1033 | "is-path-inside": "^3.0.1"
1034 | }
1035 | },
1036 | "is-npm": {
1037 | "version": "4.0.0",
1038 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
1039 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig=="
1040 | },
1041 | "is-number": {
1042 | "version": "7.0.0",
1043 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1044 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1045 | },
1046 | "is-obj": {
1047 | "version": "2.0.0",
1048 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
1049 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
1050 | },
1051 | "is-path-inside": {
1052 | "version": "3.0.3",
1053 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1054 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
1055 | },
1056 | "is-typedarray": {
1057 | "version": "1.0.0",
1058 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1059 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1060 | },
1061 | "is-utf8": {
1062 | "version": "0.2.1",
1063 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1064 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
1065 | },
1066 | "is-yarn-global": {
1067 | "version": "0.3.0",
1068 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
1069 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
1070 | },
1071 | "isarray": {
1072 | "version": "1.0.0",
1073 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1074 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1075 | },
1076 | "isstream": {
1077 | "version": "0.1.2",
1078 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1079 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1080 | },
1081 | "jsbn": {
1082 | "version": "0.1.1",
1083 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1084 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
1085 | },
1086 | "json-buffer": {
1087 | "version": "3.0.0",
1088 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1089 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
1090 | },
1091 | "json-schema": {
1092 | "version": "0.2.3",
1093 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1094 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1095 | },
1096 | "json-schema-traverse": {
1097 | "version": "0.4.1",
1098 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1099 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1100 | },
1101 | "json-stringify-safe": {
1102 | "version": "5.0.1",
1103 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1104 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1105 | },
1106 | "jsprim": {
1107 | "version": "1.4.1",
1108 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1109 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1110 | "requires": {
1111 | "assert-plus": "1.0.0",
1112 | "extsprintf": "1.3.0",
1113 | "json-schema": "0.2.3",
1114 | "verror": "1.10.0"
1115 | }
1116 | },
1117 | "keyv": {
1118 | "version": "3.1.0",
1119 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1120 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1121 | "requires": {
1122 | "json-buffer": "3.0.0"
1123 | }
1124 | },
1125 | "latest-version": {
1126 | "version": "5.1.0",
1127 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
1128 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
1129 | "requires": {
1130 | "package-json": "^6.3.0"
1131 | }
1132 | },
1133 | "lcid": {
1134 | "version": "1.0.0",
1135 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
1136 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
1137 | "requires": {
1138 | "invert-kv": "^1.0.0"
1139 | }
1140 | },
1141 | "load-json-file": {
1142 | "version": "1.1.0",
1143 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
1144 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
1145 | "requires": {
1146 | "graceful-fs": "^4.1.2",
1147 | "parse-json": "^2.2.0",
1148 | "pify": "^2.0.0",
1149 | "pinkie-promise": "^2.0.0",
1150 | "strip-bom": "^2.0.0"
1151 | }
1152 | },
1153 | "lodash.assign": {
1154 | "version": "4.2.0",
1155 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
1156 | "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
1157 | },
1158 | "lowercase-keys": {
1159 | "version": "1.0.1",
1160 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1161 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
1162 | },
1163 | "m3u8stream": {
1164 | "version": "0.8.4",
1165 | "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.4.tgz",
1166 | "integrity": "sha512-sco80Db+30RvcaIOndenX6E6oQNgTiBKeJbFPc+yDXwPQIkryfboEbCvXPlBRq3mQTCVPQO93TDVlfRwqpD35w==",
1167 | "requires": {
1168 | "miniget": "^4.0.0",
1169 | "sax": "^1.2.4"
1170 | }
1171 | },
1172 | "make-dir": {
1173 | "version": "3.1.0",
1174 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1175 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1176 | "requires": {
1177 | "semver": "^6.0.0"
1178 | },
1179 | "dependencies": {
1180 | "semver": {
1181 | "version": "6.3.0",
1182 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1183 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1184 | }
1185 | }
1186 | },
1187 | "media-typer": {
1188 | "version": "0.3.0",
1189 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1190 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1191 | },
1192 | "merge-descriptors": {
1193 | "version": "1.0.1",
1194 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1195 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1196 | },
1197 | "methods": {
1198 | "version": "1.1.2",
1199 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1200 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1201 | },
1202 | "mime": {
1203 | "version": "1.6.0",
1204 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1205 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1206 | },
1207 | "mime-db": {
1208 | "version": "1.48.0",
1209 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
1210 | "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ=="
1211 | },
1212 | "mime-types": {
1213 | "version": "2.1.31",
1214 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
1215 | "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
1216 | "requires": {
1217 | "mime-db": "1.48.0"
1218 | }
1219 | },
1220 | "mimic-response": {
1221 | "version": "1.0.1",
1222 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1223 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
1224 | },
1225 | "miniget": {
1226 | "version": "4.2.1",
1227 | "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.1.tgz",
1228 | "integrity": "sha512-O/DduzDR6f+oDtVype9S/Qu5hhnx73EDYGyZKwU/qN82lehFZdfhoa4DT51SpsO+8epYrB3gcRmws56ROfTIoQ=="
1229 | },
1230 | "minimatch": {
1231 | "version": "3.0.4",
1232 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1233 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1234 | "requires": {
1235 | "brace-expansion": "^1.1.7"
1236 | }
1237 | },
1238 | "minimist": {
1239 | "version": "1.2.5",
1240 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1241 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1242 | },
1243 | "morgan": {
1244 | "version": "1.10.0",
1245 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
1246 | "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
1247 | "requires": {
1248 | "basic-auth": "~2.0.1",
1249 | "debug": "2.6.9",
1250 | "depd": "~2.0.0",
1251 | "on-finished": "~2.3.0",
1252 | "on-headers": "~1.0.2"
1253 | },
1254 | "dependencies": {
1255 | "depd": {
1256 | "version": "2.0.0",
1257 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1258 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1259 | }
1260 | }
1261 | },
1262 | "ms": {
1263 | "version": "2.0.0",
1264 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1265 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1266 | },
1267 | "multistream": {
1268 | "version": "2.1.1",
1269 | "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz",
1270 | "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==",
1271 | "requires": {
1272 | "inherits": "^2.0.1",
1273 | "readable-stream": "^2.0.5"
1274 | }
1275 | },
1276 | "negotiator": {
1277 | "version": "0.6.2",
1278 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1279 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1280 | },
1281 | "nodemon": {
1282 | "version": "2.0.12",
1283 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.12.tgz",
1284 | "integrity": "sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==",
1285 | "requires": {
1286 | "chokidar": "^3.2.2",
1287 | "debug": "^3.2.6",
1288 | "ignore-by-default": "^1.0.1",
1289 | "minimatch": "^3.0.4",
1290 | "pstree.remy": "^1.1.7",
1291 | "semver": "^5.7.1",
1292 | "supports-color": "^5.5.0",
1293 | "touch": "^3.1.0",
1294 | "undefsafe": "^2.0.3",
1295 | "update-notifier": "^4.1.0"
1296 | },
1297 | "dependencies": {
1298 | "debug": {
1299 | "version": "3.2.7",
1300 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1301 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1302 | "requires": {
1303 | "ms": "^2.1.1"
1304 | }
1305 | },
1306 | "ms": {
1307 | "version": "2.1.3",
1308 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1309 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1310 | }
1311 | }
1312 | },
1313 | "nopt": {
1314 | "version": "1.0.10",
1315 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1316 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1317 | "requires": {
1318 | "abbrev": "1"
1319 | }
1320 | },
1321 | "normalize-package-data": {
1322 | "version": "2.5.0",
1323 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1324 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1325 | "requires": {
1326 | "hosted-git-info": "^2.1.4",
1327 | "resolve": "^1.10.0",
1328 | "semver": "2 || 3 || 4 || 5",
1329 | "validate-npm-package-license": "^3.0.1"
1330 | }
1331 | },
1332 | "normalize-path": {
1333 | "version": "3.0.0",
1334 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1335 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
1336 | },
1337 | "normalize-url": {
1338 | "version": "4.5.1",
1339 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
1340 | "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
1341 | },
1342 | "number-is-nan": {
1343 | "version": "1.0.1",
1344 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1345 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
1346 | },
1347 | "oauth-sign": {
1348 | "version": "0.9.0",
1349 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1350 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
1351 | },
1352 | "object-assign": {
1353 | "version": "4.1.1",
1354 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1355 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1356 | },
1357 | "on-finished": {
1358 | "version": "2.3.0",
1359 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1360 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1361 | "requires": {
1362 | "ee-first": "1.1.1"
1363 | }
1364 | },
1365 | "on-headers": {
1366 | "version": "1.0.2",
1367 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
1368 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
1369 | },
1370 | "once": {
1371 | "version": "1.4.0",
1372 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1373 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1374 | "requires": {
1375 | "wrappy": "1"
1376 | }
1377 | },
1378 | "os-locale": {
1379 | "version": "1.4.0",
1380 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
1381 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
1382 | "requires": {
1383 | "lcid": "^1.0.0"
1384 | }
1385 | },
1386 | "p-cancelable": {
1387 | "version": "1.1.0",
1388 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1389 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
1390 | },
1391 | "package-json": {
1392 | "version": "6.5.0",
1393 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
1394 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
1395 | "requires": {
1396 | "got": "^9.6.0",
1397 | "registry-auth-token": "^4.0.0",
1398 | "registry-url": "^5.0.0",
1399 | "semver": "^6.2.0"
1400 | },
1401 | "dependencies": {
1402 | "semver": {
1403 | "version": "6.3.0",
1404 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1405 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1406 | }
1407 | }
1408 | },
1409 | "parse-json": {
1410 | "version": "2.2.0",
1411 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1412 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1413 | "requires": {
1414 | "error-ex": "^1.2.0"
1415 | }
1416 | },
1417 | "parseurl": {
1418 | "version": "1.3.3",
1419 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1420 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1421 | },
1422 | "path-exists": {
1423 | "version": "2.1.0",
1424 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
1425 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
1426 | "requires": {
1427 | "pinkie-promise": "^2.0.0"
1428 | }
1429 | },
1430 | "path-parse": {
1431 | "version": "1.0.7",
1432 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1433 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1434 | },
1435 | "path-to-regexp": {
1436 | "version": "0.1.7",
1437 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1438 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1439 | },
1440 | "path-type": {
1441 | "version": "1.1.0",
1442 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
1443 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
1444 | "requires": {
1445 | "graceful-fs": "^4.1.2",
1446 | "pify": "^2.0.0",
1447 | "pinkie-promise": "^2.0.0"
1448 | }
1449 | },
1450 | "performance-now": {
1451 | "version": "2.1.0",
1452 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1453 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1454 | },
1455 | "picomatch": {
1456 | "version": "2.3.0",
1457 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
1458 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
1459 | },
1460 | "pify": {
1461 | "version": "2.3.0",
1462 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1463 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
1464 | },
1465 | "pinkie": {
1466 | "version": "2.0.4",
1467 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1468 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
1469 | },
1470 | "pinkie-promise": {
1471 | "version": "2.0.1",
1472 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1473 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1474 | "requires": {
1475 | "pinkie": "^2.0.0"
1476 | }
1477 | },
1478 | "prepend-http": {
1479 | "version": "2.0.0",
1480 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1481 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
1482 | },
1483 | "process-nextick-args": {
1484 | "version": "2.0.1",
1485 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1486 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1487 | },
1488 | "proxy-addr": {
1489 | "version": "2.0.7",
1490 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1491 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1492 | "requires": {
1493 | "forwarded": "0.2.0",
1494 | "ipaddr.js": "1.9.1"
1495 | }
1496 | },
1497 | "psl": {
1498 | "version": "1.8.0",
1499 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
1500 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
1501 | },
1502 | "pstree.remy": {
1503 | "version": "1.1.8",
1504 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
1505 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
1506 | },
1507 | "pump": {
1508 | "version": "3.0.0",
1509 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1510 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1511 | "requires": {
1512 | "end-of-stream": "^1.1.0",
1513 | "once": "^1.3.1"
1514 | }
1515 | },
1516 | "punycode": {
1517 | "version": "2.1.1",
1518 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1519 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1520 | },
1521 | "pupa": {
1522 | "version": "2.1.1",
1523 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
1524 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
1525 | "requires": {
1526 | "escape-goat": "^2.0.0"
1527 | }
1528 | },
1529 | "qs": {
1530 | "version": "6.5.2",
1531 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1532 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
1533 | },
1534 | "range-parser": {
1535 | "version": "1.2.1",
1536 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1537 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1538 | },
1539 | "raw-body": {
1540 | "version": "2.4.0",
1541 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1542 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1543 | "requires": {
1544 | "bytes": "3.1.0",
1545 | "http-errors": "1.7.2",
1546 | "iconv-lite": "0.4.24",
1547 | "unpipe": "1.0.0"
1548 | }
1549 | },
1550 | "rc": {
1551 | "version": "1.2.8",
1552 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1553 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1554 | "requires": {
1555 | "deep-extend": "^0.6.0",
1556 | "ini": "~1.3.0",
1557 | "minimist": "^1.2.0",
1558 | "strip-json-comments": "~2.0.1"
1559 | }
1560 | },
1561 | "read-pkg": {
1562 | "version": "1.1.0",
1563 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
1564 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
1565 | "requires": {
1566 | "load-json-file": "^1.0.0",
1567 | "normalize-package-data": "^2.3.2",
1568 | "path-type": "^1.0.0"
1569 | }
1570 | },
1571 | "read-pkg-up": {
1572 | "version": "1.0.1",
1573 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
1574 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
1575 | "requires": {
1576 | "find-up": "^1.0.0",
1577 | "read-pkg": "^1.0.0"
1578 | }
1579 | },
1580 | "readable-stream": {
1581 | "version": "2.3.7",
1582 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1583 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1584 | "requires": {
1585 | "core-util-is": "~1.0.0",
1586 | "inherits": "~2.0.3",
1587 | "isarray": "~1.0.0",
1588 | "process-nextick-args": "~2.0.0",
1589 | "safe-buffer": "~5.1.1",
1590 | "string_decoder": "~1.1.1",
1591 | "util-deprecate": "~1.0.1"
1592 | },
1593 | "dependencies": {
1594 | "safe-buffer": {
1595 | "version": "5.1.2",
1596 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1597 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1598 | }
1599 | }
1600 | },
1601 | "readdirp": {
1602 | "version": "3.6.0",
1603 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1604 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1605 | "requires": {
1606 | "picomatch": "^2.2.1"
1607 | }
1608 | },
1609 | "registry-auth-token": {
1610 | "version": "4.2.1",
1611 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
1612 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
1613 | "requires": {
1614 | "rc": "^1.2.8"
1615 | }
1616 | },
1617 | "registry-url": {
1618 | "version": "5.1.0",
1619 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
1620 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
1621 | "requires": {
1622 | "rc": "^1.2.8"
1623 | }
1624 | },
1625 | "request": {
1626 | "version": "2.88.2",
1627 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1628 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1629 | "requires": {
1630 | "aws-sign2": "~0.7.0",
1631 | "aws4": "^1.8.0",
1632 | "caseless": "~0.12.0",
1633 | "combined-stream": "~1.0.6",
1634 | "extend": "~3.0.2",
1635 | "forever-agent": "~0.6.1",
1636 | "form-data": "~2.3.2",
1637 | "har-validator": "~5.1.3",
1638 | "http-signature": "~1.2.0",
1639 | "is-typedarray": "~1.0.0",
1640 | "isstream": "~0.1.2",
1641 | "json-stringify-safe": "~5.0.1",
1642 | "mime-types": "~2.1.19",
1643 | "oauth-sign": "~0.9.0",
1644 | "performance-now": "^2.1.0",
1645 | "qs": "~6.5.2",
1646 | "safe-buffer": "^5.1.2",
1647 | "tough-cookie": "~2.5.0",
1648 | "tunnel-agent": "^0.6.0",
1649 | "uuid": "^3.3.2"
1650 | }
1651 | },
1652 | "require-directory": {
1653 | "version": "2.1.1",
1654 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1655 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
1656 | },
1657 | "require-main-filename": {
1658 | "version": "1.0.1",
1659 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
1660 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
1661 | },
1662 | "resolve": {
1663 | "version": "1.20.0",
1664 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
1665 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
1666 | "requires": {
1667 | "is-core-module": "^2.2.0",
1668 | "path-parse": "^1.0.6"
1669 | }
1670 | },
1671 | "responselike": {
1672 | "version": "1.0.2",
1673 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
1674 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
1675 | "requires": {
1676 | "lowercase-keys": "^1.0.0"
1677 | }
1678 | },
1679 | "safe-buffer": {
1680 | "version": "5.2.1",
1681 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1682 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1683 | },
1684 | "safer-buffer": {
1685 | "version": "2.1.2",
1686 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1687 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1688 | },
1689 | "sax": {
1690 | "version": "1.2.4",
1691 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
1692 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
1693 | },
1694 | "semver": {
1695 | "version": "5.7.1",
1696 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1697 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1698 | },
1699 | "semver-diff": {
1700 | "version": "3.1.1",
1701 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
1702 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
1703 | "requires": {
1704 | "semver": "^6.3.0"
1705 | },
1706 | "dependencies": {
1707 | "semver": {
1708 | "version": "6.3.0",
1709 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1710 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1711 | }
1712 | }
1713 | },
1714 | "send": {
1715 | "version": "0.17.1",
1716 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1717 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1718 | "requires": {
1719 | "debug": "2.6.9",
1720 | "depd": "~1.1.2",
1721 | "destroy": "~1.0.4",
1722 | "encodeurl": "~1.0.2",
1723 | "escape-html": "~1.0.3",
1724 | "etag": "~1.8.1",
1725 | "fresh": "0.5.2",
1726 | "http-errors": "~1.7.2",
1727 | "mime": "1.6.0",
1728 | "ms": "2.1.1",
1729 | "on-finished": "~2.3.0",
1730 | "range-parser": "~1.2.1",
1731 | "statuses": "~1.5.0"
1732 | },
1733 | "dependencies": {
1734 | "ms": {
1735 | "version": "2.1.1",
1736 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1737 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1738 | }
1739 | }
1740 | },
1741 | "serve-static": {
1742 | "version": "1.14.1",
1743 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1744 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1745 | "requires": {
1746 | "encodeurl": "~1.0.2",
1747 | "escape-html": "~1.0.3",
1748 | "parseurl": "~1.3.3",
1749 | "send": "0.17.1"
1750 | }
1751 | },
1752 | "set-blocking": {
1753 | "version": "2.0.0",
1754 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1755 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
1756 | },
1757 | "setprototypeof": {
1758 | "version": "1.1.1",
1759 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1760 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1761 | },
1762 | "signal-exit": {
1763 | "version": "3.0.3",
1764 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1765 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
1766 | },
1767 | "spdx-correct": {
1768 | "version": "3.1.1",
1769 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
1770 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
1771 | "requires": {
1772 | "spdx-expression-parse": "^3.0.0",
1773 | "spdx-license-ids": "^3.0.0"
1774 | }
1775 | },
1776 | "spdx-exceptions": {
1777 | "version": "2.3.0",
1778 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
1779 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
1780 | },
1781 | "spdx-expression-parse": {
1782 | "version": "3.0.1",
1783 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
1784 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
1785 | "requires": {
1786 | "spdx-exceptions": "^2.1.0",
1787 | "spdx-license-ids": "^3.0.0"
1788 | }
1789 | },
1790 | "spdx-license-ids": {
1791 | "version": "3.0.9",
1792 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
1793 | "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ=="
1794 | },
1795 | "sshpk": {
1796 | "version": "1.16.1",
1797 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1798 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1799 | "requires": {
1800 | "asn1": "~0.2.3",
1801 | "assert-plus": "^1.0.0",
1802 | "bcrypt-pbkdf": "^1.0.0",
1803 | "dashdash": "^1.12.0",
1804 | "ecc-jsbn": "~0.1.1",
1805 | "getpass": "^0.1.1",
1806 | "jsbn": "~0.1.0",
1807 | "safer-buffer": "^2.0.2",
1808 | "tweetnacl": "~0.14.0"
1809 | }
1810 | },
1811 | "statuses": {
1812 | "version": "1.5.0",
1813 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1814 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1815 | },
1816 | "string-width": {
1817 | "version": "1.0.2",
1818 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1819 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1820 | "requires": {
1821 | "code-point-at": "^1.0.0",
1822 | "is-fullwidth-code-point": "^1.0.0",
1823 | "strip-ansi": "^3.0.0"
1824 | }
1825 | },
1826 | "string_decoder": {
1827 | "version": "1.1.1",
1828 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1829 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1830 | "requires": {
1831 | "safe-buffer": "~5.1.0"
1832 | },
1833 | "dependencies": {
1834 | "safe-buffer": {
1835 | "version": "5.1.2",
1836 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1837 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1838 | }
1839 | }
1840 | },
1841 | "strip-ansi": {
1842 | "version": "3.0.1",
1843 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1844 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1845 | "requires": {
1846 | "ansi-regex": "^2.0.0"
1847 | }
1848 | },
1849 | "strip-bom": {
1850 | "version": "2.0.0",
1851 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
1852 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
1853 | "requires": {
1854 | "is-utf8": "^0.2.0"
1855 | }
1856 | },
1857 | "strip-json-comments": {
1858 | "version": "2.0.1",
1859 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1860 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
1861 | },
1862 | "supports-color": {
1863 | "version": "5.5.0",
1864 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1865 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1866 | "requires": {
1867 | "has-flag": "^3.0.0"
1868 | }
1869 | },
1870 | "term-size": {
1871 | "version": "2.2.1",
1872 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
1873 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
1874 | },
1875 | "to-readable-stream": {
1876 | "version": "1.0.0",
1877 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
1878 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
1879 | },
1880 | "to-regex-range": {
1881 | "version": "5.0.1",
1882 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1883 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1884 | "requires": {
1885 | "is-number": "^7.0.0"
1886 | }
1887 | },
1888 | "toidentifier": {
1889 | "version": "1.0.0",
1890 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1891 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1892 | },
1893 | "touch": {
1894 | "version": "3.1.0",
1895 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1896 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1897 | "requires": {
1898 | "nopt": "~1.0.10"
1899 | }
1900 | },
1901 | "tough-cookie": {
1902 | "version": "2.5.0",
1903 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1904 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1905 | "requires": {
1906 | "psl": "^1.1.28",
1907 | "punycode": "^2.1.1"
1908 | }
1909 | },
1910 | "tunnel-agent": {
1911 | "version": "0.6.0",
1912 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1913 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1914 | "requires": {
1915 | "safe-buffer": "^5.0.1"
1916 | }
1917 | },
1918 | "tweetnacl": {
1919 | "version": "0.14.5",
1920 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1921 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1922 | },
1923 | "type-fest": {
1924 | "version": "0.8.1",
1925 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1926 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
1927 | },
1928 | "type-is": {
1929 | "version": "1.6.18",
1930 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1931 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1932 | "requires": {
1933 | "media-typer": "0.3.0",
1934 | "mime-types": "~2.1.24"
1935 | }
1936 | },
1937 | "typedarray-to-buffer": {
1938 | "version": "3.1.5",
1939 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1940 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1941 | "requires": {
1942 | "is-typedarray": "^1.0.0"
1943 | }
1944 | },
1945 | "undefsafe": {
1946 | "version": "2.0.3",
1947 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
1948 | "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
1949 | "requires": {
1950 | "debug": "^2.2.0"
1951 | }
1952 | },
1953 | "unique-string": {
1954 | "version": "2.0.0",
1955 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1956 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1957 | "requires": {
1958 | "crypto-random-string": "^2.0.0"
1959 | }
1960 | },
1961 | "unpipe": {
1962 | "version": "1.0.0",
1963 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1964 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1965 | },
1966 | "update-notifier": {
1967 | "version": "4.1.3",
1968 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
1969 | "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
1970 | "requires": {
1971 | "boxen": "^4.2.0",
1972 | "chalk": "^3.0.0",
1973 | "configstore": "^5.0.1",
1974 | "has-yarn": "^2.1.0",
1975 | "import-lazy": "^2.1.0",
1976 | "is-ci": "^2.0.0",
1977 | "is-installed-globally": "^0.3.1",
1978 | "is-npm": "^4.0.0",
1979 | "is-yarn-global": "^0.3.0",
1980 | "latest-version": "^5.0.0",
1981 | "pupa": "^2.0.1",
1982 | "semver-diff": "^3.1.1",
1983 | "xdg-basedir": "^4.0.0"
1984 | }
1985 | },
1986 | "uri-js": {
1987 | "version": "4.4.1",
1988 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1989 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1990 | "requires": {
1991 | "punycode": "^2.1.0"
1992 | }
1993 | },
1994 | "url-parse-lax": {
1995 | "version": "3.0.0",
1996 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
1997 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
1998 | "requires": {
1999 | "prepend-http": "^2.0.0"
2000 | }
2001 | },
2002 | "util-deprecate": {
2003 | "version": "1.0.2",
2004 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2005 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
2006 | },
2007 | "utils-merge": {
2008 | "version": "1.0.1",
2009 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2010 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2011 | },
2012 | "uuid": {
2013 | "version": "3.4.0",
2014 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
2015 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
2016 | },
2017 | "validate-npm-package-license": {
2018 | "version": "3.0.4",
2019 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2020 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2021 | "requires": {
2022 | "spdx-correct": "^3.0.0",
2023 | "spdx-expression-parse": "^3.0.0"
2024 | }
2025 | },
2026 | "vary": {
2027 | "version": "1.1.2",
2028 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2029 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2030 | },
2031 | "verror": {
2032 | "version": "1.10.0",
2033 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2034 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2035 | "requires": {
2036 | "assert-plus": "^1.0.0",
2037 | "core-util-is": "1.0.2",
2038 | "extsprintf": "^1.2.0"
2039 | }
2040 | },
2041 | "which-module": {
2042 | "version": "1.0.0",
2043 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
2044 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
2045 | },
2046 | "widest-line": {
2047 | "version": "3.1.0",
2048 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
2049 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
2050 | "requires": {
2051 | "string-width": "^4.0.0"
2052 | },
2053 | "dependencies": {
2054 | "ansi-regex": {
2055 | "version": "5.0.0",
2056 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
2057 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
2058 | },
2059 | "emoji-regex": {
2060 | "version": "8.0.0",
2061 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2062 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
2063 | },
2064 | "is-fullwidth-code-point": {
2065 | "version": "3.0.0",
2066 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2067 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
2068 | },
2069 | "string-width": {
2070 | "version": "4.2.2",
2071 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
2072 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
2073 | "requires": {
2074 | "emoji-regex": "^8.0.0",
2075 | "is-fullwidth-code-point": "^3.0.0",
2076 | "strip-ansi": "^6.0.0"
2077 | }
2078 | },
2079 | "strip-ansi": {
2080 | "version": "6.0.0",
2081 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2082 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2083 | "requires": {
2084 | "ansi-regex": "^5.0.0"
2085 | }
2086 | }
2087 | }
2088 | },
2089 | "window-size": {
2090 | "version": "0.2.0",
2091 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
2092 | "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
2093 | },
2094 | "wrap-ansi": {
2095 | "version": "2.1.0",
2096 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
2097 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
2098 | "requires": {
2099 | "string-width": "^1.0.1",
2100 | "strip-ansi": "^3.0.1"
2101 | }
2102 | },
2103 | "wrappy": {
2104 | "version": "1.0.2",
2105 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2106 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
2107 | },
2108 | "write-file-atomic": {
2109 | "version": "3.0.3",
2110 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2111 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2112 | "requires": {
2113 | "imurmurhash": "^0.1.4",
2114 | "is-typedarray": "^1.0.0",
2115 | "signal-exit": "^3.0.2",
2116 | "typedarray-to-buffer": "^3.1.5"
2117 | }
2118 | },
2119 | "xdg-basedir": {
2120 | "version": "4.0.0",
2121 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
2122 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
2123 | },
2124 | "y18n": {
2125 | "version": "3.2.2",
2126 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
2127 | "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
2128 | },
2129 | "yargs": {
2130 | "version": "4.8.1",
2131 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
2132 | "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
2133 | "requires": {
2134 | "cliui": "^3.2.0",
2135 | "decamelize": "^1.1.1",
2136 | "get-caller-file": "^1.0.1",
2137 | "lodash.assign": "^4.0.3",
2138 | "os-locale": "^1.4.0",
2139 | "read-pkg-up": "^1.0.1",
2140 | "require-directory": "^2.1.1",
2141 | "require-main-filename": "^1.0.1",
2142 | "set-blocking": "^2.0.0",
2143 | "string-width": "^1.0.1",
2144 | "which-module": "^1.0.0",
2145 | "window-size": "^0.2.0",
2146 | "y18n": "^3.2.1",
2147 | "yargs-parser": "^2.4.1"
2148 | }
2149 | },
2150 | "yargs-parser": {
2151 | "version": "2.4.1",
2152 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
2153 | "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
2154 | "requires": {
2155 | "camelcase": "^3.0.0",
2156 | "lodash.assign": "^4.0.6"
2157 | }
2158 | },
2159 | "ytdl-core": {
2160 | "version": "4.9.0",
2161 | "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.9.0.tgz",
2162 | "integrity": "sha512-pfuWqEIrP3iYqz5jOMmaz9m+DAzfQpt8X1jmzoOsPdYWrLMV4ml7+p/zhDi0F8IF90i4Jmd0Pq0W1awnKDatKg==",
2163 | "requires": {
2164 | "m3u8stream": "^0.8.3",
2165 | "miniget": "^4.0.0",
2166 | "sax": "^1.1.3"
2167 | }
2168 | }
2169 | }
2170 | }
2171 |
--------------------------------------------------------------------------------