Your Name
2023-09-13
v1.0
@72b5792d6ddd4e10e3ca2a8a0a5e70fd02c6f421
+++ .gitignore
... | ... | @@ -0,0 +1,1 @@ |
1 | +node_modules/(파일 끝에 줄바꿈 문자 없음) |
+++ README.md
... | ... | @@ -0,0 +1,17 @@ |
1 | +현재 버전은 터미널에서 | |
2 | +node server.js | |
3 | +를 입력해야 작동되는 방식입니다. | |
4 | + | |
5 | +초당 서버 통신이 얼마나 가능한지 tps를 측정하는 코드입니다. | |
6 | +node.js가 설치되어 있어야 실행이 가능합니다. | |
7 | +node.js 버전은 2023-09-13 기준 권장 사양을 선택했으며 v18.17.1를 사용했습니다. | |
8 | + | |
9 | +실행방법은 다음과 같습니다. | |
10 | +1. 현 폴더에 터미널의 주소를 맞춰줍니다. | |
11 | +2. 터미널에 npm install을 입력하고 엔터를 누릅니다. | |
12 | +3. 터미널에 node server.js를 입력합니다. | |
13 | + | |
14 | +통신성공 | |
15 | +TPS: xx.xxx (x는 숫자입니다) | |
16 | +위와 같이 나온다면 정상적으로 실행된 상태입니다. | |
17 | + |
+++ dump
Binary file is not shown |
+++ index.html
... | ... | @@ -0,0 +1,53 @@ |
1 | +<!DOCTYPE html> | |
2 | +<html lang="en"> | |
3 | +<head> | |
4 | + <meta charset="UTF-8"> | |
5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
6 | + <title>로그인 요청 예제</title> | |
7 | +</head> | |
8 | +<body> | |
9 | + <button id="sendRequestButton">로그인 요청 보내기</button> | |
10 | + <p id="resultMessage"></p> | |
11 | + | |
12 | + <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> | |
13 | + <script> | |
14 | + // 클릭 이벤트 핸들러 등록 | |
15 | + document.getElementById('sendRequestButton').addEventListener('click', function () { | |
16 | + sendLoginRequest(); | |
17 | + }); | |
18 | + | |
19 | + // 요청 보내기 함수 | |
20 | + async function sendLoginRequest() { | |
21 | + const url = 'http://cors-anywhere.herokuapp.com/http://127.0.0.1:8080/auth/login'; // CORS 해결을 위해 cors-anywhere 사용 | |
22 | + const payload = { | |
23 | + id: 'id', | |
24 | + password: 'string', | |
25 | + }; // 보낼 JSON 데이터 | |
26 | + | |
27 | + try { | |
28 | + const startTime = Date.now(); // 요청 시작 시간 기록 | |
29 | + for (let a = 0; a < 100; a++) { | |
30 | + const response = await axios.post(url, payload, { withCredentials: true }); | |
31 | + // POST 요청 보내기 | |
32 | + } | |
33 | + const endTime = Date.now(); // 요청 종료 시간 기록 | |
34 | + | |
35 | + const response = await axios.post(url, payload, { withCredentials: true }); // POST 요청 보내기 | |
36 | + | |
37 | + if (response.status === 200) { | |
38 | + console.log('통신 성공'); | |
39 | + const tps = 1000 / (endTime - startTime); // TPS 계산 (밀리초당 요청 수) | |
40 | + console.log(`TPS: ${tps.toFixed(3)}`); | |
41 | + | |
42 | + // 결과를 HTML에 표시 | |
43 | + document.getElementById('resultMessage').textContent = `통신 성공. TPS: ${tps.toFixed(3)}`; | |
44 | + } else { | |
45 | + console.error(`통신 실패: ${response.status}`); | |
46 | + } | |
47 | + } catch (error) { | |
48 | + console.error(`에러 발생: ${error.message}`); | |
49 | + } | |
50 | + } | |
51 | + </script> | |
52 | +</body> | |
53 | +</html> |
+++ package-lock.json
... | ... | @@ -0,0 +1,879 @@ |
1 | +{ | |
2 | + "name": "test", | |
3 | + "lockfileVersion": 3, | |
4 | + "requires": true, | |
5 | + "packages": { | |
6 | + "": { | |
7 | + "dependencies": { | |
8 | + "axios": "^1.5.0", | |
9 | + "body-parser": "^1.20.2", | |
10 | + "cors": "^2.8.5", | |
11 | + "express": "^4.18.2", | |
12 | + "pg": "^8.11.3" | |
13 | + } | |
14 | + }, | |
15 | + "node_modules/accepts": { | |
16 | + "version": "1.3.8", | |
17 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", | |
18 | + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", | |
19 | + "dependencies": { | |
20 | + "mime-types": "~2.1.34", | |
21 | + "negotiator": "0.6.3" | |
22 | + }, | |
23 | + "engines": { | |
24 | + "node": ">= 0.6" | |
25 | + } | |
26 | + }, | |
27 | + "node_modules/array-flatten": { | |
28 | + "version": "1.1.1", | |
29 | + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | |
30 | + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" | |
31 | + }, | |
32 | + "node_modules/asynckit": { | |
33 | + "version": "0.4.0", | |
34 | + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | |
35 | + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" | |
36 | + }, | |
37 | + "node_modules/axios": { | |
38 | + "version": "1.5.0", | |
39 | + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", | |
40 | + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", | |
41 | + "dependencies": { | |
42 | + "follow-redirects": "^1.15.0", | |
43 | + "form-data": "^4.0.0", | |
44 | + "proxy-from-env": "^1.1.0" | |
45 | + } | |
46 | + }, | |
47 | + "node_modules/body-parser": { | |
48 | + "version": "1.20.2", | |
49 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", | |
50 | + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", | |
51 | + "dependencies": { | |
52 | + "bytes": "3.1.2", | |
53 | + "content-type": "~1.0.5", | |
54 | + "debug": "2.6.9", | |
55 | + "depd": "2.0.0", | |
56 | + "destroy": "1.2.0", | |
57 | + "http-errors": "2.0.0", | |
58 | + "iconv-lite": "0.4.24", | |
59 | + "on-finished": "2.4.1", | |
60 | + "qs": "6.11.0", | |
61 | + "raw-body": "2.5.2", | |
62 | + "type-is": "~1.6.18", | |
63 | + "unpipe": "1.0.0" | |
64 | + }, | |
65 | + "engines": { | |
66 | + "node": ">= 0.8", | |
67 | + "npm": "1.2.8000 || >= 1.4.16" | |
68 | + } | |
69 | + }, | |
70 | + "node_modules/buffer-writer": { | |
71 | + "version": "2.0.0", | |
72 | + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", | |
73 | + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", | |
74 | + "engines": { | |
75 | + "node": ">=4" | |
76 | + } | |
77 | + }, | |
78 | + "node_modules/bytes": { | |
79 | + "version": "3.1.2", | |
80 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | |
81 | + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", | |
82 | + "engines": { | |
83 | + "node": ">= 0.8" | |
84 | + } | |
85 | + }, | |
86 | + "node_modules/call-bind": { | |
87 | + "version": "1.0.2", | |
88 | + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", | |
89 | + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | |
90 | + "dependencies": { | |
91 | + "function-bind": "^1.1.1", | |
92 | + "get-intrinsic": "^1.0.2" | |
93 | + }, | |
94 | + "funding": { | |
95 | + "url": "https://github.com/sponsors/ljharb" | |
96 | + } | |
97 | + }, | |
98 | + "node_modules/combined-stream": { | |
99 | + "version": "1.0.8", | |
100 | + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", | |
101 | + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", | |
102 | + "dependencies": { | |
103 | + "delayed-stream": "~1.0.0" | |
104 | + }, | |
105 | + "engines": { | |
106 | + "node": ">= 0.8" | |
107 | + } | |
108 | + }, | |
109 | + "node_modules/content-disposition": { | |
110 | + "version": "0.5.4", | |
111 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", | |
112 | + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", | |
113 | + "dependencies": { | |
114 | + "safe-buffer": "5.2.1" | |
115 | + }, | |
116 | + "engines": { | |
117 | + "node": ">= 0.6" | |
118 | + } | |
119 | + }, | |
120 | + "node_modules/content-type": { | |
121 | + "version": "1.0.5", | |
122 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", | |
123 | + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", | |
124 | + "engines": { | |
125 | + "node": ">= 0.6" | |
126 | + } | |
127 | + }, | |
128 | + "node_modules/cookie": { | |
129 | + "version": "0.5.0", | |
130 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", | |
131 | + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", | |
132 | + "engines": { | |
133 | + "node": ">= 0.6" | |
134 | + } | |
135 | + }, | |
136 | + "node_modules/cookie-signature": { | |
137 | + "version": "1.0.6", | |
138 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | |
139 | + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" | |
140 | + }, | |
141 | + "node_modules/cors": { | |
142 | + "version": "2.8.5", | |
143 | + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", | |
144 | + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", | |
145 | + "dependencies": { | |
146 | + "object-assign": "^4", | |
147 | + "vary": "^1" | |
148 | + }, | |
149 | + "engines": { | |
150 | + "node": ">= 0.10" | |
151 | + } | |
152 | + }, | |
153 | + "node_modules/debug": { | |
154 | + "version": "2.6.9", | |
155 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | |
156 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | |
157 | + "dependencies": { | |
158 | + "ms": "2.0.0" | |
159 | + } | |
160 | + }, | |
161 | + "node_modules/delayed-stream": { | |
162 | + "version": "1.0.0", | |
163 | + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | |
164 | + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", | |
165 | + "engines": { | |
166 | + "node": ">=0.4.0" | |
167 | + } | |
168 | + }, | |
169 | + "node_modules/depd": { | |
170 | + "version": "2.0.0", | |
171 | + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | |
172 | + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", | |
173 | + "engines": { | |
174 | + "node": ">= 0.8" | |
175 | + } | |
176 | + }, | |
177 | + "node_modules/destroy": { | |
178 | + "version": "1.2.0", | |
179 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", | |
180 | + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", | |
181 | + "engines": { | |
182 | + "node": ">= 0.8", | |
183 | + "npm": "1.2.8000 || >= 1.4.16" | |
184 | + } | |
185 | + }, | |
186 | + "node_modules/ee-first": { | |
187 | + "version": "1.1.1", | |
188 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | |
189 | + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" | |
190 | + }, | |
191 | + "node_modules/encodeurl": { | |
192 | + "version": "1.0.2", | |
193 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | |
194 | + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", | |
195 | + "engines": { | |
196 | + "node": ">= 0.8" | |
197 | + } | |
198 | + }, | |
199 | + "node_modules/escape-html": { | |
200 | + "version": "1.0.3", | |
201 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | |
202 | + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" | |
203 | + }, | |
204 | + "node_modules/etag": { | |
205 | + "version": "1.8.1", | |
206 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | |
207 | + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", | |
208 | + "engines": { | |
209 | + "node": ">= 0.6" | |
210 | + } | |
211 | + }, | |
212 | + "node_modules/express": { | |
213 | + "version": "4.18.2", | |
214 | + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", | |
215 | + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", | |
216 | + "dependencies": { | |
217 | + "accepts": "~1.3.8", | |
218 | + "array-flatten": "1.1.1", | |
219 | + "body-parser": "1.20.1", | |
220 | + "content-disposition": "0.5.4", | |
221 | + "content-type": "~1.0.4", | |
222 | + "cookie": "0.5.0", | |
223 | + "cookie-signature": "1.0.6", | |
224 | + "debug": "2.6.9", | |
225 | + "depd": "2.0.0", | |
226 | + "encodeurl": "~1.0.2", | |
227 | + "escape-html": "~1.0.3", | |
228 | + "etag": "~1.8.1", | |
229 | + "finalhandler": "1.2.0", | |
230 | + "fresh": "0.5.2", | |
231 | + "http-errors": "2.0.0", | |
232 | + "merge-descriptors": "1.0.1", | |
233 | + "methods": "~1.1.2", | |
234 | + "on-finished": "2.4.1", | |
235 | + "parseurl": "~1.3.3", | |
236 | + "path-to-regexp": "0.1.7", | |
237 | + "proxy-addr": "~2.0.7", | |
238 | + "qs": "6.11.0", | |
239 | + "range-parser": "~1.2.1", | |
240 | + "safe-buffer": "5.2.1", | |
241 | + "send": "0.18.0", | |
242 | + "serve-static": "1.15.0", | |
243 | + "setprototypeof": "1.2.0", | |
244 | + "statuses": "2.0.1", | |
245 | + "type-is": "~1.6.18", | |
246 | + "utils-merge": "1.0.1", | |
247 | + "vary": "~1.1.2" | |
248 | + }, | |
249 | + "engines": { | |
250 | + "node": ">= 0.10.0" | |
251 | + } | |
252 | + }, | |
253 | + "node_modules/express/node_modules/body-parser": { | |
254 | + "version": "1.20.1", | |
255 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", | |
256 | + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", | |
257 | + "dependencies": { | |
258 | + "bytes": "3.1.2", | |
259 | + "content-type": "~1.0.4", | |
260 | + "debug": "2.6.9", | |
261 | + "depd": "2.0.0", | |
262 | + "destroy": "1.2.0", | |
263 | + "http-errors": "2.0.0", | |
264 | + "iconv-lite": "0.4.24", | |
265 | + "on-finished": "2.4.1", | |
266 | + "qs": "6.11.0", | |
267 | + "raw-body": "2.5.1", | |
268 | + "type-is": "~1.6.18", | |
269 | + "unpipe": "1.0.0" | |
270 | + }, | |
271 | + "engines": { | |
272 | + "node": ">= 0.8", | |
273 | + "npm": "1.2.8000 || >= 1.4.16" | |
274 | + } | |
275 | + }, | |
276 | + "node_modules/express/node_modules/raw-body": { | |
277 | + "version": "2.5.1", | |
278 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", | |
279 | + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", | |
280 | + "dependencies": { | |
281 | + "bytes": "3.1.2", | |
282 | + "http-errors": "2.0.0", | |
283 | + "iconv-lite": "0.4.24", | |
284 | + "unpipe": "1.0.0" | |
285 | + }, | |
286 | + "engines": { | |
287 | + "node": ">= 0.8" | |
288 | + } | |
289 | + }, | |
290 | + "node_modules/finalhandler": { | |
291 | + "version": "1.2.0", | |
292 | + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", | |
293 | + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", | |
294 | + "dependencies": { | |
295 | + "debug": "2.6.9", | |
296 | + "encodeurl": "~1.0.2", | |
297 | + "escape-html": "~1.0.3", | |
298 | + "on-finished": "2.4.1", | |
299 | + "parseurl": "~1.3.3", | |
300 | + "statuses": "2.0.1", | |
301 | + "unpipe": "~1.0.0" | |
302 | + }, | |
303 | + "engines": { | |
304 | + "node": ">= 0.8" | |
305 | + } | |
306 | + }, | |
307 | + "node_modules/follow-redirects": { | |
308 | + "version": "1.15.2", | |
309 | + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", | |
310 | + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", | |
311 | + "funding": [ | |
312 | + { | |
313 | + "type": "individual", | |
314 | + "url": "https://github.com/sponsors/RubenVerborgh" | |
315 | + } | |
316 | + ], | |
317 | + "engines": { | |
318 | + "node": ">=4.0" | |
319 | + }, | |
320 | + "peerDependenciesMeta": { | |
321 | + "debug": { | |
322 | + "optional": true | |
323 | + } | |
324 | + } | |
325 | + }, | |
326 | + "node_modules/form-data": { | |
327 | + "version": "4.0.0", | |
328 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | |
329 | + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | |
330 | + "dependencies": { | |
331 | + "asynckit": "^0.4.0", | |
332 | + "combined-stream": "^1.0.8", | |
333 | + "mime-types": "^2.1.12" | |
334 | + }, | |
335 | + "engines": { | |
336 | + "node": ">= 6" | |
337 | + } | |
338 | + }, | |
339 | + "node_modules/forwarded": { | |
340 | + "version": "0.2.0", | |
341 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", | |
342 | + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", | |
343 | + "engines": { | |
344 | + "node": ">= 0.6" | |
345 | + } | |
346 | + }, | |
347 | + "node_modules/fresh": { | |
348 | + "version": "0.5.2", | |
349 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | |
350 | + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", | |
351 | + "engines": { | |
352 | + "node": ">= 0.6" | |
353 | + } | |
354 | + }, | |
355 | + "node_modules/function-bind": { | |
356 | + "version": "1.1.1", | |
357 | + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | |
358 | + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" | |
359 | + }, | |
360 | + "node_modules/get-intrinsic": { | |
361 | + "version": "1.2.1", | |
362 | + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", | |
363 | + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", | |
364 | + "dependencies": { | |
365 | + "function-bind": "^1.1.1", | |
366 | + "has": "^1.0.3", | |
367 | + "has-proto": "^1.0.1", | |
368 | + "has-symbols": "^1.0.3" | |
369 | + }, | |
370 | + "funding": { | |
371 | + "url": "https://github.com/sponsors/ljharb" | |
372 | + } | |
373 | + }, | |
374 | + "node_modules/has": { | |
375 | + "version": "1.0.3", | |
376 | + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | |
377 | + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | |
378 | + "dependencies": { | |
379 | + "function-bind": "^1.1.1" | |
380 | + }, | |
381 | + "engines": { | |
382 | + "node": ">= 0.4.0" | |
383 | + } | |
384 | + }, | |
385 | + "node_modules/has-proto": { | |
386 | + "version": "1.0.1", | |
387 | + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", | |
388 | + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", | |
389 | + "engines": { | |
390 | + "node": ">= 0.4" | |
391 | + }, | |
392 | + "funding": { | |
393 | + "url": "https://github.com/sponsors/ljharb" | |
394 | + } | |
395 | + }, | |
396 | + "node_modules/has-symbols": { | |
397 | + "version": "1.0.3", | |
398 | + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", | |
399 | + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", | |
400 | + "engines": { | |
401 | + "node": ">= 0.4" | |
402 | + }, | |
403 | + "funding": { | |
404 | + "url": "https://github.com/sponsors/ljharb" | |
405 | + } | |
406 | + }, | |
407 | + "node_modules/http-errors": { | |
408 | + "version": "2.0.0", | |
409 | + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", | |
410 | + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", | |
411 | + "dependencies": { | |
412 | + "depd": "2.0.0", | |
413 | + "inherits": "2.0.4", | |
414 | + "setprototypeof": "1.2.0", | |
415 | + "statuses": "2.0.1", | |
416 | + "toidentifier": "1.0.1" | |
417 | + }, | |
418 | + "engines": { | |
419 | + "node": ">= 0.8" | |
420 | + } | |
421 | + }, | |
422 | + "node_modules/iconv-lite": { | |
423 | + "version": "0.4.24", | |
424 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | |
425 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | |
426 | + "dependencies": { | |
427 | + "safer-buffer": ">= 2.1.2 < 3" | |
428 | + }, | |
429 | + "engines": { | |
430 | + "node": ">=0.10.0" | |
431 | + } | |
432 | + }, | |
433 | + "node_modules/inherits": { | |
434 | + "version": "2.0.4", | |
435 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | |
436 | + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | |
437 | + }, | |
438 | + "node_modules/ipaddr.js": { | |
439 | + "version": "1.9.1", | |
440 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | |
441 | + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", | |
442 | + "engines": { | |
443 | + "node": ">= 0.10" | |
444 | + } | |
445 | + }, | |
446 | + "node_modules/media-typer": { | |
447 | + "version": "0.3.0", | |
448 | + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | |
449 | + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", | |
450 | + "engines": { | |
451 | + "node": ">= 0.6" | |
452 | + } | |
453 | + }, | |
454 | + "node_modules/merge-descriptors": { | |
455 | + "version": "1.0.1", | |
456 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | |
457 | + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" | |
458 | + }, | |
459 | + "node_modules/methods": { | |
460 | + "version": "1.1.2", | |
461 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | |
462 | + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", | |
463 | + "engines": { | |
464 | + "node": ">= 0.6" | |
465 | + } | |
466 | + }, | |
467 | + "node_modules/mime": { | |
468 | + "version": "1.6.0", | |
469 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", | |
470 | + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", | |
471 | + "bin": { | |
472 | + "mime": "cli.js" | |
473 | + }, | |
474 | + "engines": { | |
475 | + "node": ">=4" | |
476 | + } | |
477 | + }, | |
478 | + "node_modules/mime-db": { | |
479 | + "version": "1.52.0", | |
480 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", | |
481 | + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", | |
482 | + "engines": { | |
483 | + "node": ">= 0.6" | |
484 | + } | |
485 | + }, | |
486 | + "node_modules/mime-types": { | |
487 | + "version": "2.1.35", | |
488 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", | |
489 | + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", | |
490 | + "dependencies": { | |
491 | + "mime-db": "1.52.0" | |
492 | + }, | |
493 | + "engines": { | |
494 | + "node": ">= 0.6" | |
495 | + } | |
496 | + }, | |
497 | + "node_modules/ms": { | |
498 | + "version": "2.0.0", | |
499 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | |
500 | + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" | |
501 | + }, | |
502 | + "node_modules/negotiator": { | |
503 | + "version": "0.6.3", | |
504 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | |
505 | + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", | |
506 | + "engines": { | |
507 | + "node": ">= 0.6" | |
508 | + } | |
509 | + }, | |
510 | + "node_modules/object-assign": { | |
511 | + "version": "4.1.1", | |
512 | + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | |
513 | + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", | |
514 | + "engines": { | |
515 | + "node": ">=0.10.0" | |
516 | + } | |
517 | + }, | |
518 | + "node_modules/object-inspect": { | |
519 | + "version": "1.12.3", | |
520 | + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", | |
521 | + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", | |
522 | + "funding": { | |
523 | + "url": "https://github.com/sponsors/ljharb" | |
524 | + } | |
525 | + }, | |
526 | + "node_modules/on-finished": { | |
527 | + "version": "2.4.1", | |
528 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", | |
529 | + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", | |
530 | + "dependencies": { | |
531 | + "ee-first": "1.1.1" | |
532 | + }, | |
533 | + "engines": { | |
534 | + "node": ">= 0.8" | |
535 | + } | |
536 | + }, | |
537 | + "node_modules/packet-reader": { | |
538 | + "version": "1.0.0", | |
539 | + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", | |
540 | + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" | |
541 | + }, | |
542 | + "node_modules/parseurl": { | |
543 | + "version": "1.3.3", | |
544 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", | |
545 | + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", | |
546 | + "engines": { | |
547 | + "node": ">= 0.8" | |
548 | + } | |
549 | + }, | |
550 | + "node_modules/path-to-regexp": { | |
551 | + "version": "0.1.7", | |
552 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | |
553 | + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" | |
554 | + }, | |
555 | + "node_modules/pg": { | |
556 | + "version": "8.11.3", | |
557 | + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", | |
558 | + "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", | |
559 | + "dependencies": { | |
560 | + "buffer-writer": "2.0.0", | |
561 | + "packet-reader": "1.0.0", | |
562 | + "pg-connection-string": "^2.6.2", | |
563 | + "pg-pool": "^3.6.1", | |
564 | + "pg-protocol": "^1.6.0", | |
565 | + "pg-types": "^2.1.0", | |
566 | + "pgpass": "1.x" | |
567 | + }, | |
568 | + "engines": { | |
569 | + "node": ">= 8.0.0" | |
570 | + }, | |
571 | + "optionalDependencies": { | |
572 | + "pg-cloudflare": "^1.1.1" | |
573 | + }, | |
574 | + "peerDependencies": { | |
575 | + "pg-native": ">=3.0.1" | |
576 | + }, | |
577 | + "peerDependenciesMeta": { | |
578 | + "pg-native": { | |
579 | + "optional": true | |
580 | + } | |
581 | + } | |
582 | + }, | |
583 | + "node_modules/pg-cloudflare": { | |
584 | + "version": "1.1.1", | |
585 | + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", | |
586 | + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", | |
587 | + "optional": true | |
588 | + }, | |
589 | + "node_modules/pg-connection-string": { | |
590 | + "version": "2.6.2", | |
591 | + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", | |
592 | + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" | |
593 | + }, | |
594 | + "node_modules/pg-int8": { | |
595 | + "version": "1.0.1", | |
596 | + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", | |
597 | + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", | |
598 | + "engines": { | |
599 | + "node": ">=4.0.0" | |
600 | + } | |
601 | + }, | |
602 | + "node_modules/pg-pool": { | |
603 | + "version": "3.6.1", | |
604 | + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", | |
605 | + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", | |
606 | + "peerDependencies": { | |
607 | + "pg": ">=8.0" | |
608 | + } | |
609 | + }, | |
610 | + "node_modules/pg-protocol": { | |
611 | + "version": "1.6.0", | |
612 | + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", | |
613 | + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" | |
614 | + }, | |
615 | + "node_modules/pg-types": { | |
616 | + "version": "2.2.0", | |
617 | + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", | |
618 | + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", | |
619 | + "dependencies": { | |
620 | + "pg-int8": "1.0.1", | |
621 | + "postgres-array": "~2.0.0", | |
622 | + "postgres-bytea": "~1.0.0", | |
623 | + "postgres-date": "~1.0.4", | |
624 | + "postgres-interval": "^1.1.0" | |
625 | + }, | |
626 | + "engines": { | |
627 | + "node": ">=4" | |
628 | + } | |
629 | + }, | |
630 | + "node_modules/pgpass": { | |
631 | + "version": "1.0.5", | |
632 | + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", | |
633 | + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", | |
634 | + "dependencies": { | |
635 | + "split2": "^4.1.0" | |
636 | + } | |
637 | + }, | |
638 | + "node_modules/postgres-array": { | |
639 | + "version": "2.0.0", | |
640 | + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", | |
641 | + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", | |
642 | + "engines": { | |
643 | + "node": ">=4" | |
644 | + } | |
645 | + }, | |
646 | + "node_modules/postgres-bytea": { | |
647 | + "version": "1.0.0", | |
648 | + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", | |
649 | + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", | |
650 | + "engines": { | |
651 | + "node": ">=0.10.0" | |
652 | + } | |
653 | + }, | |
654 | + "node_modules/postgres-date": { | |
655 | + "version": "1.0.7", | |
656 | + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", | |
657 | + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", | |
658 | + "engines": { | |
659 | + "node": ">=0.10.0" | |
660 | + } | |
661 | + }, | |
662 | + "node_modules/postgres-interval": { | |
663 | + "version": "1.2.0", | |
664 | + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", | |
665 | + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", | |
666 | + "dependencies": { | |
667 | + "xtend": "^4.0.0" | |
668 | + }, | |
669 | + "engines": { | |
670 | + "node": ">=0.10.0" | |
671 | + } | |
672 | + }, | |
673 | + "node_modules/proxy-addr": { | |
674 | + "version": "2.0.7", | |
675 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | |
676 | + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", | |
677 | + "dependencies": { | |
678 | + "forwarded": "0.2.0", | |
679 | + "ipaddr.js": "1.9.1" | |
680 | + }, | |
681 | + "engines": { | |
682 | + "node": ">= 0.10" | |
683 | + } | |
684 | + }, | |
685 | + "node_modules/proxy-from-env": { | |
686 | + "version": "1.1.0", | |
687 | + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | |
688 | + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" | |
689 | + }, | |
690 | + "node_modules/qs": { | |
691 | + "version": "6.11.0", | |
692 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", | |
693 | + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", | |
694 | + "dependencies": { | |
695 | + "side-channel": "^1.0.4" | |
696 | + }, | |
697 | + "engines": { | |
698 | + "node": ">=0.6" | |
699 | + }, | |
700 | + "funding": { | |
701 | + "url": "https://github.com/sponsors/ljharb" | |
702 | + } | |
703 | + }, | |
704 | + "node_modules/range-parser": { | |
705 | + "version": "1.2.1", | |
706 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", | |
707 | + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", | |
708 | + "engines": { | |
709 | + "node": ">= 0.6" | |
710 | + } | |
711 | + }, | |
712 | + "node_modules/raw-body": { | |
713 | + "version": "2.5.2", | |
714 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", | |
715 | + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", | |
716 | + "dependencies": { | |
717 | + "bytes": "3.1.2", | |
718 | + "http-errors": "2.0.0", | |
719 | + "iconv-lite": "0.4.24", | |
720 | + "unpipe": "1.0.0" | |
721 | + }, | |
722 | + "engines": { | |
723 | + "node": ">= 0.8" | |
724 | + } | |
725 | + }, | |
726 | + "node_modules/safe-buffer": { | |
727 | + "version": "5.2.1", | |
728 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | |
729 | + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", | |
730 | + "funding": [ | |
731 | + { | |
732 | + "type": "github", | |
733 | + "url": "https://github.com/sponsors/feross" | |
734 | + }, | |
735 | + { | |
736 | + "type": "patreon", | |
737 | + "url": "https://www.patreon.com/feross" | |
738 | + }, | |
739 | + { | |
740 | + "type": "consulting", | |
741 | + "url": "https://feross.org/support" | |
742 | + } | |
743 | + ] | |
744 | + }, | |
745 | + "node_modules/safer-buffer": { | |
746 | + "version": "2.1.2", | |
747 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | |
748 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | |
749 | + }, | |
750 | + "node_modules/send": { | |
751 | + "version": "0.18.0", | |
752 | + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", | |
753 | + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", | |
754 | + "dependencies": { | |
755 | + "debug": "2.6.9", | |
756 | + "depd": "2.0.0", | |
757 | + "destroy": "1.2.0", | |
758 | + "encodeurl": "~1.0.2", | |
759 | + "escape-html": "~1.0.3", | |
760 | + "etag": "~1.8.1", | |
761 | + "fresh": "0.5.2", | |
762 | + "http-errors": "2.0.0", | |
763 | + "mime": "1.6.0", | |
764 | + "ms": "2.1.3", | |
765 | + "on-finished": "2.4.1", | |
766 | + "range-parser": "~1.2.1", | |
767 | + "statuses": "2.0.1" | |
768 | + }, | |
769 | + "engines": { | |
770 | + "node": ">= 0.8.0" | |
771 | + } | |
772 | + }, | |
773 | + "node_modules/send/node_modules/ms": { | |
774 | + "version": "2.1.3", | |
775 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | |
776 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | |
777 | + }, | |
778 | + "node_modules/serve-static": { | |
779 | + "version": "1.15.0", | |
780 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", | |
781 | + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", | |
782 | + "dependencies": { | |
783 | + "encodeurl": "~1.0.2", | |
784 | + "escape-html": "~1.0.3", | |
785 | + "parseurl": "~1.3.3", | |
786 | + "send": "0.18.0" | |
787 | + }, | |
788 | + "engines": { | |
789 | + "node": ">= 0.8.0" | |
790 | + } | |
791 | + }, | |
792 | + "node_modules/setprototypeof": { | |
793 | + "version": "1.2.0", | |
794 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", | |
795 | + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" | |
796 | + }, | |
797 | + "node_modules/side-channel": { | |
798 | + "version": "1.0.4", | |
799 | + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", | |
800 | + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", | |
801 | + "dependencies": { | |
802 | + "call-bind": "^1.0.0", | |
803 | + "get-intrinsic": "^1.0.2", | |
804 | + "object-inspect": "^1.9.0" | |
805 | + }, | |
806 | + "funding": { | |
807 | + "url": "https://github.com/sponsors/ljharb" | |
808 | + } | |
809 | + }, | |
810 | + "node_modules/split2": { | |
811 | + "version": "4.2.0", | |
812 | + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", | |
813 | + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", | |
814 | + "engines": { | |
815 | + "node": ">= 10.x" | |
816 | + } | |
817 | + }, | |
818 | + "node_modules/statuses": { | |
819 | + "version": "2.0.1", | |
820 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | |
821 | + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", | |
822 | + "engines": { | |
823 | + "node": ">= 0.8" | |
824 | + } | |
825 | + }, | |
826 | + "node_modules/toidentifier": { | |
827 | + "version": "1.0.1", | |
828 | + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | |
829 | + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", | |
830 | + "engines": { | |
831 | + "node": ">=0.6" | |
832 | + } | |
833 | + }, | |
834 | + "node_modules/type-is": { | |
835 | + "version": "1.6.18", | |
836 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", | |
837 | + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", | |
838 | + "dependencies": { | |
839 | + "media-typer": "0.3.0", | |
840 | + "mime-types": "~2.1.24" | |
841 | + }, | |
842 | + "engines": { | |
843 | + "node": ">= 0.6" | |
844 | + } | |
845 | + }, | |
846 | + "node_modules/unpipe": { | |
847 | + "version": "1.0.0", | |
848 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | |
849 | + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", | |
850 | + "engines": { | |
851 | + "node": ">= 0.8" | |
852 | + } | |
853 | + }, | |
854 | + "node_modules/utils-merge": { | |
855 | + "version": "1.0.1", | |
856 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | |
857 | + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", | |
858 | + "engines": { | |
859 | + "node": ">= 0.4.0" | |
860 | + } | |
861 | + }, | |
862 | + "node_modules/vary": { | |
863 | + "version": "1.1.2", | |
864 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | |
865 | + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", | |
866 | + "engines": { | |
867 | + "node": ">= 0.8" | |
868 | + } | |
869 | + }, | |
870 | + "node_modules/xtend": { | |
871 | + "version": "4.0.2", | |
872 | + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", | |
873 | + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", | |
874 | + "engines": { | |
875 | + "node": ">=0.4" | |
876 | + } | |
877 | + } | |
878 | + } | |
879 | +} |
+++ package.json
... | ... | @@ -0,0 +1,9 @@ |
1 | +{ | |
2 | + "dependencies": { | |
3 | + "axios": "^1.5.0", | |
4 | + "body-parser": "^1.20.2", | |
5 | + "cors": "^2.8.5", | |
6 | + "express": "^4.18.2", | |
7 | + "pg": "^8.11.3" | |
8 | + } | |
9 | +} |
+++ server.js
... | ... | @@ -0,0 +1,34 @@ |
1 | +const axios = require('axios'); | |
2 | +const cors = require('cors') | |
3 | +// 버튼을 누를 때 실행될 함수 | |
4 | +async function sendLoginRequest() { | |
5 | + const url = 'http://127.0.0.1:8080/auth/login'; // 요청을 보낼 URL | |
6 | + const payload = { | |
7 | + id: 'id', | |
8 | + password: 'string', | |
9 | + }; // 보낼 JSON 데이터 | |
10 | + | |
11 | + try { | |
12 | + const startTime = Date.now(); // 요청 시작 시간 기록 | |
13 | + // const response = await axios.post(url, payload) | |
14 | + for(let a=0;a<100;a++){ | |
15 | + const response = await axios.post(url, payload, { withCredentials: true }) | |
16 | + // POST 요청 보내기 | |
17 | + } | |
18 | + const response = await axios.post(url, payload, { withCredentials: true }); // POST 요청 보내기 | |
19 | + const endTime = Date.now(); // 요청 종료 시간 기록 | |
20 | + | |
21 | + if (response.status === 200) { | |
22 | + console.log('통신 성공'); | |
23 | + const tps = 100000 / (endTime - startTime); // TPS 계산 (밀리초당 요청 수) | |
24 | + console.log(`TPS: ${tps.toFixed(3)}`); | |
25 | + } else { | |
26 | + console.error(`통신 실패: ${response.status}`); | |
27 | + } | |
28 | + } catch (error) { | |
29 | + console.error(`에러 발생: ${error.message}`); | |
30 | + } | |
31 | +} | |
32 | + | |
33 | +// 버튼을 누를 때 실행 | |
34 | +sendLoginRequest();(파일 끝에 줄바꿈 문자 없음) |
+++ styles.css
... | ... | @@ -0,0 +1,11 @@ |
1 | +body { | |
2 | + font-family: Arial, sans-serif; | |
3 | +} | |
4 | +.container { | |
5 | + text-align: center; | |
6 | + margin-top: 50px; | |
7 | +} | |
8 | +#result { | |
9 | + font-size: 24px; | |
10 | + margin-top: 20px; | |
11 | +}(파일 끝에 줄바꿈 문자 없음) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?