송민석

Delete overlap files

1 -const xlsx = require( "xlsx" );
2 -// 엑셀 파일을 가져오기
3 -
4 -const excelFile = xlsx.readFile("./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx");
5 -// 엑셀 파일의 첫번째 시트의 정보 추출
6 -
7 -const sheetName = excelFile.SheetNames[0];
8 -const firstSheet = excelFile.Sheets[sheetName];
9 -const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 -var first_first = [];
11 -var first_second = [];
12 -var second_first = [];
13 -var second_second = [];
14 -var third_first = [];
15 -var third_second = [];
16 -var fourth_first = [];
17 -var fourth_second = [];
18 -
19 -function jason_to_arry() {
20 - for (var data in jsonData){
21 - first_first.push(jsonData[data]['1학년 1학기']);
22 - first_second.push(jsonData[data]['1학년 2학기']);
23 - second_first.push(jsonData[data]['2학년 1학기']);
24 - second_second.push(jsonData[data]['2학년 2학기']);
25 - third_first.push(jsonData[data]['3학년 1학기']);
26 - third_second.push(jsonData[data]['3학년 2학기']);
27 - fourth_first.push(jsonData[data]['4학년 1학기']);
28 - fourth_second.push(jsonData[data]['4학년 2학기']);
29 - }
30 -}
31 -// jason -> array로 변경
32 -function remove_null() {
33 -first_first = first_first.filter(function(item) {
34 - return item !== null && item !== undefined && item !== '';
35 -});
36 -first_second = first_second.filter(function(item) {
37 - return item !== null && item !== undefined && item !== '';
38 - });
39 -second_first = second_first.filter(function(item) {
40 - return item !== null && item !== undefined && item !== '';
41 -});
42 -second_second = second_second.filter(function(item) {
43 - return item !== null && item !== undefined && item !== '';
44 - });
45 -third_first = third_first.filter(function(item) {
46 - return item !== null && item !== undefined && item !== '';
47 - });
48 -third_second = third_second.filter(function(item) {
49 - return item !== null && item !== undefined && item !== '';
50 - });
51 -fourth_first = fourth_first.filter(function(item) {
52 - return item !== null && item !== undefined && item !== '';
53 - });
54 -fourth_second = fourth_second.filter(function(item) {
55 - return item !== null && item !== undefined && item !== '';
56 - });
57 -}
58 -// null 값 제거
59 -
60 -
61 -jason_to_arry()
62 -remove_null()
63 -
64 -console.log(first_first);
1 const config = require('./config') 1 const config = require('./config')
2 const mongoose = require("mongoose"); 2 const mongoose = require("mongoose");
3 -const { range } = require("express/lib/request"); 3 +const {range} = require("express/lib/request");
4 const xlsx = require("xlsx"); 4 const xlsx = require("xlsx");
5 const fs = require('fs') 5 const fs = require('fs')
6 6
7 - 7 +const connect = mongoose
8 - 8 + .connect(config.url, {
9 -const connect = mongoose.connect(config.url,
10 - {
11 useNewUrlParser: true, 9 useNewUrlParser: true,
12 - useUnifiedTopology: true, 10 + useUnifiedTopology: true
13 }) 11 })
14 .then(() => console.log("DB : Succesfully Connected")) 12 .then(() => console.log("DB : Succesfully Connected"))
15 .catch((err) => console.log(err.message)); 13 .catch((err) => console.log(err.message));
16 14
17 -
18 var express = require('express'); 15 var express = require('express');
19 16
20 -const { Subinfo } = require('./models/model'); 17 +const {Subinfo} = require('./models/model');
21 var request = require('request'); 18 var request = require('request');
22 19
23 -
24 var departmentinfo = '컴퓨터공학과' 20 var departmentinfo = '컴퓨터공학과'
25 var gradeinfo = '2학년1학기' 21 var gradeinfo = '2학년1학기'
26 var name = [] 22 var name = []
27 var time = [] 23 var time = []
28 var prof = [] 24 var prof = []
29 25
30 -Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((sub) => { 26 +Subinfo
27 + .find({department: `${departmentinfo}`, grade: `${gradeinfo}`})
28 + .then((sub) => {
31 if (sub) { 29 if (sub) {
32 for (var i in sub) { 30 for (var i in sub) {
33 if (sub[i]['choice'] == '필수') { 31 if (sub[i]['choice'] == '필수') {
...@@ -37,6 +35,7 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s ...@@ -37,6 +35,7 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s
37 sub[i]['subject'][random_num]['time'] 35 sub[i]['subject'][random_num]['time']
38 36
39 if (time.length > 0) { 37 if (time.length > 0) {
38 + /*
40 while (true) { 39 while (true) {
41 try { 40 try {
42 var tmp = 0 41 var tmp = 0
...@@ -56,6 +55,36 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s ...@@ -56,6 +55,36 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s
56 console.error(err); 55 console.error(err);
57 } 56 }
58 } 57 }
58 + */
59 + while (true) {
60 + try {
61 + var tmp = 0
62 + var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length)))
63 +
64 + for (var j in time) {
65 + if (time[j].slice(0, 1) == sub[i]['subject'][random_num]['time'].slice(0, 1)) {
66 + var tmp_time1 = Number(`${time[j].slice(2, 4) + '.' + time[j].slice(5, 7)}`)
67 + var tmp_time2 = Number(`${time[j].slice(8, 10) + '.' + time[j].slice(11, 13)}`)
68 + var tmp_time3 = Number(
69 + `${sub[i]['subject'][random_num]['time'].slice(2, 4) + '.' + sub[i]['subject'][random_num]['time'].slice(
70 + 5,
71 + 7
72 + )}`
73 + )
74 +
75 + if (tmp_time3 >= tmp_time1 & tmp_time3 <= tmp_time2) {
76 + tmp = 1
77 + break
78 + }
79 + }
80 + }
81 + if (tmp == 0) {
82 + break
83 + }
84 + } catch (err) {
85 + console.error(err);
86 + }
87 + }
59 } 88 }
60 time.push(sub[i]['subject'][random_num]['time']) 89 time.push(sub[i]['subject'][random_num]['time'])
61 prof.push(sub[i]['subject'][random_num]['prof']) 90 prof.push(sub[i]['subject'][random_num]['prof'])
...@@ -65,10 +94,37 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s ...@@ -65,10 +94,37 @@ Subinfo.find({ department: `${departmentinfo}`, grade: `${gradeinfo}` }).then((s
65 console.log(name) 94 console.log(name)
66 console.log(time) 95 console.log(time)
67 console.log(prof) 96 console.log(prof)
68 - } 97 + } else {
69 - else {
70 console.log(err) 98 console.log(err)
71 } 99 }
72 -}) 100 + })
101 +
102 + //console.log(Math.floor(Math.random() * (10))) * /
73 103
74 -//console.log(Math.floor(Math.random() * (10)))
...\ No newline at end of file ...\ No newline at end of file
104 +/*
105 +while (true) {
106 + try {
107 + var tmp = 0
108 + var random_num = (Math.floor(Math.random() * (sub[i]['subject'].length)))
109 +
110 + for (var j in time) {
111 + if (time[j].slice(0, 1) == sub[i]['subject'][random_num]['time'].slice(0, 1)) {
112 + var tmp_time1 = Number(`${time[j].slice(2, 4) + '.' + time[j].slice(5, 7)}`)
113 + var tmp_time2 = Number(`${time[j].slice(8, 10) + '.' + time[j].slice(11, 13)}`)
114 + var tmp_time3 = Number(`${sub[i]['subject'][random_num]['time'].slice(2, 4) + '.' + sub[i]['subject'][random_num]['time'].slice(5, 7)}`)
115 +
116 + if (tmp_time3 >= tmp_time1 & tmp_time3 <= tmp_time2) {
117 + tmp = 1
118 + break
119 + }
120 + }
121 + }
122 + if (tmp == 0) {
123 + break
124 + }
125 + }
126 + catch (err) {
127 + console.error(err);
128 + }
129 +}
130 +*/
...\ No newline at end of file ...\ No newline at end of file
......
1 -const config = require('./config')
2 -const mongoose = require("mongoose");
3 -const { range } = require("express/lib/request");
4 -const xlsx = require("xlsx");
5 -const fs = require('fs')
6 -var first_first = [];
7 -var first_second = [];
8 -var second_first = [];
9 -var second_second = [];
10 -var third_first = [];
11 -var third_second = [];
12 -var fourth_first = [];
13 -var fourth_second = [];
14 -var new_list = {};
15 -function jason_to_arry(jsonData) {
16 - for (var data in jsonData) {
17 - first_first.push(jsonData[data]['1학년 1학기']);
18 - first_second.push(jsonData[data]['1학년 2학기']);
19 - second_first.push(jsonData[data]['2학년 1학기']);
20 - second_second.push(jsonData[data]['2학년 2학기']);
21 - third_first.push(jsonData[data]['3학년 1학기']);
22 - third_second.push(jsonData[data]['3학년 2학기']);
23 - fourth_first.push(jsonData[data]['4학년 1학기']);
24 - fourth_second.push(jsonData[data]['4학년 2학기']);
25 - }
26 -}
27 -// json -> array로 변경
28 -function remove_null(major) {
29 -
30 - first_first = first_first.filter(function (item) {
31 - return item !== null && item !== undefined && item !== '';
32 - });
33 - first_second = first_second.filter(function (item) {
34 - return item !== null && item !== undefined && item !== '';
35 - });
36 - second_first = second_first.filter(function (item) {
37 - return item !== null && item !== undefined && item !== '';
38 - });
39 - second_second = second_second.filter(function (item) {
40 - return item !== null && item !== undefined && item !== '';
41 - });
42 - third_first = third_first.filter(function (item) {
43 - return item !== null && item !== undefined && item !== '';
44 - });
45 - third_second = third_second.filter(function (item) {
46 - return item !== null && item !== undefined && item !== '';
47 - });
48 - fourth_first = fourth_first.filter(function (item) {
49 - return item !== null && item !== undefined && item !== '';
50 - });
51 - fourth_second = fourth_second.filter(function (item) {
52 - return item !== null && item !== undefined && item !== '';
53 - });
54 - new_list[major]=[first_first,first_second,second_first,second_second,third_first,third_second,fourth_first,fourth_second]
55 - // new_list.push(first_first);
56 - // new_list.push(first_second)
57 - // new_list.push(second_first)
58 - // new_list.push(second_second);
59 - // new_list.push(third_first)
60 - // new_list.push(third_second);
61 - // new_list.push(fourth_first);
62 - // new_list.push(fourth_second);
63 -}
64 -
65 -fs.readdirSync("./GuideLine").forEach(file => {
66 - // console.log(file);
67 - var major=file.split(' ')[0]
68 - console.log(major)
69 - const excelFile = xlsx.readFile(`./GuideLine/${file}`)
70 - const sheetName = excelFile.SheetNames[0];
71 - const firstSheet = excelFile.Sheets[sheetName];
72 - const jsonData = xlsx.utils.sheet_to_json(firstSheet)
73 - jason_to_arry(jsonData)
74 - remove_null(major)
75 - first_first = [];
76 - first_second = [];
77 - second_first = [];
78 - second_second = [];
79 - third_first = [];
80 - third_second = [];
81 - fourth_first = [];
82 - fourth_second = [];
83 -});
84 -console.log(new_list[''])
85 -// const excelFile = xlsx.readFile("./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx");
86 -// null 값 제거
87 -
88 -
89 -
90 -const connect = mongoose.connect(config.url,
91 - {
92 - useNewUrlParser: true,
93 - useUnifiedTopology: true,
94 - })
95 - .then(() => console.log("DB : Succesfully Connected"))
96 - .catch((err) => console.log(err.message));
97 -
98 -
99 -var express = require('express');
100 -
101 -var major_list = ["A07337", "A10628", "A07308", "A10627"];
102 -const { Subinfo } = require('./models/model');
103 -var request = require('request');
104 -for (i in major_list) {
105 - var options = {
106 - 'method': 'GET',
107 - 'url': `https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=${i}&p_year=2022&p_term=10&initYn=Y`,
108 - 'headers': {
109 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
110 - },
111 - formData: {
112 - 'attribute': 'lectListJson',
113 - 'lang': 'ko',
114 - 'loginYn': 'N',
115 - 'menu': '1',
116 - 'p_major': 'A07308',
117 - 'p_year': '2022',
118 - 'p_term': '10',
119 - 'initYn': 'Y'
120 - }
121 - };
122 - request(options, async function (error, response) {
123 - if (error) throw new Error(error);
124 - var jason = response.body
125 - var json = JSON.parse(jason)
126 -
127 - const data = {}
128 -
129 -
130 - var x = 0, y = 0;
131 - var z = '필수';
132 - for (var i = 0; i < new_list.length; i++) {
133 - if (i % 2 == 0) {
134 - x++;
135 - }
136 - for (var j = 0; j < new_list[i].length; j++) {
137 - if (new_list[i][j] == '선택') {
138 - z = '선택';
139 - continue;
140 - }
141 - if (i % 2 == 0) {
142 - y = 1;
143 - } else {
144 - y = 2;
145 - }
146 - var subinfo = new Subinfo({
147 - campus: "국제",
148 - college: "소프트웨어융합대학",
149 - department: "컴퓨터공학과",
150 - grade: x + "학년" + y + "학기",
151 - name: new_list[i][j],
152 - choice: z
153 - })
154 - subinfo.save((err, result) => {
155 - if (err) {
156 - return err;
157 - } else {
158 - // console.log(result);
159 - }
160 - })
161 - }
162 - }
163 - for (var i in json["rows"]) {
164 - var obj = {};
165 - obj['time'] = json["rows"][i]["timetable"];
166 - obj['prof'] = json["rows"][i]["teach_na"];
167 - obj['credit'] = json["rows"][i]["unit_num"];
168 - obj['name'] = json["rows"][i]["subjt_name"];
169 - await Subinfo.findOne({ name: obj['name'] }).then((sub) => {
170 - if (sub) {
171 - var body = {
172 - prof: obj['prof'],
173 - time: obj['time']
174 - }
175 - sub.credit = obj['credit']
176 - sub.subject.push(body);
177 - sub.save((err, result) => {
178 - if (err) {
179 - console.log(err)
180 - } else if (result) {
181 - console.log(result);
182 - }
183 - })
184 - }
185 - })
186 - }
187 - });
188 -};
...\ No newline at end of file ...\ No newline at end of file
...@@ -5,10 +5,31 @@ ...@@ -5,10 +5,31 @@
5 "packages": { 5 "packages": {
6 "": { 6 "": {
7 "dependencies": { 7 "dependencies": {
8 + "fs": "^0.0.1-security",
9 + "mongoose": "^6.3.6",
8 "request": "^2.88.2", 10 "request": "^2.88.2",
9 "xlsx": "^0.18.5" 11 "xlsx": "^0.18.5"
10 } 12 }
11 }, 13 },
14 + "node_modules/@types/node": {
15 + "version": "17.0.41",
16 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz",
17 + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw=="
18 + },
19 + "node_modules/@types/webidl-conversions": {
20 + "version": "6.1.1",
21 + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
22 + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
23 + },
24 + "node_modules/@types/whatwg-url": {
25 + "version": "8.2.1",
26 + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
27 + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
28 + "dependencies": {
29 + "@types/node": "*",
30 + "@types/webidl-conversions": "*"
31 + }
32 + },
12 "node_modules/adler-32": { 33 "node_modules/adler-32": {
13 "version": "1.3.1", 34 "version": "1.3.1",
14 "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", 35 "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
...@@ -66,6 +87,25 @@ ...@@ -66,6 +87,25 @@
66 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 87 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
67 "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 88 "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
68 }, 89 },
90 + "node_modules/base64-js": {
91 + "version": "1.5.1",
92 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
93 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
94 + "funding": [
95 + {
96 + "type": "github",
97 + "url": "https://github.com/sponsors/feross"
98 + },
99 + {
100 + "type": "patreon",
101 + "url": "https://www.patreon.com/feross"
102 + },
103 + {
104 + "type": "consulting",
105 + "url": "https://feross.org/support"
106 + }
107 + ]
108 + },
69 "node_modules/bcrypt-pbkdf": { 109 "node_modules/bcrypt-pbkdf": {
70 "version": "1.0.2", 110 "version": "1.0.2",
71 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 111 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
...@@ -74,6 +114,40 @@ ...@@ -74,6 +114,40 @@
74 "tweetnacl": "^0.14.3" 114 "tweetnacl": "^0.14.3"
75 } 115 }
76 }, 116 },
117 + "node_modules/bson": {
118 + "version": "4.6.4",
119 + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz",
120 + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==",
121 + "dependencies": {
122 + "buffer": "^5.6.0"
123 + },
124 + "engines": {
125 + "node": ">=6.9.0"
126 + }
127 + },
128 + "node_modules/buffer": {
129 + "version": "5.7.1",
130 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
131 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
132 + "funding": [
133 + {
134 + "type": "github",
135 + "url": "https://github.com/sponsors/feross"
136 + },
137 + {
138 + "type": "patreon",
139 + "url": "https://www.patreon.com/feross"
140 + },
141 + {
142 + "type": "consulting",
143 + "url": "https://feross.org/support"
144 + }
145 + ],
146 + "dependencies": {
147 + "base64-js": "^1.3.1",
148 + "ieee754": "^1.1.13"
149 + }
150 + },
77 "node_modules/caseless": { 151 "node_modules/caseless": {
78 "version": "0.12.0", 152 "version": "0.12.0",
79 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 153 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
...@@ -137,6 +211,27 @@ ...@@ -137,6 +211,27 @@
137 "node": ">=0.10" 211 "node": ">=0.10"
138 } 212 }
139 }, 213 },
214 + "node_modules/debug": {
215 + "version": "4.3.4",
216 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
217 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
218 + "dependencies": {
219 + "ms": "2.1.2"
220 + },
221 + "engines": {
222 + "node": ">=6.0"
223 + },
224 + "peerDependenciesMeta": {
225 + "supports-color": {
226 + "optional": true
227 + }
228 + }
229 + },
230 + "node_modules/debug/node_modules/ms": {
231 + "version": "2.1.2",
232 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
233 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
234 + },
140 "node_modules/delayed-stream": { 235 "node_modules/delayed-stream": {
141 "version": "1.0.0", 236 "version": "1.0.0",
142 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 237 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
...@@ -145,6 +240,14 @@ ...@@ -145,6 +240,14 @@
145 "node": ">=0.4.0" 240 "node": ">=0.4.0"
146 } 241 }
147 }, 242 },
243 + "node_modules/denque": {
244 + "version": "2.0.1",
245 + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
246 + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
247 + "engines": {
248 + "node": ">=0.10"
249 + }
250 + },
148 "node_modules/ecc-jsbn": { 251 "node_modules/ecc-jsbn": {
149 "version": "0.1.2", 252 "version": "0.1.2",
150 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 253 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
...@@ -206,6 +309,11 @@ ...@@ -206,6 +309,11 @@
206 "node": ">=0.8" 309 "node": ">=0.8"
207 } 310 }
208 }, 311 },
312 + "node_modules/fs": {
313 + "version": "0.0.1-security",
314 + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
315 + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
316 + },
209 "node_modules/getpass": { 317 "node_modules/getpass": {
210 "version": "0.1.7", 318 "version": "0.1.7",
211 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 319 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -249,6 +357,30 @@ ...@@ -249,6 +357,30 @@
249 "npm": ">=1.3.7" 357 "npm": ">=1.3.7"
250 } 358 }
251 }, 359 },
360 + "node_modules/ieee754": {
361 + "version": "1.2.1",
362 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
363 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
364 + "funding": [
365 + {
366 + "type": "github",
367 + "url": "https://github.com/sponsors/feross"
368 + },
369 + {
370 + "type": "patreon",
371 + "url": "https://www.patreon.com/feross"
372 + },
373 + {
374 + "type": "consulting",
375 + "url": "https://feross.org/support"
376 + }
377 + ]
378 + },
379 + "node_modules/ip": {
380 + "version": "1.1.8",
381 + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
382 + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
383 + },
252 "node_modules/is-typedarray": { 384 "node_modules/is-typedarray": {
253 "version": "1.0.0", 385 "version": "1.0.0",
254 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 386 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -293,6 +425,17 @@ ...@@ -293,6 +425,17 @@
293 "node": ">=0.6.0" 425 "node": ">=0.6.0"
294 } 426 }
295 }, 427 },
428 + "node_modules/kareem": {
429 + "version": "2.3.5",
430 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
431 + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
432 + },
433 + "node_modules/memory-pager": {
434 + "version": "1.5.0",
435 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
436 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
437 + "optional": true
438 + },
296 "node_modules/mime-db": { 439 "node_modules/mime-db": {
297 "version": "1.52.0", 440 "version": "1.52.0",
298 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 441 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
...@@ -312,6 +455,77 @@ ...@@ -312,6 +455,77 @@
312 "node": ">= 0.6" 455 "node": ">= 0.6"
313 } 456 }
314 }, 457 },
458 + "node_modules/mongodb": {
459 + "version": "4.5.0",
460 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
461 + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
462 + "dependencies": {
463 + "bson": "^4.6.2",
464 + "denque": "^2.0.1",
465 + "mongodb-connection-string-url": "^2.5.2",
466 + "socks": "^2.6.2"
467 + },
468 + "engines": {
469 + "node": ">=12.9.0"
470 + },
471 + "optionalDependencies": {
472 + "saslprep": "^1.0.3"
473 + }
474 + },
475 + "node_modules/mongodb-connection-string-url": {
476 + "version": "2.5.2",
477 + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
478 + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
479 + "dependencies": {
480 + "@types/whatwg-url": "^8.2.1",
481 + "whatwg-url": "^11.0.0"
482 + }
483 + },
484 + "node_modules/mongoose": {
485 + "version": "6.3.6",
486 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.6.tgz",
487 + "integrity": "sha512-/Cixfo+bA32EHQ5Y7sxMj5ZOXFiAFlvA3X4mFruUET9OsbJZfstg4n2FzxovX8Q7EcoQ7Ry1bnOp9AeXtodF7w==",
488 + "dependencies": {
489 + "bson": "^4.6.2",
490 + "kareem": "2.3.5",
491 + "mongodb": "4.5.0",
492 + "mpath": "0.9.0",
493 + "mquery": "4.0.3",
494 + "ms": "2.1.3",
495 + "sift": "16.0.0"
496 + },
497 + "engines": {
498 + "node": ">=12.0.0"
499 + },
500 + "funding": {
501 + "type": "opencollective",
502 + "url": "https://opencollective.com/mongoose"
503 + }
504 + },
505 + "node_modules/mpath": {
506 + "version": "0.9.0",
507 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
508 + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
509 + "engines": {
510 + "node": ">=4.0.0"
511 + }
512 + },
513 + "node_modules/mquery": {
514 + "version": "4.0.3",
515 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
516 + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
517 + "dependencies": {
518 + "debug": "4.x"
519 + },
520 + "engines": {
521 + "node": ">=12.0.0"
522 + }
523 + },
524 + "node_modules/ms": {
525 + "version": "2.1.3",
526 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
527 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
528 + },
315 "node_modules/oauth-sign": { 529 "node_modules/oauth-sign": {
316 "version": "0.9.0", 530 "version": "0.9.0",
317 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 531 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
...@@ -401,6 +615,54 @@ ...@@ -401,6 +615,54 @@
401 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 615 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
402 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 616 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
403 }, 617 },
618 + "node_modules/saslprep": {
619 + "version": "1.0.3",
620 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
621 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
622 + "optional": true,
623 + "dependencies": {
624 + "sparse-bitfield": "^3.0.3"
625 + },
626 + "engines": {
627 + "node": ">=6"
628 + }
629 + },
630 + "node_modules/sift": {
631 + "version": "16.0.0",
632 + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
633 + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
634 + },
635 + "node_modules/smart-buffer": {
636 + "version": "4.2.0",
637 + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
638 + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
639 + "engines": {
640 + "node": ">= 6.0.0",
641 + "npm": ">= 3.0.0"
642 + }
643 + },
644 + "node_modules/socks": {
645 + "version": "2.6.2",
646 + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
647 + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
648 + "dependencies": {
649 + "ip": "^1.1.5",
650 + "smart-buffer": "^4.2.0"
651 + },
652 + "engines": {
653 + "node": ">= 10.13.0",
654 + "npm": ">= 3.0.0"
655 + }
656 + },
657 + "node_modules/sparse-bitfield": {
658 + "version": "3.0.3",
659 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
660 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
661 + "optional": true,
662 + "dependencies": {
663 + "memory-pager": "^1.0.2"
664 + }
665 + },
404 "node_modules/ssf": { 666 "node_modules/ssf": {
405 "version": "0.11.2", 667 "version": "0.11.2",
406 "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", 668 "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
...@@ -448,6 +710,17 @@ ...@@ -448,6 +710,17 @@
448 "node": ">=0.8" 710 "node": ">=0.8"
449 } 711 }
450 }, 712 },
713 + "node_modules/tr46": {
714 + "version": "3.0.0",
715 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
716 + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
717 + "dependencies": {
718 + "punycode": "^2.1.1"
719 + },
720 + "engines": {
721 + "node": ">=12"
722 + }
723 + },
451 "node_modules/tunnel-agent": { 724 "node_modules/tunnel-agent": {
452 "version": "0.6.0", 725 "version": "0.6.0",
453 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 726 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
...@@ -494,6 +767,26 @@ ...@@ -494,6 +767,26 @@
494 "extsprintf": "^1.2.0" 767 "extsprintf": "^1.2.0"
495 } 768 }
496 }, 769 },
770 + "node_modules/webidl-conversions": {
771 + "version": "7.0.0",
772 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
773 + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
774 + "engines": {
775 + "node": ">=12"
776 + }
777 + },
778 + "node_modules/whatwg-url": {
779 + "version": "11.0.0",
780 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
781 + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
782 + "dependencies": {
783 + "tr46": "^3.0.0",
784 + "webidl-conversions": "^7.0.0"
785 + },
786 + "engines": {
787 + "node": ">=12"
788 + }
789 + },
497 "node_modules/wmf": { 790 "node_modules/wmf": {
498 "version": "1.0.2", 791 "version": "1.0.2",
499 "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", 792 "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
...@@ -532,6 +825,25 @@ ...@@ -532,6 +825,25 @@
532 } 825 }
533 }, 826 },
534 "dependencies": { 827 "dependencies": {
828 + "@types/node": {
829 + "version": "17.0.41",
830 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz",
831 + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw=="
832 + },
833 + "@types/webidl-conversions": {
834 + "version": "6.1.1",
835 + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
836 + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
837 + },
838 + "@types/whatwg-url": {
839 + "version": "8.2.1",
840 + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
841 + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
842 + "requires": {
843 + "@types/node": "*",
844 + "@types/webidl-conversions": "*"
845 + }
846 + },
535 "adler-32": { 847 "adler-32": {
536 "version": "1.3.1", 848 "version": "1.3.1",
537 "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", 849 "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
...@@ -576,6 +888,11 @@ ...@@ -576,6 +888,11 @@
576 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 888 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
577 "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 889 "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
578 }, 890 },
891 + "base64-js": {
892 + "version": "1.5.1",
893 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
894 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
895 + },
579 "bcrypt-pbkdf": { 896 "bcrypt-pbkdf": {
580 "version": "1.0.2", 897 "version": "1.0.2",
581 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 898 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
...@@ -584,6 +901,23 @@ ...@@ -584,6 +901,23 @@
584 "tweetnacl": "^0.14.3" 901 "tweetnacl": "^0.14.3"
585 } 902 }
586 }, 903 },
904 + "bson": {
905 + "version": "4.6.4",
906 + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz",
907 + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==",
908 + "requires": {
909 + "buffer": "^5.6.0"
910 + }
911 + },
912 + "buffer": {
913 + "version": "5.7.1",
914 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
915 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
916 + "requires": {
917 + "base64-js": "^1.3.1",
918 + "ieee754": "^1.1.13"
919 + }
920 + },
587 "caseless": { 921 "caseless": {
588 "version": "0.12.0", 922 "version": "0.12.0",
589 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 923 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
...@@ -629,11 +963,31 @@ ...@@ -629,11 +963,31 @@
629 "assert-plus": "^1.0.0" 963 "assert-plus": "^1.0.0"
630 } 964 }
631 }, 965 },
966 + "debug": {
967 + "version": "4.3.4",
968 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
969 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
970 + "requires": {
971 + "ms": "2.1.2"
972 + },
973 + "dependencies": {
974 + "ms": {
975 + "version": "2.1.2",
976 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
977 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
978 + }
979 + }
980 + },
632 "delayed-stream": { 981 "delayed-stream": {
633 "version": "1.0.0", 982 "version": "1.0.0",
634 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 983 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
635 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 984 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
636 }, 985 },
986 + "denque": {
987 + "version": "2.0.1",
988 + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
989 + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
990 + },
637 "ecc-jsbn": { 991 "ecc-jsbn": {
638 "version": "0.1.2", 992 "version": "0.1.2",
639 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 993 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
...@@ -683,6 +1037,11 @@ ...@@ -683,6 +1037,11 @@
683 "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", 1037 "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
684 "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" 1038 "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
685 }, 1039 },
1040 + "fs": {
1041 + "version": "0.0.1-security",
1042 + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
1043 + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
1044 + },
686 "getpass": { 1045 "getpass": {
687 "version": "0.1.7", 1046 "version": "0.1.7",
688 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1047 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -715,6 +1074,16 @@ ...@@ -715,6 +1074,16 @@
715 "sshpk": "^1.7.0" 1074 "sshpk": "^1.7.0"
716 } 1075 }
717 }, 1076 },
1077 + "ieee754": {
1078 + "version": "1.2.1",
1079 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1080 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
1081 + },
1082 + "ip": {
1083 + "version": "1.1.8",
1084 + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
1085 + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
1086 + },
718 "is-typedarray": { 1087 "is-typedarray": {
719 "version": "1.0.0", 1088 "version": "1.0.0",
720 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1089 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -756,6 +1125,17 @@ ...@@ -756,6 +1125,17 @@
756 "verror": "1.10.0" 1125 "verror": "1.10.0"
757 } 1126 }
758 }, 1127 },
1128 + "kareem": {
1129 + "version": "2.3.5",
1130 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
1131 + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
1132 + },
1133 + "memory-pager": {
1134 + "version": "1.5.0",
1135 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
1136 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1137 + "optional": true
1138 + },
759 "mime-db": { 1139 "mime-db": {
760 "version": "1.52.0", 1140 "version": "1.52.0",
761 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1141 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
...@@ -769,6 +1149,59 @@ ...@@ -769,6 +1149,59 @@
769 "mime-db": "1.52.0" 1149 "mime-db": "1.52.0"
770 } 1150 }
771 }, 1151 },
1152 + "mongodb": {
1153 + "version": "4.5.0",
1154 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
1155 + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
1156 + "requires": {
1157 + "bson": "^4.6.2",
1158 + "denque": "^2.0.1",
1159 + "mongodb-connection-string-url": "^2.5.2",
1160 + "saslprep": "^1.0.3",
1161 + "socks": "^2.6.2"
1162 + }
1163 + },
1164 + "mongodb-connection-string-url": {
1165 + "version": "2.5.2",
1166 + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
1167 + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
1168 + "requires": {
1169 + "@types/whatwg-url": "^8.2.1",
1170 + "whatwg-url": "^11.0.0"
1171 + }
1172 + },
1173 + "mongoose": {
1174 + "version": "6.3.6",
1175 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.6.tgz",
1176 + "integrity": "sha512-/Cixfo+bA32EHQ5Y7sxMj5ZOXFiAFlvA3X4mFruUET9OsbJZfstg4n2FzxovX8Q7EcoQ7Ry1bnOp9AeXtodF7w==",
1177 + "requires": {
1178 + "bson": "^4.6.2",
1179 + "kareem": "2.3.5",
1180 + "mongodb": "4.5.0",
1181 + "mpath": "0.9.0",
1182 + "mquery": "4.0.3",
1183 + "ms": "2.1.3",
1184 + "sift": "16.0.0"
1185 + }
1186 + },
1187 + "mpath": {
1188 + "version": "0.9.0",
1189 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
1190 + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew=="
1191 + },
1192 + "mquery": {
1193 + "version": "4.0.3",
1194 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
1195 + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
1196 + "requires": {
1197 + "debug": "4.x"
1198 + }
1199 + },
1200 + "ms": {
1201 + "version": "2.1.3",
1202 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1203 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1204 + },
772 "oauth-sign": { 1205 "oauth-sign": {
773 "version": "0.9.0", 1206 "version": "0.9.0",
774 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1207 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
...@@ -831,6 +1264,43 @@ ...@@ -831,6 +1264,43 @@
831 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1264 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
832 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1265 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
833 }, 1266 },
1267 + "saslprep": {
1268 + "version": "1.0.3",
1269 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
1270 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
1271 + "optional": true,
1272 + "requires": {
1273 + "sparse-bitfield": "^3.0.3"
1274 + }
1275 + },
1276 + "sift": {
1277 + "version": "16.0.0",
1278 + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
1279 + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
1280 + },
1281 + "smart-buffer": {
1282 + "version": "4.2.0",
1283 + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1284 + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
1285 + },
1286 + "socks": {
1287 + "version": "2.6.2",
1288 + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
1289 + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
1290 + "requires": {
1291 + "ip": "^1.1.5",
1292 + "smart-buffer": "^4.2.0"
1293 + }
1294 + },
1295 + "sparse-bitfield": {
1296 + "version": "3.0.3",
1297 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1298 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1299 + "optional": true,
1300 + "requires": {
1301 + "memory-pager": "^1.0.2"
1302 + }
1303 + },
834 "ssf": { 1304 "ssf": {
835 "version": "0.11.2", 1305 "version": "0.11.2",
836 "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", 1306 "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
...@@ -864,6 +1334,14 @@ ...@@ -864,6 +1334,14 @@
864 "punycode": "^2.1.1" 1334 "punycode": "^2.1.1"
865 } 1335 }
866 }, 1336 },
1337 + "tr46": {
1338 + "version": "3.0.0",
1339 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1340 + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1341 + "requires": {
1342 + "punycode": "^2.1.1"
1343 + }
1344 + },
867 "tunnel-agent": { 1345 "tunnel-agent": {
868 "version": "0.6.0", 1346 "version": "0.6.0",
869 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1347 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
...@@ -900,6 +1378,20 @@ ...@@ -900,6 +1378,20 @@
900 "extsprintf": "^1.2.0" 1378 "extsprintf": "^1.2.0"
901 } 1379 }
902 }, 1380 },
1381 + "webidl-conversions": {
1382 + "version": "7.0.0",
1383 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
1384 + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
1385 + },
1386 + "whatwg-url": {
1387 + "version": "11.0.0",
1388 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
1389 + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
1390 + "requires": {
1391 + "tr46": "^3.0.0",
1392 + "webidl-conversions": "^7.0.0"
1393 + }
1394 + },
903 "wmf": { 1395 "wmf": {
904 "version": "1.0.2", 1396 "version": "1.0.2",
905 "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", 1397 "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
......
1 { 1 {
2 "dependencies": { 2 "dependencies": {
3 + "fs": "^0.0.1-security",
4 + "mongoose": "^6.3.6",
3 "request": "^2.88.2", 5 "request": "^2.88.2",
4 "xlsx": "^0.18.5" 6 "xlsx": "^0.18.5"
5 } 7 }
......
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A07337&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A07337',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A10628&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=0hka3HzdSAOOvWw17F0W3OixVWW5MKzJg31nZrYU3yjMlmIv7GF9vasjvDsYwTAe.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A10628',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A07308&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A07308',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -};
19 -request(options, function (error, response) {
20 - if (error) throw new Error(error);
21 - var jason = response.body
22 - var json = JSON.parse(jason)
23 -
24 - const data = {}
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -
35 -});
36 -
1 -var request = require('request');
2 -var options = {
3 - 'method': 'GET',
4 - 'url': 'https://sugang.khu.ac.kr/core?attribute=lectListJson&lang=ko&loginYn=N&menu=1&p_major=A10627&p_year=2022&p_term=10&initYn=Y',
5 - 'headers': {
6 - 'Cookie': 'JSESSIONID=0hka3HzdSAOOvWw17F0W3OixVWW5MKzJg31nZrYU3yjMlmIv7GF9vasjvDsYwTAe.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
7 - },
8 - formData: {
9 - 'attribute': 'lectListJson',
10 - 'lang': 'ko',
11 - 'loginYn': 'N',
12 - 'menu': '1',
13 - 'p_major': 'A10627',
14 - 'p_year': '2022',
15 - 'p_term': '10',
16 - 'initYn': 'Y'
17 - }
18 -
19 -};
20 -
21 -request(options, function (error, response) {
22 - if (error) throw new Error(error);
23 - var jason = response.body
24 - var json = JSON.parse(jason)
25 -
26 - for (var i in json["rows"]){
27 - var obj = {};
28 - obj['name'] = json["rows"][i]["subjt_name"];
29 - obj['time'] = json["rows"][i]["timetable"];
30 - obj['prof'] = json["rows"][i]["teach_na"];
31 - obj['credit'] = json["rows"][i]["unit_num"];
32 - console.log(obj);
33 - }
34 -});
...\ No newline at end of file ...\ No newline at end of file