고병후

Connect database

1 +<회원 정보>
2 +CREATE TABLE tunnel.users(
3 +id INT NOT NULL AUTO_INCREMENT,
4 +name VARCHAR(30) NOT NULL,
5 +pw VARCHAR(30) NOT NULL,
6 +personality CHAR(4) NOT NULL,
7 +status TINYINT NOT NULL,
8 +PRIMARY KEY(id),
9 +UNIQUE INDEX name_UNIQUE (name ASC)
10 +)
11 +COMMENT = 'user information'
12 +DEFAULT CHARACTER SET = utf8
13 +ENGINE = InnoDB;
14 +
15 +<사용자 게시물>
16 +CREATE TABLE tunnel.posts(
17 +id INT NOT NULL AUTO_INCREMENT,
18 +userid VARCHAR(30) NOT NULL,
19 +post TEXT NOT NULL,
20 +created_at DATETIME NOT NULL DEFAULT now(),
21 +status TINYINT NOT NULL,
22 +PRIMARY KEY(id),
23 +INDEX userid_idx (userid ASC),
24 +CONSTRAINT commenter FOREIGN KEY (userid) REFERENCES tunnel.users (name)
25 +ON DELETE CASCADE
26 +ON UPDATE CASCADE)
27 +
28 +COMMENT = 'post information'
29 +DEFAULT CHARACTER SET = utf8
30 +ENGINE = InnoDB;
31 +
32 +<후 처리>
33 +ALTER TABLE tunnel.posts MODIFY post TEXT CHARACTER SET utf8mb4;
34 +:게시물에 이모지 사용가능하게 칼럼 수정.
35 +
36 +<댓글>
37 +CREATE TABLE tunnel.comments(
38 +id INT NOT NULL AUTO_INCREMENT,
39 +postid INT NOT NULL,
40 +userid VARCHAR(30) NOT NULL,
41 +created_at DATETIME NOT NULL DEFAULT now(),
42 +comment TEXT NOT NULL,
43 +PRIMARY KEY(id),
44 +INDEX postid_idx (postid ASC),
45 +CONSTRAINT post_id FOREIGN KEY (postid) REFERENCES tunnel.posts (id)
46 +ON DELETE CASCADE
47 +ON UPDATE CASCADE,
48 +CONSTRAINT user_id FOREIGN KEY (userid) REFERENCES tunnel.users (name)
49 +ON UPDATE CASCADE
50 +)
51 +
52 +COMMENT = 'post information'
53 +DEFAULT CHARACTER SET = utf8
54 +ENGINE = InnoDB;
55 +
56 +<후 처리>
57 +ALTER TABLE tunnel.comments MODIFY comment TEXT CHARACTER SET utf8mb4;
58 +: 댓글에 이모지 사용가능하게 칼럼 수정.
59 +
60 +
61 +
62 +<명령어>
63 +show databases;
64 +use tunnel;
65 +show tables;
66 +DESC tunnel.users ; #유저테이블 자세히 보기
67 +DROP TABLE tunnel.users; #유저테이블 지우기
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "development": {
3 + "username": "root",
4 + "password": "tunnel",
5 + "database": "tunnel",
6 + "host": "127.0.0.1",
7 + "dialect": "mysql"
8 + },
9 + "test": {
10 + "username": "root",
11 + "password": null,
12 + "database": "database_test",
13 + "host": "127.0.0.1",
14 + "dialect": "mysql"
15 + },
16 + "production": {
17 + "username": "root",
18 + "password": "tunnel",
19 + "database": "tunnel",
20 + "host": "127.0.0.1",
21 + "dialect": "mysql"
22 + }
23 +}
1 +//mysql사용을 위한 sequelize 세팅 파일
2 +const Sequelize = require('sequelize');
3 +
4 +//table(모델)과 연결
5 +const User = require("./user.js");
6 +
7 +const env = process.env.NODE_ENV || 'development'; //개발버전
8 +const config = require('../config/config.json')[env];
9 +const db = {};
10 +
11 +const sequelize = new Sequelize(config.database, config.username, config.password, config);
12 +
13 +
14 +db.sequelize = sequelize;
15 +
16 +db.User = User;
17 +User.init(sequelize);
18 +User.associate(db);
19 +
20 +
21 +module.exports = db;
1 +const Sequelize = require('sequelize');
2 +
3 +module.exports = class User extends Sequelize.Model {
4 + static init(sequelize) {
5 + return super.init({
6 + name:{
7 + type: Sequelize.STRING(30),
8 + allowNull: false,
9 + unique:true,
10 + },
11 + pw:{
12 + type: Sequelize.STRING(30),
13 + allowNull: false,
14 + },
15 + personality:{
16 + type: Sequelize.CHAR(4),
17 + allowNull: false,
18 + },
19 + status:{
20 + type: Sequelize.BOOLEAN,
21 + allowNull: false,
22 + },
23 + },{
24 + sequelize,
25 + timestamps:false,
26 + underscored:false,
27 + modelName: 'User',
28 + tableName:'users',
29 + paranoid:false,
30 + charset:'utf8',
31 + collate:'utf8_general_ci',
32 + });
33 + }
34 +
35 +
36 + static associate(db) {}
37 +};
...\ No newline at end of file ...\ No newline at end of file
...@@ -19,11 +19,28 @@ ...@@ -19,11 +19,28 @@
19 "defer-to-connect": "^1.0.1" 19 "defer-to-connect": "^1.0.1"
20 } 20 }
21 }, 21 },
22 + "@types/debug": {
23 + "version": "4.1.7",
24 + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
25 + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
26 + "requires": {
27 + "@types/ms": "*"
28 + }
29 + },
30 + "@types/ms": {
31 + "version": "0.7.31",
32 + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
33 + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
34 + },
35 + "@types/node": {
36 + "version": "16.11.11",
37 + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz",
38 + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw=="
39 + },
22 "abbrev": { 40 "abbrev": {
23 "version": "1.1.1", 41 "version": "1.1.1",
24 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 42 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
25 - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 43 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
26 - "dev": true
27 }, 44 },
28 "accepts": { 45 "accepts": {
29 "version": "1.3.7", 46 "version": "1.3.7",
...@@ -46,18 +63,21 @@ ...@@ -46,18 +63,21 @@
46 "ansi-regex": { 63 "ansi-regex": {
47 "version": "5.0.1", 64 "version": "5.0.1",
48 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 65 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
49 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 66 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
50 - "dev": true
51 }, 67 },
52 "ansi-styles": { 68 "ansi-styles": {
53 "version": "4.3.0", 69 "version": "4.3.0",
54 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 70 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
55 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 71 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
56 - "dev": true,
57 "requires": { 72 "requires": {
58 "color-convert": "^2.0.1" 73 "color-convert": "^2.0.1"
59 } 74 }
60 }, 75 },
76 + "any-promise": {
77 + "version": "1.3.0",
78 + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
79 + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
80 + },
61 "anymatch": { 81 "anymatch": {
62 "version": "3.1.2", 82 "version": "3.1.2",
63 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 83 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
...@@ -73,11 +93,15 @@ ...@@ -73,11 +93,15 @@
73 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 93 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
74 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 94 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
75 }, 95 },
96 + "at-least-node": {
97 + "version": "1.0.0",
98 + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
99 + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
100 + },
76 "balanced-match": { 101 "balanced-match": {
77 "version": "1.0.2", 102 "version": "1.0.2",
78 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 103 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
79 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 104 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
80 - "dev": true
81 }, 105 },
82 "basic-auth": { 106 "basic-auth": {
83 "version": "2.0.1", 107 "version": "2.0.1",
...@@ -93,6 +117,11 @@ ...@@ -93,6 +117,11 @@
93 "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 117 "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
94 "dev": true 118 "dev": true
95 }, 119 },
120 + "bluebird": {
121 + "version": "3.7.2",
122 + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
123 + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
124 + },
96 "body-parser": { 125 "body-parser": {
97 "version": "1.19.0", 126 "version": "1.19.0",
98 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 127 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
...@@ -130,7 +159,6 @@ ...@@ -130,7 +159,6 @@
130 "version": "1.1.11", 159 "version": "1.1.11",
131 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 160 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
132 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 161 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
133 - "dev": true,
134 "requires": { 162 "requires": {
135 "balanced-match": "^1.0.0", 163 "balanced-match": "^1.0.0",
136 "concat-map": "0.0.1" 164 "concat-map": "0.0.1"
...@@ -243,6 +271,40 @@ ...@@ -243,6 +271,40 @@
243 "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", 271 "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
244 "dev": true 272 "dev": true
245 }, 273 },
274 + "cli-color": {
275 + "version": "2.0.1",
276 + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz",
277 + "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==",
278 + "requires": {
279 + "d": "^1.0.1",
280 + "es5-ext": "^0.10.53",
281 + "es6-iterator": "^2.0.3",
282 + "memoizee": "^0.4.15",
283 + "timers-ext": "^0.1.7"
284 + }
285 + },
286 + "cliui": {
287 + "version": "6.0.0",
288 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
289 + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
290 + "requires": {
291 + "string-width": "^4.2.0",
292 + "strip-ansi": "^6.0.0",
293 + "wrap-ansi": "^6.2.0"
294 + },
295 + "dependencies": {
296 + "wrap-ansi": {
297 + "version": "6.2.0",
298 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
299 + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
300 + "requires": {
301 + "ansi-styles": "^4.0.0",
302 + "string-width": "^4.1.0",
303 + "strip-ansi": "^6.0.0"
304 + }
305 + }
306 + }
307 + },
246 "clone-response": { 308 "clone-response": {
247 "version": "1.0.2", 309 "version": "1.0.2",
248 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 310 "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
...@@ -256,7 +318,6 @@ ...@@ -256,7 +318,6 @@
256 "version": "2.0.1", 318 "version": "2.0.1",
257 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 319 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
258 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 320 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
259 - "dev": true,
260 "requires": { 321 "requires": {
261 "color-name": "~1.1.4" 322 "color-name": "~1.1.4"
262 } 323 }
...@@ -264,14 +325,33 @@ ...@@ -264,14 +325,33 @@
264 "color-name": { 325 "color-name": {
265 "version": "1.1.4", 326 "version": "1.1.4",
266 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 327 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
267 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 328 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
268 - "dev": true 329 + },
330 + "commander": {
331 + "version": "2.20.3",
332 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
333 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
269 }, 334 },
270 "concat-map": { 335 "concat-map": {
271 "version": "0.0.1", 336 "version": "0.0.1",
272 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 337 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
273 - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 338 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
274 - "dev": true 339 + },
340 + "config-chain": {
341 + "version": "1.1.13",
342 + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
343 + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
344 + "requires": {
345 + "ini": "^1.3.4",
346 + "proto-list": "~1.2.1"
347 + },
348 + "dependencies": {
349 + "ini": {
350 + "version": "1.3.8",
351 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
352 + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
353 + }
354 + }
275 }, 355 },
276 "configstore": { 356 "configstore": {
277 "version": "5.0.1", 357 "version": "5.0.1",
...@@ -332,6 +412,15 @@ ...@@ -332,6 +412,15 @@
332 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 412 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
333 "dev": true 413 "dev": true
334 }, 414 },
415 + "d": {
416 + "version": "1.0.1",
417 + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
418 + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
419 + "requires": {
420 + "es5-ext": "^0.10.50",
421 + "type": "^1.0.1"
422 + }
423 + },
335 "debug": { 424 "debug": {
336 "version": "2.6.9", 425 "version": "2.6.9",
337 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 426 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
...@@ -340,6 +429,11 @@ ...@@ -340,6 +429,11 @@
340 "ms": "2.0.0" 429 "ms": "2.0.0"
341 } 430 }
342 }, 431 },
432 + "decamelize": {
433 + "version": "1.2.0",
434 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
435 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
436 + },
343 "decompress-response": { 437 "decompress-response": {
344 "version": "3.3.0", 438 "version": "3.3.0",
345 "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 439 "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
...@@ -361,6 +455,11 @@ ...@@ -361,6 +455,11 @@
361 "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", 455 "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
362 "dev": true 456 "dev": true
363 }, 457 },
458 + "denque": {
459 + "version": "2.0.1",
460 + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
461 + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
462 + },
364 "depd": { 463 "depd": {
365 "version": "1.1.2", 464 "version": "1.1.2",
366 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 465 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
...@@ -385,12 +484,44 @@ ...@@ -385,12 +484,44 @@
385 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 484 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
386 "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" 485 "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
387 }, 486 },
487 + "dottie": {
488 + "version": "2.0.2",
489 + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
490 + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg=="
491 + },
388 "duplexer3": { 492 "duplexer3": {
389 "version": "0.1.4", 493 "version": "0.1.4",
390 "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 494 "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
391 "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 495 "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
392 "dev": true 496 "dev": true
393 }, 497 },
498 + "editorconfig": {
499 + "version": "0.15.3",
500 + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
501 + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
502 + "requires": {
503 + "commander": "^2.19.0",
504 + "lru-cache": "^4.1.5",
505 + "semver": "^5.6.0",
506 + "sigmund": "^1.0.1"
507 + },
508 + "dependencies": {
509 + "lru-cache": {
510 + "version": "4.1.5",
511 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
512 + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
513 + "requires": {
514 + "pseudomap": "^1.0.2",
515 + "yallist": "^2.1.2"
516 + }
517 + },
518 + "yallist": {
519 + "version": "2.1.2",
520 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
521 + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
522 + }
523 + }
524 + },
394 "ee-first": { 525 "ee-first": {
395 "version": "1.1.1", 526 "version": "1.1.1",
396 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 527 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
...@@ -399,8 +530,7 @@ ...@@ -399,8 +530,7 @@
399 "emoji-regex": { 530 "emoji-regex": {
400 "version": "8.0.0", 531 "version": "8.0.0",
401 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 532 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
402 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 533 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
403 - "dev": true
404 }, 534 },
405 "encodeurl": { 535 "encodeurl": {
406 "version": "1.0.2", 536 "version": "1.0.2",
...@@ -416,6 +546,46 @@ ...@@ -416,6 +546,46 @@
416 "once": "^1.4.0" 546 "once": "^1.4.0"
417 } 547 }
418 }, 548 },
549 + "es5-ext": {
550 + "version": "0.10.53",
551 + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
552 + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
553 + "requires": {
554 + "es6-iterator": "~2.0.3",
555 + "es6-symbol": "~3.1.3",
556 + "next-tick": "~1.0.0"
557 + }
558 + },
559 + "es6-iterator": {
560 + "version": "2.0.3",
561 + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
562 + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
563 + "requires": {
564 + "d": "1",
565 + "es5-ext": "^0.10.35",
566 + "es6-symbol": "^3.1.1"
567 + }
568 + },
569 + "es6-symbol": {
570 + "version": "3.1.3",
571 + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
572 + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
573 + "requires": {
574 + "d": "^1.0.1",
575 + "ext": "^1.1.2"
576 + }
577 + },
578 + "es6-weak-map": {
579 + "version": "2.0.3",
580 + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
581 + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
582 + "requires": {
583 + "d": "1",
584 + "es5-ext": "^0.10.46",
585 + "es6-iterator": "^2.0.3",
586 + "es6-symbol": "^3.1.1"
587 + }
588 + },
419 "escape-goat": { 589 "escape-goat": {
420 "version": "2.1.1", 590 "version": "2.1.1",
421 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 591 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
...@@ -432,6 +602,15 @@ ...@@ -432,6 +602,15 @@
432 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 602 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
433 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 603 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
434 }, 604 },
605 + "event-emitter": {
606 + "version": "0.3.5",
607 + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
608 + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
609 + "requires": {
610 + "d": "1",
611 + "es5-ext": "~0.10.14"
612 + }
613 + },
435 "express": { 614 "express": {
436 "version": "4.17.1", 615 "version": "4.17.1",
437 "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 616 "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
...@@ -501,6 +680,21 @@ ...@@ -501,6 +680,21 @@
501 } 680 }
502 } 681 }
503 }, 682 },
683 + "ext": {
684 + "version": "1.6.0",
685 + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
686 + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
687 + "requires": {
688 + "type": "^2.5.0"
689 + },
690 + "dependencies": {
691 + "type": {
692 + "version": "2.5.0",
693 + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
694 + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
695 + }
696 + }
697 + },
504 "fill-range": { 698 "fill-range": {
505 "version": "7.0.1", 699 "version": "7.0.1",
506 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 700 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
...@@ -524,6 +718,15 @@ ...@@ -524,6 +718,15 @@
524 "unpipe": "~1.0.0" 718 "unpipe": "~1.0.0"
525 } 719 }
526 }, 720 },
721 + "find-up": {
722 + "version": "4.1.0",
723 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
724 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
725 + "requires": {
726 + "locate-path": "^5.0.0",
727 + "path-exists": "^4.0.0"
728 + }
729 + },
527 "forwarded": { 730 "forwarded": {
528 "version": "0.2.0", 731 "version": "0.2.0",
529 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 732 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
...@@ -534,6 +737,22 @@ ...@@ -534,6 +737,22 @@
534 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 737 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
535 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 738 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
536 }, 739 },
740 + "fs-extra": {
741 + "version": "9.1.0",
742 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
743 + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
744 + "requires": {
745 + "at-least-node": "^1.0.0",
746 + "graceful-fs": "^4.2.0",
747 + "jsonfile": "^6.0.1",
748 + "universalify": "^2.0.0"
749 + }
750 + },
751 + "fs.realpath": {
752 + "version": "1.0.0",
753 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
754 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
755 + },
537 "fsevents": { 756 "fsevents": {
538 "version": "2.3.2", 757 "version": "2.3.2",
539 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 758 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
...@@ -541,6 +760,24 @@ ...@@ -541,6 +760,24 @@
541 "dev": true, 760 "dev": true,
542 "optional": true 761 "optional": true
543 }, 762 },
763 + "function-bind": {
764 + "version": "1.1.1",
765 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
766 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
767 + },
768 + "generate-function": {
769 + "version": "2.3.1",
770 + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
771 + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
772 + "requires": {
773 + "is-property": "^1.0.2"
774 + }
775 + },
776 + "get-caller-file": {
777 + "version": "2.0.5",
778 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
779 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
780 + },
544 "get-stream": { 781 "get-stream": {
545 "version": "4.1.0", 782 "version": "4.1.0",
546 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 783 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
...@@ -550,6 +787,19 @@ ...@@ -550,6 +787,19 @@
550 "pump": "^3.0.0" 787 "pump": "^3.0.0"
551 } 788 }
552 }, 789 },
790 + "glob": {
791 + "version": "7.2.0",
792 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
793 + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
794 + "requires": {
795 + "fs.realpath": "^1.0.0",
796 + "inflight": "^1.0.4",
797 + "inherits": "2",
798 + "minimatch": "^3.0.4",
799 + "once": "^1.3.0",
800 + "path-is-absolute": "^1.0.0"
801 + }
802 + },
553 "glob-parent": { 803 "glob-parent": {
554 "version": "5.1.2", 804 "version": "5.1.2",
555 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 805 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
...@@ -590,8 +840,15 @@ ...@@ -590,8 +840,15 @@
590 "graceful-fs": { 840 "graceful-fs": {
591 "version": "4.2.8", 841 "version": "4.2.8",
592 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 842 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
593 - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", 843 + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
594 - "dev": true 844 + },
845 + "has": {
846 + "version": "1.0.3",
847 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
848 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
849 + "requires": {
850 + "function-bind": "^1.1.1"
851 + }
595 }, 852 },
596 "has-flag": { 853 "has-flag": {
597 "version": "3.0.0", 854 "version": "3.0.0",
...@@ -649,6 +906,20 @@ ...@@ -649,6 +906,20 @@
649 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 906 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
650 "dev": true 907 "dev": true
651 }, 908 },
909 + "inflection": {
910 + "version": "1.13.1",
911 + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.1.tgz",
912 + "integrity": "sha512-dldYtl2WlN0QDkIDtg8+xFwOS2Tbmp12t1cHa5/YClU6ZQjTFm7B66UcVbh9NQB+HvT5BAd2t5+yKsBkw5pcqA=="
913 + },
914 + "inflight": {
915 + "version": "1.0.6",
916 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
917 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
918 + "requires": {
919 + "once": "^1.3.0",
920 + "wrappy": "1"
921 + }
922 + },
652 "inherits": { 923 "inherits": {
653 "version": "2.0.3", 924 "version": "2.0.3",
654 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 925 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
...@@ -683,6 +954,14 @@ ...@@ -683,6 +954,14 @@
683 "ci-info": "^2.0.0" 954 "ci-info": "^2.0.0"
684 } 955 }
685 }, 956 },
957 + "is-core-module": {
958 + "version": "2.8.0",
959 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
960 + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
961 + "requires": {
962 + "has": "^1.0.3"
963 + }
964 + },
686 "is-extglob": { 965 "is-extglob": {
687 "version": "2.1.1", 966 "version": "2.1.1",
688 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 967 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
...@@ -692,8 +971,7 @@ ...@@ -692,8 +971,7 @@
692 "is-fullwidth-code-point": { 971 "is-fullwidth-code-point": {
693 "version": "3.0.0", 972 "version": "3.0.0",
694 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 973 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
695 - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 974 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
696 - "dev": true
697 }, 975 },
698 "is-glob": { 976 "is-glob": {
699 "version": "4.0.3", 977 "version": "4.0.3",
...@@ -738,6 +1016,16 @@ ...@@ -738,6 +1016,16 @@
738 "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1016 "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
739 "dev": true 1017 "dev": true
740 }, 1018 },
1019 + "is-promise": {
1020 + "version": "2.2.2",
1021 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
1022 + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
1023 + },
1024 + "is-property": {
1025 + "version": "1.0.2",
1026 + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
1027 + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
1028 + },
741 "is-typedarray": { 1029 "is-typedarray": {
742 "version": "1.0.0", 1030 "version": "1.0.0",
743 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1031 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -750,12 +1038,42 @@ ...@@ -750,12 +1038,42 @@
750 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", 1038 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
751 "dev": true 1039 "dev": true
752 }, 1040 },
1041 + "js-beautify": {
1042 + "version": "1.14.0",
1043 + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz",
1044 + "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==",
1045 + "requires": {
1046 + "config-chain": "^1.1.12",
1047 + "editorconfig": "^0.15.3",
1048 + "glob": "^7.1.3",
1049 + "nopt": "^5.0.0"
1050 + },
1051 + "dependencies": {
1052 + "nopt": {
1053 + "version": "5.0.0",
1054 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
1055 + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
1056 + "requires": {
1057 + "abbrev": "1"
1058 + }
1059 + }
1060 + }
1061 + },
753 "json-buffer": { 1062 "json-buffer": {
754 "version": "3.0.0", 1063 "version": "3.0.0",
755 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 1064 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
756 "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 1065 "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
757 "dev": true 1066 "dev": true
758 }, 1067 },
1068 + "jsonfile": {
1069 + "version": "6.1.0",
1070 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
1071 + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
1072 + "requires": {
1073 + "graceful-fs": "^4.1.6",
1074 + "universalify": "^2.0.0"
1075 + }
1076 + },
759 "keyv": { 1077 "keyv": {
760 "version": "3.1.0", 1078 "version": "3.1.0",
761 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 1079 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
...@@ -774,6 +1092,24 @@ ...@@ -774,6 +1092,24 @@
774 "package-json": "^6.3.0" 1092 "package-json": "^6.3.0"
775 } 1093 }
776 }, 1094 },
1095 + "locate-path": {
1096 + "version": "5.0.0",
1097 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1098 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1099 + "requires": {
1100 + "p-locate": "^4.1.0"
1101 + }
1102 + },
1103 + "lodash": {
1104 + "version": "4.17.21",
1105 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1106 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1107 + },
1108 + "long": {
1109 + "version": "4.0.0",
1110 + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
1111 + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
1112 + },
777 "lowercase-keys": { 1113 "lowercase-keys": {
778 "version": "1.0.1", 1114 "version": "1.0.1",
779 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 1115 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
...@@ -784,11 +1120,18 @@ ...@@ -784,11 +1120,18 @@
784 "version": "6.0.0", 1120 "version": "6.0.0",
785 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1121 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
786 "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1122 "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
787 - "dev": true,
788 "requires": { 1123 "requires": {
789 "yallist": "^4.0.0" 1124 "yallist": "^4.0.0"
790 } 1125 }
791 }, 1126 },
1127 + "lru-queue": {
1128 + "version": "0.1.0",
1129 + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
1130 + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
1131 + "requires": {
1132 + "es5-ext": "~0.10.2"
1133 + }
1134 + },
792 "make-dir": { 1135 "make-dir": {
793 "version": "3.1.0", 1136 "version": "3.1.0",
794 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 1137 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
...@@ -811,6 +1154,28 @@ ...@@ -811,6 +1154,28 @@
811 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1154 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
812 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1155 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
813 }, 1156 },
1157 + "memoizee": {
1158 + "version": "0.4.15",
1159 + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
1160 + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
1161 + "requires": {
1162 + "d": "^1.0.1",
1163 + "es5-ext": "^0.10.53",
1164 + "es6-weak-map": "^2.0.3",
1165 + "event-emitter": "^0.3.5",
1166 + "is-promise": "^2.2.2",
1167 + "lru-queue": "^0.1.0",
1168 + "next-tick": "^1.1.0",
1169 + "timers-ext": "^0.1.7"
1170 + },
1171 + "dependencies": {
1172 + "next-tick": {
1173 + "version": "1.1.0",
1174 + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
1175 + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
1176 + }
1177 + }
1178 + },
814 "merge-descriptors": { 1179 "merge-descriptors": {
815 "version": "1.0.1", 1180 "version": "1.0.1",
816 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1181 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
...@@ -849,7 +1214,6 @@ ...@@ -849,7 +1214,6 @@
849 "version": "3.0.4", 1214 "version": "3.0.4",
850 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1215 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
851 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1216 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
852 - "dev": true,
853 "requires": { 1217 "requires": {
854 "brace-expansion": "^1.1.7" 1218 "brace-expansion": "^1.1.7"
855 } 1219 }
...@@ -860,6 +1224,19 @@ ...@@ -860,6 +1224,19 @@
860 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1224 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
861 "dev": true 1225 "dev": true
862 }, 1226 },
1227 + "moment": {
1228 + "version": "2.29.1",
1229 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
1230 + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
1231 + },
1232 + "moment-timezone": {
1233 + "version": "0.5.34",
1234 + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz",
1235 + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==",
1236 + "requires": {
1237 + "moment": ">= 2.9.0"
1238 + }
1239 + },
863 "morgan": { 1240 "morgan": {
864 "version": "1.10.0", 1241 "version": "1.10.0",
865 "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", 1242 "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
...@@ -884,11 +1261,65 @@ ...@@ -884,11 +1261,65 @@
884 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1261 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
885 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1262 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
886 }, 1263 },
1264 + "mysql2": {
1265 + "version": "2.3.3",
1266 + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz",
1267 + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==",
1268 + "requires": {
1269 + "denque": "^2.0.1",
1270 + "generate-function": "^2.3.1",
1271 + "iconv-lite": "^0.6.3",
1272 + "long": "^4.0.0",
1273 + "lru-cache": "^6.0.0",
1274 + "named-placeholders": "^1.1.2",
1275 + "seq-queue": "^0.0.5",
1276 + "sqlstring": "^2.3.2"
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 + "named-placeholders": {
1290 + "version": "1.1.2",
1291 + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz",
1292 + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==",
1293 + "requires": {
1294 + "lru-cache": "^4.1.3"
1295 + },
1296 + "dependencies": {
1297 + "lru-cache": {
1298 + "version": "4.1.5",
1299 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
1300 + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
1301 + "requires": {
1302 + "pseudomap": "^1.0.2",
1303 + "yallist": "^2.1.2"
1304 + }
1305 + },
1306 + "yallist": {
1307 + "version": "2.1.2",
1308 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
1309 + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
1310 + }
1311 + }
1312 + },
887 "negotiator": { 1313 "negotiator": {
888 "version": "0.6.2", 1314 "version": "0.6.2",
889 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1315 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
890 "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1316 "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
891 }, 1317 },
1318 + "next-tick": {
1319 + "version": "1.0.0",
1320 + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
1321 + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
1322 + },
892 "nodemon": { 1323 "nodemon": {
893 "version": "2.0.15", 1324 "version": "2.0.15",
894 "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", 1325 "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
...@@ -962,7 +1393,6 @@ ...@@ -962,7 +1393,6 @@
962 "version": "1.4.0", 1393 "version": "1.4.0",
963 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1394 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
964 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1395 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
965 - "dev": true,
966 "requires": { 1396 "requires": {
967 "wrappy": "1" 1397 "wrappy": "1"
968 } 1398 }
...@@ -973,6 +1403,27 @@ ...@@ -973,6 +1403,27 @@
973 "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 1403 "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
974 "dev": true 1404 "dev": true
975 }, 1405 },
1406 + "p-limit": {
1407 + "version": "2.3.0",
1408 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1409 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1410 + "requires": {
1411 + "p-try": "^2.0.0"
1412 + }
1413 + },
1414 + "p-locate": {
1415 + "version": "4.1.0",
1416 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1417 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1418 + "requires": {
1419 + "p-limit": "^2.2.0"
1420 + }
1421 + },
1422 + "p-try": {
1423 + "version": "2.2.0",
1424 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1425 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
1426 + },
976 "package-json": { 1427 "package-json": {
977 "version": "6.5.0", 1428 "version": "6.5.0",
978 "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", 1429 "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
...@@ -998,11 +1449,31 @@ ...@@ -998,11 +1449,31 @@
998 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1449 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
999 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1450 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1000 }, 1451 },
1452 + "path-exists": {
1453 + "version": "4.0.0",
1454 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1455 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
1456 + },
1457 + "path-is-absolute": {
1458 + "version": "1.0.1",
1459 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1460 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1461 + },
1462 + "path-parse": {
1463 + "version": "1.0.7",
1464 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1465 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1466 + },
1001 "path-to-regexp": { 1467 "path-to-regexp": {
1002 "version": "0.1.7", 1468 "version": "0.1.7",
1003 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1469 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1004 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1470 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1005 }, 1471 },
1472 + "pg-connection-string": {
1473 + "version": "2.5.0",
1474 + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
1475 + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
1476 + },
1006 "picomatch": { 1477 "picomatch": {
1007 "version": "2.3.0", 1478 "version": "2.3.0",
1008 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 1479 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
...@@ -1015,6 +1486,11 @@ ...@@ -1015,6 +1486,11 @@
1015 "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 1486 "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
1016 "dev": true 1487 "dev": true
1017 }, 1488 },
1489 + "proto-list": {
1490 + "version": "1.2.4",
1491 + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
1492 + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
1493 + },
1018 "proxy-addr": { 1494 "proxy-addr": {
1019 "version": "2.0.7", 1495 "version": "2.0.7",
1020 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1496 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
...@@ -1024,6 +1500,11 @@ ...@@ -1024,6 +1500,11 @@
1024 "ipaddr.js": "1.9.1" 1500 "ipaddr.js": "1.9.1"
1025 } 1501 }
1026 }, 1502 },
1503 + "pseudomap": {
1504 + "version": "1.0.2",
1505 + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1506 + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
1507 + },
1027 "pstree.remy": { 1508 "pstree.remy": {
1028 "version": "1.1.8", 1509 "version": "1.1.8",
1029 "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 1510 "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
...@@ -1122,6 +1603,25 @@ ...@@ -1122,6 +1603,25 @@
1122 "rc": "^1.2.8" 1603 "rc": "^1.2.8"
1123 } 1604 }
1124 }, 1605 },
1606 + "require-directory": {
1607 + "version": "2.1.1",
1608 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1609 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
1610 + },
1611 + "require-main-filename": {
1612 + "version": "2.0.0",
1613 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1614 + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
1615 + },
1616 + "resolve": {
1617 + "version": "1.20.0",
1618 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
1619 + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
1620 + "requires": {
1621 + "is-core-module": "^2.2.0",
1622 + "path-parse": "^1.0.6"
1623 + }
1624 + },
1125 "responselike": { 1625 "responselike": {
1126 "version": "1.0.2", 1626 "version": "1.0.2",
1127 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 1627 "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
...@@ -1131,6 +1631,14 @@ ...@@ -1131,6 +1631,14 @@
1131 "lowercase-keys": "^1.0.0" 1631 "lowercase-keys": "^1.0.0"
1132 } 1632 }
1133 }, 1633 },
1634 + "retry-as-promised": {
1635 + "version": "4.0.0",
1636 + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-4.0.0.tgz",
1637 + "integrity": "sha512-zuqltYoBckZPoqLjC0eyvGpmM/psgpcreq0PLYVzBSb0Xq382XJrKNgu+fgHDy9U3R66adgFe5Viyx3D+gRvXA==",
1638 + "requires": {
1639 + "any-promise": "^1.3.0"
1640 + }
1641 + },
1134 "safe-buffer": { 1642 "safe-buffer": {
1135 "version": "5.1.2", 1643 "version": "5.1.2",
1136 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1644 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
...@@ -1144,8 +1652,7 @@ ...@@ -1144,8 +1652,7 @@
1144 "semver": { 1652 "semver": {
1145 "version": "5.7.1", 1653 "version": "5.7.1",
1146 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1654 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1147 - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1655 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1148 - "dev": true
1149 }, 1656 },
1150 "semver-diff": { 1657 "semver-diff": {
1151 "version": "3.1.1", 1658 "version": "3.1.1",
...@@ -1191,6 +1698,75 @@ ...@@ -1191,6 +1698,75 @@
1191 } 1698 }
1192 } 1699 }
1193 }, 1700 },
1701 + "seq-queue": {
1702 + "version": "0.0.5",
1703 + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
1704 + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4="
1705 + },
1706 + "sequelize": {
1707 + "version": "6.12.0-beta.1",
1708 + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.12.0-beta.1.tgz",
1709 + "integrity": "sha512-CZJ7yzTF3nyfqR2fZm2xV1pfyR8+PvFwDohi7koS9KXqrATU6enYM4kF7zsBWXjGuOZFw5dvqdQURlnPevA+jQ==",
1710 + "requires": {
1711 + "@types/debug": "^4.1.7",
1712 + "debug": "^4.3.3",
1713 + "dottie": "^2.0.2",
1714 + "inflection": "^1.13.1",
1715 + "lodash": "^4.17.21",
1716 + "moment": "^2.29.1",
1717 + "moment-timezone": "^0.5.34",
1718 + "pg-connection-string": "^2.5.0",
1719 + "retry-as-promised": "^4.0.0",
1720 + "semver": "^7.3.5",
1721 + "sequelize-pool": "^7.1.0",
1722 + "toposort-class": "^1.0.1",
1723 + "uuid": "^8.3.2",
1724 + "validator": "^13.7.0",
1725 + "wkx": "^0.5.0"
1726 + },
1727 + "dependencies": {
1728 + "debug": {
1729 + "version": "4.3.3",
1730 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
1731 + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
1732 + "requires": {
1733 + "ms": "2.1.2"
1734 + }
1735 + },
1736 + "ms": {
1737 + "version": "2.1.2",
1738 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1739 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1740 + },
1741 + "semver": {
1742 + "version": "7.3.5",
1743 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1744 + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1745 + "requires": {
1746 + "lru-cache": "^6.0.0"
1747 + }
1748 + }
1749 + }
1750 + },
1751 + "sequelize-cli": {
1752 + "version": "6.3.0",
1753 + "resolved": "https://registry.npmjs.org/sequelize-cli/-/sequelize-cli-6.3.0.tgz",
1754 + "integrity": "sha512-+SkTDSeQdo93k7ZtSn5FCVXiMp+KMvkIrGtdLydLaR8TMoAHPpzw1AZCW6MAsL9M1VxRWoCKBFhzMG5gtcYNsQ==",
1755 + "requires": {
1756 + "cli-color": "^2.0.0",
1757 + "fs-extra": "^9.0.0",
1758 + "js-beautify": "^1.8.8",
1759 + "lodash": "^4.17.5",
1760 + "resolve": "^1.5.0",
1761 + "umzug": "^2.3.0",
1762 + "yargs": "^15.0.0"
1763 + }
1764 + },
1765 + "sequelize-pool": {
1766 + "version": "7.1.0",
1767 + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz",
1768 + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg=="
1769 + },
1194 "serve-static": { 1770 "serve-static": {
1195 "version": "1.14.1", 1771 "version": "1.14.1",
1196 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1772 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
...@@ -1202,17 +1778,32 @@ ...@@ -1202,17 +1778,32 @@
1202 "send": "0.17.1" 1778 "send": "0.17.1"
1203 } 1779 }
1204 }, 1780 },
1781 + "set-blocking": {
1782 + "version": "2.0.0",
1783 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1784 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
1785 + },
1205 "setprototypeof": { 1786 "setprototypeof": {
1206 "version": "1.1.1", 1787 "version": "1.1.1",
1207 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1788 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1208 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1789 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1209 }, 1790 },
1791 + "sigmund": {
1792 + "version": "1.0.1",
1793 + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
1794 + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
1795 + },
1210 "signal-exit": { 1796 "signal-exit": {
1211 "version": "3.0.6", 1797 "version": "3.0.6",
1212 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", 1798 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
1213 "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", 1799 "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
1214 "dev": true 1800 "dev": true
1215 }, 1801 },
1802 + "sqlstring": {
1803 + "version": "2.3.2",
1804 + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz",
1805 + "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg=="
1806 + },
1216 "statuses": { 1807 "statuses": {
1217 "version": "1.5.0", 1808 "version": "1.5.0",
1218 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1809 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
...@@ -1222,7 +1813,6 @@ ...@@ -1222,7 +1813,6 @@
1222 "version": "4.2.3", 1813 "version": "4.2.3",
1223 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1814 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1224 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1815 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1225 - "dev": true,
1226 "requires": { 1816 "requires": {
1227 "emoji-regex": "^8.0.0", 1817 "emoji-regex": "^8.0.0",
1228 "is-fullwidth-code-point": "^3.0.0", 1818 "is-fullwidth-code-point": "^3.0.0",
...@@ -1233,7 +1823,6 @@ ...@@ -1233,7 +1823,6 @@
1233 "version": "6.0.1", 1823 "version": "6.0.1",
1234 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1824 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1235 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1825 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1236 - "dev": true,
1237 "requires": { 1826 "requires": {
1238 "ansi-regex": "^5.0.1" 1827 "ansi-regex": "^5.0.1"
1239 } 1828 }
...@@ -1253,6 +1842,15 @@ ...@@ -1253,6 +1842,15 @@
1253 "has-flag": "^3.0.0" 1842 "has-flag": "^3.0.0"
1254 } 1843 }
1255 }, 1844 },
1845 + "timers-ext": {
1846 + "version": "0.1.7",
1847 + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
1848 + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
1849 + "requires": {
1850 + "es5-ext": "~0.10.46",
1851 + "next-tick": "1"
1852 + }
1853 + },
1256 "to-readable-stream": { 1854 "to-readable-stream": {
1257 "version": "1.0.0", 1855 "version": "1.0.0",
1258 "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 1856 "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
...@@ -1273,6 +1871,11 @@ ...@@ -1273,6 +1871,11 @@
1273 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1871 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1274 "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1872 "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1275 }, 1873 },
1874 + "toposort-class": {
1875 + "version": "1.0.1",
1876 + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz",
1877 + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg="
1878 + },
1276 "touch": { 1879 "touch": {
1277 "version": "3.1.0", 1880 "version": "3.1.0",
1278 "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 1881 "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
...@@ -1282,6 +1885,11 @@ ...@@ -1282,6 +1885,11 @@
1282 "nopt": "~1.0.10" 1885 "nopt": "~1.0.10"
1283 } 1886 }
1284 }, 1887 },
1888 + "type": {
1889 + "version": "1.2.0",
1890 + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
1891 + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
1892 + },
1285 "type-fest": { 1893 "type-fest": {
1286 "version": "0.20.2", 1894 "version": "0.20.2",
1287 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 1895 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
...@@ -1314,6 +1922,14 @@ ...@@ -1314,6 +1922,14 @@
1314 "random-bytes": "~1.0.0" 1922 "random-bytes": "~1.0.0"
1315 } 1923 }
1316 }, 1924 },
1925 + "umzug": {
1926 + "version": "2.3.0",
1927 + "resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz",
1928 + "integrity": "sha512-Z274K+e8goZK8QJxmbRPhl89HPO1K+ORFtm6rySPhFKfKc5GHhqdzD0SGhSWHkzoXasqJuItdhorSvY7/Cgflw==",
1929 + "requires": {
1930 + "bluebird": "^3.7.2"
1931 + }
1932 + },
1317 "undefsafe": { 1933 "undefsafe": {
1318 "version": "2.0.5", 1934 "version": "2.0.5",
1319 "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", 1935 "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
...@@ -1329,6 +1945,11 @@ ...@@ -1329,6 +1945,11 @@
1329 "crypto-random-string": "^2.0.0" 1945 "crypto-random-string": "^2.0.0"
1330 } 1946 }
1331 }, 1947 },
1948 + "universalify": {
1949 + "version": "2.0.0",
1950 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
1951 + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
1952 + },
1332 "unpipe": { 1953 "unpipe": {
1333 "version": "1.0.0", 1954 "version": "1.0.0",
1334 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1955 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
...@@ -1381,11 +2002,26 @@ ...@@ -1381,11 +2002,26 @@
1381 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2002 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1382 "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 2003 "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1383 }, 2004 },
2005 + "uuid": {
2006 + "version": "8.3.2",
2007 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
2008 + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
2009 + },
2010 + "validator": {
2011 + "version": "13.7.0",
2012 + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz",
2013 + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw=="
2014 + },
1384 "vary": { 2015 "vary": {
1385 "version": "1.1.2", 2016 "version": "1.1.2",
1386 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2017 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1387 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 2018 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1388 }, 2019 },
2020 + "which-module": {
2021 + "version": "2.0.0",
2022 + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
2023 + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
2024 + },
1389 "widest-line": { 2025 "widest-line": {
1390 "version": "3.1.0", 2026 "version": "3.1.0",
1391 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", 2027 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
...@@ -1395,6 +2031,14 @@ ...@@ -1395,6 +2031,14 @@
1395 "string-width": "^4.0.0" 2031 "string-width": "^4.0.0"
1396 } 2032 }
1397 }, 2033 },
2034 + "wkx": {
2035 + "version": "0.5.0",
2036 + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz",
2037 + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==",
2038 + "requires": {
2039 + "@types/node": "*"
2040 + }
2041 + },
1398 "wrap-ansi": { 2042 "wrap-ansi": {
1399 "version": "7.0.0", 2043 "version": "7.0.0",
1400 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2044 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
...@@ -1409,8 +2053,7 @@ ...@@ -1409,8 +2053,7 @@
1409 "wrappy": { 2053 "wrappy": {
1410 "version": "1.0.2", 2054 "version": "1.0.2",
1411 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2055 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1412 - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2056 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1413 - "dev": true
1414 }, 2057 },
1415 "write-file-atomic": { 2058 "write-file-atomic": {
1416 "version": "3.0.3", 2059 "version": "3.0.3",
...@@ -1430,11 +2073,49 @@ ...@@ -1430,11 +2073,49 @@
1430 "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 2073 "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
1431 "dev": true 2074 "dev": true
1432 }, 2075 },
2076 + "y18n": {
2077 + "version": "4.0.3",
2078 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
2079 + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
2080 + },
1433 "yallist": { 2081 "yallist": {
1434 "version": "4.0.0", 2082 "version": "4.0.0",
1435 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2083 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1436 - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2084 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1437 - "dev": true 2085 + },
2086 + "yargs": {
2087 + "version": "15.4.1",
2088 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
2089 + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
2090 + "requires": {
2091 + "cliui": "^6.0.0",
2092 + "decamelize": "^1.2.0",
2093 + "find-up": "^4.1.0",
2094 + "get-caller-file": "^2.0.1",
2095 + "require-directory": "^2.1.1",
2096 + "require-main-filename": "^2.0.0",
2097 + "set-blocking": "^2.0.0",
2098 + "string-width": "^4.2.0",
2099 + "which-module": "^2.0.0",
2100 + "y18n": "^4.0.0",
2101 + "yargs-parser": "^18.1.2"
2102 + }
2103 + },
2104 + "yargs-parser": {
2105 + "version": "18.1.3",
2106 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
2107 + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
2108 + "requires": {
2109 + "camelcase": "^5.0.0",
2110 + "decamelize": "^1.2.0"
2111 + },
2112 + "dependencies": {
2113 + "camelcase": {
2114 + "version": "5.3.1",
2115 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2116 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
2117 + }
2118 + }
1438 } 2119 }
1439 } 2120 }
1440 } 2121 }
......
...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
9 "dotenv": "^10.0.0", 9 "dotenv": "^10.0.0",
10 "express": "^4.17.1", 10 "express": "^4.17.1",
11 "express-session": "^1.17.2", 11 "express-session": "^1.17.2",
12 - "morgan": "^1.10.0" 12 + "morgan": "^1.10.0",
13 + "mysql2": "^2.3.3",
14 + "sequelize": "^6.12.0-beta.1",
15 + "sequelize-cli": "^6.3.0"
13 }, 16 },
14 "devDependencies": { 17 "devDependencies": {
15 "nodemon": "^2.0.15" 18 "nodemon": "^2.0.15"
......
...@@ -2,11 +2,21 @@ const express = require("express"); ...@@ -2,11 +2,21 @@ const express = require("express");
2 const bodyParser = require("body-parser"); 2 const bodyParser = require("body-parser");
3 const router = express.Router(); 3 const router = express.Router();
4 4
5 +/////////////
6 +const {User}=require('../models');
7 +//////////
8 +
5 router.get('/',(req,res)=>{ 9 router.get('/',(req,res)=>{
6 res.send('회원가입 페이지'); 10 res.send('회원가입 페이지');
7 }); 11 });
8 12
9 router.post('/',(req,res)=>{ 13 router.post('/',(req,res)=>{
14 + User.create({
15 + name: '고병후',
16 + pw:'1234',
17 + personality:'infj',
18 + status:0
19 + })
10 console.log(req.body); 20 console.log(req.body);
11 return res.json({a: "hi"}); 21 return res.json({a: "hi"});
12 }); 22 });
......
1 +// 사용 모듈 import
1 const express = require("express"); 2 const express = require("express");
2 const path = require("path"); 3 const path = require("path");
3 const morgan = require("morgan"); 4 const morgan = require("morgan");
...@@ -6,6 +7,8 @@ const session = require("express-session"); ...@@ -6,6 +7,8 @@ const session = require("express-session");
6 const dotenv = require("dotenv"); 7 const dotenv = require("dotenv");
7 const bodyParser = require("body-parser"); 8 const bodyParser = require("body-parser");
8 9
10 +const {sequelize}=require('./models/index.js');
11 +
9 dotenv.config(); 12 dotenv.config();
10 const indexRouter = require('./routes/index.js'); 13 const indexRouter = require('./routes/index.js');
11 const loginRouter = require('./routes/login.js'); 14 const loginRouter = require('./routes/login.js');
...@@ -15,6 +18,15 @@ const app = express(); ...@@ -15,6 +18,15 @@ const app = express();
15 app.set('port', process.env.PORT || 3001); 18 app.set('port', process.env.PORT || 3001);
16 const port = app.get('port'); 19 const port = app.get('port');
17 20
21 +//DB연결
22 +sequelize.sync({force: false})
23 +.then(()=>{
24 + console.log("DB연결 완료")
25 +})
26 +.catch((err)=>{
27 + console.log(err);
28 +});
29 +
18 //미들웨어 설정 30 //미들웨어 설정
19 app.use(morgan('dev')); 31 app.use(morgan('dev'));
20 app.use(express.json()); //json형식으로 데이터 전달 32 app.use(express.json()); //json형식으로 데이터 전달
...@@ -33,10 +45,6 @@ app.use(session({ ...@@ -33,10 +45,6 @@ app.use(session({
33 45
34 46
35 //라우팅 47 //라우팅
36 -//app.use('/',indexRouter);
37 -//app.use('/login',loginRouter);
38 -
39 -
40 app.use('/api/register',registerRouter); // 회원가입 페이지 48 app.use('/api/register',registerRouter); // 회원가입 페이지
41 app.use('/api/login',loginRouter); //로그인 페이지 49 app.use('/api/login',loginRouter); //로그인 페이지
42 50
...@@ -52,177 +60,4 @@ app.use((req,res,next)=>{ ...@@ -52,177 +60,4 @@ app.use((req,res,next)=>{
52 //포트를 연다. 60 //포트를 연다.
53 app.listen(port, ()=>{ 61 app.listen(port, ()=>{
54 console.log(port,"번 포트로 대기중"); 62 console.log(port,"번 포트로 대기중");
55 -});
56 -
57 -//라우팅
58 -
59 -/*
60 -//루트페이지
61 -app.get('/', (req,res)=>{
62 - res.sendFile(path.join(__dirname, '/fe/index.html'));
63 -});
64 -//로그인페이지
65 -app.get('/login', (req,res)=>{
66 - res.send("로그인페이지");
67 -});
68 -
69 -app.get('/register', (req,res)=>{
70 - res.send("회원가입 페이지");
71 -});
72 -
73 -*/
74 -
75 -
76 -
77 -
78 -
79 -/* 물어볼 부분
80 -app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}));
81 -app.use(bodyParser.urlencoded({ extended: false }));
82 -app.use(bodyParser.json());
83 -*/
84 -
85 -/*
86 -var users = new Array();
87 -users[0] = {
88 - "userId" : 1,
89 - "name" : "Oh",
90 - "password" : "abc",
91 - "isAdmin" : true
92 -}
93 -users[1] = {
94 - "userId" : 1,
95 - "name" : "Jung",
96 - "password" : "abc",
97 - "isAdmin" : true
98 -}
99 -users[2] = {
100 - "userId" : 2,
101 - "name" : "Go",
102 - "password" : "abc",
103 - "isAdmin" : true
104 -}
105 -
106 -app.put('/login', function (req, res) {
107 - var count = 0;
108 - var Found = false;
109 -
110 - while(count < users.length) {
111 - if (req.body.userId == users[count].userId
112 - && req.body.password == users[count].password) {
113 - req.session.userId = users[count].userId;
114 - req.session.isAdmin = users[count].isAdmin;
115 - Found = true;
116 - break;
117 - }
118 - else {
119 - count++;
120 - }
121 - }
122 - if(Found) {
123 - res.send("Login");
124 - }
125 - else {
126 - res.send("Failed");
127 - }
128 -});
129 -
130 -app.put('/logout', function (req, res) {
131 - if (req.session.userId == req.body.userId) {
132 - req.session.userId = null;
133 - req.session.isAdmin = false;
134 - res.send("LogOut");
135 - }
136 - else {
137 - res.send("Failed");
138 - }
139 -});
140 -
141 -var auth = function (req, res, next) {
142 - if (req.session.userId != null
143 - && req.session.isAdmin == true)
144 - next();
145 - else
146 - res.send("Error");
147 -};
148 -
149 -app.get('/users/:userId', auth,function (req, res) {
150 - var inputId = req.params.userId;
151 - var count = 0;
152 - var Found = false;
153 - while(count < users.length) {
154 - if(inputId == users[count].userId){
155 - Found = true;
156 - res.send(users[count]);
157 - break;
158 - }
159 - else {
160 - count++;
161 - }
162 - }
163 -
164 - if (!Found) {
165 - res.send("Not Found");
166 - }
167 -});
168 -
169 -app.put('/users',auth,function(req, res){
170 - var inputId = req.body.userId;
171 - var count = 0;
172 - var Found = false;
173 -
174 - while (count < users.length) {
175 - if (inputId == users[count].userId) {
176 - Found = true;
177 - users[count] = req.body;
178 - res.send(users[count]);
179 - break;
180 - }
181 - else {
182 - count++;
183 - }
184 - }
185 -
186 - if(!Found) {
187 - res.send("Not Found");
188 - }
189 -
190 -});
191 -
192 -app.post('/users',auth,function(req, res){
193 - var inputData = {
194 - "userId" : req.body.userId,
195 - "name" : req.body.name,
196 - "password" : req.body.password,
197 - "isAdmin" : req.body.isAdmin
198 - }
199 - users.push(inputData);
200 - res.send(inputData);
201 -});
202 -
203 -app.delete('/users/:userId',auth,function(req, res){
204 - var inputId = req.params.userId;
205 - var count = 0;
206 - var Found = false;
207 - var removed;
208 -
209 - while (count < users.length) {
210 - if (inputId == users[count].userId) {
211 - Found = true;
212 - removed = users.splice(count,1);
213 - console.log(users.length);
214 - res.send(removed);
215 - break;
216 - }
217 - else {
218 - count++;
219 - }
220 - }
221 -
222 - if (!Found) {
223 - res.send("Not Found");
224 - }
225 -});
226 -*/
227 -
228 -//var server = app.listen(80);
...\ No newline at end of file ...\ No newline at end of file
63 +});
...\ No newline at end of file ...\ No newline at end of file
......