Showing
12 changed files
with
2480 additions
and
0 deletions
admin.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | + <head> | ||
4 | + <title>CuBe!</title> | ||
5 | + <script src="./app.js"></script> | ||
6 | + </head> | ||
7 | + <body> | ||
8 | + | ||
9 | + <p type="text" name="관리자메뉴" maxlength=20 size=20 > 관리자 메뉴입니다. </p> | ||
10 | + | ||
11 | + <form action="/adminsee" method="post"> | ||
12 | + <tr> | ||
13 | + <td><input type="submit" value="상품메뉴"></td> | ||
14 | + </tr> | ||
15 | + | ||
16 | + </table> | ||
17 | + </form> | ||
18 | + <form action="/reg" method="post"> | ||
19 | + <table> | ||
20 | + <tr> | ||
21 | + <td>제품 이름 : </td> | ||
22 | + <td><input type="text" name="name"></td> | ||
23 | + </tr> | ||
24 | + <tr> | ||
25 | + <td>분류 : 1:음식, 2:의류, 3:전자제품, 4:가구, 5:문구 </td> | ||
26 | + <td><input type="text" name= "category"></td> | ||
27 | + </tr> | ||
28 | + <tr> | ||
29 | + <td>원가 : </td> | ||
30 | + <td><input type="text" name="cost"></td> | ||
31 | + </tr> | ||
32 | + <tr> | ||
33 | + <td>판매가 : </td> | ||
34 | + <td><input type="text" name="price"></td> | ||
35 | + </tr> | ||
36 | + <tr> | ||
37 | + <td>순이익 : </td> | ||
38 | + <td><input type="text" name="profit"></td> | ||
39 | + </tr> | ||
40 | + <tr> | ||
41 | + <td>제품설명 : </td> | ||
42 | + <td><input type="text" name="content"></td> | ||
43 | + </tr> | ||
44 | + <tr> | ||
45 | + <td>이미지 : </td> | ||
46 | + <td><input type="text" name="image"></td> | ||
47 | + </tr> | ||
48 | + <tr> | ||
49 | + <td><input type="submit" value="상품등록"></td> | ||
50 | + </tr> | ||
51 | + | ||
52 | + </table> | ||
53 | + </form> | ||
54 | + <form action="/handling" method="post"> | ||
55 | + <tr> | ||
56 | + <td>배송할 주문 : </td> | ||
57 | + <td><input type="text" name="id"></td> | ||
58 | + </tr> | ||
59 | + <tr> | ||
60 | + <td><input type="submit" value="주문처리"></td> | ||
61 | + </tr> | ||
62 | + </form> | ||
63 | +<form action="/" method="get"> | ||
64 | + <tr> | ||
65 | + <td><input type="submit" value="처음화면으로"></td> | ||
66 | + </tr> | ||
67 | + | ||
68 | + </table> | ||
69 | +</form> | ||
70 | + </body> | ||
71 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
app.js
0 → 100644
1 | +let express = require('express'); | ||
2 | +let app = express(); | ||
3 | +let bodyParser = require('body-parser'); | ||
4 | +let session = require('express-session') | ||
5 | + | ||
6 | +app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) | ||
7 | +app.use(bodyParser.urlencoded({ extended: false })); | ||
8 | +app.use(bodyParser.json()); | ||
9 | + | ||
10 | +var db_config = require(__dirname+ '/cf.js'); | ||
11 | +var conn = db_config.init(); | ||
12 | + | ||
13 | +db_config.connect(conn); | ||
14 | + | ||
15 | +app.set('views', __dirname + '/views'); | ||
16 | +app.set('view engine', 'ejs'); | ||
17 | + | ||
18 | +app.set('port',process.env.PORT || 80 ); | ||
19 | + | ||
20 | +let server = app.listen(80, () => console.log('Server is running on port 80...')); | ||
21 | + | ||
22 | +const jsdom = require("jsdom"); | ||
23 | +const {JSDOM} = jsdom; | ||
24 | +global.document = new JSDOM('/index.html').window.document; | ||
25 | + | ||
26 | +const path = require('path'); | ||
27 | +const { copyFileSync } = require('fs'); | ||
28 | +app.set('front', process.env.FRONT || path.join(__dirname, '../프로젝트')); | ||
29 | + | ||
30 | +app.get('/', (req, res) => | ||
31 | + res.sendFile(path.join(app.get('front'), '/index.html')), | ||
32 | +); | ||
33 | +app.get('/join.html', (req, res) => | ||
34 | + res.sendFile(path.join(app.get('front'), '/join.html')), | ||
35 | +); | ||
36 | +app.post('/signup', function (req, res){ | ||
37 | + let body = req.body; | ||
38 | + console.log(body); | ||
39 | + | ||
40 | + var table = 'cust'; | ||
41 | + var sql = `INSERT INTO `+ table + ` VALUES(?,?,?,?,?,NOW(),?,?,1,0)`; | ||
42 | + if ( body.code == 'alsrnvkdlxld') sql = `INSERT INTO `+ table + ` VALUES(?,?,?,?,?,NOW(),?,?,1,1)`; | ||
43 | + var params = [body.id, body.password, body.name, body.email, body.address_num, | ||
44 | + body.address, body.phone]; | ||
45 | + console.log(sql); | ||
46 | + conn.query(sql, params, function(err) { | ||
47 | + if(err) { | ||
48 | + console.log('query is not excuted. insert fail...\n' + err); | ||
49 | + res.redirect("/failcust"); | ||
50 | + } | ||
51 | + else { | ||
52 | + res.redirect('/'); | ||
53 | + } | ||
54 | + }); | ||
55 | +}) | ||
56 | +app.post('/login', function (req,res){ | ||
57 | + let body = req.body; | ||
58 | + let i =0; | ||
59 | + new Promise((r1, r2) => { | ||
60 | + var sql = 'SELECT * FROM cust'; | ||
61 | + conn.query(sql, function (err, cust, fields) { | ||
62 | + if(err) { | ||
63 | + console.log('query is not excuted. select fail...\n' + err) | ||
64 | + res.redirect("/failcust"); | ||
65 | + } | ||
66 | + else { | ||
67 | + User = cust; | ||
68 | + console.log('users : ', User); | ||
69 | + console.log(User.length); | ||
70 | + r1(); | ||
71 | + } | ||
72 | + }); | ||
73 | + | ||
74 | + }) | ||
75 | + .then(() => { | ||
76 | + new Promise((r1, r2) => { | ||
77 | + for(i = 0 ; i < User.length; i++){ | ||
78 | + if (body.id == User[i].id && body.password == User[i].pwd){ | ||
79 | + if(User[i].isadmin == 1){ | ||
80 | + res.redirect('/admin'); | ||
81 | + return; | ||
82 | + } else{ | ||
83 | + res.redirect('/cust'); | ||
84 | + return; | ||
85 | + } | ||
86 | + } | ||
87 | + if(i == User.length){ | ||
88 | + r1(); | ||
89 | + } | ||
90 | + } | ||
91 | + }) | ||
92 | + .then(() => { | ||
93 | + console.log(User); | ||
94 | + console.log(i); | ||
95 | + console.log(User[i].id); | ||
96 | + res.redirect('/'); | ||
97 | + }) | ||
98 | + }) | ||
99 | +}) | ||
100 | +app.get('/cust', (req, res) => | ||
101 | + res.sendFile(path.join(app.get('front'), '/cust.html')), | ||
102 | +); | ||
103 | +app.get('/admin', (req, res) => | ||
104 | + res.sendFile(path.join(app.get('front'), '/admin.html')), | ||
105 | +); | ||
106 | + | ||
107 | +app.post('/reg', function (req, res) { | ||
108 | + let body = req.body; | ||
109 | + var Item = ''; | ||
110 | + var sql = 'SELECT id FROM item'; | ||
111 | + conn.query(sql, function (err, item, fields) { | ||
112 | + if(err) { | ||
113 | + console.log('query is not excuted. select fail...\n' + err) | ||
114 | + res.redirect("/failcust"); | ||
115 | + } | ||
116 | + else { | ||
117 | + Item = item; | ||
118 | + console.log('items : ',Item); | ||
119 | + //res.send("OK"); | ||
120 | + | ||
121 | + | ||
122 | + var table = 'item'; | ||
123 | + var sql = `INSERT INTO `+ table + ` VALUES(?,?,?,?,?,?,?,?,1,Now())`; | ||
124 | + | ||
125 | + var params = [Item.length, body.name, body.category, body.cost, body.price, | ||
126 | + body.profit, body.content,body.image ]; | ||
127 | + console.log(sql); | ||
128 | + conn.query(sql, params, function(err) { | ||
129 | + if(err) { | ||
130 | + console.log('query is not excuted. insert fail...\n' + err); | ||
131 | + res.redirect("/failcust"); | ||
132 | + } | ||
133 | + else { | ||
134 | + res.redirect('/admin'); | ||
135 | + } | ||
136 | + }); | ||
137 | + | ||
138 | + | ||
139 | + } | ||
140 | + }); | ||
141 | + | ||
142 | + | ||
143 | + | ||
144 | +}) | ||
145 | + | ||
146 | +app.post('/handling', function (req, res) { | ||
147 | + let body = req.body; | ||
148 | + let id = body.id; | ||
149 | + | ||
150 | + var sql = 'update item_order set complete = 1 where id = ?'; | ||
151 | + var param = id; | ||
152 | + conn.query(sql,param, function (err, item, fields) { | ||
153 | + if(err) { | ||
154 | + console.log('query is not excuted. select fail...\n' + err) | ||
155 | + res.redirect("/failcust"); | ||
156 | + } | ||
157 | + else { | ||
158 | + console.log('update item : ',id); | ||
159 | + //res.send("OK"); | ||
160 | + res.redirect('/admin'); | ||
161 | + | ||
162 | + } | ||
163 | + }) | ||
164 | +}) | ||
165 | +app.post('/see', function (req, res) { | ||
166 | + let body = req.body; | ||
167 | + var Item = ''; | ||
168 | + var sql = 'SELECT * FROM item'; | ||
169 | + conn.query(sql, function (err, item, fields) { | ||
170 | + if(err) { | ||
171 | + console.log('query is not excuted. select fail...\n' + err) | ||
172 | + res.redirect("/failcust"); | ||
173 | + } | ||
174 | + else { | ||
175 | + Item = item; | ||
176 | + console.log('items : ',Item); | ||
177 | + //res.send("OK"); | ||
178 | + | ||
179 | + res.write(cust_html); | ||
180 | + | ||
181 | + for(let i = 0; i < Item.length; i++){ | ||
182 | + res.write(Item[i].name +' | 번호 : '+ Item[i].id +' | 가격 : '+ Item[i].price + ' | 상품설명 : ' + Item[i].content + "<br></br>"); | ||
183 | + | ||
184 | + | ||
185 | + | ||
186 | + } | ||
187 | + res.end(); | ||
188 | + } | ||
189 | + }); | ||
190 | + | ||
191 | +}) | ||
192 | +app.post('/adminsee', function (req, res) { | ||
193 | + let body = req.body; | ||
194 | + var Item = ''; | ||
195 | + var sql = 'SELECT * FROM item_order'; | ||
196 | + conn.query(sql, function (err, item, fields) { | ||
197 | + if(err) { | ||
198 | + console.log('query is not excuted. select fail...\n' + err) | ||
199 | + res.redirect("/failcust"); | ||
200 | + } | ||
201 | + else { | ||
202 | + Item = item; | ||
203 | + console.log('items : ',Item); | ||
204 | + //res.send("OK"); | ||
205 | + | ||
206 | + res.write(adminsee_html); | ||
207 | + | ||
208 | + for(let i = 0; i < Item.length; i++){ | ||
209 | + res.write(' | 주문번호 : ' + Item[i].id +' | 상품번호 : '+ Item[i].item_id +' | 상품갯수 : '+ Item[i].count + ' | 주문고객 : ' + Item[i].cust_id + | ||
210 | + ' | 주문처리 유무 : ' + Item[i].complete + "<br></br>"); | ||
211 | + | ||
212 | + | ||
213 | + | ||
214 | + } | ||
215 | + res.end(); | ||
216 | + } | ||
217 | + }); | ||
218 | + | ||
219 | +}) | ||
220 | +app.get('/failcust', (req, res) => | ||
221 | + res.sendFile(path.join(app.get('front'), '/fail.html')), | ||
222 | +); | ||
223 | +app.post('/buy', function (req, res) { | ||
224 | + let body = req.body; | ||
225 | + var usrid = body.usrid; | ||
226 | + var usrpwd = body.usrpwd; | ||
227 | + var id = body.item_id; | ||
228 | + var count = body.item_count; | ||
229 | + var table = 'item_order'; | ||
230 | + console.log(Item_order); | ||
231 | + console.log(usrid); | ||
232 | + var Item_order = ''; | ||
233 | + var User = ''; | ||
234 | + var sql = 'SELECT * FROM item_order'; | ||
235 | + conn.query(sql, function (err, item, fields) { | ||
236 | + if(err) { | ||
237 | + console.log('query is not excuted. select fail...\n' + err) | ||
238 | + res.redirect("/failcust"); | ||
239 | + } | ||
240 | + else { | ||
241 | + Item_order = item; | ||
242 | + console.log('items : ',Item); | ||
243 | + //res.send("OK"); | ||
244 | + | ||
245 | + | ||
246 | + var sql = 'SELECT * FROM cust'; | ||
247 | + conn.query(sql, function (err, cust, fields) { | ||
248 | + if(err) { | ||
249 | + console.log('query is not excuted. select fail...\n' + err) | ||
250 | + res.redirect("/failcust"); | ||
251 | + } | ||
252 | + else { | ||
253 | + User = cust; | ||
254 | + console.log('User : ',User); | ||
255 | + //res.send("OK"); | ||
256 | + for(let i = 0 ; i < User.length ; i++){ | ||
257 | + if (usrid == User[i].id && usrpwd == User[i].pwd){ | ||
258 | + // 주문내역에 추가하는 구문 | ||
259 | + var sql = `INSERT INTO `+ table + ` VALUES(?,?,?,0,?)`; | ||
260 | + var params = [ Item_order.length , id, count, usrid]; | ||
261 | + console.log(sql); | ||
262 | + conn.query(sql, params, function(err) { | ||
263 | + if(err) { | ||
264 | + console.log('query is not excuted. insert fail...\n' + err); | ||
265 | + res.redirect("/failcust"); | ||
266 | + return; | ||
267 | + } | ||
268 | + else { | ||
269 | + res.redirect('/cust'); | ||
270 | + return; | ||
271 | + } | ||
272 | + }); | ||
273 | + } | ||
274 | + } | ||
275 | + } | ||
276 | + }) | ||
277 | + } | ||
278 | + }) | ||
279 | +}); | ||
280 | + | ||
281 | +app.post('/check', function (req,res){ | ||
282 | + let body = req.body; | ||
283 | + var order = ''; | ||
284 | + var table = 'item_order' | ||
285 | + console.log(typeof(body.usrid)); | ||
286 | + var sql = 'SELECT * FROM '+table+ ' WHERE cust_id = ?'; | ||
287 | + var params = body.usrid; | ||
288 | + conn.query(sql, params,function (err, item, fields) { | ||
289 | + if(err) { | ||
290 | + console.log('query is not excuted. select fail...\n' + err) | ||
291 | + res.redirect("/failcust"); | ||
292 | + } | ||
293 | + else { | ||
294 | + order = item; | ||
295 | + console.log('item orders : ',order); | ||
296 | + //res.send("OK"); | ||
297 | + res.write(` | ||
298 | + <!DOCTYPE html> | ||
299 | + <html> | ||
300 | + <head> | ||
301 | + <meta charset="utf-8"> | ||
302 | + <title>CuBe!</title> | ||
303 | + <script src="./app.js"></script> | ||
304 | + </head> | ||
305 | + <body> | ||
306 | + <form action="/cust" method="get"> | ||
307 | + <tr> | ||
308 | + <td><input type="submit" value="이전으로"></td> | ||
309 | + </tr> | ||
310 | + </form> | ||
311 | + </body> | ||
312 | + </html>`) | ||
313 | + for(let i = 0; i < order.length; i++){ | ||
314 | + res.write('상품번호 : ' + order[i].id +' | 상품 : '+ order[i].item_id +' | 갯수 : '+ order[i].count + ' | 배송여부 : ' + order[i].complete + "<br></br>"); | ||
315 | + | ||
316 | + } | ||
317 | + res.end(); | ||
318 | + } | ||
319 | + }); | ||
320 | +}) | ||
321 | +/* | ||
322 | +app.get('/', function (req, res) { | ||
323 | + res.send('ROOT'); | ||
324 | +});*/ | ||
325 | +app.get ('/login', function (req, res){ | ||
326 | + | ||
327 | + res.sendFile(path.join(app.get('front'), '/index.html')); | ||
328 | + let tep = req.body; | ||
329 | + console.log(tep) | ||
330 | + console.log("nono") | ||
331 | + /*var a = document.querySelector("#pass") | ||
332 | + var b = document.getElementById("pass"); | ||
333 | + console.log(a); | ||
334 | + console.log(b);*/ | ||
335 | +}); | ||
336 | + | ||
337 | +app.get('/list', function (req, res) { | ||
338 | + var sql = 'SELECT * FROM cust'; | ||
339 | + conn.query(sql, function (err, rows, fields) { | ||
340 | + if(err) { | ||
341 | + console.log('query is not excuted. select fail...\n' + err) | ||
342 | + res.send("fail"); | ||
343 | + } | ||
344 | + else { | ||
345 | + console.log(rows); | ||
346 | + console.log(rows[0].id); | ||
347 | + res.send("OK"); | ||
348 | + } | ||
349 | + }); | ||
350 | +}); | ||
351 | + | ||
352 | +app.get('/write', function (req, res) { | ||
353 | + res.render('write.ejs'); | ||
354 | +}); | ||
355 | + | ||
356 | +app.post('/writeAf', function (req, res) { | ||
357 | + var body = req.body; | ||
358 | + console.log(body); | ||
359 | + var table = 'cust'; | ||
360 | + var sql = `INSERT INTO `+ table + ` VALUES(?,?,?,?,?,NOW(),?,?,?,?)`; | ||
361 | + var params = [body.id, body.pwd, body.name, body.email, body.address_num, | ||
362 | + body.address, body.phone, body.useyn ,body.isadmin]; | ||
363 | + console.log(sql); | ||
364 | + conn.query(sql, params, function(err) { | ||
365 | + if(err) { | ||
366 | + console.log('query is not excuted. insert fail...\n' + err); | ||
367 | + res.send("fail"); | ||
368 | + } | ||
369 | + else { | ||
370 | + res.redirect('/list'); | ||
371 | + } | ||
372 | + }); | ||
373 | +}); | ||
374 | + | ||
375 | + | ||
376 | +//var User = getItemOrder('cust'); | ||
377 | +var User = getUser(); | ||
378 | +function getUser(){ | ||
379 | + var user = ''; | ||
380 | + var sql = 'SELECT * FROM cust'; | ||
381 | + conn.query(sql, function (err, cust, fields) { | ||
382 | + if(err) { | ||
383 | + console.log('query is not excuted. select fail...\n' + err) | ||
384 | + res.send("fail"); | ||
385 | + } | ||
386 | + else { | ||
387 | + user = cust; | ||
388 | + console.log('users : ', user); | ||
389 | + console.log(user.length); | ||
390 | + return user; | ||
391 | + } | ||
392 | + }); | ||
393 | + | ||
394 | +} | ||
395 | +var Item_order = getItemOrder(); | ||
396 | +function getItemOrder( tab){ | ||
397 | + var order = ''; | ||
398 | + var table = 'item_order' | ||
399 | + var sql = 'SELECT * FROM '+table; | ||
400 | + conn.query(sql, function (err, item, fields) { | ||
401 | + if(err) { | ||
402 | + console.log('query is not excuted. select fail...\n' + err) | ||
403 | + res.send("fail"); | ||
404 | + } | ||
405 | + else { | ||
406 | + order = item; | ||
407 | + console.log('item orders : ',order); | ||
408 | + //res.send("OK"); | ||
409 | + | ||
410 | + return order; | ||
411 | + } | ||
412 | + }); | ||
413 | +} | ||
414 | +var Item = getItem(); | ||
415 | +function getItem(){ | ||
416 | + var Item = ''; | ||
417 | + var sql = 'SELECT * FROM item'; | ||
418 | + conn.query(sql, function (err, item, fields) { | ||
419 | + if(err) { | ||
420 | + console.log('query is not excuted. select fail...\n' + err) | ||
421 | + res.send("fail"); | ||
422 | + } | ||
423 | + else { | ||
424 | + Item = item; | ||
425 | + console.log('items : ',Item); | ||
426 | + //res.send("OK"); | ||
427 | + return Item; | ||
428 | + } | ||
429 | + }); | ||
430 | +} | ||
431 | +var cust_html = ` | ||
432 | +<!DOCTYPE html> | ||
433 | +<html> | ||
434 | + <head> | ||
435 | + <meta charset="utf-8"> | ||
436 | + <title>CuBe!</title> | ||
437 | + <script src="./app.js"></script> | ||
438 | + </head> | ||
439 | + <body> | ||
440 | + | ||
441 | + | ||
442 | + <form action="/buy" method="post"> | ||
443 | + <tr> | ||
444 | + <td><input type="text" name= "item_id" placeholder="구입할 상품 번호" ></td> | ||
445 | + </tr> | ||
446 | + <tr> | ||
447 | + <td><input type="text" name= "item_count" placeholder="구입할 상품 갯수" ></td> | ||
448 | + </tr> | ||
449 | + <tr> | ||
450 | + <td><input type="text" name= "usrid" placeholder="아이디" ></td> | ||
451 | + </tr> | ||
452 | + <tr> | ||
453 | + <td><input type="text" name= "usrpwd" placeholder="비밀번호" ></td> | ||
454 | + </tr> | ||
455 | + <tr> | ||
456 | + <td><input type="submit" value="상품구매"></td> | ||
457 | + </tr> | ||
458 | + </form> | ||
459 | + <form action="/cust" method="get"> | ||
460 | + <tr> | ||
461 | + <td><input type="submit" value="이전으로"></td> | ||
462 | + </tr> | ||
463 | + </form> | ||
464 | + </table> | ||
465 | + <button type="button" value="로그인" onclick="money()">돈충전!!</button> | ||
466 | + <tr></tr> | ||
467 | + <!-- <a href="./login"><button type="button" value="로그인">로그인</button></a>--> | ||
468 | + <div> | ||
469 | + 잔액 : <div type ="text" id="pass"> 0 </div> | ||
470 | + </div> | ||
471 | + <script> | ||
472 | + var Money = 0; | ||
473 | + function money(){ | ||
474 | + Money += 10000; | ||
475 | + document.getElementById('pass').innerHTML = Money; | ||
476 | + } | ||
477 | + </script> | ||
478 | + </body> | ||
479 | +</html>` | ||
480 | +var adminsee_html = ` | ||
481 | +<!DOCTYPE html> | ||
482 | +<html> | ||
483 | + <head> | ||
484 | + <meta charset="utf-8"> | ||
485 | + <title>CuBe!</title> | ||
486 | + <script src="./app.js"></script> | ||
487 | + </head> | ||
488 | + <body> | ||
489 | + | ||
490 | + <form action="/admin" method="get"> | ||
491 | + <tr> | ||
492 | + <td><input type="submit" value="이전으로"></td> | ||
493 | + </tr> | ||
494 | + </form> | ||
495 | + </table> | ||
496 | + <button type="button" onclick="money()">돈충전!!</button> | ||
497 | + <tr></tr> | ||
498 | + <div> | ||
499 | + 잔액 : <div type ="text" id="pass"> 0 </div> | ||
500 | + </div> | ||
501 | + <script> | ||
502 | + var Money = 0; | ||
503 | + function money(){ | ||
504 | + Money += 10000; | ||
505 | + document.getElementById('pass').innerHTML = Money; | ||
506 | + } | ||
507 | + </script> | ||
508 | + </body> | ||
509 | +</html>` | ||
510 | +var buy_html = ` | ||
511 | +<!DOCTYPE html> | ||
512 | +<html> | ||
513 | + <head> | ||
514 | + <meta charset="utf-8"> | ||
515 | + <title>CuBe!</title> | ||
516 | + <script src="./app.js"></script> | ||
517 | + </head> | ||
518 | + <body> | ||
519 | + | ||
520 | + | ||
521 | + <form action="/buy" method="post"> | ||
522 | + <tr> | ||
523 | + <td><input type="text" name= "item_id" placeholder="구입할 상품 번호" ></td> | ||
524 | + </tr> | ||
525 | + <tr> | ||
526 | + <td><input type="text" name= "item_count" placeholder="구입할 상품 갯수" ></td> | ||
527 | + </tr> | ||
528 | + | ||
529 | + <tr> | ||
530 | + <td><input type="submit" value="상품구매"></td> | ||
531 | + </tr> | ||
532 | + | ||
533 | + </table> | ||
534 | + <!--<button type="button" value="로그인" onclick="login()">hololool</button> | ||
535 | + <a href="./login"><button type="button" value="로그인">로그인</button></a>--> | ||
536 | + | ||
537 | + | ||
538 | +</form> | ||
539 | + </body> | ||
540 | +</html>` | ||
541 | + | ||
542 | + | ||
543 | + | ||
544 | + | ||
545 | +/* | ||
546 | +let auth = (req, res, next) => { | ||
547 | + // Session Check | ||
548 | + if(req.session.isAdmin != true){ | ||
549 | + // 어드민 여부 체크 필요 | ||
550 | + res.send("you're not admin"); | ||
551 | + return; | ||
552 | + } | ||
553 | + if (req.session.id == null) | ||
554 | + res.send("Error"); | ||
555 | + else | ||
556 | + next(); | ||
557 | +}; | ||
558 | +let users = new Array(); | ||
559 | +users[0] = { | ||
560 | + "id" : 0, | ||
561 | + "name" : "jin", | ||
562 | + "password" : "abc", | ||
563 | + "isAdmin" : true | ||
564 | +} | ||
565 | +users[1] = { | ||
566 | + "id" : 1, | ||
567 | + "name" : "jain", | ||
568 | + "password" : "abcd", | ||
569 | + "isAdmin" : false | ||
570 | +} | ||
571 | +app.post('/users', auth, (req, res) => { | ||
572 | + users[req.body.id] = [req.body.id, req.body.name, req.body.password, req.body.isAdmin]; | ||
573 | + | ||
574 | +}); | ||
575 | +app.put('/login', (req, res) => { | ||
576 | + var a = req.body.id; | ||
577 | + | ||
578 | + req.session.id = a; | ||
579 | + req.session.password = a.passowrd; | ||
580 | + req.session.isAdmin = user[a].isAdmin; | ||
581 | + // users 배열에서 찾도록 처리 해야 함 | ||
582 | + // admin 여부를 확인하여 체크 | ||
583 | + // req.body.id : ID | ||
584 | + // req.body.password : 패스워드 | ||
585 | + res.send("Login"); | ||
586 | +}); | ||
587 | + | ||
588 | +app.put('/logout', (req, res) => { | ||
589 | + // Logout | ||
590 | + var a = req.body.id; | ||
591 | + res.send(a); | ||
592 | + // 세션 유효 여부를 체크하고 세션 Delete | ||
593 | + req.session.id = null; | ||
594 | + req.session.password = null; | ||
595 | + req.session.isAdmin = null; | ||
596 | + | ||
597 | + res.send("LogOut"); | ||
598 | + | ||
599 | +}); | ||
600 | + | ||
601 | +app.put('/users', (req, res) => { | ||
602 | + // update | ||
603 | + users[req.body.id].id = req.body.id; | ||
604 | + users[req.body.id].password = req.body.password; | ||
605 | + users[req.body.id].isAdmin = req.body.isAdmin ; | ||
606 | + | ||
607 | + res.send(users[req.body.id]); | ||
608 | + | ||
609 | + res.send("update"); | ||
610 | + | ||
611 | +}); | ||
612 | + | ||
613 | +app.get('/users/:userId', auth, (req, res) => { | ||
614 | + // get User Information | ||
615 | + let userId = req.params.id; | ||
616 | + console.log(user[userId]); | ||
617 | + | ||
618 | + res.send("OK"); | ||
619 | +}); | ||
620 | + | ||
621 | +// 사용자 추가 시에 admin 여부도 추가해야 함 | ||
622 | +app.delete('/users/:userId', auth, (req, res) => { | ||
623 | + | ||
624 | + users[req.body.id] = null; | ||
625 | + | ||
626 | +}); | ||
627 | +*/ | ||
628 | + | ||
629 | +/* | ||
630 | +const html = ` | ||
631 | +<!DOCTYPE html> | ||
632 | +<html> | ||
633 | +<head> | ||
634 | + <meta charset="UTF-8"> | ||
635 | + <title>practice</title> | ||
636 | +</head> | ||
637 | +<body> | ||
638 | + <h1>한글 되네?</h1> | ||
639 | + <h2>신기하구나.. 너란 녀석....</h2> | ||
640 | + <script src="./app.js"> | ||
641 | + document.getElementById("temp").innerHTML = ${rows[0]} | ||
642 | + </script> | ||
643 | +</body> | ||
644 | +</html> | ||
645 | +`;*/ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
cf.js
0 → 100644
1 | +var mysql = require('mysql'); | ||
2 | +var db_info = { | ||
3 | + host: 'localhost', | ||
4 | + port: '3306', | ||
5 | + user: 'ggalsrn', | ||
6 | + password: 'dkswjswlcla1.', | ||
7 | + database: 'shoppingmall' | ||
8 | +} | ||
9 | + | ||
10 | +module.exports = { | ||
11 | + init: function () { | ||
12 | + return mysql.createConnection(db_info); | ||
13 | + }, | ||
14 | + connect: function(conn) { | ||
15 | + conn.connect(function(err) { | ||
16 | + if(err) console.error('mysql connection error : ' + err); | ||
17 | + else console.log('mysql is connected successfully!'); | ||
18 | + }); | ||
19 | + } | ||
20 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
cust.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | + <head> | ||
4 | + <title>CuBe!</title> | ||
5 | + <script src="./app.js"></script> | ||
6 | + </head> | ||
7 | + <body> | ||
8 | + <div type ="text" id="temp"></div> | ||
9 | + <form action="/see" method="post"> | ||
10 | + <tr> | ||
11 | + <td><input type="submit" value="상품메뉴"></td> | ||
12 | + </tr> | ||
13 | + | ||
14 | + </table> | ||
15 | + </form> | ||
16 | + | ||
17 | + <form action="/check" method="post"> | ||
18 | + <tr> | ||
19 | + <td><input type="submit" value="주문내역확인"></td> | ||
20 | + </tr> | ||
21 | + <tr> | ||
22 | + <td><input type="text" name= "usrid" placeholder="주문한사용자 id"></td> | ||
23 | + </tr> | ||
24 | + | ||
25 | + </table> | ||
26 | +</form> | ||
27 | +<form action="/" method="get"> | ||
28 | + <tr> | ||
29 | + <td><input type="submit" value="처음화면으로"></td> | ||
30 | + </tr> | ||
31 | + | ||
32 | +</table> | ||
33 | +</form> | ||
34 | + </body> | ||
35 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
fail.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | + <head> | ||
4 | + <title>CuBe!</title> | ||
5 | + <script src="./app.js"></script> | ||
6 | + </head> | ||
7 | + <body> | ||
8 | + | ||
9 | + <p type="text" name="실패" maxlength=20 size=20 > 실패 </p> | ||
10 | + | ||
11 | + <div type ="text" id="temp"></div> | ||
12 | + <form action="/" method="get"> | ||
13 | + <tr> | ||
14 | + <td><input type="submit" value="처음화면으로"></td> | ||
15 | + </tr> | ||
16 | + | ||
17 | + </table> | ||
18 | + </form> | ||
19 | + <form action="/cust" method="get"> | ||
20 | + <tr> | ||
21 | + <td><input type="submit" value="메뉴로"></td> | ||
22 | + </tr> | ||
23 | + | ||
24 | + </table> | ||
25 | +</form> | ||
26 | + </body> | ||
27 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
index.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | + <head> | ||
4 | + <title>CuBe!</title> | ||
5 | + <!--<script src="./app.js" type="text/javascript"></script>--> | ||
6 | + </head> | ||
7 | + <body> | ||
8 | + | ||
9 | + <script src="./app.js" type="text/javascript"></script> | ||
10 | + | ||
11 | + | ||
12 | + <a href="./join.html"><input type="button" value="회원가입"></a> | ||
13 | + | ||
14 | + <form action="/login" method="post"> | ||
15 | + <table> | ||
16 | + <tr> | ||
17 | + <td>ID : </td> | ||
18 | + <td><input type="text" name="id"></td> | ||
19 | + </tr> | ||
20 | + <tr> | ||
21 | + <td>비번 : </td> | ||
22 | + <td><input type="password" name="password"></td> | ||
23 | + </tr> | ||
24 | + <tr> | ||
25 | + <td><input type="submit" value="로그인"></td> | ||
26 | + </tr> | ||
27 | + </table> | ||
28 | + </form> | ||
29 | + | ||
30 | + <!--<button type="button" value="로그인" onclick="login()">홀롤롤로</button> | ||
31 | + <a href="./login"><button type="button" value="로그인">로그인</button></a> | ||
32 | + | ||
33 | + | ||
34 | + <div type ="text" id="pass">hi</div> | ||
35 | + <script> | ||
36 | + function login(){ | ||
37 | + document.getElementById('pass').innerHTML = "not hi" | ||
38 | + } | ||
39 | + </script> | ||
40 | + --> | ||
41 | + </body> | ||
42 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
join.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | + <head> | ||
4 | + <title>CuBe!</title> | ||
5 | + <script src="./app.js"></script> | ||
6 | + </head> | ||
7 | + <body><!-- | ||
8 | + <p> | ||
9 | + <div type="text" name="회원가입" placeholder="회원가입" maxlength=20 size=20 ></div> | ||
10 | + </p> --> | ||
11 | + | ||
12 | + <form action="/signup" method="post"> | ||
13 | + <table> | ||
14 | + <tr> | ||
15 | + <td>아이디 : </td> | ||
16 | + <td><input type="text" name="id"></td> | ||
17 | + </tr> | ||
18 | + <tr> | ||
19 | + <td>비번 : </td> | ||
20 | + <td><input type="password" name="password"></td> | ||
21 | + </tr> | ||
22 | + <tr> | ||
23 | + <td>이름 : </td> | ||
24 | + <td><input type="text" name= "name"></td> | ||
25 | + </tr> | ||
26 | + <tr> | ||
27 | + <td>이메일 : </td> | ||
28 | + <td><input type="text" name="email"></td> | ||
29 | + </tr> | ||
30 | + <tr> | ||
31 | + <td>우편번호 : </td> | ||
32 | + <td><input type="text" name="address_num"></td> | ||
33 | + </tr> | ||
34 | + <tr> | ||
35 | + <td>주소 : </td> | ||
36 | + <td><input type="text" name="address"></td> | ||
37 | + </tr> | ||
38 | + <tr> | ||
39 | + <td>핸드폰번호 : </td> | ||
40 | + <td><input type="text" name="phone"></td> | ||
41 | + </tr> | ||
42 | + <tr> | ||
43 | + <td>관리자 가입코드 : </td> | ||
44 | + <td><input type="text" name="code"></td> | ||
45 | + </tr> | ||
46 | + <tr> | ||
47 | + <td><input type="submit" value="가입"></td> | ||
48 | + </tr> | ||
49 | + </table> | ||
50 | + </form> | ||
51 | + </body> | ||
52 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
line.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +const request = require('request'); | ||
3 | +const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' | ||
4 | +const TOKEN = 'rQFBQXVZqeF1uFJSoPwloR8avp6Gkxssb2jNJdAFtfK' | ||
5 | + | ||
6 | +const fs = require('fs'); | ||
7 | +const path = require('path'); | ||
8 | +const HTTPS = require('https'); | ||
9 | +const domain = "localhost:80" | ||
10 | +const sslport = 23023; | ||
11 | +const bodyParser = require('body-parser'); | ||
12 | + | ||
13 | +let session = require('express-session'); | ||
14 | +const { text } = require('body-parser'); | ||
15 | +var app = express(); | ||
16 | +app.use(bodyParser.json()); | ||
17 | + | ||
18 | +var User = new Array(); | ||
19 | +/* | ||
20 | +app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) | ||
21 | +app.use(bodyParser.urlencoded({ extended: false })); | ||
22 | +*/ | ||
23 | +var db_config = require(__dirname+ '/cf.js'); | ||
24 | +var conn = db_config.init(); | ||
25 | + | ||
26 | +db_config.connect(conn); | ||
27 | + | ||
28 | +app.set('views', __dirname + '/views'); | ||
29 | +app.set('view engine', 'ejs'); | ||
30 | + | ||
31 | + | ||
32 | +var ordernum = 0; | ||
33 | +var sql = 'SELECT * FROM item_order'; | ||
34 | +conn.query(sql, function (err, rows, fields) { | ||
35 | + if(err) { | ||
36 | + console.log('query is not excuted. select fail...\n' + err) | ||
37 | + } | ||
38 | + else { | ||
39 | + ordernum = rows.length; | ||
40 | + } | ||
41 | +}); | ||
42 | +function SL(text){ | ||
43 | +for(let j =0; j < text.length; j++){ | ||
44 | + if(text[j] = '-'){ | ||
45 | + return [text.slice(0,j),text.slice(j+1)] | ||
46 | + } | ||
47 | + else return; | ||
48 | +} | ||
49 | +} | ||
50 | +function Message(Message){ | ||
51 | + request.post( | ||
52 | + { | ||
53 | + url: TARGET_URL, | ||
54 | + headers: { | ||
55 | + 'Authorization': `Bearer ${TOKEN}` | ||
56 | + }, | ||
57 | + json: { | ||
58 | + "replyToken":replyToken, | ||
59 | + "messages":[ | ||
60 | + { | ||
61 | + "type":"text", | ||
62 | + "text":Message | ||
63 | + } | ||
64 | + ] | ||
65 | + } | ||
66 | + },(error, response, body) => { | ||
67 | + console.log(body) | ||
68 | + }); | ||
69 | + return console.log(Message); | ||
70 | +} | ||
71 | + | ||
72 | + | ||
73 | +function purchase(z, text){ | ||
74 | + let found = false; | ||
75 | + if(text == '0'){ | ||
76 | + User[z].state = null; | ||
77 | + return; | ||
78 | + } | ||
79 | + var tx; | ||
80 | + if (! (tx = SL(text))) return Message("잘못된 입력입니다."); | ||
81 | + for( let i= 0; i < items.length; i++){ | ||
82 | + if(tx[0] == items[i].id){ | ||
83 | + found= true; | ||
84 | + var table = 'item_order'; | ||
85 | + var sql = `INSERT INTO `+ table + ` VALUES(?,?,?,?,?)`; | ||
86 | + var params = [ordernum++, items[i].id, tx[1], 0, User[z].id]; | ||
87 | + console.log(sql); | ||
88 | + conn.query(sql, params, function(err) { | ||
89 | + if(err) { | ||
90 | + console.log('query is not excuted. insert fail...\n' + err); | ||
91 | + Message('주문에 실패했습니다') | ||
92 | + return ; | ||
93 | + } | ||
94 | + else { | ||
95 | + console.log('주문성공') | ||
96 | + User[z].state = null; | ||
97 | + } | ||
98 | + }); | ||
99 | + | ||
100 | + } | ||
101 | + } | ||
102 | + if (!found){ | ||
103 | + Message("존재하지 않는 상품입니다"); | ||
104 | + return; | ||
105 | + } | ||
106 | +} | ||
107 | +var items = ''; | ||
108 | + | ||
109 | + | ||
110 | + | ||
111 | + | ||
112 | +app.post('/hook', function(req, res) { | ||
113 | + var eventObj = req.body.events[0]; | ||
114 | + var text = eventObj.message.text; | ||
115 | + var replyToken = eventObj.replyToken; | ||
116 | + var cur_user = eventObj.source.userId; | ||
117 | + console.log(req.body) | ||
118 | + console.log(cur_user); | ||
119 | + | ||
120 | + var Cus = false; | ||
121 | + var z = 0 | ||
122 | + for( z = 0; z < User.length; z++){ | ||
123 | + if(cur_user == User[z].id){ | ||
124 | + Cus = true; | ||
125 | + break; | ||
126 | + } | ||
127 | + } | ||
128 | + if( text == '회원가입') { | ||
129 | + for( var i = 0; i < User.length; i++){ | ||
130 | + if(cur_user == User[i]){ | ||
131 | + Message('회원가입이 이미 된 고객입니다') | ||
132 | + return; | ||
133 | + } | ||
134 | + } | ||
135 | + | ||
136 | + User.push([{"id" : cur_user},{"state" : null} ]); | ||
137 | + } | ||
138 | + if(!Cus) { | ||
139 | + Message('회원가입을 진행 후 쇼핑해주세요') | ||
140 | + } | ||
141 | + if(User[z].state != null){ | ||
142 | + switch(User[z].state){ | ||
143 | + case '상품구매': | ||
144 | + purchase(z,text) | ||
145 | + } | ||
146 | + } | ||
147 | + console.log('start'); | ||
148 | + if( text == '상품구매') { | ||
149 | + var Message ='번호-갯수를 입력하시면(ex:5번을 5개 구매 = 5-5) 구매를\n, 0을 누르시면 취소입니다.\n' | ||
150 | + User[z].state = '상품구매' | ||
151 | + for(let i=0;i<items.length;i++){ | ||
152 | + Message += items[i].id +'. '+ items[i].name + '\n' | ||
153 | + } | ||
154 | + Message(Message); | ||
155 | + | ||
156 | + | ||
157 | + } | ||
158 | +}); | ||
159 | + | ||
160 | +try { | ||
161 | + | ||
162 | +var sql = 'SELECT * FROM item'; | ||
163 | +conn.query(sql, function (err, rows, fields) { | ||
164 | + if(err) { | ||
165 | + console.log('query is not excuted. select fail...\n' + err) | ||
166 | + } | ||
167 | + else { | ||
168 | + items = rows; | ||
169 | + } | ||
170 | +}); | ||
171 | + const option = { | ||
172 | + ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), | ||
173 | + key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(), | ||
174 | + cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(), | ||
175 | + }; | ||
176 | + HTTPS.createServer(option, app).listen(sslport, () => { | ||
177 | + console.log(`[HTTPS] Server is started on port ${sslport}`); | ||
178 | + }); | ||
179 | + | ||
180 | + | ||
181 | + } catch (error) { | ||
182 | + console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.'); | ||
183 | + console.log(error); | ||
184 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
package-lock.json
0 → 100644
1 | +{ | ||
2 | + "name": "app", | ||
3 | + "version": "1.0.0", | ||
4 | + "lockfileVersion": 1, | ||
5 | + "requires": true, | ||
6 | + "dependencies": { | ||
7 | + "@tootallnate/once": { | ||
8 | + "version": "2.0.0", | ||
9 | + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", | ||
10 | + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" | ||
11 | + }, | ||
12 | + "abab": { | ||
13 | + "version": "2.0.5", | ||
14 | + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", | ||
15 | + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" | ||
16 | + }, | ||
17 | + "accepts": { | ||
18 | + "version": "1.3.7", | ||
19 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", | ||
20 | + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", | ||
21 | + "requires": { | ||
22 | + "mime-types": "~2.1.24", | ||
23 | + "negotiator": "0.6.2" | ||
24 | + } | ||
25 | + }, | ||
26 | + "acorn": { | ||
27 | + "version": "8.6.0", | ||
28 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", | ||
29 | + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==" | ||
30 | + }, | ||
31 | + "acorn-globals": { | ||
32 | + "version": "6.0.0", | ||
33 | + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", | ||
34 | + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", | ||
35 | + "requires": { | ||
36 | + "acorn": "^7.1.1", | ||
37 | + "acorn-walk": "^7.1.1" | ||
38 | + }, | ||
39 | + "dependencies": { | ||
40 | + "acorn": { | ||
41 | + "version": "7.4.1", | ||
42 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", | ||
43 | + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" | ||
44 | + } | ||
45 | + } | ||
46 | + }, | ||
47 | + "acorn-walk": { | ||
48 | + "version": "7.2.0", | ||
49 | + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", | ||
50 | + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" | ||
51 | + }, | ||
52 | + "agent-base": { | ||
53 | + "version": "6.0.2", | ||
54 | + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", | ||
55 | + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", | ||
56 | + "requires": { | ||
57 | + "debug": "4" | ||
58 | + }, | ||
59 | + "dependencies": { | ||
60 | + "debug": { | ||
61 | + "version": "4.3.3", | ||
62 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", | ||
63 | + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", | ||
64 | + "requires": { | ||
65 | + "ms": "2.1.2" | ||
66 | + } | ||
67 | + }, | ||
68 | + "ms": { | ||
69 | + "version": "2.1.2", | ||
70 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
71 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
72 | + } | ||
73 | + } | ||
74 | + }, | ||
75 | + "ajv": { | ||
76 | + "version": "6.12.6", | ||
77 | + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", | ||
78 | + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", | ||
79 | + "requires": { | ||
80 | + "fast-deep-equal": "^3.1.1", | ||
81 | + "fast-json-stable-stringify": "^2.0.0", | ||
82 | + "json-schema-traverse": "^0.4.1", | ||
83 | + "uri-js": "^4.2.2" | ||
84 | + } | ||
85 | + }, | ||
86 | + "ansi-styles": { | ||
87 | + "version": "3.2.1", | ||
88 | + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", | ||
89 | + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", | ||
90 | + "requires": { | ||
91 | + "color-convert": "^1.9.0" | ||
92 | + } | ||
93 | + }, | ||
94 | + "array-flatten": { | ||
95 | + "version": "1.1.1", | ||
96 | + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||
97 | + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" | ||
98 | + }, | ||
99 | + "asn1": { | ||
100 | + "version": "0.2.6", | ||
101 | + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", | ||
102 | + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", | ||
103 | + "requires": { | ||
104 | + "safer-buffer": "~2.1.0" | ||
105 | + } | ||
106 | + }, | ||
107 | + "assert-plus": { | ||
108 | + "version": "1.0.0", | ||
109 | + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
110 | + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | ||
111 | + }, | ||
112 | + "async": { | ||
113 | + "version": "0.9.2", | ||
114 | + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", | ||
115 | + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" | ||
116 | + }, | ||
117 | + "asynckit": { | ||
118 | + "version": "0.4.0", | ||
119 | + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||
120 | + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | ||
121 | + }, | ||
122 | + "aws-sign2": { | ||
123 | + "version": "0.7.0", | ||
124 | + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", | ||
125 | + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" | ||
126 | + }, | ||
127 | + "aws4": { | ||
128 | + "version": "1.11.0", | ||
129 | + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", | ||
130 | + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" | ||
131 | + }, | ||
132 | + "balanced-match": { | ||
133 | + "version": "1.0.2", | ||
134 | + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", | ||
135 | + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" | ||
136 | + }, | ||
137 | + "bcrypt-pbkdf": { | ||
138 | + "version": "1.0.2", | ||
139 | + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | ||
140 | + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", | ||
141 | + "requires": { | ||
142 | + "tweetnacl": "^0.14.3" | ||
143 | + } | ||
144 | + }, | ||
145 | + "bignumber.js": { | ||
146 | + "version": "9.0.0", | ||
147 | + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", | ||
148 | + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" | ||
149 | + }, | ||
150 | + "body-parser": { | ||
151 | + "version": "1.19.0", | ||
152 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", | ||
153 | + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", | ||
154 | + "requires": { | ||
155 | + "bytes": "3.1.0", | ||
156 | + "content-type": "~1.0.4", | ||
157 | + "debug": "2.6.9", | ||
158 | + "depd": "~1.1.2", | ||
159 | + "http-errors": "1.7.2", | ||
160 | + "iconv-lite": "0.4.24", | ||
161 | + "on-finished": "~2.3.0", | ||
162 | + "qs": "6.7.0", | ||
163 | + "raw-body": "2.4.0", | ||
164 | + "type-is": "~1.6.17" | ||
165 | + } | ||
166 | + }, | ||
167 | + "brace-expansion": { | ||
168 | + "version": "1.1.11", | ||
169 | + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||
170 | + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
171 | + "requires": { | ||
172 | + "balanced-match": "^1.0.0", | ||
173 | + "concat-map": "0.0.1" | ||
174 | + } | ||
175 | + }, | ||
176 | + "browser-process-hrtime": { | ||
177 | + "version": "1.0.0", | ||
178 | + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", | ||
179 | + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" | ||
180 | + }, | ||
181 | + "bytes": { | ||
182 | + "version": "3.1.0", | ||
183 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", | ||
184 | + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" | ||
185 | + }, | ||
186 | + "caseless": { | ||
187 | + "version": "0.12.0", | ||
188 | + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||
189 | + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | ||
190 | + }, | ||
191 | + "chalk": { | ||
192 | + "version": "2.4.2", | ||
193 | + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | ||
194 | + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", | ||
195 | + "requires": { | ||
196 | + "ansi-styles": "^3.2.1", | ||
197 | + "escape-string-regexp": "^1.0.5", | ||
198 | + "supports-color": "^5.3.0" | ||
199 | + } | ||
200 | + }, | ||
201 | + "color-convert": { | ||
202 | + "version": "1.9.3", | ||
203 | + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | ||
204 | + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", | ||
205 | + "requires": { | ||
206 | + "color-name": "1.1.3" | ||
207 | + } | ||
208 | + }, | ||
209 | + "color-name": { | ||
210 | + "version": "1.1.3", | ||
211 | + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||
212 | + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||
213 | + }, | ||
214 | + "combined-stream": { | ||
215 | + "version": "1.0.8", | ||
216 | + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", | ||
217 | + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", | ||
218 | + "requires": { | ||
219 | + "delayed-stream": "~1.0.0" | ||
220 | + } | ||
221 | + }, | ||
222 | + "concat-map": { | ||
223 | + "version": "0.0.1", | ||
224 | + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
225 | + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||
226 | + }, | ||
227 | + "content-disposition": { | ||
228 | + "version": "0.5.3", | ||
229 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", | ||
230 | + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", | ||
231 | + "requires": { | ||
232 | + "safe-buffer": "5.1.2" | ||
233 | + } | ||
234 | + }, | ||
235 | + "content-type": { | ||
236 | + "version": "1.0.4", | ||
237 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||
238 | + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" | ||
239 | + }, | ||
240 | + "cookie": { | ||
241 | + "version": "0.4.0", | ||
242 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", | ||
243 | + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" | ||
244 | + }, | ||
245 | + "cookie-signature": { | ||
246 | + "version": "1.0.6", | ||
247 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||
248 | + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | ||
249 | + }, | ||
250 | + "core-util-is": { | ||
251 | + "version": "1.0.3", | ||
252 | + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", | ||
253 | + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" | ||
254 | + }, | ||
255 | + "cssom": { | ||
256 | + "version": "0.5.0", | ||
257 | + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", | ||
258 | + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" | ||
259 | + }, | ||
260 | + "cssstyle": { | ||
261 | + "version": "2.3.0", | ||
262 | + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", | ||
263 | + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", | ||
264 | + "requires": { | ||
265 | + "cssom": "~0.3.6" | ||
266 | + }, | ||
267 | + "dependencies": { | ||
268 | + "cssom": { | ||
269 | + "version": "0.3.8", | ||
270 | + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", | ||
271 | + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" | ||
272 | + } | ||
273 | + } | ||
274 | + }, | ||
275 | + "dashdash": { | ||
276 | + "version": "1.14.1", | ||
277 | + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
278 | + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | ||
279 | + "requires": { | ||
280 | + "assert-plus": "^1.0.0" | ||
281 | + } | ||
282 | + }, | ||
283 | + "data-urls": { | ||
284 | + "version": "3.0.1", | ||
285 | + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", | ||
286 | + "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", | ||
287 | + "requires": { | ||
288 | + "abab": "^2.0.3", | ||
289 | + "whatwg-mimetype": "^3.0.0", | ||
290 | + "whatwg-url": "^10.0.0" | ||
291 | + } | ||
292 | + }, | ||
293 | + "debug": { | ||
294 | + "version": "2.6.9", | ||
295 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
296 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
297 | + "requires": { | ||
298 | + "ms": "2.0.0" | ||
299 | + } | ||
300 | + }, | ||
301 | + "decimal.js": { | ||
302 | + "version": "10.3.1", | ||
303 | + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", | ||
304 | + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" | ||
305 | + }, | ||
306 | + "deep-is": { | ||
307 | + "version": "0.1.4", | ||
308 | + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", | ||
309 | + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" | ||
310 | + }, | ||
311 | + "delayed-stream": { | ||
312 | + "version": "1.0.0", | ||
313 | + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||
314 | + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||
315 | + }, | ||
316 | + "depd": { | ||
317 | + "version": "1.1.2", | ||
318 | + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | ||
319 | + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" | ||
320 | + }, | ||
321 | + "destroy": { | ||
322 | + "version": "1.0.4", | ||
323 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", | ||
324 | + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" | ||
325 | + }, | ||
326 | + "domexception": { | ||
327 | + "version": "4.0.0", | ||
328 | + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", | ||
329 | + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", | ||
330 | + "requires": { | ||
331 | + "webidl-conversions": "^7.0.0" | ||
332 | + } | ||
333 | + }, | ||
334 | + "ecc-jsbn": { | ||
335 | + "version": "0.1.2", | ||
336 | + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | ||
337 | + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", | ||
338 | + "requires": { | ||
339 | + "jsbn": "~0.1.0", | ||
340 | + "safer-buffer": "^2.1.0" | ||
341 | + } | ||
342 | + }, | ||
343 | + "ee-first": { | ||
344 | + "version": "1.1.1", | ||
345 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
346 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | ||
347 | + }, | ||
348 | + "ejs": { | ||
349 | + "version": "3.1.6", | ||
350 | + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", | ||
351 | + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", | ||
352 | + "requires": { | ||
353 | + "jake": "^10.6.1" | ||
354 | + } | ||
355 | + }, | ||
356 | + "encodeurl": { | ||
357 | + "version": "1.0.2", | ||
358 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
359 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" | ||
360 | + }, | ||
361 | + "escape-html": { | ||
362 | + "version": "1.0.3", | ||
363 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
364 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" | ||
365 | + }, | ||
366 | + "escape-string-regexp": { | ||
367 | + "version": "1.0.5", | ||
368 | + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | ||
369 | + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" | ||
370 | + }, | ||
371 | + "escodegen": { | ||
372 | + "version": "2.0.0", | ||
373 | + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", | ||
374 | + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", | ||
375 | + "requires": { | ||
376 | + "esprima": "^4.0.1", | ||
377 | + "estraverse": "^5.2.0", | ||
378 | + "esutils": "^2.0.2", | ||
379 | + "optionator": "^0.8.1", | ||
380 | + "source-map": "~0.6.1" | ||
381 | + } | ||
382 | + }, | ||
383 | + "esprima": { | ||
384 | + "version": "4.0.1", | ||
385 | + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||
386 | + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" | ||
387 | + }, | ||
388 | + "estraverse": { | ||
389 | + "version": "5.3.0", | ||
390 | + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", | ||
391 | + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" | ||
392 | + }, | ||
393 | + "esutils": { | ||
394 | + "version": "2.0.3", | ||
395 | + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", | ||
396 | + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" | ||
397 | + }, | ||
398 | + "etag": { | ||
399 | + "version": "1.8.1", | ||
400 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
401 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" | ||
402 | + }, | ||
403 | + "express": { | ||
404 | + "version": "4.17.1", | ||
405 | + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", | ||
406 | + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", | ||
407 | + "requires": { | ||
408 | + "accepts": "~1.3.7", | ||
409 | + "array-flatten": "1.1.1", | ||
410 | + "body-parser": "1.19.0", | ||
411 | + "content-disposition": "0.5.3", | ||
412 | + "content-type": "~1.0.4", | ||
413 | + "cookie": "0.4.0", | ||
414 | + "cookie-signature": "1.0.6", | ||
415 | + "debug": "2.6.9", | ||
416 | + "depd": "~1.1.2", | ||
417 | + "encodeurl": "~1.0.2", | ||
418 | + "escape-html": "~1.0.3", | ||
419 | + "etag": "~1.8.1", | ||
420 | + "finalhandler": "~1.1.2", | ||
421 | + "fresh": "0.5.2", | ||
422 | + "merge-descriptors": "1.0.1", | ||
423 | + "methods": "~1.1.2", | ||
424 | + "on-finished": "~2.3.0", | ||
425 | + "parseurl": "~1.3.3", | ||
426 | + "path-to-regexp": "0.1.7", | ||
427 | + "proxy-addr": "~2.0.5", | ||
428 | + "qs": "6.7.0", | ||
429 | + "range-parser": "~1.2.1", | ||
430 | + "safe-buffer": "5.1.2", | ||
431 | + "send": "0.17.1", | ||
432 | + "serve-static": "1.14.1", | ||
433 | + "setprototypeof": "1.1.1", | ||
434 | + "statuses": "~1.5.0", | ||
435 | + "type-is": "~1.6.18", | ||
436 | + "utils-merge": "1.0.1", | ||
437 | + "vary": "~1.1.2" | ||
438 | + } | ||
439 | + }, | ||
440 | + "express-session": { | ||
441 | + "version": "1.17.2", | ||
442 | + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz", | ||
443 | + "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==", | ||
444 | + "requires": { | ||
445 | + "cookie": "0.4.1", | ||
446 | + "cookie-signature": "1.0.6", | ||
447 | + "debug": "2.6.9", | ||
448 | + "depd": "~2.0.0", | ||
449 | + "on-headers": "~1.0.2", | ||
450 | + "parseurl": "~1.3.3", | ||
451 | + "safe-buffer": "5.2.1", | ||
452 | + "uid-safe": "~2.1.5" | ||
453 | + }, | ||
454 | + "dependencies": { | ||
455 | + "cookie": { | ||
456 | + "version": "0.4.1", | ||
457 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", | ||
458 | + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" | ||
459 | + }, | ||
460 | + "depd": { | ||
461 | + "version": "2.0.0", | ||
462 | + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | ||
463 | + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" | ||
464 | + }, | ||
465 | + "safe-buffer": { | ||
466 | + "version": "5.2.1", | ||
467 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||
468 | + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" | ||
469 | + } | ||
470 | + } | ||
471 | + }, | ||
472 | + "extend": { | ||
473 | + "version": "3.0.2", | ||
474 | + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", | ||
475 | + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" | ||
476 | + }, | ||
477 | + "extsprintf": { | ||
478 | + "version": "1.3.0", | ||
479 | + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", | ||
480 | + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" | ||
481 | + }, | ||
482 | + "fast-deep-equal": { | ||
483 | + "version": "3.1.3", | ||
484 | + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", | ||
485 | + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" | ||
486 | + }, | ||
487 | + "fast-json-stable-stringify": { | ||
488 | + "version": "2.1.0", | ||
489 | + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", | ||
490 | + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" | ||
491 | + }, | ||
492 | + "fast-levenshtein": { | ||
493 | + "version": "2.0.6", | ||
494 | + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", | ||
495 | + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" | ||
496 | + }, | ||
497 | + "filelist": { | ||
498 | + "version": "1.0.2", | ||
499 | + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", | ||
500 | + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", | ||
501 | + "requires": { | ||
502 | + "minimatch": "^3.0.4" | ||
503 | + } | ||
504 | + }, | ||
505 | + "finalhandler": { | ||
506 | + "version": "1.1.2", | ||
507 | + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", | ||
508 | + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", | ||
509 | + "requires": { | ||
510 | + "debug": "2.6.9", | ||
511 | + "encodeurl": "~1.0.2", | ||
512 | + "escape-html": "~1.0.3", | ||
513 | + "on-finished": "~2.3.0", | ||
514 | + "parseurl": "~1.3.3", | ||
515 | + "statuses": "~1.5.0", | ||
516 | + "unpipe": "~1.0.0" | ||
517 | + } | ||
518 | + }, | ||
519 | + "forever-agent": { | ||
520 | + "version": "0.6.1", | ||
521 | + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||
522 | + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" | ||
523 | + }, | ||
524 | + "form-data": { | ||
525 | + "version": "2.3.3", | ||
526 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", | ||
527 | + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", | ||
528 | + "requires": { | ||
529 | + "asynckit": "^0.4.0", | ||
530 | + "combined-stream": "^1.0.6", | ||
531 | + "mime-types": "^2.1.12" | ||
532 | + } | ||
533 | + }, | ||
534 | + "forwarded": { | ||
535 | + "version": "0.2.0", | ||
536 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", | ||
537 | + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" | ||
538 | + }, | ||
539 | + "fresh": { | ||
540 | + "version": "0.5.2", | ||
541 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
542 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" | ||
543 | + }, | ||
544 | + "getpass": { | ||
545 | + "version": "0.1.7", | ||
546 | + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
547 | + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | ||
548 | + "requires": { | ||
549 | + "assert-plus": "^1.0.0" | ||
550 | + } | ||
551 | + }, | ||
552 | + "har-schema": { | ||
553 | + "version": "2.0.0", | ||
554 | + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", | ||
555 | + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" | ||
556 | + }, | ||
557 | + "har-validator": { | ||
558 | + "version": "5.1.5", | ||
559 | + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", | ||
560 | + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", | ||
561 | + "requires": { | ||
562 | + "ajv": "^6.12.3", | ||
563 | + "har-schema": "^2.0.0" | ||
564 | + } | ||
565 | + }, | ||
566 | + "has-flag": { | ||
567 | + "version": "3.0.0", | ||
568 | + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", | ||
569 | + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" | ||
570 | + }, | ||
571 | + "html-encoding-sniffer": { | ||
572 | + "version": "3.0.0", | ||
573 | + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", | ||
574 | + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", | ||
575 | + "requires": { | ||
576 | + "whatwg-encoding": "^2.0.0" | ||
577 | + } | ||
578 | + }, | ||
579 | + "http-errors": { | ||
580 | + "version": "1.7.2", | ||
581 | + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", | ||
582 | + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", | ||
583 | + "requires": { | ||
584 | + "depd": "~1.1.2", | ||
585 | + "inherits": "2.0.3", | ||
586 | + "setprototypeof": "1.1.1", | ||
587 | + "statuses": ">= 1.5.0 < 2", | ||
588 | + "toidentifier": "1.0.0" | ||
589 | + } | ||
590 | + }, | ||
591 | + "http-proxy-agent": { | ||
592 | + "version": "5.0.0", | ||
593 | + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", | ||
594 | + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", | ||
595 | + "requires": { | ||
596 | + "@tootallnate/once": "2", | ||
597 | + "agent-base": "6", | ||
598 | + "debug": "4" | ||
599 | + }, | ||
600 | + "dependencies": { | ||
601 | + "debug": { | ||
602 | + "version": "4.3.3", | ||
603 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", | ||
604 | + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", | ||
605 | + "requires": { | ||
606 | + "ms": "2.1.2" | ||
607 | + } | ||
608 | + }, | ||
609 | + "ms": { | ||
610 | + "version": "2.1.2", | ||
611 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
612 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
613 | + } | ||
614 | + } | ||
615 | + }, | ||
616 | + "http-signature": { | ||
617 | + "version": "1.2.0", | ||
618 | + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", | ||
619 | + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", | ||
620 | + "requires": { | ||
621 | + "assert-plus": "^1.0.0", | ||
622 | + "jsprim": "^1.2.2", | ||
623 | + "sshpk": "^1.7.0" | ||
624 | + } | ||
625 | + }, | ||
626 | + "https-proxy-agent": { | ||
627 | + "version": "5.0.0", | ||
628 | + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", | ||
629 | + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", | ||
630 | + "requires": { | ||
631 | + "agent-base": "6", | ||
632 | + "debug": "4" | ||
633 | + }, | ||
634 | + "dependencies": { | ||
635 | + "debug": { | ||
636 | + "version": "4.3.3", | ||
637 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", | ||
638 | + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", | ||
639 | + "requires": { | ||
640 | + "ms": "2.1.2" | ||
641 | + } | ||
642 | + }, | ||
643 | + "ms": { | ||
644 | + "version": "2.1.2", | ||
645 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
646 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
647 | + } | ||
648 | + } | ||
649 | + }, | ||
650 | + "iconv-lite": { | ||
651 | + "version": "0.4.24", | ||
652 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
653 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
654 | + "requires": { | ||
655 | + "safer-buffer": ">= 2.1.2 < 3" | ||
656 | + } | ||
657 | + }, | ||
658 | + "inherits": { | ||
659 | + "version": "2.0.3", | ||
660 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||
661 | + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||
662 | + }, | ||
663 | + "ipaddr.js": { | ||
664 | + "version": "1.9.1", | ||
665 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | ||
666 | + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" | ||
667 | + }, | ||
668 | + "is-potential-custom-element-name": { | ||
669 | + "version": "1.0.1", | ||
670 | + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", | ||
671 | + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" | ||
672 | + }, | ||
673 | + "is-typedarray": { | ||
674 | + "version": "1.0.0", | ||
675 | + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||
676 | + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" | ||
677 | + }, | ||
678 | + "isarray": { | ||
679 | + "version": "1.0.0", | ||
680 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||
681 | + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | ||
682 | + }, | ||
683 | + "isstream": { | ||
684 | + "version": "0.1.2", | ||
685 | + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||
686 | + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" | ||
687 | + }, | ||
688 | + "jake": { | ||
689 | + "version": "10.8.2", | ||
690 | + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", | ||
691 | + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", | ||
692 | + "requires": { | ||
693 | + "async": "0.9.x", | ||
694 | + "chalk": "^2.4.2", | ||
695 | + "filelist": "^1.0.1", | ||
696 | + "minimatch": "^3.0.4" | ||
697 | + } | ||
698 | + }, | ||
699 | + "jsbn": { | ||
700 | + "version": "0.1.1", | ||
701 | + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||
702 | + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" | ||
703 | + }, | ||
704 | + "jsdom": { | ||
705 | + "version": "19.0.0", | ||
706 | + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", | ||
707 | + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", | ||
708 | + "requires": { | ||
709 | + "abab": "^2.0.5", | ||
710 | + "acorn": "^8.5.0", | ||
711 | + "acorn-globals": "^6.0.0", | ||
712 | + "cssom": "^0.5.0", | ||
713 | + "cssstyle": "^2.3.0", | ||
714 | + "data-urls": "^3.0.1", | ||
715 | + "decimal.js": "^10.3.1", | ||
716 | + "domexception": "^4.0.0", | ||
717 | + "escodegen": "^2.0.0", | ||
718 | + "form-data": "^4.0.0", | ||
719 | + "html-encoding-sniffer": "^3.0.0", | ||
720 | + "http-proxy-agent": "^5.0.0", | ||
721 | + "https-proxy-agent": "^5.0.0", | ||
722 | + "is-potential-custom-element-name": "^1.0.1", | ||
723 | + "nwsapi": "^2.2.0", | ||
724 | + "parse5": "6.0.1", | ||
725 | + "saxes": "^5.0.1", | ||
726 | + "symbol-tree": "^3.2.4", | ||
727 | + "tough-cookie": "^4.0.0", | ||
728 | + "w3c-hr-time": "^1.0.2", | ||
729 | + "w3c-xmlserializer": "^3.0.0", | ||
730 | + "webidl-conversions": "^7.0.0", | ||
731 | + "whatwg-encoding": "^2.0.0", | ||
732 | + "whatwg-mimetype": "^3.0.0", | ||
733 | + "whatwg-url": "^10.0.0", | ||
734 | + "ws": "^8.2.3", | ||
735 | + "xml-name-validator": "^4.0.0" | ||
736 | + }, | ||
737 | + "dependencies": { | ||
738 | + "form-data": { | ||
739 | + "version": "4.0.0", | ||
740 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | ||
741 | + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | ||
742 | + "requires": { | ||
743 | + "asynckit": "^0.4.0", | ||
744 | + "combined-stream": "^1.0.8", | ||
745 | + "mime-types": "^2.1.12" | ||
746 | + } | ||
747 | + }, | ||
748 | + "tough-cookie": { | ||
749 | + "version": "4.0.0", | ||
750 | + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", | ||
751 | + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", | ||
752 | + "requires": { | ||
753 | + "psl": "^1.1.33", | ||
754 | + "punycode": "^2.1.1", | ||
755 | + "universalify": "^0.1.2" | ||
756 | + } | ||
757 | + } | ||
758 | + } | ||
759 | + }, | ||
760 | + "json-schema": { | ||
761 | + "version": "0.4.0", | ||
762 | + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", | ||
763 | + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" | ||
764 | + }, | ||
765 | + "json-schema-traverse": { | ||
766 | + "version": "0.4.1", | ||
767 | + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", | ||
768 | + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" | ||
769 | + }, | ||
770 | + "json-stringify-safe": { | ||
771 | + "version": "5.0.1", | ||
772 | + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||
773 | + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||
774 | + }, | ||
775 | + "jsprim": { | ||
776 | + "version": "1.4.2", | ||
777 | + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", | ||
778 | + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", | ||
779 | + "requires": { | ||
780 | + "assert-plus": "1.0.0", | ||
781 | + "extsprintf": "1.3.0", | ||
782 | + "json-schema": "0.4.0", | ||
783 | + "verror": "1.10.0" | ||
784 | + } | ||
785 | + }, | ||
786 | + "levn": { | ||
787 | + "version": "0.3.0", | ||
788 | + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | ||
789 | + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", | ||
790 | + "requires": { | ||
791 | + "prelude-ls": "~1.1.2", | ||
792 | + "type-check": "~0.3.2" | ||
793 | + } | ||
794 | + }, | ||
795 | + "media-typer": { | ||
796 | + "version": "0.3.0", | ||
797 | + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||
798 | + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | ||
799 | + }, | ||
800 | + "merge-descriptors": { | ||
801 | + "version": "1.0.1", | ||
802 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||
803 | + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" | ||
804 | + }, | ||
805 | + "methods": { | ||
806 | + "version": "1.1.2", | ||
807 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | ||
808 | + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" | ||
809 | + }, | ||
810 | + "mime": { | ||
811 | + "version": "1.6.0", | ||
812 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", | ||
813 | + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" | ||
814 | + }, | ||
815 | + "mime-db": { | ||
816 | + "version": "1.50.0", | ||
817 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", | ||
818 | + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" | ||
819 | + }, | ||
820 | + "mime-types": { | ||
821 | + "version": "2.1.33", | ||
822 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", | ||
823 | + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", | ||
824 | + "requires": { | ||
825 | + "mime-db": "1.50.0" | ||
826 | + } | ||
827 | + }, | ||
828 | + "minimatch": { | ||
829 | + "version": "3.0.4", | ||
830 | + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
831 | + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
832 | + "requires": { | ||
833 | + "brace-expansion": "^1.1.7" | ||
834 | + } | ||
835 | + }, | ||
836 | + "ms": { | ||
837 | + "version": "2.0.0", | ||
838 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
839 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||
840 | + }, | ||
841 | + "mysql": { | ||
842 | + "version": "2.18.1", | ||
843 | + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", | ||
844 | + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", | ||
845 | + "requires": { | ||
846 | + "bignumber.js": "9.0.0", | ||
847 | + "readable-stream": "2.3.7", | ||
848 | + "safe-buffer": "5.1.2", | ||
849 | + "sqlstring": "2.3.1" | ||
850 | + } | ||
851 | + }, | ||
852 | + "negotiator": { | ||
853 | + "version": "0.6.2", | ||
854 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", | ||
855 | + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" | ||
856 | + }, | ||
857 | + "nwsapi": { | ||
858 | + "version": "2.2.0", | ||
859 | + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", | ||
860 | + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" | ||
861 | + }, | ||
862 | + "oauth-sign": { | ||
863 | + "version": "0.9.0", | ||
864 | + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||
865 | + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" | ||
866 | + }, | ||
867 | + "on-finished": { | ||
868 | + "version": "2.3.0", | ||
869 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
870 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
871 | + "requires": { | ||
872 | + "ee-first": "1.1.1" | ||
873 | + } | ||
874 | + }, | ||
875 | + "on-headers": { | ||
876 | + "version": "1.0.2", | ||
877 | + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", | ||
878 | + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" | ||
879 | + }, | ||
880 | + "optionator": { | ||
881 | + "version": "0.8.3", | ||
882 | + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", | ||
883 | + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", | ||
884 | + "requires": { | ||
885 | + "deep-is": "~0.1.3", | ||
886 | + "fast-levenshtein": "~2.0.6", | ||
887 | + "levn": "~0.3.0", | ||
888 | + "prelude-ls": "~1.1.2", | ||
889 | + "type-check": "~0.3.2", | ||
890 | + "word-wrap": "~1.2.3" | ||
891 | + } | ||
892 | + }, | ||
893 | + "oracledb": { | ||
894 | + "version": "5.3.0", | ||
895 | + "resolved": "https://registry.npmjs.org/oracledb/-/oracledb-5.3.0.tgz", | ||
896 | + "integrity": "sha512-HMJzQ6lCf287ztvvehTEmjCWA21FQ3RMvM+mgoqd4i8pkREuqFWO+y3ovsGR9moJUg4T0xjcwS8rl4mggWPxmg==" | ||
897 | + }, | ||
898 | + "parse5": { | ||
899 | + "version": "6.0.1", | ||
900 | + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", | ||
901 | + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" | ||
902 | + }, | ||
903 | + "parseurl": { | ||
904 | + "version": "1.3.3", | ||
905 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", | ||
906 | + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" | ||
907 | + }, | ||
908 | + "path-to-regexp": { | ||
909 | + "version": "0.1.7", | ||
910 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||
911 | + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" | ||
912 | + }, | ||
913 | + "performance-now": { | ||
914 | + "version": "2.1.0", | ||
915 | + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | ||
916 | + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | ||
917 | + }, | ||
918 | + "prelude-ls": { | ||
919 | + "version": "1.1.2", | ||
920 | + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||
921 | + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" | ||
922 | + }, | ||
923 | + "process-nextick-args": { | ||
924 | + "version": "2.0.1", | ||
925 | + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | ||
926 | + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | ||
927 | + }, | ||
928 | + "proxy-addr": { | ||
929 | + "version": "2.0.7", | ||
930 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||
931 | + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", | ||
932 | + "requires": { | ||
933 | + "forwarded": "0.2.0", | ||
934 | + "ipaddr.js": "1.9.1" | ||
935 | + } | ||
936 | + }, | ||
937 | + "psl": { | ||
938 | + "version": "1.8.0", | ||
939 | + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", | ||
940 | + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" | ||
941 | + }, | ||
942 | + "punycode": { | ||
943 | + "version": "2.1.1", | ||
944 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
945 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" | ||
946 | + }, | ||
947 | + "qs": { | ||
948 | + "version": "6.7.0", | ||
949 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", | ||
950 | + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" | ||
951 | + }, | ||
952 | + "random-bytes": { | ||
953 | + "version": "1.0.0", | ||
954 | + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", | ||
955 | + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" | ||
956 | + }, | ||
957 | + "range-parser": { | ||
958 | + "version": "1.2.1", | ||
959 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", | ||
960 | + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" | ||
961 | + }, | ||
962 | + "raw-body": { | ||
963 | + "version": "2.4.0", | ||
964 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", | ||
965 | + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", | ||
966 | + "requires": { | ||
967 | + "bytes": "3.1.0", | ||
968 | + "http-errors": "1.7.2", | ||
969 | + "iconv-lite": "0.4.24", | ||
970 | + "unpipe": "1.0.0" | ||
971 | + } | ||
972 | + }, | ||
973 | + "readable-stream": { | ||
974 | + "version": "2.3.7", | ||
975 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | ||
976 | + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | ||
977 | + "requires": { | ||
978 | + "core-util-is": "~1.0.0", | ||
979 | + "inherits": "~2.0.3", | ||
980 | + "isarray": "~1.0.0", | ||
981 | + "process-nextick-args": "~2.0.0", | ||
982 | + "safe-buffer": "~5.1.1", | ||
983 | + "string_decoder": "~1.1.1", | ||
984 | + "util-deprecate": "~1.0.1" | ||
985 | + } | ||
986 | + }, | ||
987 | + "request": { | ||
988 | + "version": "2.88.2", | ||
989 | + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", | ||
990 | + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", | ||
991 | + "requires": { | ||
992 | + "aws-sign2": "~0.7.0", | ||
993 | + "aws4": "^1.8.0", | ||
994 | + "caseless": "~0.12.0", | ||
995 | + "combined-stream": "~1.0.6", | ||
996 | + "extend": "~3.0.2", | ||
997 | + "forever-agent": "~0.6.1", | ||
998 | + "form-data": "~2.3.2", | ||
999 | + "har-validator": "~5.1.3", | ||
1000 | + "http-signature": "~1.2.0", | ||
1001 | + "is-typedarray": "~1.0.0", | ||
1002 | + "isstream": "~0.1.2", | ||
1003 | + "json-stringify-safe": "~5.0.1", | ||
1004 | + "mime-types": "~2.1.19", | ||
1005 | + "oauth-sign": "~0.9.0", | ||
1006 | + "performance-now": "^2.1.0", | ||
1007 | + "qs": "~6.5.2", | ||
1008 | + "safe-buffer": "^5.1.2", | ||
1009 | + "tough-cookie": "~2.5.0", | ||
1010 | + "tunnel-agent": "^0.6.0", | ||
1011 | + "uuid": "^3.3.2" | ||
1012 | + }, | ||
1013 | + "dependencies": { | ||
1014 | + "qs": { | ||
1015 | + "version": "6.5.2", | ||
1016 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", | ||
1017 | + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" | ||
1018 | + } | ||
1019 | + } | ||
1020 | + }, | ||
1021 | + "safe-buffer": { | ||
1022 | + "version": "5.1.2", | ||
1023 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
1024 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
1025 | + }, | ||
1026 | + "safer-buffer": { | ||
1027 | + "version": "2.1.2", | ||
1028 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
1029 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
1030 | + }, | ||
1031 | + "saxes": { | ||
1032 | + "version": "5.0.1", | ||
1033 | + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", | ||
1034 | + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", | ||
1035 | + "requires": { | ||
1036 | + "xmlchars": "^2.2.0" | ||
1037 | + } | ||
1038 | + }, | ||
1039 | + "send": { | ||
1040 | + "version": "0.17.1", | ||
1041 | + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", | ||
1042 | + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", | ||
1043 | + "requires": { | ||
1044 | + "debug": "2.6.9", | ||
1045 | + "depd": "~1.1.2", | ||
1046 | + "destroy": "~1.0.4", | ||
1047 | + "encodeurl": "~1.0.2", | ||
1048 | + "escape-html": "~1.0.3", | ||
1049 | + "etag": "~1.8.1", | ||
1050 | + "fresh": "0.5.2", | ||
1051 | + "http-errors": "~1.7.2", | ||
1052 | + "mime": "1.6.0", | ||
1053 | + "ms": "2.1.1", | ||
1054 | + "on-finished": "~2.3.0", | ||
1055 | + "range-parser": "~1.2.1", | ||
1056 | + "statuses": "~1.5.0" | ||
1057 | + }, | ||
1058 | + "dependencies": { | ||
1059 | + "ms": { | ||
1060 | + "version": "2.1.1", | ||
1061 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | ||
1062 | + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" | ||
1063 | + } | ||
1064 | + } | ||
1065 | + }, | ||
1066 | + "serve-static": { | ||
1067 | + "version": "1.14.1", | ||
1068 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", | ||
1069 | + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", | ||
1070 | + "requires": { | ||
1071 | + "encodeurl": "~1.0.2", | ||
1072 | + "escape-html": "~1.0.3", | ||
1073 | + "parseurl": "~1.3.3", | ||
1074 | + "send": "0.17.1" | ||
1075 | + } | ||
1076 | + }, | ||
1077 | + "setprototypeof": { | ||
1078 | + "version": "1.1.1", | ||
1079 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", | ||
1080 | + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" | ||
1081 | + }, | ||
1082 | + "source-map": { | ||
1083 | + "version": "0.6.1", | ||
1084 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||
1085 | + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", | ||
1086 | + "optional": true | ||
1087 | + }, | ||
1088 | + "sqlstring": { | ||
1089 | + "version": "2.3.1", | ||
1090 | + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", | ||
1091 | + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" | ||
1092 | + }, | ||
1093 | + "sshpk": { | ||
1094 | + "version": "1.16.1", | ||
1095 | + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", | ||
1096 | + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", | ||
1097 | + "requires": { | ||
1098 | + "asn1": "~0.2.3", | ||
1099 | + "assert-plus": "^1.0.0", | ||
1100 | + "bcrypt-pbkdf": "^1.0.0", | ||
1101 | + "dashdash": "^1.12.0", | ||
1102 | + "ecc-jsbn": "~0.1.1", | ||
1103 | + "getpass": "^0.1.1", | ||
1104 | + "jsbn": "~0.1.0", | ||
1105 | + "safer-buffer": "^2.0.2", | ||
1106 | + "tweetnacl": "~0.14.0" | ||
1107 | + } | ||
1108 | + }, | ||
1109 | + "statuses": { | ||
1110 | + "version": "1.5.0", | ||
1111 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", | ||
1112 | + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" | ||
1113 | + }, | ||
1114 | + "string_decoder": { | ||
1115 | + "version": "1.1.1", | ||
1116 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||
1117 | + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||
1118 | + "requires": { | ||
1119 | + "safe-buffer": "~5.1.0" | ||
1120 | + } | ||
1121 | + }, | ||
1122 | + "supports-color": { | ||
1123 | + "version": "5.5.0", | ||
1124 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
1125 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
1126 | + "requires": { | ||
1127 | + "has-flag": "^3.0.0" | ||
1128 | + } | ||
1129 | + }, | ||
1130 | + "symbol-tree": { | ||
1131 | + "version": "3.2.4", | ||
1132 | + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", | ||
1133 | + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" | ||
1134 | + }, | ||
1135 | + "toidentifier": { | ||
1136 | + "version": "1.0.0", | ||
1137 | + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", | ||
1138 | + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" | ||
1139 | + }, | ||
1140 | + "tough-cookie": { | ||
1141 | + "version": "2.5.0", | ||
1142 | + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", | ||
1143 | + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", | ||
1144 | + "requires": { | ||
1145 | + "psl": "^1.1.28", | ||
1146 | + "punycode": "^2.1.1" | ||
1147 | + } | ||
1148 | + }, | ||
1149 | + "tr46": { | ||
1150 | + "version": "3.0.0", | ||
1151 | + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", | ||
1152 | + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", | ||
1153 | + "requires": { | ||
1154 | + "punycode": "^2.1.1" | ||
1155 | + } | ||
1156 | + }, | ||
1157 | + "tunnel-agent": { | ||
1158 | + "version": "0.6.0", | ||
1159 | + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||
1160 | + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | ||
1161 | + "requires": { | ||
1162 | + "safe-buffer": "^5.0.1" | ||
1163 | + } | ||
1164 | + }, | ||
1165 | + "tweetnacl": { | ||
1166 | + "version": "0.14.5", | ||
1167 | + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||
1168 | + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" | ||
1169 | + }, | ||
1170 | + "type-check": { | ||
1171 | + "version": "0.3.2", | ||
1172 | + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", | ||
1173 | + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", | ||
1174 | + "requires": { | ||
1175 | + "prelude-ls": "~1.1.2" | ||
1176 | + } | ||
1177 | + }, | ||
1178 | + "type-is": { | ||
1179 | + "version": "1.6.18", | ||
1180 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", | ||
1181 | + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", | ||
1182 | + "requires": { | ||
1183 | + "media-typer": "0.3.0", | ||
1184 | + "mime-types": "~2.1.24" | ||
1185 | + } | ||
1186 | + }, | ||
1187 | + "uid-safe": { | ||
1188 | + "version": "2.1.5", | ||
1189 | + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", | ||
1190 | + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", | ||
1191 | + "requires": { | ||
1192 | + "random-bytes": "~1.0.0" | ||
1193 | + } | ||
1194 | + }, | ||
1195 | + "universalify": { | ||
1196 | + "version": "0.1.2", | ||
1197 | + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", | ||
1198 | + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" | ||
1199 | + }, | ||
1200 | + "unpipe": { | ||
1201 | + "version": "1.0.0", | ||
1202 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||
1203 | + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" | ||
1204 | + }, | ||
1205 | + "uri-js": { | ||
1206 | + "version": "4.4.1", | ||
1207 | + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", | ||
1208 | + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", | ||
1209 | + "requires": { | ||
1210 | + "punycode": "^2.1.0" | ||
1211 | + } | ||
1212 | + }, | ||
1213 | + "util-deprecate": { | ||
1214 | + "version": "1.0.2", | ||
1215 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
1216 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||
1217 | + }, | ||
1218 | + "utils-merge": { | ||
1219 | + "version": "1.0.1", | ||
1220 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||
1221 | + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" | ||
1222 | + }, | ||
1223 | + "uuid": { | ||
1224 | + "version": "3.4.0", | ||
1225 | + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", | ||
1226 | + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" | ||
1227 | + }, | ||
1228 | + "vary": { | ||
1229 | + "version": "1.1.2", | ||
1230 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | ||
1231 | + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" | ||
1232 | + }, | ||
1233 | + "verror": { | ||
1234 | + "version": "1.10.0", | ||
1235 | + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
1236 | + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | ||
1237 | + "requires": { | ||
1238 | + "assert-plus": "^1.0.0", | ||
1239 | + "core-util-is": "1.0.2", | ||
1240 | + "extsprintf": "^1.2.0" | ||
1241 | + }, | ||
1242 | + "dependencies": { | ||
1243 | + "core-util-is": { | ||
1244 | + "version": "1.0.2", | ||
1245 | + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||
1246 | + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||
1247 | + } | ||
1248 | + } | ||
1249 | + }, | ||
1250 | + "w3c-hr-time": { | ||
1251 | + "version": "1.0.2", | ||
1252 | + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", | ||
1253 | + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", | ||
1254 | + "requires": { | ||
1255 | + "browser-process-hrtime": "^1.0.0" | ||
1256 | + } | ||
1257 | + }, | ||
1258 | + "w3c-xmlserializer": { | ||
1259 | + "version": "3.0.0", | ||
1260 | + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", | ||
1261 | + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", | ||
1262 | + "requires": { | ||
1263 | + "xml-name-validator": "^4.0.0" | ||
1264 | + } | ||
1265 | + }, | ||
1266 | + "webidl-conversions": { | ||
1267 | + "version": "7.0.0", | ||
1268 | + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", | ||
1269 | + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" | ||
1270 | + }, | ||
1271 | + "whatwg-encoding": { | ||
1272 | + "version": "2.0.0", | ||
1273 | + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", | ||
1274 | + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", | ||
1275 | + "requires": { | ||
1276 | + "iconv-lite": "0.6.3" | ||
1277 | + }, | ||
1278 | + "dependencies": { | ||
1279 | + "iconv-lite": { | ||
1280 | + "version": "0.6.3", | ||
1281 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", | ||
1282 | + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", | ||
1283 | + "requires": { | ||
1284 | + "safer-buffer": ">= 2.1.2 < 3.0.0" | ||
1285 | + } | ||
1286 | + } | ||
1287 | + } | ||
1288 | + }, | ||
1289 | + "whatwg-mimetype": { | ||
1290 | + "version": "3.0.0", | ||
1291 | + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", | ||
1292 | + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" | ||
1293 | + }, | ||
1294 | + "whatwg-url": { | ||
1295 | + "version": "10.0.0", | ||
1296 | + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", | ||
1297 | + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", | ||
1298 | + "requires": { | ||
1299 | + "tr46": "^3.0.0", | ||
1300 | + "webidl-conversions": "^7.0.0" | ||
1301 | + } | ||
1302 | + }, | ||
1303 | + "word-wrap": { | ||
1304 | + "version": "1.2.3", | ||
1305 | + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", | ||
1306 | + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" | ||
1307 | + }, | ||
1308 | + "ws": { | ||
1309 | + "version": "8.3.0", | ||
1310 | + "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", | ||
1311 | + "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==" | ||
1312 | + }, | ||
1313 | + "xml-name-validator": { | ||
1314 | + "version": "4.0.0", | ||
1315 | + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", | ||
1316 | + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" | ||
1317 | + }, | ||
1318 | + "xmlchars": { | ||
1319 | + "version": "2.2.0", | ||
1320 | + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", | ||
1321 | + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" | ||
1322 | + } | ||
1323 | + } | ||
1324 | +} |
package.json
0 → 100644
1 | +{ | ||
2 | + "name": "app", | ||
3 | + "version": "1.0.0", | ||
4 | + "description": "", | ||
5 | + "main": "index.js", | ||
6 | + "scripts": { | ||
7 | + "test": "echo \"Error: no test specified\" && exit 1" | ||
8 | + }, | ||
9 | + "author": "", | ||
10 | + "license": "ISC", | ||
11 | + "dependencies": { | ||
12 | + "body-parser": "^1.17.1", | ||
13 | + "ejs": "^3.1.6", | ||
14 | + "express": "^4.15.2", | ||
15 | + "express-session": "^1.15.2", | ||
16 | + "jsdom": "^19.0.0", | ||
17 | + "mysql": "^2.18.1", | ||
18 | + "oracledb": "^5.3.0", | ||
19 | + "request": "^2.88.2" | ||
20 | + } | ||
21 | +} |
shop1.sql
0 → 100644
shoppingmall.sql
0 → 100644
1 | +create table cust( | ||
2 | + id varchar(35) primary key, | ||
3 | + pwd varchar(12), | ||
4 | + name varchar(4), | ||
5 | + email varchar(40), | ||
6 | + address_num int, | ||
7 | + signdate timestamp default Now(), | ||
8 | + address varchar(40), | ||
9 | + phone varchar(15), | ||
10 | + useyn int default 1, -- 활동 : 1, 탈퇴 : 0 | ||
11 | + isadmin int default 0 -- 관리자 : 1, 회원 : 0 | ||
12 | +); | ||
13 | +create table emp( | ||
14 | + id varchar(35) , | ||
15 | + pwd varchar(12), | ||
16 | + name varchar(4), | ||
17 | + email varchar(40), | ||
18 | + phone varchar(15), | ||
19 | + primary key (id), | ||
20 | + FOREIGN KEY (id) REFERENCES cust(id) | ||
21 | +); | ||
22 | +create table item( | ||
23 | + id varchar(40), | ||
24 | + name varchar(20), | ||
25 | + category int, | ||
26 | + cost int, | ||
27 | + price int, | ||
28 | + profit int, | ||
29 | + content varchar(1000), | ||
30 | + image varchar(100), | ||
31 | + useyn int default 1, -- 판매 1, 미판매 0 | ||
32 | + signdate timestamp default Now(), | ||
33 | + primary key (id) | ||
34 | +); | ||
35 | +create table item_order( | ||
36 | + id int, | ||
37 | + item_id varchar(40), | ||
38 | + count int, | ||
39 | + complete int default 0,-- 주문 처리 후 0, 주문 해결완료(배송완료) 1 | ||
40 | + cust_id varchar(35), | ||
41 | + primary key (id), | ||
42 | + FOREIGN KEY (item_id) REFERENCES item(id), | ||
43 | + FOREIGN KEY (cust_id) REFERENCES cust(id) | ||
44 | +); | ||
45 | +/* | ||
46 | +insert into users | ||
47 | +values ('U26c8ad1695d48e6b4bcccd4e6d25f3d9', | ||
48 | +'124578','민구','ggalsrn@naver.com','17117',default ,'0288',default,default) | ||
49 | +*/ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment