Showing
4 changed files
with
298 additions
and
3 deletions
... | @@ -38,6 +38,15 @@ | ... | @@ -38,6 +38,15 @@ |
38 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", | 38 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", |
39 | "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" | 39 | "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" |
40 | }, | 40 | }, |
41 | + "adler-32": { | ||
42 | + "version": "1.2.0", | ||
43 | + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", | ||
44 | + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", | ||
45 | + "requires": { | ||
46 | + "exit-on-epipe": "~1.0.1", | ||
47 | + "printj": "~1.1.0" | ||
48 | + } | ||
49 | + }, | ||
41 | "ajv": { | 50 | "ajv": { |
42 | "version": "6.12.2", | 51 | "version": "6.12.2", |
43 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", | 52 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", |
... | @@ -57,6 +66,11 @@ | ... | @@ -57,6 +66,11 @@ |
57 | "color-convert": "^1.9.0" | 66 | "color-convert": "^1.9.0" |
58 | } | 67 | } |
59 | }, | 68 | }, |
69 | + "append-field": { | ||
70 | + "version": "1.0.0", | ||
71 | + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", | ||
72 | + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" | ||
73 | + }, | ||
60 | "array-flatten": { | 74 | "array-flatten": { |
61 | "version": "1.1.1", | 75 | "version": "1.1.1", |
62 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | 76 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", |
... | @@ -196,6 +210,43 @@ | ... | @@ -196,6 +210,43 @@ |
196 | "isarray": "^1.0.0" | 210 | "isarray": "^1.0.0" |
197 | } | 211 | } |
198 | }, | 212 | }, |
213 | + "buffer-from": { | ||
214 | + "version": "1.1.1", | ||
215 | + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | ||
216 | + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" | ||
217 | + }, | ||
218 | + "busboy": { | ||
219 | + "version": "0.2.14", | ||
220 | + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", | ||
221 | + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", | ||
222 | + "requires": { | ||
223 | + "dicer": "0.2.5", | ||
224 | + "readable-stream": "1.1.x" | ||
225 | + }, | ||
226 | + "dependencies": { | ||
227 | + "isarray": { | ||
228 | + "version": "0.0.1", | ||
229 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", | ||
230 | + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" | ||
231 | + }, | ||
232 | + "readable-stream": { | ||
233 | + "version": "1.1.14", | ||
234 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", | ||
235 | + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", | ||
236 | + "requires": { | ||
237 | + "core-util-is": "~1.0.0", | ||
238 | + "inherits": "~2.0.1", | ||
239 | + "isarray": "0.0.1", | ||
240 | + "string_decoder": "~0.10.x" | ||
241 | + } | ||
242 | + }, | ||
243 | + "string_decoder": { | ||
244 | + "version": "0.10.31", | ||
245 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", | ||
246 | + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" | ||
247 | + } | ||
248 | + } | ||
249 | + }, | ||
199 | "bytes": { | 250 | "bytes": { |
200 | "version": "3.0.0", | 251 | "version": "3.0.0", |
201 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", | 252 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", |
... | @@ -206,6 +257,17 @@ | ... | @@ -206,6 +257,17 @@ |
206 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | 257 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", |
207 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | 258 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" |
208 | }, | 259 | }, |
260 | + "cfb": { | ||
261 | + "version": "1.1.4", | ||
262 | + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.4.tgz", | ||
263 | + "integrity": "sha512-rwFkl3aFO3f+ljR27YINwC0x8vPjyiEVbYbrTCKzspEf7Q++3THdfHVgJYNUbxNcupJECrLX+L40Mjm9hm/Bgw==", | ||
264 | + "requires": { | ||
265 | + "adler-32": "~1.2.0", | ||
266 | + "commander": "^2.16.0", | ||
267 | + "crc-32": "~1.2.0", | ||
268 | + "printj": "~1.1.2" | ||
269 | + } | ||
270 | + }, | ||
209 | "chalk": { | 271 | "chalk": { |
210 | "version": "2.4.2", | 272 | "version": "2.4.2", |
211 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | 273 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
... | @@ -224,6 +286,22 @@ | ... | @@ -224,6 +286,22 @@ |
224 | "is-regex": "^1.0.3" | 286 | "is-regex": "^1.0.3" |
225 | } | 287 | } |
226 | }, | 288 | }, |
289 | + "codepage": { | ||
290 | + "version": "1.14.0", | ||
291 | + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", | ||
292 | + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", | ||
293 | + "requires": { | ||
294 | + "commander": "~2.14.1", | ||
295 | + "exit-on-epipe": "~1.0.1" | ||
296 | + }, | ||
297 | + "dependencies": { | ||
298 | + "commander": { | ||
299 | + "version": "2.14.1", | ||
300 | + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", | ||
301 | + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" | ||
302 | + } | ||
303 | + } | ||
304 | + }, | ||
227 | "color-convert": { | 305 | "color-convert": { |
228 | "version": "1.9.3", | 306 | "version": "1.9.3", |
229 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | 307 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
... | @@ -245,11 +323,27 @@ | ... | @@ -245,11 +323,27 @@ |
245 | "delayed-stream": "~1.0.0" | 323 | "delayed-stream": "~1.0.0" |
246 | } | 324 | } |
247 | }, | 325 | }, |
326 | + "commander": { | ||
327 | + "version": "2.17.1", | ||
328 | + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", | ||
329 | + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" | ||
330 | + }, | ||
248 | "concat-map": { | 331 | "concat-map": { |
249 | "version": "0.0.1", | 332 | "version": "0.0.1", |
250 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | 333 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
251 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | 334 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" |
252 | }, | 335 | }, |
336 | + "concat-stream": { | ||
337 | + "version": "1.6.2", | ||
338 | + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", | ||
339 | + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", | ||
340 | + "requires": { | ||
341 | + "buffer-from": "^1.0.0", | ||
342 | + "inherits": "^2.0.3", | ||
343 | + "readable-stream": "^2.2.2", | ||
344 | + "typedarray": "^0.0.6" | ||
345 | + } | ||
346 | + }, | ||
253 | "constantinople": { | 347 | "constantinople": { |
254 | "version": "4.0.1", | 348 | "version": "4.0.1", |
255 | "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", | 349 | "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", |
... | @@ -293,6 +387,15 @@ | ... | @@ -293,6 +387,15 @@ |
293 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | 387 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", |
294 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | 388 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" |
295 | }, | 389 | }, |
390 | + "crc-32": { | ||
391 | + "version": "1.2.0", | ||
392 | + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", | ||
393 | + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", | ||
394 | + "requires": { | ||
395 | + "exit-on-epipe": "~1.0.1", | ||
396 | + "printj": "~1.1.0" | ||
397 | + } | ||
398 | + }, | ||
296 | "crypto-js": { | 399 | "crypto-js": { |
297 | "version": "4.0.0", | 400 | "version": "4.0.0", |
298 | "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", | 401 | "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", |
... | @@ -329,6 +432,38 @@ | ... | @@ -329,6 +432,38 @@ |
329 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", | 432 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", |
330 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" | 433 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" |
331 | }, | 434 | }, |
435 | + "dicer": { | ||
436 | + "version": "0.2.5", | ||
437 | + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", | ||
438 | + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", | ||
439 | + "requires": { | ||
440 | + "readable-stream": "1.1.x", | ||
441 | + "streamsearch": "0.1.2" | ||
442 | + }, | ||
443 | + "dependencies": { | ||
444 | + "isarray": { | ||
445 | + "version": "0.0.1", | ||
446 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", | ||
447 | + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" | ||
448 | + }, | ||
449 | + "readable-stream": { | ||
450 | + "version": "1.1.14", | ||
451 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", | ||
452 | + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", | ||
453 | + "requires": { | ||
454 | + "core-util-is": "~1.0.0", | ||
455 | + "inherits": "~2.0.1", | ||
456 | + "isarray": "0.0.1", | ||
457 | + "string_decoder": "~0.10.x" | ||
458 | + } | ||
459 | + }, | ||
460 | + "string_decoder": { | ||
461 | + "version": "0.10.31", | ||
462 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", | ||
463 | + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" | ||
464 | + } | ||
465 | + } | ||
466 | + }, | ||
332 | "doctypes": { | 467 | "doctypes": { |
333 | "version": "1.1.0", | 468 | "version": "1.1.0", |
334 | "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", | 469 | "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", |
... | @@ -381,6 +516,11 @@ | ... | @@ -381,6 +516,11 @@ |
381 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", | 516 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", |
382 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" | 517 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" |
383 | }, | 518 | }, |
519 | + "exit-on-epipe": { | ||
520 | + "version": "1.0.1", | ||
521 | + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", | ||
522 | + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" | ||
523 | + }, | ||
384 | "express": { | 524 | "express": { |
385 | "version": "4.16.4", | 525 | "version": "4.16.4", |
386 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", | 526 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", |
... | @@ -519,6 +659,11 @@ | ... | @@ -519,6 +659,11 @@ |
519 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", | 659 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", |
520 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" | 660 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" |
521 | }, | 661 | }, |
662 | + "frac": { | ||
663 | + "version": "1.1.2", | ||
664 | + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", | ||
665 | + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" | ||
666 | + }, | ||
522 | "fresh": { | 667 | "fresh": { |
523 | "version": "0.5.2", | 668 | "version": "0.5.2", |
524 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | 669 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", |
... | @@ -752,6 +897,19 @@ | ... | @@ -752,6 +897,19 @@ |
752 | "brace-expansion": "^1.1.7" | 897 | "brace-expansion": "^1.1.7" |
753 | } | 898 | } |
754 | }, | 899 | }, |
900 | + "minimist": { | ||
901 | + "version": "1.2.5", | ||
902 | + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||
903 | + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" | ||
904 | + }, | ||
905 | + "mkdirp": { | ||
906 | + "version": "0.5.5", | ||
907 | + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", | ||
908 | + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", | ||
909 | + "requires": { | ||
910 | + "minimist": "^1.2.5" | ||
911 | + } | ||
912 | + }, | ||
755 | "moment": { | 913 | "moment": { |
756 | "version": "2.26.0", | 914 | "version": "2.26.0", |
757 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", | 915 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", |
... | @@ -774,6 +932,21 @@ | ... | @@ -774,6 +932,21 @@ |
774 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | 932 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
775 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | 933 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" |
776 | }, | 934 | }, |
935 | + "multer": { | ||
936 | + "version": "1.4.2", | ||
937 | + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", | ||
938 | + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", | ||
939 | + "requires": { | ||
940 | + "append-field": "^1.0.0", | ||
941 | + "busboy": "^0.2.11", | ||
942 | + "concat-stream": "^1.5.2", | ||
943 | + "mkdirp": "^0.5.1", | ||
944 | + "object-assign": "^4.1.1", | ||
945 | + "on-finished": "^2.3.0", | ||
946 | + "type-is": "^1.6.4", | ||
947 | + "xtend": "^4.0.0" | ||
948 | + } | ||
949 | + }, | ||
777 | "mysql": { | 950 | "mysql": { |
778 | "version": "2.18.1", | 951 | "version": "2.18.1", |
779 | "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", | 952 | "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", |
... | @@ -852,6 +1025,11 @@ | ... | @@ -852,6 +1025,11 @@ |
852 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | 1025 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", |
853 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | 1026 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" |
854 | }, | 1027 | }, |
1028 | + "printj": { | ||
1029 | + "version": "1.1.2", | ||
1030 | + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", | ||
1031 | + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" | ||
1032 | + }, | ||
855 | "process-nextick-args": { | 1033 | "process-nextick-args": { |
856 | "version": "2.0.1", | 1034 | "version": "2.0.1", |
857 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | 1035 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", |
... | @@ -1132,6 +1310,14 @@ | ... | @@ -1132,6 +1310,14 @@ |
1132 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", | 1310 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", |
1133 | "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" | 1311 | "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" |
1134 | }, | 1312 | }, |
1313 | + "ssf": { | ||
1314 | + "version": "0.10.3", | ||
1315 | + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", | ||
1316 | + "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", | ||
1317 | + "requires": { | ||
1318 | + "frac": "~1.1.2" | ||
1319 | + } | ||
1320 | + }, | ||
1135 | "sshpk": { | 1321 | "sshpk": { |
1136 | "version": "1.16.1", | 1322 | "version": "1.16.1", |
1137 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", | 1323 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", |
... | @@ -1153,6 +1339,11 @@ | ... | @@ -1153,6 +1339,11 @@ |
1153 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", | 1339 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", |
1154 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" | 1340 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" |
1155 | }, | 1341 | }, |
1342 | + "streamsearch": { | ||
1343 | + "version": "0.1.2", | ||
1344 | + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", | ||
1345 | + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" | ||
1346 | + }, | ||
1156 | "string_decoder": { | 1347 | "string_decoder": { |
1157 | "version": "1.1.1", | 1348 | "version": "1.1.1", |
1158 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 1349 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", |
... | @@ -1217,6 +1408,11 @@ | ... | @@ -1217,6 +1408,11 @@ |
1217 | "mime-types": "~2.1.24" | 1408 | "mime-types": "~2.1.24" |
1218 | } | 1409 | } |
1219 | }, | 1410 | }, |
1411 | + "typedarray": { | ||
1412 | + "version": "0.0.6", | ||
1413 | + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", | ||
1414 | + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" | ||
1415 | + }, | ||
1220 | "uid-safe": { | 1416 | "uid-safe": { |
1221 | "version": "2.1.5", | 1417 | "version": "2.1.5", |
1222 | "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", | 1418 | "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", |
... | @@ -1300,6 +1496,26 @@ | ... | @@ -1300,6 +1496,26 @@ |
1300 | "babel-walk": "3.0.0-canary-5" | 1496 | "babel-walk": "3.0.0-canary-5" |
1301 | } | 1497 | } |
1302 | }, | 1498 | }, |
1499 | + "wmf": { | ||
1500 | + "version": "1.0.2", | ||
1501 | + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", | ||
1502 | + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" | ||
1503 | + }, | ||
1504 | + "xlsx": { | ||
1505 | + "version": "0.16.2", | ||
1506 | + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.2.tgz", | ||
1507 | + "integrity": "sha512-XTqOy7YpCUtGbvCYaCh1t1RsZ/y8cSCbZCOYtqqZ4/EmHkyv+/ghxmCvvR8yc4Tn5fhny+3j7voKwJaRlffNKA==", | ||
1508 | + "requires": { | ||
1509 | + "adler-32": "~1.2.0", | ||
1510 | + "cfb": "^1.1.4", | ||
1511 | + "codepage": "~1.14.0", | ||
1512 | + "commander": "~2.17.1", | ||
1513 | + "crc-32": "~1.2.0", | ||
1514 | + "exit-on-epipe": "~1.0.1", | ||
1515 | + "ssf": "~0.10.3", | ||
1516 | + "wmf": "~1.0.1" | ||
1517 | + } | ||
1518 | + }, | ||
1303 | "xml2js": { | 1519 | "xml2js": { |
1304 | "version": "0.4.19", | 1520 | "version": "0.4.19", |
1305 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", | 1521 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", |
... | @@ -1313,6 +1529,11 @@ | ... | @@ -1313,6 +1529,11 @@ |
1313 | "version": "9.0.7", | 1529 | "version": "9.0.7", |
1314 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", | 1530 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", |
1315 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" | 1531 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" |
1532 | + }, | ||
1533 | + "xtend": { | ||
1534 | + "version": "4.0.2", | ||
1535 | + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", | ||
1536 | + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" | ||
1316 | } | 1537 | } |
1317 | } | 1538 | } |
1318 | } | 1539 | } | ... | ... |
... | @@ -17,9 +17,11 @@ | ... | @@ -17,9 +17,11 @@ |
17 | "http-errors": "~1.6.3", | 17 | "http-errors": "~1.6.3", |
18 | "moment": "^2.26.0", | 18 | "moment": "^2.26.0", |
19 | "morgan": "~1.9.1", | 19 | "morgan": "~1.9.1", |
20 | + "multer": "^1.4.2", | ||
20 | "mysql": "^2.18.1", | 21 | "mysql": "^2.18.1", |
21 | "passport": "^0.4.1", | 22 | "passport": "^0.4.1", |
22 | "pug": "^3.0.0", | 23 | "pug": "^3.0.0", |
23 | - "request": "^2.88.2" | 24 | + "request": "^2.88.2", |
25 | + "xlsx": "^0.16.2" | ||
24 | } | 26 | } |
25 | } | 27 | } | ... | ... |
1 | var express = require('express'); | 1 | var express = require('express'); |
2 | var router = express.Router(); | 2 | var router = express.Router(); |
3 | +const XLSX = require('xlsx'); | ||
4 | +var multer = require('multer'); | ||
5 | +var fs = require('fs'); | ||
6 | +// var pool = require('./../routes/modules/database'); | ||
7 | + | ||
8 | +//파일 저장위치와 파일이름 설정 | ||
9 | +var storage = multer.diskStorage({ | ||
10 | + destination: function (req, file, cb) { | ||
11 | + cb(null, 'public/upload'); | ||
12 | + }, | ||
13 | + //파일이름 설정 | ||
14 | + filename: function (req, file, cb) { | ||
15 | + cb(null, file.originalname); | ||
16 | + } | ||
17 | +}) | ||
18 | + | ||
19 | +//파일 업로드 모듈 | ||
20 | +var upload = multer({ storage: storage }) | ||
3 | 21 | ||
4 | // 연락처 백업, 삭제, 검색 | 22 | // 연락처 백업, 삭제, 검색 |
5 | /* | 23 | /* |
... | @@ -7,8 +25,62 @@ contact_upload : 연락처 파일 업로드 모듈 | ... | @@ -7,8 +25,62 @@ contact_upload : 연락처 파일 업로드 모듈 |
7 | input : 사용자가 연락처를 저장해놓은 csv 혹은 xlsx 파일 | 25 | input : 사용자가 연락처를 저장해놓은 csv 혹은 xlsx 파일 |
8 | output : 연락처 저장 성공 여부 | 26 | output : 연락처 저장 성공 여부 |
9 | */ | 27 | */ |
10 | -router.get('/contact_upload', function(req, res, next) { | 28 | +router.post('/contact_upload', upload.single('file'), function(req, res, next) { |
11 | - console.log("login"); | 29 | + // console.log(req); |
30 | + var user_id = req.query.id; | ||
31 | + var file = req.file; | ||
32 | + var workbook = XLSX.readFile('public/upload/contact.xlsx'); | ||
33 | + var firstWSheetName = workbook.SheetNames[0]; | ||
34 | + var firstWSheet = workbook.Sheets[firstWSheetName]; | ||
35 | + var name = []; | ||
36 | + var phone = []; | ||
37 | + var email = []; | ||
38 | + var added_date = []; | ||
39 | + var length = firstWSheet['!ref'][4]; | ||
40 | + var temp =""; | ||
41 | + | ||
42 | + var sqlquery = "insert into contact(user_id,name,email,phone,added_date) values"; | ||
43 | + for(var i=1;i<length;i++) | ||
44 | + { | ||
45 | + for(var j=0;j<4;j++) | ||
46 | + { | ||
47 | + if(j==0){ | ||
48 | + temp = "A" + (i+1); | ||
49 | + name.push(firstWSheet[temp].v); | ||
50 | + sqlquery += ' ("' + user_id + '","'+name[i-1]; | ||
51 | + } | ||
52 | + else if(j==1){ | ||
53 | + temp = "B" + (i+1); | ||
54 | + phone.push(firstWSheet[temp].v); | ||
55 | + sqlquery += '","' + phone[i-1]; | ||
56 | + } | ||
57 | + else if(j==2){ | ||
58 | + temp = "C" + (i+1); | ||
59 | + email.push(firstWSheet[temp].v); | ||
60 | + sqlquery += '","' + email[i-1]; | ||
61 | + } | ||
62 | + else if(j==3){ | ||
63 | + temp = "D" + (i+1); | ||
64 | + added_date.push(firstWSheet[temp].v); | ||
65 | + sqlquery += '","' + added_date[i-1] + '"),'; | ||
66 | + } | ||
67 | + } | ||
68 | + } | ||
69 | + sqlquery = sqlquery.substring(0,sqlquery.length-1); | ||
70 | + connection.query(sqlquery, function (err, rows) { | ||
71 | + if (err) { | ||
72 | + console.log("upload contact failed"); | ||
73 | + throw err; | ||
74 | + } else { | ||
75 | + console.log(rows); | ||
76 | + var filename = 'public/upload/contact.xlsx'; | ||
77 | + fs.unlink(filename, function (err) { | ||
78 | + if (err) throw err; | ||
79 | + console.log('file deleted'); | ||
80 | + }) | ||
81 | + res.status(200).send('upload'); | ||
82 | + } | ||
83 | + }); | ||
12 | }); | 84 | }); |
13 | 85 | ||
14 | /* | 86 | /* | ... | ... |
-
Please register or login to post a comment