├── .gitignore ├── README.md ├── client ├── favicon.ico ├── index.html ├── index.js └── style.css └── server ├── .env.example ├── index.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | #Node.js 2 | node_modules/ 3 | 4 | # Logs 5 | logs/ 6 | *.log 7 | 8 | # Dependency directories 9 | pids/ 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Environment 15 | .env 16 | 17 | # Development specific 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | 22 | # Build output 23 | dist/ 24 | build/ 25 | out/ 26 | 27 | # IDE files 28 | .vscode/ 29 | .idea/ 30 | 31 | # Mac OS 32 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GirlScript Summer of Code 2023 Leaderboard 2 | [LeaderBoard](https://programerr01.github.io/Leaderboard/client/) for Girlscript Summer of Code (GSSOC) 3 | 4 | ## Tasks 5 | - [x] Showing Rank with Search result 6 | - [ ] Running Cron Job for Periodic Updation of Leaderboard 7 | - [x] Loading Icon when data is being fetched 8 | ## Contributors 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /client/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programerr01/Leaderboard/a28acbaa751c68eafc70dd2f0907649c7fbf888c/client/favicon.ico -------------------------------------------------------------------------------- /client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Leaderboard 6 | 7 | 8 | 9 | 10 | 11 | 12 |

Leaderboard GSSOC'23

13 | 14 |
15 | 16 |
17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
RankNameScoreProfile
30 |
31 |
32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /client/index.js: -------------------------------------------------------------------------------- 1 | var GLOBAL_DT = []; 2 | var tb = document.querySelector("#tb"); 3 | const loadingContainer = document.getElementById("loading-container"); 4 | 5 | var current_pointer = 0; 6 | var ind = 0; 7 | var backend_url = "https://api-leaderboard.onrender.com/getLeaderBoard"; 8 | const start = async ( 9 | url = "https://api-leaderboard.onrender.com/getLeaderBoard" 10 | ) => { 11 | loadingContainer.style.display = "flex"; 12 | const res = await fetch(url); 13 | const json_ = await res.json(); 14 | GLOBAL_DT = Object.entries(json_).sort((c, d) => -c[1].points + d[1].points); 15 | GLOBAL_DT.slice(current_pointer, current_pointer + 30).map((each) => { 16 | var entry = ` 17 | ${++ind} 18 | ${ 19 | each[1]["user_name"] 20 | } 21 | ${each[1]["points"]} 22 | Player 1 25 | 26 | `; 27 | tb.innerHTML += entry; 28 | }); 29 | 30 | current_pointer += 30; 31 | }; 32 | 33 | document.querySelector("#load-more").addEventListener("click", () => { 34 | GLOBAL_DT.slice(current_pointer, current_pointer + 30).map((each) => { 35 | var entry = ` 36 | ${++ind} 37 | ${ 38 | each[1]["user_name"] 39 | } 40 | ${each[1]["points"]} 41 | Player 1 44 | 45 | `; 46 | tb.innerHTML += entry; 47 | }); 48 | current_pointer += 30; 49 | }); 50 | 51 | var tb = document.querySelector("#tb"); 52 | var i = 1; 53 | // for(var each in dt){ 54 | // var str = ` 55 | // ${i} 56 | // ${dt[each]['user_name']} 57 | // ${dt[each]['points']} 58 | // Player 1 59 | // 60 | // ` 61 | // tb.innerHTML +=str; 62 | // i+=1; 63 | // } 64 | start(); 65 | 66 | let form = document.querySelector("#searchForm"); 67 | 68 | form.addEventListener("submit", (e) => { 69 | e.preventDefault(); 70 | 71 | // TODO: if you want to use query param approach 72 | // const urlParams = new URLSearchParams(window.location.search); 73 | // console.log(urlParams.get("search")); 74 | 75 | const input = e.target[0].value.toLowerCase(); 76 | 77 | if (input !== undefined && input !== "") { 78 | const searchedData = GLOBAL_DT.filter((element) => 79 | element[1]["user_name"].toLowerCase().includes(input) 80 | ); 81 | 82 | tb.innerHTML = ` 83 | 84 | Rank 85 | Name 86 | Score 87 | Image 88 | 89 | `; 90 | 91 | //Adding the search result data to rows of table 92 | for (i = 0; i < searchedData.length; i++) { 93 | let userName = searchedData[i][0]; 94 | let points = searchedData[i][1].points; 95 | let rank = 96 | GLOBAL_DT.findIndex((element) => 97 | element[0].toLowerCase().includes(userName.toLowerCase()) 98 | ) + 1; 99 | let userAvatar = GLOBAL_DT[rank-1][1].user_avatar; 100 | 101 | let entry = ` 102 | 103 | ${rank} 104 | ${userName} 105 | ${points} 106 | Player 1 107 | 108 | `; 109 | 110 | tb.innerHTML += entry; 111 | } 112 | } else { 113 | window.location.reload(); 114 | } 115 | }); 116 | -------------------------------------------------------------------------------- /client/style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap'); 2 | 3 | 4 | body{ 5 | font-family: 'Poppins', sans-serif; 6 | background-color: #d4d2d2; 7 | } 8 | 9 | input:hover{ 10 | filter: drop-shadow(2px 2px 2px #000); 11 | transition: .2s ease; 12 | } 13 | 14 | button:hover{ 15 | transform: scale(1.1); 16 | transition: .2s ease; 17 | cursor: pointer; 18 | } 19 | 20 | table { 21 | width: 100%; 22 | border-collapse: collapse; 23 | } 24 | 25 | a{ 26 | text-decoration: none; 27 | color: black; 28 | } 29 | 30 | th, 31 | td { 32 | padding: 8px; 33 | text-align: left; 34 | border-bottom: 1px solid #ddd; 35 | } 36 | 37 | th { 38 | background-color: #f2f2f2; 39 | } 40 | 41 | .leaderboard-image { 42 | max-width: 50px; 43 | max-height: 50px; 44 | } 45 | 46 | #load-more { 47 | margin-top: 20px; 48 | } 49 | #loading-container { 50 | display: flex; 51 | justify-content: center; 52 | align-items: center; 53 | height: 100vh; 54 | } 55 | 56 | .loader { 57 | border: 8px solid #f3f3f3; 58 | border-top: 8px solid #3498db; 59 | border-radius: 50%; 60 | width: 60px; 61 | height: 60px; 62 | animation: spin 2s linear infinite; 63 | } 64 | 65 | @keyframes spin { 66 | 0% { 67 | transform: rotate(0deg); 68 | } 69 | 100% { 70 | transform: rotate(360deg); 71 | } 72 | } 73 | 74 | 75 | #searchForm { 76 | max-width: 50%; 77 | margin: auto; 78 | } 79 | 80 | .form-control { 81 | width: 100%; 82 | margin: auto; 83 | padding: 0.8rem 1rem; 84 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.01); 85 | border-radius: 0.5rem; 86 | } 87 | 88 | .btn { 89 | padding: 0.5rem 1.2rem; 90 | border: none; 91 | outline: none; 92 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.01); 93 | border-radius: 0.5rem; 94 | width: 50%; 95 | margin: 0.4rem; 96 | font-size: 1rem; 97 | } 98 | 99 | .btn-container { 100 | display: flex; 101 | justify-content: center; 102 | } 103 | 104 | .btn-blue { 105 | background-color: rgb(26, 228, 255); 106 | } 107 | .btn-yellow { 108 | background-color: lightsalmon; 109 | }table { 110 | width: 100%; 111 | border-collapse: collapse; 112 | } 113 | 114 | th, 115 | td { 116 | padding: 8px; 117 | text-align: left; 118 | border-bottom: 1px solid #ddd; 119 | } 120 | 121 | th { 122 | background-color: #f2f2f2; 123 | } 124 | 125 | .leaderboard-image { 126 | max-width: 50px; 127 | max-height: 50px; 128 | } 129 | 130 | #load-more { 131 | margin-top: 20px; 132 | } 133 | #loading-container { 134 | display: flex; 135 | justify-content: center; 136 | align-items: center; 137 | height: 100vh; 138 | } 139 | 140 | .loader { 141 | border: 8px solid #f3f3f3; 142 | border-top: 8px solid #3498db; 143 | border-radius: 50%; 144 | width: 60px; 145 | height: 60px; 146 | animation: spin 2s linear infinite; 147 | } 148 | 149 | @keyframes spin { 150 | 0% { 151 | transform: rotate(0deg); 152 | } 153 | 100% { 154 | transform: rotate(360deg); 155 | } 156 | } 157 | 158 | 159 | #searchForm { 160 | max-width: 50%; 161 | margin: auto; 162 | } 163 | 164 | .form-control { 165 | width: 100%; 166 | margin: auto; 167 | padding: 0.8rem 1rem; 168 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.01); 169 | border-radius: 0.5rem; 170 | } 171 | 172 | .btn { 173 | padding: 0.5rem 1.2rem; 174 | border: none; 175 | outline: none; 176 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.01); 177 | border-radius: 0.5rem; 178 | width: 50%; 179 | margin: 0.4rem; 180 | font-size: 1rem; 181 | } 182 | 183 | .btn-blue { 184 | background-color: lightgreen; 185 | } 186 | .btn-yellow { 187 | background-color: lightsalmon; 188 | } -------------------------------------------------------------------------------- /server/.env.example: -------------------------------------------------------------------------------- 1 | TOKENS=["github_pat_11AOSH73..............","github_pat_11AOSH73................"] 2 | PORT=80 -------------------------------------------------------------------------------- /server/index.js: -------------------------------------------------------------------------------- 1 | const express = require("express") 2 | const cors = require("cors"); 3 | const request = require('sync-request'); 4 | const morgan = require('morgan') 5 | 6 | require('dotenv').config() 7 | 8 | const app = express(); 9 | 10 | 11 | var GLOBAL_DT = { 12 | "first_date":"2023-05-18T00:00:00Z", 13 | "repos_list":[], 14 | "leaderboard":{}, 15 | "points":{"level1":10,"level2":25,"level3":45} 16 | } 17 | function sleep(ms) { 18 | return new Promise(resolve => setTimeout(resolve, ms)); 19 | } 20 | 21 | app.use(cors()) 22 | app.use(express.json()) 23 | app.use(morgan('combined')) 24 | 25 | app.get("/", (req, res) => { 26 | res.send(JSON.stringify({"status":200,"working":true})); 27 | }); 28 | //Object.entries(a).sort((c,d)=> c.points- d.points) 29 | 30 | TOKENS=JSON.parse(process.env.TOKENS) 31 | t_ind = 0; 32 | function Update_leaderBoard(){ 33 | total_pages = 0; 34 | for(var each of GLOBAL_DT['repos_list']){ 35 | if(total_pages > 10){ 36 | console.log("chaning page"); 37 | t_ind= (t_ind+1)%TOKENS.length; 38 | } 39 | var repo = each['project_link'].split("/").slice(-2).join("/"); 40 | console.log('starting with ',repo); 41 | 42 | var last_date_ =false; 43 | var page_no = 1; 44 | while(!last_date_){ 45 | total_pages+=1; 46 | const options = { 47 | headers: { 48 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', 49 | "Authorization": "Bearer "+TOKENS[t_ind] 50 | } 51 | }; 52 | var jsonData; 53 | 54 | const response = request('GET', `https://api.github.com/repos/${repo}/issues?state=closed&page=${page_no.toString()}&per_page=100`,options); 55 | if(response.statusCode == 404|| response.statusCode == 403){ 56 | break; 57 | } 58 | 59 | jsonData = JSON.parse(response.getBody('utf8')); 60 | 61 | 62 | // console.log(response); 63 | // const jsonData = response.data; 64 | // console.log(jsonData); 65 | //check if issues are before starting date 66 | 67 | if(jsonData.length == 0){ 68 | last_date_ = true; 69 | break; 70 | } 71 | if(new Date(jsonData[0]['created_at']) < new Date(GLOBAL_DT['first_date'])){ 72 | last_date_ = true; 73 | break; 74 | } 75 | console.log("got page ",page_no,repo); 76 | for(var issue_ of jsonData){ 77 | var is_valid = false; 78 | var label_points =''; 79 | for(var label of issue_['labels']){ 80 | if(label['name'] ==='level1'|| label['name'] ==='level2'|| label['name'] ==='level3'){ 81 | label_points = GLOBAL_DT['points'][label['name'] ] 82 | is_valid = true; 83 | break; 84 | } 85 | } 86 | if(is_valid){ 87 | var users_ = [] 88 | // valid if given any one of the level 1, 2 or 3 89 | if(issue_['pull_request']){ 90 | if(issue_['pull_request']['merged_at']){ 91 | // valid if pull request was merged 92 | user_name = issue_['user']['login']; 93 | user_avatar = issue_['user']['avatar_url']; 94 | users_.push({user_name,user_avatar}) 95 | } 96 | } 97 | else if(issue_['state'] == 'closed' && issue_['state_reason'] == "completed"){ 98 | //valid if issue was closed and completed and someone was assigned to it 99 | for(var user_ of issue_['assignees']){ 100 | user_name = user_['login']; 101 | user_avatar = user_['avatar_url']; 102 | users_.push({user_name,user_avatar}) 103 | } 104 | } 105 | for(var user of users_){ 106 | if(GLOBAL_DT['leaderboard'][user['user_name']]){ 107 | GLOBAL_DT['leaderboard'][user['user_name']]['points'] +=label_points 108 | } 109 | else{ 110 | GLOBAL_DT['leaderboard'][user['user_name']] =user; 111 | GLOBAL_DT['leaderboard'][user['user_name']]['points'] = label_points 112 | 113 | } 114 | } 115 | } 116 | 117 | } 118 | 119 | 120 | 121 | 122 | page_no+=1; 123 | } 124 | } 125 | } 126 | 127 | function initializeRepo(){ 128 | const response = request('GET', 'https://opensheet.elk.sh/1v7VqK6i_xJK4nJ6GKzoeafwrnlJR8Y5-8v0Qfsh3gqo/Shortlisted'); 129 | const jsonData = JSON.parse(response.getBody('utf8')); 130 | GLOBAL_DT['repos_list'] = jsonData 131 | console.log("Repo List is fetched"); 132 | } 133 | 134 | 135 | app.get("/getLeaderBoard", (req, res) => { 136 | res.send(JSON.stringify(GLOBAL_DT['leaderboard'])); 137 | }); 138 | 139 | app.get("/get", (req, res) => { 140 | res.send(JSON.stringify(GLOBAL_DT['repos_list'])); 141 | }); 142 | 143 | const port = process.env.PORT || 3000 144 | 145 | app.listen(port,() => { 146 | initializeRepo(); 147 | try{ 148 | Update_leaderBoard(); 149 | } 150 | catch(err){ 151 | console.log("error",err); 152 | } 153 | console.log(`backend running at port ${port}`); 154 | }) 155 | 156 | 157 | -------------------------------------------------------------------------------- /server/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ggsoc_leaderboard_server", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "ggsoc_leaderboard_server", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "axios": "^1.4.0", 13 | "cors": "^2.8.5", 14 | "dotenv": "^16.1.1", 15 | "express": "^4.18.2", 16 | "morgan": "^1.10.0", 17 | "sync-request": "^6.1.0" 18 | } 19 | }, 20 | "node_modules/@types/concat-stream": { 21 | "version": "1.6.1", 22 | "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", 23 | "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", 24 | "dependencies": { 25 | "@types/node": "*" 26 | } 27 | }, 28 | "node_modules/@types/form-data": { 29 | "version": "0.0.33", 30 | "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", 31 | "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", 32 | "dependencies": { 33 | "@types/node": "*" 34 | } 35 | }, 36 | "node_modules/@types/node": { 37 | "version": "10.17.60", 38 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", 39 | "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" 40 | }, 41 | "node_modules/@types/qs": { 42 | "version": "6.9.7", 43 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", 44 | "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" 45 | }, 46 | "node_modules/accepts": { 47 | "version": "1.3.8", 48 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 49 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 50 | "dependencies": { 51 | "mime-types": "~2.1.34", 52 | "negotiator": "0.6.3" 53 | }, 54 | "engines": { 55 | "node": ">= 0.6" 56 | } 57 | }, 58 | "node_modules/array-flatten": { 59 | "version": "1.1.1", 60 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 61 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 62 | }, 63 | "node_modules/asap": { 64 | "version": "2.0.6", 65 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 66 | "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" 67 | }, 68 | "node_modules/asynckit": { 69 | "version": "0.4.0", 70 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 71 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 72 | }, 73 | "node_modules/axios": { 74 | "version": "1.4.0", 75 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", 76 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", 77 | "dependencies": { 78 | "follow-redirects": "^1.15.0", 79 | "form-data": "^4.0.0", 80 | "proxy-from-env": "^1.1.0" 81 | } 82 | }, 83 | "node_modules/basic-auth": { 84 | "version": "2.0.1", 85 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 86 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 87 | "dependencies": { 88 | "safe-buffer": "5.1.2" 89 | }, 90 | "engines": { 91 | "node": ">= 0.8" 92 | } 93 | }, 94 | "node_modules/basic-auth/node_modules/safe-buffer": { 95 | "version": "5.1.2", 96 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 97 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 98 | }, 99 | "node_modules/body-parser": { 100 | "version": "1.20.1", 101 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", 102 | "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", 103 | "dependencies": { 104 | "bytes": "3.1.2", 105 | "content-type": "~1.0.4", 106 | "debug": "2.6.9", 107 | "depd": "2.0.0", 108 | "destroy": "1.2.0", 109 | "http-errors": "2.0.0", 110 | "iconv-lite": "0.4.24", 111 | "on-finished": "2.4.1", 112 | "qs": "6.11.0", 113 | "raw-body": "2.5.1", 114 | "type-is": "~1.6.18", 115 | "unpipe": "1.0.0" 116 | }, 117 | "engines": { 118 | "node": ">= 0.8", 119 | "npm": "1.2.8000 || >= 1.4.16" 120 | } 121 | }, 122 | "node_modules/buffer-from": { 123 | "version": "1.1.2", 124 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 125 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 126 | }, 127 | "node_modules/bytes": { 128 | "version": "3.1.2", 129 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 130 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 131 | "engines": { 132 | "node": ">= 0.8" 133 | } 134 | }, 135 | "node_modules/call-bind": { 136 | "version": "1.0.2", 137 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 138 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 139 | "dependencies": { 140 | "function-bind": "^1.1.1", 141 | "get-intrinsic": "^1.0.2" 142 | }, 143 | "funding": { 144 | "url": "https://github.com/sponsors/ljharb" 145 | } 146 | }, 147 | "node_modules/caseless": { 148 | "version": "0.12.0", 149 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 150 | "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" 151 | }, 152 | "node_modules/combined-stream": { 153 | "version": "1.0.8", 154 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 155 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 156 | "dependencies": { 157 | "delayed-stream": "~1.0.0" 158 | }, 159 | "engines": { 160 | "node": ">= 0.8" 161 | } 162 | }, 163 | "node_modules/concat-stream": { 164 | "version": "1.6.2", 165 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 166 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 167 | "engines": [ 168 | "node >= 0.8" 169 | ], 170 | "dependencies": { 171 | "buffer-from": "^1.0.0", 172 | "inherits": "^2.0.3", 173 | "readable-stream": "^2.2.2", 174 | "typedarray": "^0.0.6" 175 | } 176 | }, 177 | "node_modules/content-disposition": { 178 | "version": "0.5.4", 179 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 180 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 181 | "dependencies": { 182 | "safe-buffer": "5.2.1" 183 | }, 184 | "engines": { 185 | "node": ">= 0.6" 186 | } 187 | }, 188 | "node_modules/content-type": { 189 | "version": "1.0.5", 190 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 191 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", 192 | "engines": { 193 | "node": ">= 0.6" 194 | } 195 | }, 196 | "node_modules/cookie": { 197 | "version": "0.5.0", 198 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 199 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 200 | "engines": { 201 | "node": ">= 0.6" 202 | } 203 | }, 204 | "node_modules/cookie-signature": { 205 | "version": "1.0.6", 206 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 207 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 208 | }, 209 | "node_modules/core-util-is": { 210 | "version": "1.0.3", 211 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 212 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 213 | }, 214 | "node_modules/cors": { 215 | "version": "2.8.5", 216 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 217 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 218 | "dependencies": { 219 | "object-assign": "^4", 220 | "vary": "^1" 221 | }, 222 | "engines": { 223 | "node": ">= 0.10" 224 | } 225 | }, 226 | "node_modules/debug": { 227 | "version": "2.6.9", 228 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 229 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 230 | "dependencies": { 231 | "ms": "2.0.0" 232 | } 233 | }, 234 | "node_modules/delayed-stream": { 235 | "version": "1.0.0", 236 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 237 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 238 | "engines": { 239 | "node": ">=0.4.0" 240 | } 241 | }, 242 | "node_modules/depd": { 243 | "version": "2.0.0", 244 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 245 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 246 | "engines": { 247 | "node": ">= 0.8" 248 | } 249 | }, 250 | "node_modules/destroy": { 251 | "version": "1.2.0", 252 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 253 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 254 | "engines": { 255 | "node": ">= 0.8", 256 | "npm": "1.2.8000 || >= 1.4.16" 257 | } 258 | }, 259 | "node_modules/dotenv": { 260 | "version": "16.1.1", 261 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.1.1.tgz", 262 | "integrity": "sha512-UGmzIqXU/4b6Vb3R1Vrfd/4vGgVlB+mO+vEixOdfRhLeppkyW2BMhuK7TL8d0el+q9c4lW9qK2wZYhNLFhXYLA==", 263 | "engines": { 264 | "node": ">=12" 265 | }, 266 | "funding": { 267 | "url": "https://github.com/motdotla/dotenv?sponsor=1" 268 | } 269 | }, 270 | "node_modules/ee-first": { 271 | "version": "1.1.1", 272 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 273 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 274 | }, 275 | "node_modules/encodeurl": { 276 | "version": "1.0.2", 277 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 278 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", 279 | "engines": { 280 | "node": ">= 0.8" 281 | } 282 | }, 283 | "node_modules/escape-html": { 284 | "version": "1.0.3", 285 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 286 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 287 | }, 288 | "node_modules/etag": { 289 | "version": "1.8.1", 290 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 291 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 292 | "engines": { 293 | "node": ">= 0.6" 294 | } 295 | }, 296 | "node_modules/express": { 297 | "version": "4.18.2", 298 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", 299 | "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", 300 | "dependencies": { 301 | "accepts": "~1.3.8", 302 | "array-flatten": "1.1.1", 303 | "body-parser": "1.20.1", 304 | "content-disposition": "0.5.4", 305 | "content-type": "~1.0.4", 306 | "cookie": "0.5.0", 307 | "cookie-signature": "1.0.6", 308 | "debug": "2.6.9", 309 | "depd": "2.0.0", 310 | "encodeurl": "~1.0.2", 311 | "escape-html": "~1.0.3", 312 | "etag": "~1.8.1", 313 | "finalhandler": "1.2.0", 314 | "fresh": "0.5.2", 315 | "http-errors": "2.0.0", 316 | "merge-descriptors": "1.0.1", 317 | "methods": "~1.1.2", 318 | "on-finished": "2.4.1", 319 | "parseurl": "~1.3.3", 320 | "path-to-regexp": "0.1.7", 321 | "proxy-addr": "~2.0.7", 322 | "qs": "6.11.0", 323 | "range-parser": "~1.2.1", 324 | "safe-buffer": "5.2.1", 325 | "send": "0.18.0", 326 | "serve-static": "1.15.0", 327 | "setprototypeof": "1.2.0", 328 | "statuses": "2.0.1", 329 | "type-is": "~1.6.18", 330 | "utils-merge": "1.0.1", 331 | "vary": "~1.1.2" 332 | }, 333 | "engines": { 334 | "node": ">= 0.10.0" 335 | } 336 | }, 337 | "node_modules/finalhandler": { 338 | "version": "1.2.0", 339 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 340 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 341 | "dependencies": { 342 | "debug": "2.6.9", 343 | "encodeurl": "~1.0.2", 344 | "escape-html": "~1.0.3", 345 | "on-finished": "2.4.1", 346 | "parseurl": "~1.3.3", 347 | "statuses": "2.0.1", 348 | "unpipe": "~1.0.0" 349 | }, 350 | "engines": { 351 | "node": ">= 0.8" 352 | } 353 | }, 354 | "node_modules/follow-redirects": { 355 | "version": "1.15.2", 356 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 357 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 358 | "funding": [ 359 | { 360 | "type": "individual", 361 | "url": "https://github.com/sponsors/RubenVerborgh" 362 | } 363 | ], 364 | "engines": { 365 | "node": ">=4.0" 366 | }, 367 | "peerDependenciesMeta": { 368 | "debug": { 369 | "optional": true 370 | } 371 | } 372 | }, 373 | "node_modules/form-data": { 374 | "version": "4.0.0", 375 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 376 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 377 | "dependencies": { 378 | "asynckit": "^0.4.0", 379 | "combined-stream": "^1.0.8", 380 | "mime-types": "^2.1.12" 381 | }, 382 | "engines": { 383 | "node": ">= 6" 384 | } 385 | }, 386 | "node_modules/forwarded": { 387 | "version": "0.2.0", 388 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 389 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 390 | "engines": { 391 | "node": ">= 0.6" 392 | } 393 | }, 394 | "node_modules/fresh": { 395 | "version": "0.5.2", 396 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 397 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", 398 | "engines": { 399 | "node": ">= 0.6" 400 | } 401 | }, 402 | "node_modules/function-bind": { 403 | "version": "1.1.1", 404 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 405 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 406 | }, 407 | "node_modules/get-intrinsic": { 408 | "version": "1.2.1", 409 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", 410 | "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", 411 | "dependencies": { 412 | "function-bind": "^1.1.1", 413 | "has": "^1.0.3", 414 | "has-proto": "^1.0.1", 415 | "has-symbols": "^1.0.3" 416 | }, 417 | "funding": { 418 | "url": "https://github.com/sponsors/ljharb" 419 | } 420 | }, 421 | "node_modules/get-port": { 422 | "version": "3.2.0", 423 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 424 | "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", 425 | "engines": { 426 | "node": ">=4" 427 | } 428 | }, 429 | "node_modules/has": { 430 | "version": "1.0.3", 431 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 432 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 433 | "dependencies": { 434 | "function-bind": "^1.1.1" 435 | }, 436 | "engines": { 437 | "node": ">= 0.4.0" 438 | } 439 | }, 440 | "node_modules/has-proto": { 441 | "version": "1.0.1", 442 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 443 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", 444 | "engines": { 445 | "node": ">= 0.4" 446 | }, 447 | "funding": { 448 | "url": "https://github.com/sponsors/ljharb" 449 | } 450 | }, 451 | "node_modules/has-symbols": { 452 | "version": "1.0.3", 453 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 454 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 455 | "engines": { 456 | "node": ">= 0.4" 457 | }, 458 | "funding": { 459 | "url": "https://github.com/sponsors/ljharb" 460 | } 461 | }, 462 | "node_modules/http-basic": { 463 | "version": "8.1.3", 464 | "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", 465 | "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", 466 | "dependencies": { 467 | "caseless": "^0.12.0", 468 | "concat-stream": "^1.6.2", 469 | "http-response-object": "^3.0.1", 470 | "parse-cache-control": "^1.0.1" 471 | }, 472 | "engines": { 473 | "node": ">=6.0.0" 474 | } 475 | }, 476 | "node_modules/http-errors": { 477 | "version": "2.0.0", 478 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 479 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 480 | "dependencies": { 481 | "depd": "2.0.0", 482 | "inherits": "2.0.4", 483 | "setprototypeof": "1.2.0", 484 | "statuses": "2.0.1", 485 | "toidentifier": "1.0.1" 486 | }, 487 | "engines": { 488 | "node": ">= 0.8" 489 | } 490 | }, 491 | "node_modules/http-response-object": { 492 | "version": "3.0.2", 493 | "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", 494 | "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", 495 | "dependencies": { 496 | "@types/node": "^10.0.3" 497 | } 498 | }, 499 | "node_modules/iconv-lite": { 500 | "version": "0.4.24", 501 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 502 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 503 | "dependencies": { 504 | "safer-buffer": ">= 2.1.2 < 3" 505 | }, 506 | "engines": { 507 | "node": ">=0.10.0" 508 | } 509 | }, 510 | "node_modules/inherits": { 511 | "version": "2.0.4", 512 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 513 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 514 | }, 515 | "node_modules/ipaddr.js": { 516 | "version": "1.9.1", 517 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 518 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 519 | "engines": { 520 | "node": ">= 0.10" 521 | } 522 | }, 523 | "node_modules/isarray": { 524 | "version": "1.0.0", 525 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 526 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 527 | }, 528 | "node_modules/media-typer": { 529 | "version": "0.3.0", 530 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 531 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", 532 | "engines": { 533 | "node": ">= 0.6" 534 | } 535 | }, 536 | "node_modules/merge-descriptors": { 537 | "version": "1.0.1", 538 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 539 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 540 | }, 541 | "node_modules/methods": { 542 | "version": "1.1.2", 543 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 544 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", 545 | "engines": { 546 | "node": ">= 0.6" 547 | } 548 | }, 549 | "node_modules/mime": { 550 | "version": "1.6.0", 551 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 552 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 553 | "bin": { 554 | "mime": "cli.js" 555 | }, 556 | "engines": { 557 | "node": ">=4" 558 | } 559 | }, 560 | "node_modules/mime-db": { 561 | "version": "1.52.0", 562 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 563 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 564 | "engines": { 565 | "node": ">= 0.6" 566 | } 567 | }, 568 | "node_modules/mime-types": { 569 | "version": "2.1.35", 570 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 571 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 572 | "dependencies": { 573 | "mime-db": "1.52.0" 574 | }, 575 | "engines": { 576 | "node": ">= 0.6" 577 | } 578 | }, 579 | "node_modules/morgan": { 580 | "version": "1.10.0", 581 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", 582 | "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", 583 | "dependencies": { 584 | "basic-auth": "~2.0.1", 585 | "debug": "2.6.9", 586 | "depd": "~2.0.0", 587 | "on-finished": "~2.3.0", 588 | "on-headers": "~1.0.2" 589 | }, 590 | "engines": { 591 | "node": ">= 0.8.0" 592 | } 593 | }, 594 | "node_modules/morgan/node_modules/on-finished": { 595 | "version": "2.3.0", 596 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 597 | "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", 598 | "dependencies": { 599 | "ee-first": "1.1.1" 600 | }, 601 | "engines": { 602 | "node": ">= 0.8" 603 | } 604 | }, 605 | "node_modules/ms": { 606 | "version": "2.0.0", 607 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 608 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 609 | }, 610 | "node_modules/negotiator": { 611 | "version": "0.6.3", 612 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 613 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 614 | "engines": { 615 | "node": ">= 0.6" 616 | } 617 | }, 618 | "node_modules/object-assign": { 619 | "version": "4.1.1", 620 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 621 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 622 | "engines": { 623 | "node": ">=0.10.0" 624 | } 625 | }, 626 | "node_modules/object-inspect": { 627 | "version": "1.12.3", 628 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", 629 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", 630 | "funding": { 631 | "url": "https://github.com/sponsors/ljharb" 632 | } 633 | }, 634 | "node_modules/on-finished": { 635 | "version": "2.4.1", 636 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 637 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 638 | "dependencies": { 639 | "ee-first": "1.1.1" 640 | }, 641 | "engines": { 642 | "node": ">= 0.8" 643 | } 644 | }, 645 | "node_modules/on-headers": { 646 | "version": "1.0.2", 647 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 648 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 649 | "engines": { 650 | "node": ">= 0.8" 651 | } 652 | }, 653 | "node_modules/parse-cache-control": { 654 | "version": "1.0.1", 655 | "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", 656 | "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" 657 | }, 658 | "node_modules/parseurl": { 659 | "version": "1.3.3", 660 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 661 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 662 | "engines": { 663 | "node": ">= 0.8" 664 | } 665 | }, 666 | "node_modules/path-to-regexp": { 667 | "version": "0.1.7", 668 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 669 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 670 | }, 671 | "node_modules/process-nextick-args": { 672 | "version": "2.0.1", 673 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 674 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 675 | }, 676 | "node_modules/promise": { 677 | "version": "8.3.0", 678 | "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", 679 | "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", 680 | "dependencies": { 681 | "asap": "~2.0.6" 682 | } 683 | }, 684 | "node_modules/proxy-addr": { 685 | "version": "2.0.7", 686 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 687 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 688 | "dependencies": { 689 | "forwarded": "0.2.0", 690 | "ipaddr.js": "1.9.1" 691 | }, 692 | "engines": { 693 | "node": ">= 0.10" 694 | } 695 | }, 696 | "node_modules/proxy-from-env": { 697 | "version": "1.1.0", 698 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 699 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 700 | }, 701 | "node_modules/qs": { 702 | "version": "6.11.0", 703 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", 704 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", 705 | "dependencies": { 706 | "side-channel": "^1.0.4" 707 | }, 708 | "engines": { 709 | "node": ">=0.6" 710 | }, 711 | "funding": { 712 | "url": "https://github.com/sponsors/ljharb" 713 | } 714 | }, 715 | "node_modules/range-parser": { 716 | "version": "1.2.1", 717 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 718 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 719 | "engines": { 720 | "node": ">= 0.6" 721 | } 722 | }, 723 | "node_modules/raw-body": { 724 | "version": "2.5.1", 725 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 726 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 727 | "dependencies": { 728 | "bytes": "3.1.2", 729 | "http-errors": "2.0.0", 730 | "iconv-lite": "0.4.24", 731 | "unpipe": "1.0.0" 732 | }, 733 | "engines": { 734 | "node": ">= 0.8" 735 | } 736 | }, 737 | "node_modules/readable-stream": { 738 | "version": "2.3.8", 739 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", 740 | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 741 | "dependencies": { 742 | "core-util-is": "~1.0.0", 743 | "inherits": "~2.0.3", 744 | "isarray": "~1.0.0", 745 | "process-nextick-args": "~2.0.0", 746 | "safe-buffer": "~5.1.1", 747 | "string_decoder": "~1.1.1", 748 | "util-deprecate": "~1.0.1" 749 | } 750 | }, 751 | "node_modules/readable-stream/node_modules/safe-buffer": { 752 | "version": "5.1.2", 753 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 754 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 755 | }, 756 | "node_modules/safe-buffer": { 757 | "version": "5.2.1", 758 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 759 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 760 | "funding": [ 761 | { 762 | "type": "github", 763 | "url": "https://github.com/sponsors/feross" 764 | }, 765 | { 766 | "type": "patreon", 767 | "url": "https://www.patreon.com/feross" 768 | }, 769 | { 770 | "type": "consulting", 771 | "url": "https://feross.org/support" 772 | } 773 | ] 774 | }, 775 | "node_modules/safer-buffer": { 776 | "version": "2.1.2", 777 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 778 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 779 | }, 780 | "node_modules/send": { 781 | "version": "0.18.0", 782 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 783 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 784 | "dependencies": { 785 | "debug": "2.6.9", 786 | "depd": "2.0.0", 787 | "destroy": "1.2.0", 788 | "encodeurl": "~1.0.2", 789 | "escape-html": "~1.0.3", 790 | "etag": "~1.8.1", 791 | "fresh": "0.5.2", 792 | "http-errors": "2.0.0", 793 | "mime": "1.6.0", 794 | "ms": "2.1.3", 795 | "on-finished": "2.4.1", 796 | "range-parser": "~1.2.1", 797 | "statuses": "2.0.1" 798 | }, 799 | "engines": { 800 | "node": ">= 0.8.0" 801 | } 802 | }, 803 | "node_modules/send/node_modules/ms": { 804 | "version": "2.1.3", 805 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 806 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 807 | }, 808 | "node_modules/serve-static": { 809 | "version": "1.15.0", 810 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 811 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 812 | "dependencies": { 813 | "encodeurl": "~1.0.2", 814 | "escape-html": "~1.0.3", 815 | "parseurl": "~1.3.3", 816 | "send": "0.18.0" 817 | }, 818 | "engines": { 819 | "node": ">= 0.8.0" 820 | } 821 | }, 822 | "node_modules/setprototypeof": { 823 | "version": "1.2.0", 824 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 825 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 826 | }, 827 | "node_modules/side-channel": { 828 | "version": "1.0.4", 829 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 830 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 831 | "dependencies": { 832 | "call-bind": "^1.0.0", 833 | "get-intrinsic": "^1.0.2", 834 | "object-inspect": "^1.9.0" 835 | }, 836 | "funding": { 837 | "url": "https://github.com/sponsors/ljharb" 838 | } 839 | }, 840 | "node_modules/statuses": { 841 | "version": "2.0.1", 842 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 843 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 844 | "engines": { 845 | "node": ">= 0.8" 846 | } 847 | }, 848 | "node_modules/string_decoder": { 849 | "version": "1.1.1", 850 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 851 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 852 | "dependencies": { 853 | "safe-buffer": "~5.1.0" 854 | } 855 | }, 856 | "node_modules/string_decoder/node_modules/safe-buffer": { 857 | "version": "5.1.2", 858 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 859 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 860 | }, 861 | "node_modules/sync-request": { 862 | "version": "6.1.0", 863 | "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", 864 | "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", 865 | "dependencies": { 866 | "http-response-object": "^3.0.1", 867 | "sync-rpc": "^1.2.1", 868 | "then-request": "^6.0.0" 869 | }, 870 | "engines": { 871 | "node": ">=8.0.0" 872 | } 873 | }, 874 | "node_modules/sync-rpc": { 875 | "version": "1.3.6", 876 | "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", 877 | "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", 878 | "dependencies": { 879 | "get-port": "^3.1.0" 880 | } 881 | }, 882 | "node_modules/then-request": { 883 | "version": "6.0.2", 884 | "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", 885 | "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", 886 | "dependencies": { 887 | "@types/concat-stream": "^1.6.0", 888 | "@types/form-data": "0.0.33", 889 | "@types/node": "^8.0.0", 890 | "@types/qs": "^6.2.31", 891 | "caseless": "~0.12.0", 892 | "concat-stream": "^1.6.0", 893 | "form-data": "^2.2.0", 894 | "http-basic": "^8.1.1", 895 | "http-response-object": "^3.0.1", 896 | "promise": "^8.0.0", 897 | "qs": "^6.4.0" 898 | }, 899 | "engines": { 900 | "node": ">=6.0.0" 901 | } 902 | }, 903 | "node_modules/then-request/node_modules/@types/node": { 904 | "version": "8.10.66", 905 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", 906 | "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" 907 | }, 908 | "node_modules/then-request/node_modules/form-data": { 909 | "version": "2.5.1", 910 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", 911 | "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", 912 | "dependencies": { 913 | "asynckit": "^0.4.0", 914 | "combined-stream": "^1.0.6", 915 | "mime-types": "^2.1.12" 916 | }, 917 | "engines": { 918 | "node": ">= 0.12" 919 | } 920 | }, 921 | "node_modules/toidentifier": { 922 | "version": "1.0.1", 923 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 924 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 925 | "engines": { 926 | "node": ">=0.6" 927 | } 928 | }, 929 | "node_modules/type-is": { 930 | "version": "1.6.18", 931 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 932 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 933 | "dependencies": { 934 | "media-typer": "0.3.0", 935 | "mime-types": "~2.1.24" 936 | }, 937 | "engines": { 938 | "node": ">= 0.6" 939 | } 940 | }, 941 | "node_modules/typedarray": { 942 | "version": "0.0.6", 943 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 944 | "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" 945 | }, 946 | "node_modules/unpipe": { 947 | "version": "1.0.0", 948 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 949 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 950 | "engines": { 951 | "node": ">= 0.8" 952 | } 953 | }, 954 | "node_modules/util-deprecate": { 955 | "version": "1.0.2", 956 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 957 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 958 | }, 959 | "node_modules/utils-merge": { 960 | "version": "1.0.1", 961 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 962 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", 963 | "engines": { 964 | "node": ">= 0.4.0" 965 | } 966 | }, 967 | "node_modules/vary": { 968 | "version": "1.1.2", 969 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 970 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 971 | "engines": { 972 | "node": ">= 0.8" 973 | } 974 | } 975 | }, 976 | "dependencies": { 977 | "@types/concat-stream": { 978 | "version": "1.6.1", 979 | "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", 980 | "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", 981 | "requires": { 982 | "@types/node": "*" 983 | } 984 | }, 985 | "@types/form-data": { 986 | "version": "0.0.33", 987 | "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", 988 | "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", 989 | "requires": { 990 | "@types/node": "*" 991 | } 992 | }, 993 | "@types/node": { 994 | "version": "10.17.60", 995 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", 996 | "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" 997 | }, 998 | "@types/qs": { 999 | "version": "6.9.7", 1000 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", 1001 | "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" 1002 | }, 1003 | "accepts": { 1004 | "version": "1.3.8", 1005 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 1006 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 1007 | "requires": { 1008 | "mime-types": "~2.1.34", 1009 | "negotiator": "0.6.3" 1010 | } 1011 | }, 1012 | "array-flatten": { 1013 | "version": "1.1.1", 1014 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 1015 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 1016 | }, 1017 | "asap": { 1018 | "version": "2.0.6", 1019 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 1020 | "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" 1021 | }, 1022 | "asynckit": { 1023 | "version": "0.4.0", 1024 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1025 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 1026 | }, 1027 | "axios": { 1028 | "version": "1.4.0", 1029 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", 1030 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", 1031 | "requires": { 1032 | "follow-redirects": "^1.15.0", 1033 | "form-data": "^4.0.0", 1034 | "proxy-from-env": "^1.1.0" 1035 | } 1036 | }, 1037 | "basic-auth": { 1038 | "version": "2.0.1", 1039 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 1040 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 1041 | "requires": { 1042 | "safe-buffer": "5.1.2" 1043 | }, 1044 | "dependencies": { 1045 | "safe-buffer": { 1046 | "version": "5.1.2", 1047 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1048 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1049 | } 1050 | } 1051 | }, 1052 | "body-parser": { 1053 | "version": "1.20.1", 1054 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", 1055 | "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", 1056 | "requires": { 1057 | "bytes": "3.1.2", 1058 | "content-type": "~1.0.4", 1059 | "debug": "2.6.9", 1060 | "depd": "2.0.0", 1061 | "destroy": "1.2.0", 1062 | "http-errors": "2.0.0", 1063 | "iconv-lite": "0.4.24", 1064 | "on-finished": "2.4.1", 1065 | "qs": "6.11.0", 1066 | "raw-body": "2.5.1", 1067 | "type-is": "~1.6.18", 1068 | "unpipe": "1.0.0" 1069 | } 1070 | }, 1071 | "buffer-from": { 1072 | "version": "1.1.2", 1073 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 1074 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 1075 | }, 1076 | "bytes": { 1077 | "version": "3.1.2", 1078 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 1079 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 1080 | }, 1081 | "call-bind": { 1082 | "version": "1.0.2", 1083 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1084 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1085 | "requires": { 1086 | "function-bind": "^1.1.1", 1087 | "get-intrinsic": "^1.0.2" 1088 | } 1089 | }, 1090 | "caseless": { 1091 | "version": "0.12.0", 1092 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 1093 | "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" 1094 | }, 1095 | "combined-stream": { 1096 | "version": "1.0.8", 1097 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1098 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1099 | "requires": { 1100 | "delayed-stream": "~1.0.0" 1101 | } 1102 | }, 1103 | "concat-stream": { 1104 | "version": "1.6.2", 1105 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 1106 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 1107 | "requires": { 1108 | "buffer-from": "^1.0.0", 1109 | "inherits": "^2.0.3", 1110 | "readable-stream": "^2.2.2", 1111 | "typedarray": "^0.0.6" 1112 | } 1113 | }, 1114 | "content-disposition": { 1115 | "version": "0.5.4", 1116 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 1117 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 1118 | "requires": { 1119 | "safe-buffer": "5.2.1" 1120 | } 1121 | }, 1122 | "content-type": { 1123 | "version": "1.0.5", 1124 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 1125 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" 1126 | }, 1127 | "cookie": { 1128 | "version": "0.5.0", 1129 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 1130 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 1131 | }, 1132 | "cookie-signature": { 1133 | "version": "1.0.6", 1134 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1135 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 1136 | }, 1137 | "core-util-is": { 1138 | "version": "1.0.3", 1139 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 1140 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 1141 | }, 1142 | "cors": { 1143 | "version": "2.8.5", 1144 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 1145 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 1146 | "requires": { 1147 | "object-assign": "^4", 1148 | "vary": "^1" 1149 | } 1150 | }, 1151 | "debug": { 1152 | "version": "2.6.9", 1153 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1154 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1155 | "requires": { 1156 | "ms": "2.0.0" 1157 | } 1158 | }, 1159 | "delayed-stream": { 1160 | "version": "1.0.0", 1161 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1162 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1163 | }, 1164 | "depd": { 1165 | "version": "2.0.0", 1166 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 1167 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 1168 | }, 1169 | "destroy": { 1170 | "version": "1.2.0", 1171 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 1172 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" 1173 | }, 1174 | "dotenv": { 1175 | "version": "16.1.1", 1176 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.1.1.tgz", 1177 | "integrity": "sha512-UGmzIqXU/4b6Vb3R1Vrfd/4vGgVlB+mO+vEixOdfRhLeppkyW2BMhuK7TL8d0el+q9c4lW9qK2wZYhNLFhXYLA==" 1178 | }, 1179 | "ee-first": { 1180 | "version": "1.1.1", 1181 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1182 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 1183 | }, 1184 | "encodeurl": { 1185 | "version": "1.0.2", 1186 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1187 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" 1188 | }, 1189 | "escape-html": { 1190 | "version": "1.0.3", 1191 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1192 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 1193 | }, 1194 | "etag": { 1195 | "version": "1.8.1", 1196 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1197 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 1198 | }, 1199 | "express": { 1200 | "version": "4.18.2", 1201 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", 1202 | "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", 1203 | "requires": { 1204 | "accepts": "~1.3.8", 1205 | "array-flatten": "1.1.1", 1206 | "body-parser": "1.20.1", 1207 | "content-disposition": "0.5.4", 1208 | "content-type": "~1.0.4", 1209 | "cookie": "0.5.0", 1210 | "cookie-signature": "1.0.6", 1211 | "debug": "2.6.9", 1212 | "depd": "2.0.0", 1213 | "encodeurl": "~1.0.2", 1214 | "escape-html": "~1.0.3", 1215 | "etag": "~1.8.1", 1216 | "finalhandler": "1.2.0", 1217 | "fresh": "0.5.2", 1218 | "http-errors": "2.0.0", 1219 | "merge-descriptors": "1.0.1", 1220 | "methods": "~1.1.2", 1221 | "on-finished": "2.4.1", 1222 | "parseurl": "~1.3.3", 1223 | "path-to-regexp": "0.1.7", 1224 | "proxy-addr": "~2.0.7", 1225 | "qs": "6.11.0", 1226 | "range-parser": "~1.2.1", 1227 | "safe-buffer": "5.2.1", 1228 | "send": "0.18.0", 1229 | "serve-static": "1.15.0", 1230 | "setprototypeof": "1.2.0", 1231 | "statuses": "2.0.1", 1232 | "type-is": "~1.6.18", 1233 | "utils-merge": "1.0.1", 1234 | "vary": "~1.1.2" 1235 | } 1236 | }, 1237 | "finalhandler": { 1238 | "version": "1.2.0", 1239 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 1240 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 1241 | "requires": { 1242 | "debug": "2.6.9", 1243 | "encodeurl": "~1.0.2", 1244 | "escape-html": "~1.0.3", 1245 | "on-finished": "2.4.1", 1246 | "parseurl": "~1.3.3", 1247 | "statuses": "2.0.1", 1248 | "unpipe": "~1.0.0" 1249 | } 1250 | }, 1251 | "follow-redirects": { 1252 | "version": "1.15.2", 1253 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 1254 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 1255 | }, 1256 | "form-data": { 1257 | "version": "4.0.0", 1258 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1259 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1260 | "requires": { 1261 | "asynckit": "^0.4.0", 1262 | "combined-stream": "^1.0.8", 1263 | "mime-types": "^2.1.12" 1264 | } 1265 | }, 1266 | "forwarded": { 1267 | "version": "0.2.0", 1268 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1269 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1270 | }, 1271 | "fresh": { 1272 | "version": "0.5.2", 1273 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1274 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" 1275 | }, 1276 | "function-bind": { 1277 | "version": "1.1.1", 1278 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1279 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1280 | }, 1281 | "get-intrinsic": { 1282 | "version": "1.2.1", 1283 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", 1284 | "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", 1285 | "requires": { 1286 | "function-bind": "^1.1.1", 1287 | "has": "^1.0.3", 1288 | "has-proto": "^1.0.1", 1289 | "has-symbols": "^1.0.3" 1290 | } 1291 | }, 1292 | "get-port": { 1293 | "version": "3.2.0", 1294 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 1295 | "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" 1296 | }, 1297 | "has": { 1298 | "version": "1.0.3", 1299 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1300 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1301 | "requires": { 1302 | "function-bind": "^1.1.1" 1303 | } 1304 | }, 1305 | "has-proto": { 1306 | "version": "1.0.1", 1307 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 1308 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" 1309 | }, 1310 | "has-symbols": { 1311 | "version": "1.0.3", 1312 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1313 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 1314 | }, 1315 | "http-basic": { 1316 | "version": "8.1.3", 1317 | "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", 1318 | "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", 1319 | "requires": { 1320 | "caseless": "^0.12.0", 1321 | "concat-stream": "^1.6.2", 1322 | "http-response-object": "^3.0.1", 1323 | "parse-cache-control": "^1.0.1" 1324 | } 1325 | }, 1326 | "http-errors": { 1327 | "version": "2.0.0", 1328 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 1329 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 1330 | "requires": { 1331 | "depd": "2.0.0", 1332 | "inherits": "2.0.4", 1333 | "setprototypeof": "1.2.0", 1334 | "statuses": "2.0.1", 1335 | "toidentifier": "1.0.1" 1336 | } 1337 | }, 1338 | "http-response-object": { 1339 | "version": "3.0.2", 1340 | "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", 1341 | "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", 1342 | "requires": { 1343 | "@types/node": "^10.0.3" 1344 | } 1345 | }, 1346 | "iconv-lite": { 1347 | "version": "0.4.24", 1348 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1349 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1350 | "requires": { 1351 | "safer-buffer": ">= 2.1.2 < 3" 1352 | } 1353 | }, 1354 | "inherits": { 1355 | "version": "2.0.4", 1356 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1357 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1358 | }, 1359 | "ipaddr.js": { 1360 | "version": "1.9.1", 1361 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1362 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1363 | }, 1364 | "isarray": { 1365 | "version": "1.0.0", 1366 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1367 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 1368 | }, 1369 | "media-typer": { 1370 | "version": "0.3.0", 1371 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1372 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" 1373 | }, 1374 | "merge-descriptors": { 1375 | "version": "1.0.1", 1376 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1377 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 1378 | }, 1379 | "methods": { 1380 | "version": "1.1.2", 1381 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1382 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" 1383 | }, 1384 | "mime": { 1385 | "version": "1.6.0", 1386 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1387 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1388 | }, 1389 | "mime-db": { 1390 | "version": "1.52.0", 1391 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1392 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1393 | }, 1394 | "mime-types": { 1395 | "version": "2.1.35", 1396 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1397 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1398 | "requires": { 1399 | "mime-db": "1.52.0" 1400 | } 1401 | }, 1402 | "morgan": { 1403 | "version": "1.10.0", 1404 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", 1405 | "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", 1406 | "requires": { 1407 | "basic-auth": "~2.0.1", 1408 | "debug": "2.6.9", 1409 | "depd": "~2.0.0", 1410 | "on-finished": "~2.3.0", 1411 | "on-headers": "~1.0.2" 1412 | }, 1413 | "dependencies": { 1414 | "on-finished": { 1415 | "version": "2.3.0", 1416 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1417 | "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", 1418 | "requires": { 1419 | "ee-first": "1.1.1" 1420 | } 1421 | } 1422 | } 1423 | }, 1424 | "ms": { 1425 | "version": "2.0.0", 1426 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1427 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 1428 | }, 1429 | "negotiator": { 1430 | "version": "0.6.3", 1431 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1432 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1433 | }, 1434 | "object-assign": { 1435 | "version": "4.1.1", 1436 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1437 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 1438 | }, 1439 | "object-inspect": { 1440 | "version": "1.12.3", 1441 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", 1442 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" 1443 | }, 1444 | "on-finished": { 1445 | "version": "2.4.1", 1446 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 1447 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 1448 | "requires": { 1449 | "ee-first": "1.1.1" 1450 | } 1451 | }, 1452 | "on-headers": { 1453 | "version": "1.0.2", 1454 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 1455 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" 1456 | }, 1457 | "parse-cache-control": { 1458 | "version": "1.0.1", 1459 | "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", 1460 | "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" 1461 | }, 1462 | "parseurl": { 1463 | "version": "1.3.3", 1464 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1465 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1466 | }, 1467 | "path-to-regexp": { 1468 | "version": "0.1.7", 1469 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1470 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 1471 | }, 1472 | "process-nextick-args": { 1473 | "version": "2.0.1", 1474 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1475 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1476 | }, 1477 | "promise": { 1478 | "version": "8.3.0", 1479 | "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", 1480 | "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", 1481 | "requires": { 1482 | "asap": "~2.0.6" 1483 | } 1484 | }, 1485 | "proxy-addr": { 1486 | "version": "2.0.7", 1487 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1488 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1489 | "requires": { 1490 | "forwarded": "0.2.0", 1491 | "ipaddr.js": "1.9.1" 1492 | } 1493 | }, 1494 | "proxy-from-env": { 1495 | "version": "1.1.0", 1496 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1497 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1498 | }, 1499 | "qs": { 1500 | "version": "6.11.0", 1501 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", 1502 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", 1503 | "requires": { 1504 | "side-channel": "^1.0.4" 1505 | } 1506 | }, 1507 | "range-parser": { 1508 | "version": "1.2.1", 1509 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1510 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1511 | }, 1512 | "raw-body": { 1513 | "version": "2.5.1", 1514 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 1515 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 1516 | "requires": { 1517 | "bytes": "3.1.2", 1518 | "http-errors": "2.0.0", 1519 | "iconv-lite": "0.4.24", 1520 | "unpipe": "1.0.0" 1521 | } 1522 | }, 1523 | "readable-stream": { 1524 | "version": "2.3.8", 1525 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", 1526 | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 1527 | "requires": { 1528 | "core-util-is": "~1.0.0", 1529 | "inherits": "~2.0.3", 1530 | "isarray": "~1.0.0", 1531 | "process-nextick-args": "~2.0.0", 1532 | "safe-buffer": "~5.1.1", 1533 | "string_decoder": "~1.1.1", 1534 | "util-deprecate": "~1.0.1" 1535 | }, 1536 | "dependencies": { 1537 | "safe-buffer": { 1538 | "version": "5.1.2", 1539 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1540 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1541 | } 1542 | } 1543 | }, 1544 | "safe-buffer": { 1545 | "version": "5.2.1", 1546 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1547 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1548 | }, 1549 | "safer-buffer": { 1550 | "version": "2.1.2", 1551 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1552 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1553 | }, 1554 | "send": { 1555 | "version": "0.18.0", 1556 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 1557 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 1558 | "requires": { 1559 | "debug": "2.6.9", 1560 | "depd": "2.0.0", 1561 | "destroy": "1.2.0", 1562 | "encodeurl": "~1.0.2", 1563 | "escape-html": "~1.0.3", 1564 | "etag": "~1.8.1", 1565 | "fresh": "0.5.2", 1566 | "http-errors": "2.0.0", 1567 | "mime": "1.6.0", 1568 | "ms": "2.1.3", 1569 | "on-finished": "2.4.1", 1570 | "range-parser": "~1.2.1", 1571 | "statuses": "2.0.1" 1572 | }, 1573 | "dependencies": { 1574 | "ms": { 1575 | "version": "2.1.3", 1576 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1577 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1578 | } 1579 | } 1580 | }, 1581 | "serve-static": { 1582 | "version": "1.15.0", 1583 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 1584 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 1585 | "requires": { 1586 | "encodeurl": "~1.0.2", 1587 | "escape-html": "~1.0.3", 1588 | "parseurl": "~1.3.3", 1589 | "send": "0.18.0" 1590 | } 1591 | }, 1592 | "setprototypeof": { 1593 | "version": "1.2.0", 1594 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 1595 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1596 | }, 1597 | "side-channel": { 1598 | "version": "1.0.4", 1599 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1600 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1601 | "requires": { 1602 | "call-bind": "^1.0.0", 1603 | "get-intrinsic": "^1.0.2", 1604 | "object-inspect": "^1.9.0" 1605 | } 1606 | }, 1607 | "statuses": { 1608 | "version": "2.0.1", 1609 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 1610 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 1611 | }, 1612 | "string_decoder": { 1613 | "version": "1.1.1", 1614 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1615 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1616 | "requires": { 1617 | "safe-buffer": "~5.1.0" 1618 | }, 1619 | "dependencies": { 1620 | "safe-buffer": { 1621 | "version": "5.1.2", 1622 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1623 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1624 | } 1625 | } 1626 | }, 1627 | "sync-request": { 1628 | "version": "6.1.0", 1629 | "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", 1630 | "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", 1631 | "requires": { 1632 | "http-response-object": "^3.0.1", 1633 | "sync-rpc": "^1.2.1", 1634 | "then-request": "^6.0.0" 1635 | } 1636 | }, 1637 | "sync-rpc": { 1638 | "version": "1.3.6", 1639 | "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", 1640 | "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", 1641 | "requires": { 1642 | "get-port": "^3.1.0" 1643 | } 1644 | }, 1645 | "then-request": { 1646 | "version": "6.0.2", 1647 | "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", 1648 | "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", 1649 | "requires": { 1650 | "@types/concat-stream": "^1.6.0", 1651 | "@types/form-data": "0.0.33", 1652 | "@types/node": "^8.0.0", 1653 | "@types/qs": "^6.2.31", 1654 | "caseless": "~0.12.0", 1655 | "concat-stream": "^1.6.0", 1656 | "form-data": "^2.2.0", 1657 | "http-basic": "^8.1.1", 1658 | "http-response-object": "^3.0.1", 1659 | "promise": "^8.0.0", 1660 | "qs": "^6.4.0" 1661 | }, 1662 | "dependencies": { 1663 | "@types/node": { 1664 | "version": "8.10.66", 1665 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", 1666 | "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" 1667 | }, 1668 | "form-data": { 1669 | "version": "2.5.1", 1670 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", 1671 | "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", 1672 | "requires": { 1673 | "asynckit": "^0.4.0", 1674 | "combined-stream": "^1.0.6", 1675 | "mime-types": "^2.1.12" 1676 | } 1677 | } 1678 | } 1679 | }, 1680 | "toidentifier": { 1681 | "version": "1.0.1", 1682 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 1683 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1684 | }, 1685 | "type-is": { 1686 | "version": "1.6.18", 1687 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1688 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1689 | "requires": { 1690 | "media-typer": "0.3.0", 1691 | "mime-types": "~2.1.24" 1692 | } 1693 | }, 1694 | "typedarray": { 1695 | "version": "0.0.6", 1696 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1697 | "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" 1698 | }, 1699 | "unpipe": { 1700 | "version": "1.0.0", 1701 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1702 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 1703 | }, 1704 | "util-deprecate": { 1705 | "version": "1.0.2", 1706 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1707 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1708 | }, 1709 | "utils-merge": { 1710 | "version": "1.0.1", 1711 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1712 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" 1713 | }, 1714 | "vary": { 1715 | "version": "1.1.2", 1716 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1717 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 1718 | } 1719 | } 1720 | } 1721 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ggsoc_leaderboard_server", 3 | "version": "1.0.0", 4 | "description": "backednd for ggsoc_leaderboard", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "axios": "^1.4.0", 13 | "cors": "^2.8.5", 14 | "dotenv": "^16.1.1", 15 | "express": "^4.18.2", 16 | "morgan": "^1.10.0", 17 | "sync-request": "^6.1.0" 18 | } 19 | } 20 | --------------------------------------------------------------------------------