송민석

Success DB collection

1 -config.js
2 -node_modules/
...\ No newline at end of file ...\ No newline at end of file
1 +DB_collect/config.js
2 +DB_collect/node_modules/
...\ 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 +
6 +const excelFile = xlsx.readFile("./GuideLine/인공지능학과 권장이수 가이드라인.xlsx");
7 +
8 +const sheetName = excelFile.SheetNames[0];
9 +const firstSheet = excelFile.Sheets[sheetName];
10 +const jsonData = xlsx.utils.sheet_to_json(firstSheet);
11 +
12 +var first_first = [];
13 +var first_second = [];
14 +var second_first = [];
15 +var second_second = [];
16 +var third_first = [];
17 +var third_second = [];
18 +var fourth_first = [];
19 +var fourth_second = [];
20 +var new_list = [];
21 +function jason_to_arry() {
22 + for (var data in jsonData) {
23 + first_first.push(jsonData[data]['1학년 1학기']);
24 + first_second.push(jsonData[data]['1학년 2학기']);
25 + second_first.push(jsonData[data]['2학년 1학기']);
26 + second_second.push(jsonData[data]['2학년 2학기']);
27 + third_first.push(jsonData[data]['3학년 1학기']);
28 + third_second.push(jsonData[data]['3학년 2학기']);
29 + fourth_first.push(jsonData[data]['4학년 1학기']);
30 + fourth_second.push(jsonData[data]['4학년 2학기']);
31 + }
32 +}
33 +function remove_null() {
34 + first_first = first_first.filter(function (item) {
35 + return item !== null && item !== undefined && item !== '';
36 + });
37 + first_second = first_second.filter(function (item) {
38 + return item !== null && item !== undefined && item !== '';
39 + });
40 + second_first = second_first.filter(function (item) {
41 + return item !== null && item !== undefined && item !== '';
42 + });
43 + second_second = second_second.filter(function (item) {
44 + return item !== null && item !== undefined && item !== '';
45 + });
46 + third_first = third_first.filter(function (item) {
47 + return item !== null && item !== undefined && item !== '';
48 + });
49 + third_second = third_second.filter(function (item) {
50 + return item !== null && item !== undefined && item !== '';
51 + });
52 + fourth_first = fourth_first.filter(function (item) {
53 + return item !== null && item !== undefined && item !== '';
54 + });
55 + fourth_second = fourth_second.filter(function (item) {
56 + return item !== null && item !== undefined && item !== '';
57 + });
58 + new_list.push(first_first);
59 + new_list.push(first_second)
60 + new_list.push(second_first)
61 + new_list.push(second_second);
62 + new_list.push(third_first)
63 + new_list.push(third_second);
64 + new_list.push(fourth_first);
65 + new_list.push(fourth_second);
66 +}
67 +jason_to_arry()
68 +remove_null()
69 +
70 +
71 +const connect = mongoose.connect(config.url,
72 + {
73 + useNewUrlParser: true,
74 + useUnifiedTopology: true,
75 + })
76 + .then(() => console.log("DB : Succesfully Connected"))
77 + .catch((err) => console.log(err.message));
78 +
79 +
80 +var express = require('express');
81 +
82 +const { Subinfo } = require('./models/model');
83 +var request = require('request');
84 +var options = {
85 + 'method': 'GET',
86 + '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',
87 + 'headers': {
88 + 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
89 + },
90 + formData: {
91 + 'attribute': 'lectListJson',
92 + 'lang': 'ko',
93 + 'loginYn': 'N',
94 + 'menu': '1',
95 + 'p_major': 'A07308',
96 + 'p_year': '2022',
97 + 'p_term': '10',
98 + 'initYn': 'Y'
99 + }
100 +};
101 +request(options, async function (error, response) {
102 + if (error) throw new Error(error);
103 + var jason = response.body
104 + var json = JSON.parse(jason)
105 +
106 + const data = {}
107 +
108 + for (var i in json["rows"]) {
109 + // console.log(json["rows"][i])
110 + }
111 +
112 + var x = 0, y = 0;
113 + for (var i = 0; i < new_list.length; i++) {
114 + var z = '필수';
115 + if (i % 2 == 0) {
116 + x++;
117 + }
118 + for (var j = 0; j < new_list[i].length; j++) {
119 + if (new_list[i][j] == '선택') {
120 + z = '선택';
121 + continue;
122 + }
123 + if (i % 2 == 0) {
124 + y = 1;
125 + } else {
126 + y = 2;
127 + }
128 + var subinfo = new Subinfo({
129 + campus: "국제",
130 + college: "소프트웨어융합대학",
131 + department: "인공지능학과",
132 + grade: x + "학년" + y + "학기",
133 + name: new_list[i][j],
134 + choice: z,
135 + })
136 + subinfo.save((err, result) => {
137 + if (err) {
138 + return err;
139 + } else {
140 + // console.log(result);
141 + }
142 + })
143 + }
144 + }
145 + for (var i in json["rows"]) {
146 + var obj = {};
147 + obj['time'] = json["rows"][i]["timetable"];
148 + obj['prof'] = json["rows"][i]["teach_na"];
149 + obj['credit'] = json["rows"][i]["unit_num"];
150 + obj['name'] = json["rows"][i]["subjt_name"];
151 + await Subinfo.findOne({department: "인공지능학과", name:obj['name']}).then((sub)=>{
152 + if(sub){
153 + var body={
154 + prof:obj['prof'],
155 + time:obj['time']
156 + }
157 + sub.credit=obj['credit']
158 + sub.subject.push(body);
159 + sub.save((err,result)=>{
160 + if(err){
161 + console.log(err)
162 + }else if(result){
163 + //console.log(result);
164 + }
165 + })
166 + }
167 + })
168 + }
169 +});
...\ 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 +
6 +const excelFile = xlsx.readFile("./GuideLine/컴퓨터공학과 권장이수 가이드라인.xlsx");
7 +const sheetName = excelFile.SheetNames[0];
8 +const firstSheet = excelFile.Sheets[sheetName];
9 +const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 +
11 +var first_first = [];
12 +var first_second = [];
13 +var second_first = [];
14 +var second_second = [];
15 +var third_first = [];
16 +var third_second = [];
17 +var fourth_first = [];
18 +var fourth_second = [];
19 +var new_list = [];
20 +function jason_to_arry() {
21 + for (var data in jsonData) {
22 + first_first.push(jsonData[data]['1학년 1학기']);
23 + first_second.push(jsonData[data]['1학년 2학기']);
24 + second_first.push(jsonData[data]['2학년 1학기']);
25 + second_second.push(jsonData[data]['2학년 2학기']);
26 + third_first.push(jsonData[data]['3학년 1학기']);
27 + third_second.push(jsonData[data]['3학년 2학기']);
28 + fourth_first.push(jsonData[data]['4학년 1학기']);
29 + fourth_second.push(jsonData[data]['4학년 2학기']);
30 + }
31 +}
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 + new_list.push(first_first);
58 + new_list.push(first_second)
59 + new_list.push(second_first)
60 + new_list.push(second_second);
61 + new_list.push(third_first)
62 + new_list.push(third_second);
63 + new_list.push(fourth_first);
64 + new_list.push(fourth_second);
65 +}
66 +jason_to_arry()
67 +remove_null()
68 +
69 +
70 +const connect = mongoose.connect(config.url,
71 + {
72 + useNewUrlParser: true,
73 + useUnifiedTopology: true,
74 + })
75 + .then(() => console.log("DB : Succesfully Connected"))
76 + .catch((err) => console.log(err.message));
77 +
78 +
79 +var express = require('express');
80 +
81 +const { Subinfo } = require('./models/model');
82 +var request = require('request');
83 +var options = {
84 + 'method': 'GET',
85 + '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',
86 + 'headers': {
87 + 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
88 + },
89 + formData: {
90 + 'attribute': 'lectListJson',
91 + 'lang': 'ko',
92 + 'loginYn': 'N',
93 + 'menu': '1',
94 + 'p_major': 'A07308',
95 + 'p_year': '2022',
96 + 'p_term': '10',
97 + 'initYn': 'Y'
98 + }
99 +};
100 +request(options, async function (error, response) {
101 + if (error) throw new Error(error);
102 + var jason = response.body
103 + var json = JSON.parse(jason)
104 +
105 + const data = {}
106 +
107 + for (var i in json["rows"]) {
108 + // console.log(json["rows"][i])
109 + }
110 +
111 + var x = 0, y = 0;
112 + for (var i = 0; i < new_list.length; i++) {
113 + var z = '필수';
114 + if (i % 2 == 0) {
115 + x++;
116 + }
117 + for (var j = 0; j < new_list[i].length; j++) {
118 + if (new_list[i][j] == '선택') {
119 + z = '선택';
120 + continue;
121 + }
122 + if (i % 2 == 0) {
123 + y = 1;
124 + } else {
125 + y = 2;
126 + }
127 + var subinfo = new Subinfo({
128 + campus: "국제",
129 + college: "소프트웨어융합대학",
130 + department: "컴퓨터공학과",
131 + grade: x + "학년" + y + "학기",
132 + name: new_list[i][j],
133 + choice: z,
134 + })
135 + subinfo.save((err, result) => {
136 + if (err) {
137 + return err;
138 + } else {
139 + // console.log(result);
140 + }
141 + })
142 + }
143 + }
144 + for (var i in json["rows"]) {
145 + var obj = {};
146 + obj['time'] = json["rows"][i]["timetable"];
147 + obj['prof'] = json["rows"][i]["teach_na"];
148 + obj['credit'] = json["rows"][i]["unit_num"];
149 + obj['name'] = json["rows"][i]["subjt_name"];
150 + await Subinfo.findOne({department: "컴퓨터공학과", name:obj['name']}).then((sub)=>{
151 + if(sub){
152 + var body={
153 + prof:obj['prof'],
154 + time:obj['time']
155 + }
156 + sub.credit=obj['credit']
157 + sub.subject.push(body);
158 + sub.save((err,result)=>{
159 + if(err){
160 + console.log(err)
161 + }else if(result){
162 + //console.log(result);
163 + }
164 + })
165 + }
166 + })
167 + }
168 +});
...\ No newline at end of file ...\ No newline at end of file
...@@ -2,7 +2,12 @@ const config = require('./config') ...@@ -2,7 +2,12 @@ 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 +
6 +const excelFile = xlsx.readFile("./GuideLine/소프트웨어융합학과_미래자동차.로봇 트랙 권장이수.xlsx");
7 +const sheetName = excelFile.SheetNames[0];
8 +const firstSheet = excelFile.Sheets[sheetName];
9 +const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 +
6 var first_first = []; 11 var first_first = [];
7 var first_second = []; 12 var first_second = [];
8 var second_first = []; 13 var second_first = [];
...@@ -11,8 +16,8 @@ var third_first = []; ...@@ -11,8 +16,8 @@ var third_first = [];
11 var third_second = []; 16 var third_second = [];
12 var fourth_first = []; 17 var fourth_first = [];
13 var fourth_second = []; 18 var fourth_second = [];
14 -var new_list = {}; 19 +var new_list = [];
15 -function jason_to_arry(jsonData) { 20 +function jason_to_arry() {
16 for (var data in jsonData) { 21 for (var data in jsonData) {
17 first_first.push(jsonData[data]['1학년 1학기']); 22 first_first.push(jsonData[data]['1학년 1학기']);
18 first_second.push(jsonData[data]['1학년 2학기']); 23 first_second.push(jsonData[data]['1학년 2학기']);
...@@ -24,9 +29,8 @@ function jason_to_arry(jsonData) { ...@@ -24,9 +29,8 @@ function jason_to_arry(jsonData) {
24 fourth_second.push(jsonData[data]['4학년 2학기']); 29 fourth_second.push(jsonData[data]['4학년 2학기']);
25 } 30 }
26 } 31 }
27 -// json -> array로 변경 32 +// jason -> array로 변경
28 -function remove_null(major) { 33 +function remove_null() {
29 -
30 first_first = first_first.filter(function (item) { 34 first_first = first_first.filter(function (item) {
31 return item !== null && item !== undefined && item !== ''; 35 return item !== null && item !== undefined && item !== '';
32 }); 36 });
...@@ -51,40 +55,17 @@ function remove_null(major) { ...@@ -51,40 +55,17 @@ function remove_null(major) {
51 fourth_second = fourth_second.filter(function (item) { 55 fourth_second = fourth_second.filter(function (item) {
52 return item !== null && item !== undefined && item !== ''; 56 return item !== null && item !== undefined && item !== '';
53 }); 57 });
54 - new_list[major]=[first_first,first_second,second_first,second_second,third_first,third_second,fourth_first,fourth_second] 58 + new_list.push(first_first);
55 - // new_list.push(first_first); 59 + new_list.push(first_second)
56 - // new_list.push(first_second) 60 + new_list.push(second_first)
57 - // new_list.push(second_first) 61 + new_list.push(second_second);
58 - // new_list.push(second_second); 62 + new_list.push(third_first)
59 - // new_list.push(third_first) 63 + new_list.push(third_second);
60 - // new_list.push(third_second); 64 + new_list.push(fourth_first);
61 - // new_list.push(fourth_first); 65 + new_list.push(fourth_second);
62 - // new_list.push(fourth_second);
63 } 66 }
64 - 67 +jason_to_arry()
65 -fs.readdirSync("./GuideLine").forEach(file => { 68 +remove_null()
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 69
89 70
90 const connect = mongoose.connect(config.url, 71 const connect = mongoose.connect(config.url,
...@@ -98,13 +79,11 @@ const connect = mongoose.connect(config.url, ...@@ -98,13 +79,11 @@ const connect = mongoose.connect(config.url,
98 79
99 var express = require('express'); 80 var express = require('express');
100 81
101 -var major_list = ["A07337", "A10628", "A07308", "A10627"];
102 const { Subinfo } = require('./models/model'); 82 const { Subinfo } = require('./models/model');
103 var request = require('request'); 83 var request = require('request');
104 -for (i in major_list) { 84 +var options = {
105 - var options = {
106 'method': 'GET', 85 '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`, 86 + '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',
108 'headers': { 87 'headers': {
109 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4' 88 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
110 }, 89 },
...@@ -118,18 +97,21 @@ for (i in major_list) { ...@@ -118,18 +97,21 @@ for (i in major_list) {
118 'p_term': '10', 97 'p_term': '10',
119 'initYn': 'Y' 98 'initYn': 'Y'
120 } 99 }
121 - }; 100 +};
122 - request(options, async function (error, response) { 101 +request(options, async function (error, response) {
123 if (error) throw new Error(error); 102 if (error) throw new Error(error);
124 var jason = response.body 103 var jason = response.body
125 var json = JSON.parse(jason) 104 var json = JSON.parse(jason)
126 105
127 const data = {} 106 const data = {}
128 107
108 + for (var i in json["rows"]) {
109 + // console.log(json["rows"][i])
110 + }
129 111
130 var x = 0, y = 0; 112 var x = 0, y = 0;
131 - var z = '필수';
132 for (var i = 0; i < new_list.length; i++) { 113 for (var i = 0; i < new_list.length; i++) {
114 + var z = '필수';
133 if (i % 2 == 0) { 115 if (i % 2 == 0) {
134 x++; 116 x++;
135 } 117 }
...@@ -146,10 +128,10 @@ for (i in major_list) { ...@@ -146,10 +128,10 @@ for (i in major_list) {
146 var subinfo = new Subinfo({ 128 var subinfo = new Subinfo({
147 campus: "국제", 129 campus: "국제",
148 college: "소프트웨어융합대학", 130 college: "소프트웨어융합대학",
149 - department: "컴퓨터공학과", 131 + department: "소프트웨어융합학과_미래자동차.로봇",
150 grade: x + "학년" + y + "학기", 132 grade: x + "학년" + y + "학기",
151 name: new_list[i][j], 133 name: new_list[i][j],
152 - choice: z 134 + choice: z,
153 }) 135 })
154 subinfo.save((err, result) => { 136 subinfo.save((err, result) => {
155 if (err) { 137 if (err) {
...@@ -166,23 +148,22 @@ for (i in major_list) { ...@@ -166,23 +148,22 @@ for (i in major_list) {
166 obj['prof'] = json["rows"][i]["teach_na"]; 148 obj['prof'] = json["rows"][i]["teach_na"];
167 obj['credit'] = json["rows"][i]["unit_num"]; 149 obj['credit'] = json["rows"][i]["unit_num"];
168 obj['name'] = json["rows"][i]["subjt_name"]; 150 obj['name'] = json["rows"][i]["subjt_name"];
169 - await Subinfo.findOne({ name: obj['name'] }).then((sub) => { 151 + await Subinfo.findOne({department: "소프트웨어융합학과_미래자동차.로봇", name:obj['name']}).then((sub)=>{
170 - if (sub) { 152 + if(sub){
171 - var body = { 153 + var body={
172 - prof: obj['prof'], 154 + prof:obj['prof'],
173 - time: obj['time'] 155 + time:obj['time']
174 } 156 }
175 - sub.credit = obj['credit'] 157 + sub.credit=obj['credit']
176 sub.subject.push(body); 158 sub.subject.push(body);
177 - sub.save((err, result) => { 159 + sub.save((err,result)=>{
178 - if (err) { 160 + if(err){
179 console.log(err) 161 console.log(err)
180 - } else if (result) { 162 + }else if(result){
181 - console.log(result); 163 + //console.log(result);
182 } 164 }
183 }) 165 })
184 } 166 }
185 }) 167 })
186 } 168 }
187 - });
188 -};
...\ No newline at end of file ...\ No newline at end of file
169 +});
...\ 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 +
6 +const excelFile = xlsx.readFile("./GuideLine/소프트웨어융합학과_데이터사이언스 트랙.xlsx");
7 +const sheetName = excelFile.SheetNames[0];
8 +const firstSheet = excelFile.Sheets[sheetName];
9 +const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 +
11 +var first_first = [];
12 +var first_second = [];
13 +var second_first = [];
14 +var second_second = [];
15 +var third_first = [];
16 +var third_second = [];
17 +var fourth_first = [];
18 +var fourth_second = [];
19 +var new_list = [];
20 +function jason_to_arry() {
21 + for (var data in jsonData) {
22 + first_first.push(jsonData[data]['1학년 1학기']);
23 + first_second.push(jsonData[data]['1학년 2학기']);
24 + second_first.push(jsonData[data]['2학년 1학기']);
25 + second_second.push(jsonData[data]['2학년 2학기']);
26 + third_first.push(jsonData[data]['3학년 1학기']);
27 + third_second.push(jsonData[data]['3학년 2학기']);
28 + fourth_first.push(jsonData[data]['4학년 1학기']);
29 + fourth_second.push(jsonData[data]['4학년 2학기']);
30 + }
31 +}
32 +// jason -> array로 변경
33 +function remove_null() {
34 + first_first = first_first.filter(function (item) {
35 + return item !== null && item !== undefined && item !== '';
36 + });
37 + first_second = first_second.filter(function (item) {
38 + return item !== null && item !== undefined && item !== '';
39 + });
40 + second_first = second_first.filter(function (item) {
41 + return item !== null && item !== undefined && item !== '';
42 + });
43 + second_second = second_second.filter(function (item) {
44 + return item !== null && item !== undefined && item !== '';
45 + });
46 + third_first = third_first.filter(function (item) {
47 + return item !== null && item !== undefined && item !== '';
48 + });
49 + third_second = third_second.filter(function (item) {
50 + return item !== null && item !== undefined && item !== '';
51 + });
52 + fourth_first = fourth_first.filter(function (item) {
53 + return item !== null && item !== undefined && item !== '';
54 + });
55 + fourth_second = fourth_second.filter(function (item) {
56 + return item !== null && item !== undefined && item !== '';
57 + });
58 + new_list.push(first_first);
59 + new_list.push(first_second)
60 + new_list.push(second_first)
61 + new_list.push(second_second);
62 + new_list.push(third_first)
63 + new_list.push(third_second);
64 + new_list.push(fourth_first);
65 + new_list.push(fourth_second);
66 +}
67 +jason_to_arry()
68 +remove_null()
69 +
70 +
71 +const connect = mongoose.connect(config.url,
72 + {
73 + useNewUrlParser: true,
74 + useUnifiedTopology: true,
75 + })
76 + .then(() => console.log("DB : Succesfully Connected"))
77 + .catch((err) => console.log(err.message));
78 +
79 +
80 +var express = require('express');
81 +
82 +const { Subinfo } = require('./models/model');
83 +var request = require('request');
84 +var options = {
85 + 'method': 'GET',
86 + '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',
87 + 'headers': {
88 + 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
89 + },
90 + formData: {
91 + 'attribute': 'lectListJson',
92 + 'lang': 'ko',
93 + 'loginYn': 'N',
94 + 'menu': '1',
95 + 'p_major': 'A07308',
96 + 'p_year': '2022',
97 + 'p_term': '10',
98 + 'initYn': 'Y'
99 + }
100 +};
101 +request(options, async function (error, response) {
102 + if (error) throw new Error(error);
103 + var jason = response.body
104 + var json = JSON.parse(jason)
105 +
106 + const data = {}
107 +
108 + for (var i in json["rows"]) {
109 + // console.log(json["rows"][i])
110 + }
111 +
112 + var x = 0, y = 0;
113 + for (var i = 0; i < new_list.length; i++) {
114 + var z = '필수';
115 + if (i % 2 == 0) {
116 + x++;
117 + }
118 + for (var j = 0; j < new_list[i].length; j++) {
119 + if (new_list[i][j] == '선택') {
120 + z = '선택';
121 + continue;
122 + }
123 + if (i % 2 == 0) {
124 + y = 1;
125 + } else {
126 + y = 2;
127 + }
128 + var subinfo = new Subinfo({
129 + campus: "국제",
130 + college: "소프트웨어융합대학",
131 + department: "소프트웨어융합학과_데이터사이언스",
132 + grade: x + "학년" + y + "학기",
133 + name: new_list[i][j],
134 + choice: z,
135 + })
136 + subinfo.save((err, result) => {
137 + if (err) {
138 + return err;
139 + } else {
140 + // console.log(result);
141 + }
142 + })
143 + }
144 + }
145 + for (var i in json["rows"]) {
146 + var obj = {};
147 + obj['time'] = json["rows"][i]["timetable"];
148 + obj['prof'] = json["rows"][i]["teach_na"];
149 + obj['credit'] = json["rows"][i]["unit_num"];
150 + obj['name'] = json["rows"][i]["subjt_name"];
151 + await Subinfo.findOne({department: "소프트웨어융합학과_데이터사이언스", name:obj['name']}).then((sub)=>{
152 + if(sub){
153 + var body={
154 + prof:obj['prof'],
155 + time:obj['time']
156 + }
157 + sub.credit=obj['credit']
158 + sub.subject.push(body);
159 + sub.save((err,result)=>{
160 + if(err){
161 + console.log(err)
162 + }else if(result){
163 + //console.log(result);
164 + }
165 + })
166 + }
167 + })
168 + }
169 +});
...\ 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 +
6 +const excelFile = xlsx.readFile("./GuideLine/소프트웨어융합학과_게임콘텐츠 트랙.xlsx");
7 +const sheetName = excelFile.SheetNames[0];
8 +const firstSheet = excelFile.Sheets[sheetName];
9 +const jsonData = xlsx.utils.sheet_to_json(firstSheet);
10 +
11 +var first_first = [];
12 +var first_second = [];
13 +var second_first = [];
14 +var second_second = [];
15 +var third_first = [];
16 +var third_second = [];
17 +var fourth_first = [];
18 +var fourth_second = [];
19 +var new_list = [];
20 +function jason_to_arry() {
21 + for (var data in jsonData) {
22 + first_first.push(jsonData[data]['1학년 1학기']);
23 + first_second.push(jsonData[data]['1학년 2학기']);
24 + second_first.push(jsonData[data]['2학년 1학기']);
25 + second_second.push(jsonData[data]['2학년 2학기']);
26 + third_first.push(jsonData[data]['3학년 1학기']);
27 + third_second.push(jsonData[data]['3학년 2학기']);
28 + fourth_first.push(jsonData[data]['4학년 1학기']);
29 + fourth_second.push(jsonData[data]['4학년 2학기']);
30 + }
31 +}
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 + new_list.push(first_first);
58 + new_list.push(first_second)
59 + new_list.push(second_first)
60 + new_list.push(second_second);
61 + new_list.push(third_first)
62 + new_list.push(third_second);
63 + new_list.push(fourth_first);
64 + new_list.push(fourth_second);
65 +}
66 +jason_to_arry()
67 +remove_null()
68 +
69 +
70 +const connect = mongoose.connect(config.url,
71 + {
72 + useNewUrlParser: true,
73 + useUnifiedTopology: true,
74 + })
75 + .then(() => console.log("DB : Succesfully Connected"))
76 + .catch((err) => console.log(err.message));
77 +
78 +
79 +var express = require('express');
80 +
81 +const { Subinfo } = require('./models/model');
82 +var request = require('request');
83 +var options = {
84 + 'method': 'GET',
85 + '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',
86 + 'headers': {
87 + 'Cookie': 'JSESSIONID=aHGSkYnn7ZmXH5Wgx8So3tatw4J7LyR5g98tqYffSUU7qPhC7FFjOaemFCb8UgU5.amV1c19kb21haW4vV0hfU3VnYW5nMQ==; WMONID=R84FN19dbP4'
88 + },
89 + formData: {
90 + 'attribute': 'lectListJson',
91 + 'lang': 'ko',
92 + 'loginYn': 'N',
93 + 'menu': '1',
94 + 'p_major': 'A07308',
95 + 'p_year': '2022',
96 + 'p_term': '10',
97 + 'initYn': 'Y'
98 + }
99 +};
100 +request(options, async function (error, response) {
101 + if (error) throw new Error(error);
102 + var jason = response.body
103 + var json = JSON.parse(jason)
104 +
105 + const data = {}
106 +
107 + for (var i in json["rows"]) {
108 + // console.log(json["rows"][i])
109 + }
110 +
111 + var x = 0, y = 0;
112 + for (var i = 0; i < new_list.length; i++) {
113 + var z = '필수';
114 + if (i % 2 == 0) {
115 + x++;
116 + }
117 + for (var j = 0; j < new_list[i].length; j++) {
118 + if (new_list[i][j] == '선택') {
119 + z = '선택';
120 + continue;
121 + }
122 + if (i % 2 == 0) {
123 + y = 1;
124 + } else {
125 + y = 2;
126 + }
127 + var subinfo = new Subinfo({
128 + campus: "국제",
129 + college: "소프트웨어융합대학",
130 + department: "소프트웨어융합학과_게임콘텐츠",
131 + grade: x + "학년" + y + "학기",
132 + name: new_list[i][j],
133 + choice: z,
134 + })
135 + subinfo.save((err, result) => {
136 + if (err) {
137 + return err;
138 + } else {
139 + // console.log(result);
140 + }
141 + })
142 + }
143 + }
144 + for (var i in json["rows"]) {
145 + var obj = {};
146 + obj['time'] = json["rows"][i]["timetable"];
147 + obj['prof'] = json["rows"][i]["teach_na"];
148 + obj['credit'] = json["rows"][i]["unit_num"];
149 + obj['name'] = json["rows"][i]["subjt_name"];
150 + await Subinfo.findOne({department: "소프트웨어융합학과_게임콘텐츠", name:obj['name']}).then((sub)=>{
151 + if(sub){
152 + var body={
153 + prof:obj['prof'],
154 + time:obj['time']
155 + }
156 + sub.credit=obj['credit']
157 + sub.subject.push(body);
158 + sub.save((err,result)=>{
159 + if(err){
160 + console.log(err)
161 + }else if(result){
162 + // console.log(result);
163 + }
164 + })
165 + }
166 + })
167 + }
168 +});
...\ No newline at end of file ...\ No newline at end of file
...@@ -17,4 +17,4 @@ const mongoose = require("mongoose"); ...@@ -17,4 +17,4 @@ const mongoose = require("mongoose");
17 }); 17 });
18 18
19 const Subinfo = mongoose.model('Subinfo', SubSchema); 19 const Subinfo = mongoose.model('Subinfo', SubSchema);
20 - module.exports = {Subinfo};
...\ No newline at end of file ...\ No newline at end of file
20 + module.exports = { Subinfo };
...\ No newline at end of file ...\ No newline at end of file
......
1 +{
2 + "name": "db_collect",
3 + "version": "1.0.0",
4 + "lockfileVersion": 2,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "db_collect",
9 + "version": "1.0.0",
10 + "license": "ISC",
11 + "dependencies": {
12 + "express": "^4.18.1",
13 + "mongoose": "^6.3.5",
14 + "request": "^2.88.2",
15 + "xlsx": "^0.18.5"
16 + }
17 + },
18 + "node_modules/@types/node": {
19 + "version": "17.0.40",
20 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz",
21 + "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg=="
22 + },
23 + "node_modules/@types/webidl-conversions": {
24 + "version": "6.1.1",
25 + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
26 + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
27 + },
28 + "node_modules/@types/whatwg-url": {
29 + "version": "8.2.1",
30 + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
31 + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
32 + "dependencies": {
33 + "@types/node": "*",
34 + "@types/webidl-conversions": "*"
35 + }
36 + },
37 + "node_modules/accepts": {
38 + "version": "1.3.8",
39 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
40 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
41 + "dependencies": {
42 + "mime-types": "~2.1.34",
43 + "negotiator": "0.6.3"
44 + },
45 + "engines": {
46 + "node": ">= 0.6"
47 + }
48 + },
49 + "node_modules/adler-32": {
50 + "version": "1.3.1",
51 + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
52 + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
53 + "engines": {
54 + "node": ">=0.8"
55 + }
56 + },
57 + "node_modules/ajv": {
58 + "version": "6.12.6",
59 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
60 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
61 + "dependencies": {
62 + "fast-deep-equal": "^3.1.1",
63 + "fast-json-stable-stringify": "^2.0.0",
64 + "json-schema-traverse": "^0.4.1",
65 + "uri-js": "^4.2.2"
66 + },
67 + "funding": {
68 + "type": "github",
69 + "url": "https://github.com/sponsors/epoberezkin"
70 + }
71 + },
72 + "node_modules/array-flatten": {
73 + "version": "1.1.1",
74 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
75 + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
76 + },
77 + "node_modules/asn1": {
78 + "version": "0.2.6",
79 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
80 + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
81 + "dependencies": {
82 + "safer-buffer": "~2.1.0"
83 + }
84 + },
85 + "node_modules/assert-plus": {
86 + "version": "1.0.0",
87 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
88 + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
89 + "engines": {
90 + "node": ">=0.8"
91 + }
92 + },
93 + "node_modules/asynckit": {
94 + "version": "0.4.0",
95 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
96 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
97 + },
98 + "node_modules/aws-sign2": {
99 + "version": "0.7.0",
100 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
101 + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
102 + "engines": {
103 + "node": "*"
104 + }
105 + },
106 + "node_modules/aws4": {
107 + "version": "1.11.0",
108 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
109 + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
110 + },
111 + "node_modules/base64-js": {
112 + "version": "1.5.1",
113 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
114 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
115 + "funding": [
116 + {
117 + "type": "github",
118 + "url": "https://github.com/sponsors/feross"
119 + },
120 + {
121 + "type": "patreon",
122 + "url": "https://www.patreon.com/feross"
123 + },
124 + {
125 + "type": "consulting",
126 + "url": "https://feross.org/support"
127 + }
128 + ]
129 + },
130 + "node_modules/bcrypt-pbkdf": {
131 + "version": "1.0.2",
132 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
133 + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
134 + "dependencies": {
135 + "tweetnacl": "^0.14.3"
136 + }
137 + },
138 + "node_modules/body-parser": {
139 + "version": "1.20.0",
140 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
141 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
142 + "dependencies": {
143 + "bytes": "3.1.2",
144 + "content-type": "~1.0.4",
145 + "debug": "2.6.9",
146 + "depd": "2.0.0",
147 + "destroy": "1.2.0",
148 + "http-errors": "2.0.0",
149 + "iconv-lite": "0.4.24",
150 + "on-finished": "2.4.1",
151 + "qs": "6.10.3",
152 + "raw-body": "2.5.1",
153 + "type-is": "~1.6.18",
154 + "unpipe": "1.0.0"
155 + },
156 + "engines": {
157 + "node": ">= 0.8",
158 + "npm": "1.2.8000 || >= 1.4.16"
159 + }
160 + },
161 + "node_modules/body-parser/node_modules/debug": {
162 + "version": "2.6.9",
163 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
164 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
165 + "dependencies": {
166 + "ms": "2.0.0"
167 + }
168 + },
169 + "node_modules/body-parser/node_modules/ms": {
170 + "version": "2.0.0",
171 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
172 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
173 + },
174 + "node_modules/body-parser/node_modules/qs": {
175 + "version": "6.10.3",
176 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
177 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
178 + "dependencies": {
179 + "side-channel": "^1.0.4"
180 + },
181 + "engines": {
182 + "node": ">=0.6"
183 + },
184 + "funding": {
185 + "url": "https://github.com/sponsors/ljharb"
186 + }
187 + },
188 + "node_modules/bson": {
189 + "version": "4.6.4",
190 + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz",
191 + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==",
192 + "dependencies": {
193 + "buffer": "^5.6.0"
194 + },
195 + "engines": {
196 + "node": ">=6.9.0"
197 + }
198 + },
199 + "node_modules/buffer": {
200 + "version": "5.7.1",
201 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
202 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
203 + "funding": [
204 + {
205 + "type": "github",
206 + "url": "https://github.com/sponsors/feross"
207 + },
208 + {
209 + "type": "patreon",
210 + "url": "https://www.patreon.com/feross"
211 + },
212 + {
213 + "type": "consulting",
214 + "url": "https://feross.org/support"
215 + }
216 + ],
217 + "dependencies": {
218 + "base64-js": "^1.3.1",
219 + "ieee754": "^1.1.13"
220 + }
221 + },
222 + "node_modules/bytes": {
223 + "version": "3.1.2",
224 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
225 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
226 + "engines": {
227 + "node": ">= 0.8"
228 + }
229 + },
230 + "node_modules/call-bind": {
231 + "version": "1.0.2",
232 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
233 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
234 + "dependencies": {
235 + "function-bind": "^1.1.1",
236 + "get-intrinsic": "^1.0.2"
237 + },
238 + "funding": {
239 + "url": "https://github.com/sponsors/ljharb"
240 + }
241 + },
242 + "node_modules/caseless": {
243 + "version": "0.12.0",
244 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
245 + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
246 + },
247 + "node_modules/cfb": {
248 + "version": "1.2.2",
249 + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
250 + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
251 + "dependencies": {
252 + "adler-32": "~1.3.0",
253 + "crc-32": "~1.2.0"
254 + },
255 + "engines": {
256 + "node": ">=0.8"
257 + }
258 + },
259 + "node_modules/codepage": {
260 + "version": "1.15.0",
261 + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
262 + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
263 + "engines": {
264 + "node": ">=0.8"
265 + }
266 + },
267 + "node_modules/combined-stream": {
268 + "version": "1.0.8",
269 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
270 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
271 + "dependencies": {
272 + "delayed-stream": "~1.0.0"
273 + },
274 + "engines": {
275 + "node": ">= 0.8"
276 + }
277 + },
278 + "node_modules/content-disposition": {
279 + "version": "0.5.4",
280 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
281 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
282 + "dependencies": {
283 + "safe-buffer": "5.2.1"
284 + },
285 + "engines": {
286 + "node": ">= 0.6"
287 + }
288 + },
289 + "node_modules/content-type": {
290 + "version": "1.0.4",
291 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
292 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
293 + "engines": {
294 + "node": ">= 0.6"
295 + }
296 + },
297 + "node_modules/cookie": {
298 + "version": "0.5.0",
299 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
300 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
301 + "engines": {
302 + "node": ">= 0.6"
303 + }
304 + },
305 + "node_modules/cookie-signature": {
306 + "version": "1.0.6",
307 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
308 + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
309 + },
310 + "node_modules/core-util-is": {
311 + "version": "1.0.2",
312 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
313 + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
314 + },
315 + "node_modules/crc-32": {
316 + "version": "1.2.2",
317 + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
318 + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
319 + "bin": {
320 + "crc32": "bin/crc32.njs"
321 + },
322 + "engines": {
323 + "node": ">=0.8"
324 + }
325 + },
326 + "node_modules/dashdash": {
327 + "version": "1.14.1",
328 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
329 + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
330 + "dependencies": {
331 + "assert-plus": "^1.0.0"
332 + },
333 + "engines": {
334 + "node": ">=0.10"
335 + }
336 + },
337 + "node_modules/debug": {
338 + "version": "4.3.4",
339 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
340 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
341 + "dependencies": {
342 + "ms": "2.1.2"
343 + },
344 + "engines": {
345 + "node": ">=6.0"
346 + },
347 + "peerDependenciesMeta": {
348 + "supports-color": {
349 + "optional": true
350 + }
351 + }
352 + },
353 + "node_modules/debug/node_modules/ms": {
354 + "version": "2.1.2",
355 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
356 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
357 + },
358 + "node_modules/delayed-stream": {
359 + "version": "1.0.0",
360 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
361 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
362 + "engines": {
363 + "node": ">=0.4.0"
364 + }
365 + },
366 + "node_modules/denque": {
367 + "version": "2.0.1",
368 + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
369 + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
370 + "engines": {
371 + "node": ">=0.10"
372 + }
373 + },
374 + "node_modules/depd": {
375 + "version": "2.0.0",
376 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
377 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
378 + "engines": {
379 + "node": ">= 0.8"
380 + }
381 + },
382 + "node_modules/destroy": {
383 + "version": "1.2.0",
384 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
385 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
386 + "engines": {
387 + "node": ">= 0.8",
388 + "npm": "1.2.8000 || >= 1.4.16"
389 + }
390 + },
391 + "node_modules/ecc-jsbn": {
392 + "version": "0.1.2",
393 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
394 + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
395 + "dependencies": {
396 + "jsbn": "~0.1.0",
397 + "safer-buffer": "^2.1.0"
398 + }
399 + },
400 + "node_modules/ee-first": {
401 + "version": "1.1.1",
402 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
403 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
404 + },
405 + "node_modules/encodeurl": {
406 + "version": "1.0.2",
407 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
408 + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
409 + "engines": {
410 + "node": ">= 0.8"
411 + }
412 + },
413 + "node_modules/escape-html": {
414 + "version": "1.0.3",
415 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
416 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
417 + },
418 + "node_modules/etag": {
419 + "version": "1.8.1",
420 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
421 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
422 + "engines": {
423 + "node": ">= 0.6"
424 + }
425 + },
426 + "node_modules/express": {
427 + "version": "4.18.1",
428 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
429 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
430 + "dependencies": {
431 + "accepts": "~1.3.8",
432 + "array-flatten": "1.1.1",
433 + "body-parser": "1.20.0",
434 + "content-disposition": "0.5.4",
435 + "content-type": "~1.0.4",
436 + "cookie": "0.5.0",
437 + "cookie-signature": "1.0.6",
438 + "debug": "2.6.9",
439 + "depd": "2.0.0",
440 + "encodeurl": "~1.0.2",
441 + "escape-html": "~1.0.3",
442 + "etag": "~1.8.1",
443 + "finalhandler": "1.2.0",
444 + "fresh": "0.5.2",
445 + "http-errors": "2.0.0",
446 + "merge-descriptors": "1.0.1",
447 + "methods": "~1.1.2",
448 + "on-finished": "2.4.1",
449 + "parseurl": "~1.3.3",
450 + "path-to-regexp": "0.1.7",
451 + "proxy-addr": "~2.0.7",
452 + "qs": "6.10.3",
453 + "range-parser": "~1.2.1",
454 + "safe-buffer": "5.2.1",
455 + "send": "0.18.0",
456 + "serve-static": "1.15.0",
457 + "setprototypeof": "1.2.0",
458 + "statuses": "2.0.1",
459 + "type-is": "~1.6.18",
460 + "utils-merge": "1.0.1",
461 + "vary": "~1.1.2"
462 + },
463 + "engines": {
464 + "node": ">= 0.10.0"
465 + }
466 + },
467 + "node_modules/express/node_modules/debug": {
468 + "version": "2.6.9",
469 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
470 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
471 + "dependencies": {
472 + "ms": "2.0.0"
473 + }
474 + },
475 + "node_modules/express/node_modules/ms": {
476 + "version": "2.0.0",
477 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
478 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
479 + },
480 + "node_modules/express/node_modules/qs": {
481 + "version": "6.10.3",
482 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
483 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
484 + "dependencies": {
485 + "side-channel": "^1.0.4"
486 + },
487 + "engines": {
488 + "node": ">=0.6"
489 + },
490 + "funding": {
491 + "url": "https://github.com/sponsors/ljharb"
492 + }
493 + },
494 + "node_modules/extend": {
495 + "version": "3.0.2",
496 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
497 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
498 + },
499 + "node_modules/extsprintf": {
500 + "version": "1.3.0",
501 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
502 + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
503 + "engines": [
504 + "node >=0.6.0"
505 + ]
506 + },
507 + "node_modules/fast-deep-equal": {
508 + "version": "3.1.3",
509 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
510 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
511 + },
512 + "node_modules/fast-json-stable-stringify": {
513 + "version": "2.1.0",
514 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
515 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
516 + },
517 + "node_modules/finalhandler": {
518 + "version": "1.2.0",
519 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
520 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
521 + "dependencies": {
522 + "debug": "2.6.9",
523 + "encodeurl": "~1.0.2",
524 + "escape-html": "~1.0.3",
525 + "on-finished": "2.4.1",
526 + "parseurl": "~1.3.3",
527 + "statuses": "2.0.1",
528 + "unpipe": "~1.0.0"
529 + },
530 + "engines": {
531 + "node": ">= 0.8"
532 + }
533 + },
534 + "node_modules/finalhandler/node_modules/debug": {
535 + "version": "2.6.9",
536 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
537 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
538 + "dependencies": {
539 + "ms": "2.0.0"
540 + }
541 + },
542 + "node_modules/finalhandler/node_modules/ms": {
543 + "version": "2.0.0",
544 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
545 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
546 + },
547 + "node_modules/forever-agent": {
548 + "version": "0.6.1",
549 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
550 + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
551 + "engines": {
552 + "node": "*"
553 + }
554 + },
555 + "node_modules/form-data": {
556 + "version": "2.3.3",
557 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
558 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
559 + "dependencies": {
560 + "asynckit": "^0.4.0",
561 + "combined-stream": "^1.0.6",
562 + "mime-types": "^2.1.12"
563 + },
564 + "engines": {
565 + "node": ">= 0.12"
566 + }
567 + },
568 + "node_modules/forwarded": {
569 + "version": "0.2.0",
570 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
571 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
572 + "engines": {
573 + "node": ">= 0.6"
574 + }
575 + },
576 + "node_modules/frac": {
577 + "version": "1.1.2",
578 + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
579 + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
580 + "engines": {
581 + "node": ">=0.8"
582 + }
583 + },
584 + "node_modules/fresh": {
585 + "version": "0.5.2",
586 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
587 + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
588 + "engines": {
589 + "node": ">= 0.6"
590 + }
591 + },
592 + "node_modules/function-bind": {
593 + "version": "1.1.1",
594 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
595 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
596 + },
597 + "node_modules/get-intrinsic": {
598 + "version": "1.1.1",
599 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
600 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
601 + "dependencies": {
602 + "function-bind": "^1.1.1",
603 + "has": "^1.0.3",
604 + "has-symbols": "^1.0.1"
605 + },
606 + "funding": {
607 + "url": "https://github.com/sponsors/ljharb"
608 + }
609 + },
610 + "node_modules/getpass": {
611 + "version": "0.1.7",
612 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
613 + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
614 + "dependencies": {
615 + "assert-plus": "^1.0.0"
616 + }
617 + },
618 + "node_modules/har-schema": {
619 + "version": "2.0.0",
620 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
621 + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
622 + "engines": {
623 + "node": ">=4"
624 + }
625 + },
626 + "node_modules/har-validator": {
627 + "version": "5.1.5",
628 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
629 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
630 + "deprecated": "this library is no longer supported",
631 + "dependencies": {
632 + "ajv": "^6.12.3",
633 + "har-schema": "^2.0.0"
634 + },
635 + "engines": {
636 + "node": ">=6"
637 + }
638 + },
639 + "node_modules/has": {
640 + "version": "1.0.3",
641 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
642 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
643 + "dependencies": {
644 + "function-bind": "^1.1.1"
645 + },
646 + "engines": {
647 + "node": ">= 0.4.0"
648 + }
649 + },
650 + "node_modules/has-symbols": {
651 + "version": "1.0.3",
652 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
653 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
654 + "engines": {
655 + "node": ">= 0.4"
656 + },
657 + "funding": {
658 + "url": "https://github.com/sponsors/ljharb"
659 + }
660 + },
661 + "node_modules/http-errors": {
662 + "version": "2.0.0",
663 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
664 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
665 + "dependencies": {
666 + "depd": "2.0.0",
667 + "inherits": "2.0.4",
668 + "setprototypeof": "1.2.0",
669 + "statuses": "2.0.1",
670 + "toidentifier": "1.0.1"
671 + },
672 + "engines": {
673 + "node": ">= 0.8"
674 + }
675 + },
676 + "node_modules/http-signature": {
677 + "version": "1.2.0",
678 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
679 + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
680 + "dependencies": {
681 + "assert-plus": "^1.0.0",
682 + "jsprim": "^1.2.2",
683 + "sshpk": "^1.7.0"
684 + },
685 + "engines": {
686 + "node": ">=0.8",
687 + "npm": ">=1.3.7"
688 + }
689 + },
690 + "node_modules/iconv-lite": {
691 + "version": "0.4.24",
692 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
693 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
694 + "dependencies": {
695 + "safer-buffer": ">= 2.1.2 < 3"
696 + },
697 + "engines": {
698 + "node": ">=0.10.0"
699 + }
700 + },
701 + "node_modules/ieee754": {
702 + "version": "1.2.1",
703 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
704 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
705 + "funding": [
706 + {
707 + "type": "github",
708 + "url": "https://github.com/sponsors/feross"
709 + },
710 + {
711 + "type": "patreon",
712 + "url": "https://www.patreon.com/feross"
713 + },
714 + {
715 + "type": "consulting",
716 + "url": "https://feross.org/support"
717 + }
718 + ]
719 + },
720 + "node_modules/inherits": {
721 + "version": "2.0.4",
722 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
723 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
724 + },
725 + "node_modules/ip": {
726 + "version": "1.1.8",
727 + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
728 + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
729 + },
730 + "node_modules/ipaddr.js": {
731 + "version": "1.9.1",
732 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
733 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
734 + "engines": {
735 + "node": ">= 0.10"
736 + }
737 + },
738 + "node_modules/is-typedarray": {
739 + "version": "1.0.0",
740 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
741 + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
742 + },
743 + "node_modules/isstream": {
744 + "version": "0.1.2",
745 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
746 + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
747 + },
748 + "node_modules/jsbn": {
749 + "version": "0.1.1",
750 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
751 + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
752 + },
753 + "node_modules/json-schema": {
754 + "version": "0.4.0",
755 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
756 + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
757 + },
758 + "node_modules/json-schema-traverse": {
759 + "version": "0.4.1",
760 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
761 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
762 + },
763 + "node_modules/json-stringify-safe": {
764 + "version": "5.0.1",
765 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
766 + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
767 + },
768 + "node_modules/jsprim": {
769 + "version": "1.4.2",
770 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
771 + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
772 + "dependencies": {
773 + "assert-plus": "1.0.0",
774 + "extsprintf": "1.3.0",
775 + "json-schema": "0.4.0",
776 + "verror": "1.10.0"
777 + },
778 + "engines": {
779 + "node": ">=0.6.0"
780 + }
781 + },
782 + "node_modules/kareem": {
783 + "version": "2.3.5",
784 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
785 + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
786 + },
787 + "node_modules/media-typer": {
788 + "version": "0.3.0",
789 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
790 + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
791 + "engines": {
792 + "node": ">= 0.6"
793 + }
794 + },
795 + "node_modules/memory-pager": {
796 + "version": "1.5.0",
797 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
798 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
799 + "optional": true
800 + },
801 + "node_modules/merge-descriptors": {
802 + "version": "1.0.1",
803 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
804 + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
805 + },
806 + "node_modules/methods": {
807 + "version": "1.1.2",
808 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
809 + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
810 + "engines": {
811 + "node": ">= 0.6"
812 + }
813 + },
814 + "node_modules/mime": {
815 + "version": "1.6.0",
816 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
817 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
818 + "bin": {
819 + "mime": "cli.js"
820 + },
821 + "engines": {
822 + "node": ">=4"
823 + }
824 + },
825 + "node_modules/mime-db": {
826 + "version": "1.52.0",
827 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
828 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
829 + "engines": {
830 + "node": ">= 0.6"
831 + }
832 + },
833 + "node_modules/mime-types": {
834 + "version": "2.1.35",
835 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
836 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
837 + "dependencies": {
838 + "mime-db": "1.52.0"
839 + },
840 + "engines": {
841 + "node": ">= 0.6"
842 + }
843 + },
844 + "node_modules/mongodb": {
845 + "version": "4.5.0",
846 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
847 + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
848 + "dependencies": {
849 + "bson": "^4.6.2",
850 + "denque": "^2.0.1",
851 + "mongodb-connection-string-url": "^2.5.2",
852 + "socks": "^2.6.2"
853 + },
854 + "engines": {
855 + "node": ">=12.9.0"
856 + },
857 + "optionalDependencies": {
858 + "saslprep": "^1.0.3"
859 + }
860 + },
861 + "node_modules/mongodb-connection-string-url": {
862 + "version": "2.5.2",
863 + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
864 + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
865 + "dependencies": {
866 + "@types/whatwg-url": "^8.2.1",
867 + "whatwg-url": "^11.0.0"
868 + }
869 + },
870 + "node_modules/mongoose": {
871 + "version": "6.3.5",
872 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.5.tgz",
873 + "integrity": "sha512-Ho3b/MK3lFyb87NjzyVwrjCqQ5DuLsIPSMFYDuZjaIJNhZfHNPQIcUDR1RLZ0/l+uznwo0VBu3WSwdu8EfAZTA==",
874 + "dependencies": {
875 + "bson": "^4.6.2",
876 + "kareem": "2.3.5",
877 + "mongodb": "4.5.0",
878 + "mpath": "0.9.0",
879 + "mquery": "4.0.3",
880 + "ms": "2.1.3",
881 + "sift": "16.0.0"
882 + },
883 + "engines": {
884 + "node": ">=12.0.0"
885 + },
886 + "funding": {
887 + "type": "opencollective",
888 + "url": "https://opencollective.com/mongoose"
889 + }
890 + },
891 + "node_modules/mpath": {
892 + "version": "0.9.0",
893 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
894 + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
895 + "engines": {
896 + "node": ">=4.0.0"
897 + }
898 + },
899 + "node_modules/mquery": {
900 + "version": "4.0.3",
901 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
902 + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
903 + "dependencies": {
904 + "debug": "4.x"
905 + },
906 + "engines": {
907 + "node": ">=12.0.0"
908 + }
909 + },
910 + "node_modules/ms": {
911 + "version": "2.1.3",
912 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
913 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
914 + },
915 + "node_modules/negotiator": {
916 + "version": "0.6.3",
917 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
918 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
919 + "engines": {
920 + "node": ">= 0.6"
921 + }
922 + },
923 + "node_modules/oauth-sign": {
924 + "version": "0.9.0",
925 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
926 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
927 + "engines": {
928 + "node": "*"
929 + }
930 + },
931 + "node_modules/object-inspect": {
932 + "version": "1.12.2",
933 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
934 + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
935 + "funding": {
936 + "url": "https://github.com/sponsors/ljharb"
937 + }
938 + },
939 + "node_modules/on-finished": {
940 + "version": "2.4.1",
941 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
942 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
943 + "dependencies": {
944 + "ee-first": "1.1.1"
945 + },
946 + "engines": {
947 + "node": ">= 0.8"
948 + }
949 + },
950 + "node_modules/parseurl": {
951 + "version": "1.3.3",
952 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
953 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
954 + "engines": {
955 + "node": ">= 0.8"
956 + }
957 + },
958 + "node_modules/path-to-regexp": {
959 + "version": "0.1.7",
960 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
961 + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
962 + },
963 + "node_modules/performance-now": {
964 + "version": "2.1.0",
965 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
966 + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
967 + },
968 + "node_modules/proxy-addr": {
969 + "version": "2.0.7",
970 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
971 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
972 + "dependencies": {
973 + "forwarded": "0.2.0",
974 + "ipaddr.js": "1.9.1"
975 + },
976 + "engines": {
977 + "node": ">= 0.10"
978 + }
979 + },
980 + "node_modules/psl": {
981 + "version": "1.8.0",
982 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
983 + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
984 + },
985 + "node_modules/punycode": {
986 + "version": "2.1.1",
987 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
988 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
989 + "engines": {
990 + "node": ">=6"
991 + }
992 + },
993 + "node_modules/qs": {
994 + "version": "6.5.3",
995 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
996 + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
997 + "engines": {
998 + "node": ">=0.6"
999 + }
1000 + },
1001 + "node_modules/range-parser": {
1002 + "version": "1.2.1",
1003 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1004 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1005 + "engines": {
1006 + "node": ">= 0.6"
1007 + }
1008 + },
1009 + "node_modules/raw-body": {
1010 + "version": "2.5.1",
1011 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1012 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1013 + "dependencies": {
1014 + "bytes": "3.1.2",
1015 + "http-errors": "2.0.0",
1016 + "iconv-lite": "0.4.24",
1017 + "unpipe": "1.0.0"
1018 + },
1019 + "engines": {
1020 + "node": ">= 0.8"
1021 + }
1022 + },
1023 + "node_modules/request": {
1024 + "version": "2.88.2",
1025 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1026 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1027 + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
1028 + "dependencies": {
1029 + "aws-sign2": "~0.7.0",
1030 + "aws4": "^1.8.0",
1031 + "caseless": "~0.12.0",
1032 + "combined-stream": "~1.0.6",
1033 + "extend": "~3.0.2",
1034 + "forever-agent": "~0.6.1",
1035 + "form-data": "~2.3.2",
1036 + "har-validator": "~5.1.3",
1037 + "http-signature": "~1.2.0",
1038 + "is-typedarray": "~1.0.0",
1039 + "isstream": "~0.1.2",
1040 + "json-stringify-safe": "~5.0.1",
1041 + "mime-types": "~2.1.19",
1042 + "oauth-sign": "~0.9.0",
1043 + "performance-now": "^2.1.0",
1044 + "qs": "~6.5.2",
1045 + "safe-buffer": "^5.1.2",
1046 + "tough-cookie": "~2.5.0",
1047 + "tunnel-agent": "^0.6.0",
1048 + "uuid": "^3.3.2"
1049 + },
1050 + "engines": {
1051 + "node": ">= 6"
1052 + }
1053 + },
1054 + "node_modules/safe-buffer": {
1055 + "version": "5.2.1",
1056 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1057 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1058 + "funding": [
1059 + {
1060 + "type": "github",
1061 + "url": "https://github.com/sponsors/feross"
1062 + },
1063 + {
1064 + "type": "patreon",
1065 + "url": "https://www.patreon.com/feross"
1066 + },
1067 + {
1068 + "type": "consulting",
1069 + "url": "https://feross.org/support"
1070 + }
1071 + ]
1072 + },
1073 + "node_modules/safer-buffer": {
1074 + "version": "2.1.2",
1075 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1076 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1077 + },
1078 + "node_modules/saslprep": {
1079 + "version": "1.0.3",
1080 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
1081 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
1082 + "optional": true,
1083 + "dependencies": {
1084 + "sparse-bitfield": "^3.0.3"
1085 + },
1086 + "engines": {
1087 + "node": ">=6"
1088 + }
1089 + },
1090 + "node_modules/send": {
1091 + "version": "0.18.0",
1092 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1093 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1094 + "dependencies": {
1095 + "debug": "2.6.9",
1096 + "depd": "2.0.0",
1097 + "destroy": "1.2.0",
1098 + "encodeurl": "~1.0.2",
1099 + "escape-html": "~1.0.3",
1100 + "etag": "~1.8.1",
1101 + "fresh": "0.5.2",
1102 + "http-errors": "2.0.0",
1103 + "mime": "1.6.0",
1104 + "ms": "2.1.3",
1105 + "on-finished": "2.4.1",
1106 + "range-parser": "~1.2.1",
1107 + "statuses": "2.0.1"
1108 + },
1109 + "engines": {
1110 + "node": ">= 0.8.0"
1111 + }
1112 + },
1113 + "node_modules/send/node_modules/debug": {
1114 + "version": "2.6.9",
1115 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1116 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1117 + "dependencies": {
1118 + "ms": "2.0.0"
1119 + }
1120 + },
1121 + "node_modules/send/node_modules/debug/node_modules/ms": {
1122 + "version": "2.0.0",
1123 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1124 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1125 + },
1126 + "node_modules/serve-static": {
1127 + "version": "1.15.0",
1128 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1129 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1130 + "dependencies": {
1131 + "encodeurl": "~1.0.2",
1132 + "escape-html": "~1.0.3",
1133 + "parseurl": "~1.3.3",
1134 + "send": "0.18.0"
1135 + },
1136 + "engines": {
1137 + "node": ">= 0.8.0"
1138 + }
1139 + },
1140 + "node_modules/setprototypeof": {
1141 + "version": "1.2.0",
1142 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1143 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1144 + },
1145 + "node_modules/side-channel": {
1146 + "version": "1.0.4",
1147 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1148 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1149 + "dependencies": {
1150 + "call-bind": "^1.0.0",
1151 + "get-intrinsic": "^1.0.2",
1152 + "object-inspect": "^1.9.0"
1153 + },
1154 + "funding": {
1155 + "url": "https://github.com/sponsors/ljharb"
1156 + }
1157 + },
1158 + "node_modules/sift": {
1159 + "version": "16.0.0",
1160 + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
1161 + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
1162 + },
1163 + "node_modules/smart-buffer": {
1164 + "version": "4.2.0",
1165 + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1166 + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
1167 + "engines": {
1168 + "node": ">= 6.0.0",
1169 + "npm": ">= 3.0.0"
1170 + }
1171 + },
1172 + "node_modules/socks": {
1173 + "version": "2.6.2",
1174 + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
1175 + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
1176 + "dependencies": {
1177 + "ip": "^1.1.5",
1178 + "smart-buffer": "^4.2.0"
1179 + },
1180 + "engines": {
1181 + "node": ">= 10.13.0",
1182 + "npm": ">= 3.0.0"
1183 + }
1184 + },
1185 + "node_modules/sparse-bitfield": {
1186 + "version": "3.0.3",
1187 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1188 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1189 + "optional": true,
1190 + "dependencies": {
1191 + "memory-pager": "^1.0.2"
1192 + }
1193 + },
1194 + "node_modules/ssf": {
1195 + "version": "0.11.2",
1196 + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
1197 + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
1198 + "dependencies": {
1199 + "frac": "~1.1.2"
1200 + },
1201 + "engines": {
1202 + "node": ">=0.8"
1203 + }
1204 + },
1205 + "node_modules/sshpk": {
1206 + "version": "1.17.0",
1207 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
1208 + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
1209 + "dependencies": {
1210 + "asn1": "~0.2.3",
1211 + "assert-plus": "^1.0.0",
1212 + "bcrypt-pbkdf": "^1.0.0",
1213 + "dashdash": "^1.12.0",
1214 + "ecc-jsbn": "~0.1.1",
1215 + "getpass": "^0.1.1",
1216 + "jsbn": "~0.1.0",
1217 + "safer-buffer": "^2.0.2",
1218 + "tweetnacl": "~0.14.0"
1219 + },
1220 + "bin": {
1221 + "sshpk-conv": "bin/sshpk-conv",
1222 + "sshpk-sign": "bin/sshpk-sign",
1223 + "sshpk-verify": "bin/sshpk-verify"
1224 + },
1225 + "engines": {
1226 + "node": ">=0.10.0"
1227 + }
1228 + },
1229 + "node_modules/statuses": {
1230 + "version": "2.0.1",
1231 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1232 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1233 + "engines": {
1234 + "node": ">= 0.8"
1235 + }
1236 + },
1237 + "node_modules/toidentifier": {
1238 + "version": "1.0.1",
1239 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1240 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1241 + "engines": {
1242 + "node": ">=0.6"
1243 + }
1244 + },
1245 + "node_modules/tough-cookie": {
1246 + "version": "2.5.0",
1247 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1248 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1249 + "dependencies": {
1250 + "psl": "^1.1.28",
1251 + "punycode": "^2.1.1"
1252 + },
1253 + "engines": {
1254 + "node": ">=0.8"
1255 + }
1256 + },
1257 + "node_modules/tr46": {
1258 + "version": "3.0.0",
1259 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1260 + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1261 + "dependencies": {
1262 + "punycode": "^2.1.1"
1263 + },
1264 + "engines": {
1265 + "node": ">=12"
1266 + }
1267 + },
1268 + "node_modules/tunnel-agent": {
1269 + "version": "0.6.0",
1270 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1271 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1272 + "dependencies": {
1273 + "safe-buffer": "^5.0.1"
1274 + },
1275 + "engines": {
1276 + "node": "*"
1277 + }
1278 + },
1279 + "node_modules/tweetnacl": {
1280 + "version": "0.14.5",
1281 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1282 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1283 + },
1284 + "node_modules/type-is": {
1285 + "version": "1.6.18",
1286 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1287 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1288 + "dependencies": {
1289 + "media-typer": "0.3.0",
1290 + "mime-types": "~2.1.24"
1291 + },
1292 + "engines": {
1293 + "node": ">= 0.6"
1294 + }
1295 + },
1296 + "node_modules/unpipe": {
1297 + "version": "1.0.0",
1298 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1299 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
1300 + "engines": {
1301 + "node": ">= 0.8"
1302 + }
1303 + },
1304 + "node_modules/uri-js": {
1305 + "version": "4.4.1",
1306 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1307 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1308 + "dependencies": {
1309 + "punycode": "^2.1.0"
1310 + }
1311 + },
1312 + "node_modules/utils-merge": {
1313 + "version": "1.0.1",
1314 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1315 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
1316 + "engines": {
1317 + "node": ">= 0.4.0"
1318 + }
1319 + },
1320 + "node_modules/uuid": {
1321 + "version": "3.4.0",
1322 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1323 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1324 + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
1325 + "bin": {
1326 + "uuid": "bin/uuid"
1327 + }
1328 + },
1329 + "node_modules/vary": {
1330 + "version": "1.1.2",
1331 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1332 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
1333 + "engines": {
1334 + "node": ">= 0.8"
1335 + }
1336 + },
1337 + "node_modules/verror": {
1338 + "version": "1.10.0",
1339 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1340 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1341 + "engines": [
1342 + "node >=0.6.0"
1343 + ],
1344 + "dependencies": {
1345 + "assert-plus": "^1.0.0",
1346 + "core-util-is": "1.0.2",
1347 + "extsprintf": "^1.2.0"
1348 + }
1349 + },
1350 + "node_modules/webidl-conversions": {
1351 + "version": "7.0.0",
1352 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
1353 + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
1354 + "engines": {
1355 + "node": ">=12"
1356 + }
1357 + },
1358 + "node_modules/whatwg-url": {
1359 + "version": "11.0.0",
1360 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
1361 + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
1362 + "dependencies": {
1363 + "tr46": "^3.0.0",
1364 + "webidl-conversions": "^7.0.0"
1365 + },
1366 + "engines": {
1367 + "node": ">=12"
1368 + }
1369 + },
1370 + "node_modules/wmf": {
1371 + "version": "1.0.2",
1372 + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
1373 + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
1374 + "engines": {
1375 + "node": ">=0.8"
1376 + }
1377 + },
1378 + "node_modules/word": {
1379 + "version": "0.3.0",
1380 + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
1381 + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
1382 + "engines": {
1383 + "node": ">=0.8"
1384 + }
1385 + },
1386 + "node_modules/xlsx": {
1387 + "version": "0.18.5",
1388 + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
1389 + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
1390 + "dependencies": {
1391 + "adler-32": "~1.3.0",
1392 + "cfb": "~1.2.1",
1393 + "codepage": "~1.15.0",
1394 + "crc-32": "~1.2.1",
1395 + "ssf": "~0.11.2",
1396 + "wmf": "~1.0.1",
1397 + "word": "~0.3.0"
1398 + },
1399 + "bin": {
1400 + "xlsx": "bin/xlsx.njs"
1401 + },
1402 + "engines": {
1403 + "node": ">=0.8"
1404 + }
1405 + }
1406 + },
1407 + "dependencies": {
1408 + "@types/node": {
1409 + "version": "17.0.40",
1410 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz",
1411 + "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg=="
1412 + },
1413 + "@types/webidl-conversions": {
1414 + "version": "6.1.1",
1415 + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
1416 + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
1417 + },
1418 + "@types/whatwg-url": {
1419 + "version": "8.2.1",
1420 + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
1421 + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
1422 + "requires": {
1423 + "@types/node": "*",
1424 + "@types/webidl-conversions": "*"
1425 + }
1426 + },
1427 + "accepts": {
1428 + "version": "1.3.8",
1429 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1430 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1431 + "requires": {
1432 + "mime-types": "~2.1.34",
1433 + "negotiator": "0.6.3"
1434 + }
1435 + },
1436 + "adler-32": {
1437 + "version": "1.3.1",
1438 + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
1439 + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
1440 + },
1441 + "ajv": {
1442 + "version": "6.12.6",
1443 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1444 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1445 + "requires": {
1446 + "fast-deep-equal": "^3.1.1",
1447 + "fast-json-stable-stringify": "^2.0.0",
1448 + "json-schema-traverse": "^0.4.1",
1449 + "uri-js": "^4.2.2"
1450 + }
1451 + },
1452 + "array-flatten": {
1453 + "version": "1.1.1",
1454 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
1455 + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
1456 + },
1457 + "asn1": {
1458 + "version": "0.2.6",
1459 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
1460 + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
1461 + "requires": {
1462 + "safer-buffer": "~2.1.0"
1463 + }
1464 + },
1465 + "assert-plus": {
1466 + "version": "1.0.0",
1467 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1468 + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
1469 + },
1470 + "asynckit": {
1471 + "version": "0.4.0",
1472 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1473 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
1474 + },
1475 + "aws-sign2": {
1476 + "version": "0.7.0",
1477 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1478 + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
1479 + },
1480 + "aws4": {
1481 + "version": "1.11.0",
1482 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
1483 + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
1484 + },
1485 + "base64-js": {
1486 + "version": "1.5.1",
1487 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1488 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
1489 + },
1490 + "bcrypt-pbkdf": {
1491 + "version": "1.0.2",
1492 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1493 + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
1494 + "requires": {
1495 + "tweetnacl": "^0.14.3"
1496 + }
1497 + },
1498 + "body-parser": {
1499 + "version": "1.20.0",
1500 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
1501 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
1502 + "requires": {
1503 + "bytes": "3.1.2",
1504 + "content-type": "~1.0.4",
1505 + "debug": "2.6.9",
1506 + "depd": "2.0.0",
1507 + "destroy": "1.2.0",
1508 + "http-errors": "2.0.0",
1509 + "iconv-lite": "0.4.24",
1510 + "on-finished": "2.4.1",
1511 + "qs": "6.10.3",
1512 + "raw-body": "2.5.1",
1513 + "type-is": "~1.6.18",
1514 + "unpipe": "1.0.0"
1515 + },
1516 + "dependencies": {
1517 + "debug": {
1518 + "version": "2.6.9",
1519 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1520 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1521 + "requires": {
1522 + "ms": "2.0.0"
1523 + }
1524 + },
1525 + "ms": {
1526 + "version": "2.0.0",
1527 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1528 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1529 + },
1530 + "qs": {
1531 + "version": "6.10.3",
1532 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1533 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1534 + "requires": {
1535 + "side-channel": "^1.0.4"
1536 + }
1537 + }
1538 + }
1539 + },
1540 + "bson": {
1541 + "version": "4.6.4",
1542 + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz",
1543 + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==",
1544 + "requires": {
1545 + "buffer": "^5.6.0"
1546 + }
1547 + },
1548 + "buffer": {
1549 + "version": "5.7.1",
1550 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
1551 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
1552 + "requires": {
1553 + "base64-js": "^1.3.1",
1554 + "ieee754": "^1.1.13"
1555 + }
1556 + },
1557 + "bytes": {
1558 + "version": "3.1.2",
1559 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
1560 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
1561 + },
1562 + "call-bind": {
1563 + "version": "1.0.2",
1564 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
1565 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
1566 + "requires": {
1567 + "function-bind": "^1.1.1",
1568 + "get-intrinsic": "^1.0.2"
1569 + }
1570 + },
1571 + "caseless": {
1572 + "version": "0.12.0",
1573 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1574 + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
1575 + },
1576 + "cfb": {
1577 + "version": "1.2.2",
1578 + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
1579 + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
1580 + "requires": {
1581 + "adler-32": "~1.3.0",
1582 + "crc-32": "~1.2.0"
1583 + }
1584 + },
1585 + "codepage": {
1586 + "version": "1.15.0",
1587 + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
1588 + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
1589 + },
1590 + "combined-stream": {
1591 + "version": "1.0.8",
1592 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1593 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1594 + "requires": {
1595 + "delayed-stream": "~1.0.0"
1596 + }
1597 + },
1598 + "content-disposition": {
1599 + "version": "0.5.4",
1600 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
1601 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
1602 + "requires": {
1603 + "safe-buffer": "5.2.1"
1604 + }
1605 + },
1606 + "content-type": {
1607 + "version": "1.0.4",
1608 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
1609 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
1610 + },
1611 + "cookie": {
1612 + "version": "0.5.0",
1613 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
1614 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
1615 + },
1616 + "cookie-signature": {
1617 + "version": "1.0.6",
1618 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
1619 + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
1620 + },
1621 + "core-util-is": {
1622 + "version": "1.0.2",
1623 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1624 + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
1625 + },
1626 + "crc-32": {
1627 + "version": "1.2.2",
1628 + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
1629 + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
1630 + },
1631 + "dashdash": {
1632 + "version": "1.14.1",
1633 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
1634 + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
1635 + "requires": {
1636 + "assert-plus": "^1.0.0"
1637 + }
1638 + },
1639 + "debug": {
1640 + "version": "4.3.4",
1641 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1642 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1643 + "requires": {
1644 + "ms": "2.1.2"
1645 + },
1646 + "dependencies": {
1647 + "ms": {
1648 + "version": "2.1.2",
1649 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1650 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1651 + }
1652 + }
1653 + },
1654 + "delayed-stream": {
1655 + "version": "1.0.0",
1656 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1657 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
1658 + },
1659 + "denque": {
1660 + "version": "2.0.1",
1661 + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
1662 + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
1663 + },
1664 + "depd": {
1665 + "version": "2.0.0",
1666 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1667 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1668 + },
1669 + "destroy": {
1670 + "version": "1.2.0",
1671 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
1672 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
1673 + },
1674 + "ecc-jsbn": {
1675 + "version": "0.1.2",
1676 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1677 + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
1678 + "requires": {
1679 + "jsbn": "~0.1.0",
1680 + "safer-buffer": "^2.1.0"
1681 + }
1682 + },
1683 + "ee-first": {
1684 + "version": "1.1.1",
1685 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1686 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
1687 + },
1688 + "encodeurl": {
1689 + "version": "1.0.2",
1690 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1691 + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
1692 + },
1693 + "escape-html": {
1694 + "version": "1.0.3",
1695 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1696 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
1697 + },
1698 + "etag": {
1699 + "version": "1.8.1",
1700 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1701 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
1702 + },
1703 + "express": {
1704 + "version": "4.18.1",
1705 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
1706 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
1707 + "requires": {
1708 + "accepts": "~1.3.8",
1709 + "array-flatten": "1.1.1",
1710 + "body-parser": "1.20.0",
1711 + "content-disposition": "0.5.4",
1712 + "content-type": "~1.0.4",
1713 + "cookie": "0.5.0",
1714 + "cookie-signature": "1.0.6",
1715 + "debug": "2.6.9",
1716 + "depd": "2.0.0",
1717 + "encodeurl": "~1.0.2",
1718 + "escape-html": "~1.0.3",
1719 + "etag": "~1.8.1",
1720 + "finalhandler": "1.2.0",
1721 + "fresh": "0.5.2",
1722 + "http-errors": "2.0.0",
1723 + "merge-descriptors": "1.0.1",
1724 + "methods": "~1.1.2",
1725 + "on-finished": "2.4.1",
1726 + "parseurl": "~1.3.3",
1727 + "path-to-regexp": "0.1.7",
1728 + "proxy-addr": "~2.0.7",
1729 + "qs": "6.10.3",
1730 + "range-parser": "~1.2.1",
1731 + "safe-buffer": "5.2.1",
1732 + "send": "0.18.0",
1733 + "serve-static": "1.15.0",
1734 + "setprototypeof": "1.2.0",
1735 + "statuses": "2.0.1",
1736 + "type-is": "~1.6.18",
1737 + "utils-merge": "1.0.1",
1738 + "vary": "~1.1.2"
1739 + },
1740 + "dependencies": {
1741 + "debug": {
1742 + "version": "2.6.9",
1743 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1744 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1745 + "requires": {
1746 + "ms": "2.0.0"
1747 + }
1748 + },
1749 + "ms": {
1750 + "version": "2.0.0",
1751 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1752 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1753 + },
1754 + "qs": {
1755 + "version": "6.10.3",
1756 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1757 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1758 + "requires": {
1759 + "side-channel": "^1.0.4"
1760 + }
1761 + }
1762 + }
1763 + },
1764 + "extend": {
1765 + "version": "3.0.2",
1766 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1767 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
1768 + },
1769 + "extsprintf": {
1770 + "version": "1.3.0",
1771 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1772 + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
1773 + },
1774 + "fast-deep-equal": {
1775 + "version": "3.1.3",
1776 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1777 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1778 + },
1779 + "fast-json-stable-stringify": {
1780 + "version": "2.1.0",
1781 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1782 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1783 + },
1784 + "finalhandler": {
1785 + "version": "1.2.0",
1786 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
1787 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
1788 + "requires": {
1789 + "debug": "2.6.9",
1790 + "encodeurl": "~1.0.2",
1791 + "escape-html": "~1.0.3",
1792 + "on-finished": "2.4.1",
1793 + "parseurl": "~1.3.3",
1794 + "statuses": "2.0.1",
1795 + "unpipe": "~1.0.0"
1796 + },
1797 + "dependencies": {
1798 + "debug": {
1799 + "version": "2.6.9",
1800 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1801 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1802 + "requires": {
1803 + "ms": "2.0.0"
1804 + }
1805 + },
1806 + "ms": {
1807 + "version": "2.0.0",
1808 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1809 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1810 + }
1811 + }
1812 + },
1813 + "forever-agent": {
1814 + "version": "0.6.1",
1815 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1816 + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
1817 + },
1818 + "form-data": {
1819 + "version": "2.3.3",
1820 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1821 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1822 + "requires": {
1823 + "asynckit": "^0.4.0",
1824 + "combined-stream": "^1.0.6",
1825 + "mime-types": "^2.1.12"
1826 + }
1827 + },
1828 + "forwarded": {
1829 + "version": "0.2.0",
1830 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1831 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
1832 + },
1833 + "frac": {
1834 + "version": "1.1.2",
1835 + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
1836 + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
1837 + },
1838 + "fresh": {
1839 + "version": "0.5.2",
1840 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1841 + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
1842 + },
1843 + "function-bind": {
1844 + "version": "1.1.1",
1845 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1846 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1847 + },
1848 + "get-intrinsic": {
1849 + "version": "1.1.1",
1850 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1851 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1852 + "requires": {
1853 + "function-bind": "^1.1.1",
1854 + "has": "^1.0.3",
1855 + "has-symbols": "^1.0.1"
1856 + }
1857 + },
1858 + "getpass": {
1859 + "version": "0.1.7",
1860 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1861 + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
1862 + "requires": {
1863 + "assert-plus": "^1.0.0"
1864 + }
1865 + },
1866 + "har-schema": {
1867 + "version": "2.0.0",
1868 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1869 + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
1870 + },
1871 + "har-validator": {
1872 + "version": "5.1.5",
1873 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
1874 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
1875 + "requires": {
1876 + "ajv": "^6.12.3",
1877 + "har-schema": "^2.0.0"
1878 + }
1879 + },
1880 + "has": {
1881 + "version": "1.0.3",
1882 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1883 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1884 + "requires": {
1885 + "function-bind": "^1.1.1"
1886 + }
1887 + },
1888 + "has-symbols": {
1889 + "version": "1.0.3",
1890 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1891 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1892 + },
1893 + "http-errors": {
1894 + "version": "2.0.0",
1895 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1896 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1897 + "requires": {
1898 + "depd": "2.0.0",
1899 + "inherits": "2.0.4",
1900 + "setprototypeof": "1.2.0",
1901 + "statuses": "2.0.1",
1902 + "toidentifier": "1.0.1"
1903 + }
1904 + },
1905 + "http-signature": {
1906 + "version": "1.2.0",
1907 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1908 + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
1909 + "requires": {
1910 + "assert-plus": "^1.0.0",
1911 + "jsprim": "^1.2.2",
1912 + "sshpk": "^1.7.0"
1913 + }
1914 + },
1915 + "iconv-lite": {
1916 + "version": "0.4.24",
1917 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1918 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1919 + "requires": {
1920 + "safer-buffer": ">= 2.1.2 < 3"
1921 + }
1922 + },
1923 + "ieee754": {
1924 + "version": "1.2.1",
1925 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1926 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
1927 + },
1928 + "inherits": {
1929 + "version": "2.0.4",
1930 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1931 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1932 + },
1933 + "ip": {
1934 + "version": "1.1.8",
1935 + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
1936 + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
1937 + },
1938 + "ipaddr.js": {
1939 + "version": "1.9.1",
1940 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1941 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1942 + },
1943 + "is-typedarray": {
1944 + "version": "1.0.0",
1945 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1946 + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
1947 + },
1948 + "isstream": {
1949 + "version": "0.1.2",
1950 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1951 + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
1952 + },
1953 + "jsbn": {
1954 + "version": "0.1.1",
1955 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1956 + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
1957 + },
1958 + "json-schema": {
1959 + "version": "0.4.0",
1960 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
1961 + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
1962 + },
1963 + "json-schema-traverse": {
1964 + "version": "0.4.1",
1965 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1966 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1967 + },
1968 + "json-stringify-safe": {
1969 + "version": "5.0.1",
1970 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1971 + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
1972 + },
1973 + "jsprim": {
1974 + "version": "1.4.2",
1975 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
1976 + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
1977 + "requires": {
1978 + "assert-plus": "1.0.0",
1979 + "extsprintf": "1.3.0",
1980 + "json-schema": "0.4.0",
1981 + "verror": "1.10.0"
1982 + }
1983 + },
1984 + "kareem": {
1985 + "version": "2.3.5",
1986 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
1987 + "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
1988 + },
1989 + "media-typer": {
1990 + "version": "0.3.0",
1991 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1992 + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
1993 + },
1994 + "memory-pager": {
1995 + "version": "1.5.0",
1996 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
1997 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1998 + "optional": true
1999 + },
2000 + "merge-descriptors": {
2001 + "version": "1.0.1",
2002 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
2003 + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
2004 + },
2005 + "methods": {
2006 + "version": "1.1.2",
2007 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
2008 + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
2009 + },
2010 + "mime": {
2011 + "version": "1.6.0",
2012 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
2013 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
2014 + },
2015 + "mime-db": {
2016 + "version": "1.52.0",
2017 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2018 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
2019 + },
2020 + "mime-types": {
2021 + "version": "2.1.35",
2022 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2023 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2024 + "requires": {
2025 + "mime-db": "1.52.0"
2026 + }
2027 + },
2028 + "mongodb": {
2029 + "version": "4.5.0",
2030 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
2031 + "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
2032 + "requires": {
2033 + "bson": "^4.6.2",
2034 + "denque": "^2.0.1",
2035 + "mongodb-connection-string-url": "^2.5.2",
2036 + "saslprep": "^1.0.3",
2037 + "socks": "^2.6.2"
2038 + }
2039 + },
2040 + "mongodb-connection-string-url": {
2041 + "version": "2.5.2",
2042 + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
2043 + "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
2044 + "requires": {
2045 + "@types/whatwg-url": "^8.2.1",
2046 + "whatwg-url": "^11.0.0"
2047 + }
2048 + },
2049 + "mongoose": {
2050 + "version": "6.3.5",
2051 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.5.tgz",
2052 + "integrity": "sha512-Ho3b/MK3lFyb87NjzyVwrjCqQ5DuLsIPSMFYDuZjaIJNhZfHNPQIcUDR1RLZ0/l+uznwo0VBu3WSwdu8EfAZTA==",
2053 + "requires": {
2054 + "bson": "^4.6.2",
2055 + "kareem": "2.3.5",
2056 + "mongodb": "4.5.0",
2057 + "mpath": "0.9.0",
2058 + "mquery": "4.0.3",
2059 + "ms": "2.1.3",
2060 + "sift": "16.0.0"
2061 + }
2062 + },
2063 + "mpath": {
2064 + "version": "0.9.0",
2065 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
2066 + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew=="
2067 + },
2068 + "mquery": {
2069 + "version": "4.0.3",
2070 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz",
2071 + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==",
2072 + "requires": {
2073 + "debug": "4.x"
2074 + }
2075 + },
2076 + "ms": {
2077 + "version": "2.1.3",
2078 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2079 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
2080 + },
2081 + "negotiator": {
2082 + "version": "0.6.3",
2083 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
2084 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
2085 + },
2086 + "oauth-sign": {
2087 + "version": "0.9.0",
2088 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
2089 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
2090 + },
2091 + "object-inspect": {
2092 + "version": "1.12.2",
2093 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
2094 + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
2095 + },
2096 + "on-finished": {
2097 + "version": "2.4.1",
2098 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
2099 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
2100 + "requires": {
2101 + "ee-first": "1.1.1"
2102 + }
2103 + },
2104 + "parseurl": {
2105 + "version": "1.3.3",
2106 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
2107 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
2108 + },
2109 + "path-to-regexp": {
2110 + "version": "0.1.7",
2111 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
2112 + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
2113 + },
2114 + "performance-now": {
2115 + "version": "2.1.0",
2116 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2117 + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
2118 + },
2119 + "proxy-addr": {
2120 + "version": "2.0.7",
2121 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
2122 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
2123 + "requires": {
2124 + "forwarded": "0.2.0",
2125 + "ipaddr.js": "1.9.1"
2126 + }
2127 + },
2128 + "psl": {
2129 + "version": "1.8.0",
2130 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
2131 + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
2132 + },
2133 + "punycode": {
2134 + "version": "2.1.1",
2135 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2136 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
2137 + },
2138 + "qs": {
2139 + "version": "6.5.3",
2140 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
2141 + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
2142 + },
2143 + "range-parser": {
2144 + "version": "1.2.1",
2145 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
2146 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
2147 + },
2148 + "raw-body": {
2149 + "version": "2.5.1",
2150 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
2151 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
2152 + "requires": {
2153 + "bytes": "3.1.2",
2154 + "http-errors": "2.0.0",
2155 + "iconv-lite": "0.4.24",
2156 + "unpipe": "1.0.0"
2157 + }
2158 + },
2159 + "request": {
2160 + "version": "2.88.2",
2161 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
2162 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
2163 + "requires": {
2164 + "aws-sign2": "~0.7.0",
2165 + "aws4": "^1.8.0",
2166 + "caseless": "~0.12.0",
2167 + "combined-stream": "~1.0.6",
2168 + "extend": "~3.0.2",
2169 + "forever-agent": "~0.6.1",
2170 + "form-data": "~2.3.2",
2171 + "har-validator": "~5.1.3",
2172 + "http-signature": "~1.2.0",
2173 + "is-typedarray": "~1.0.0",
2174 + "isstream": "~0.1.2",
2175 + "json-stringify-safe": "~5.0.1",
2176 + "mime-types": "~2.1.19",
2177 + "oauth-sign": "~0.9.0",
2178 + "performance-now": "^2.1.0",
2179 + "qs": "~6.5.2",
2180 + "safe-buffer": "^5.1.2",
2181 + "tough-cookie": "~2.5.0",
2182 + "tunnel-agent": "^0.6.0",
2183 + "uuid": "^3.3.2"
2184 + }
2185 + },
2186 + "safe-buffer": {
2187 + "version": "5.2.1",
2188 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2189 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
2190 + },
2191 + "safer-buffer": {
2192 + "version": "2.1.2",
2193 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2194 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
2195 + },
2196 + "saslprep": {
2197 + "version": "1.0.3",
2198 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
2199 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
2200 + "optional": true,
2201 + "requires": {
2202 + "sparse-bitfield": "^3.0.3"
2203 + }
2204 + },
2205 + "send": {
2206 + "version": "0.18.0",
2207 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
2208 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
2209 + "requires": {
2210 + "debug": "2.6.9",
2211 + "depd": "2.0.0",
2212 + "destroy": "1.2.0",
2213 + "encodeurl": "~1.0.2",
2214 + "escape-html": "~1.0.3",
2215 + "etag": "~1.8.1",
2216 + "fresh": "0.5.2",
2217 + "http-errors": "2.0.0",
2218 + "mime": "1.6.0",
2219 + "ms": "2.1.3",
2220 + "on-finished": "2.4.1",
2221 + "range-parser": "~1.2.1",
2222 + "statuses": "2.0.1"
2223 + },
2224 + "dependencies": {
2225 + "debug": {
2226 + "version": "2.6.9",
2227 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2228 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2229 + "requires": {
2230 + "ms": "2.0.0"
2231 + },
2232 + "dependencies": {
2233 + "ms": {
2234 + "version": "2.0.0",
2235 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2236 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
2237 + }
2238 + }
2239 + }
2240 + }
2241 + },
2242 + "serve-static": {
2243 + "version": "1.15.0",
2244 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
2245 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
2246 + "requires": {
2247 + "encodeurl": "~1.0.2",
2248 + "escape-html": "~1.0.3",
2249 + "parseurl": "~1.3.3",
2250 + "send": "0.18.0"
2251 + }
2252 + },
2253 + "setprototypeof": {
2254 + "version": "1.2.0",
2255 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
2256 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
2257 + },
2258 + "side-channel": {
2259 + "version": "1.0.4",
2260 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2261 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2262 + "requires": {
2263 + "call-bind": "^1.0.0",
2264 + "get-intrinsic": "^1.0.2",
2265 + "object-inspect": "^1.9.0"
2266 + }
2267 + },
2268 + "sift": {
2269 + "version": "16.0.0",
2270 + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
2271 + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
2272 + },
2273 + "smart-buffer": {
2274 + "version": "4.2.0",
2275 + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
2276 + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
2277 + },
2278 + "socks": {
2279 + "version": "2.6.2",
2280 + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
2281 + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
2282 + "requires": {
2283 + "ip": "^1.1.5",
2284 + "smart-buffer": "^4.2.0"
2285 + }
2286 + },
2287 + "sparse-bitfield": {
2288 + "version": "3.0.3",
2289 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
2290 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
2291 + "optional": true,
2292 + "requires": {
2293 + "memory-pager": "^1.0.2"
2294 + }
2295 + },
2296 + "ssf": {
2297 + "version": "0.11.2",
2298 + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
2299 + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
2300 + "requires": {
2301 + "frac": "~1.1.2"
2302 + }
2303 + },
2304 + "sshpk": {
2305 + "version": "1.17.0",
2306 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
2307 + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
2308 + "requires": {
2309 + "asn1": "~0.2.3",
2310 + "assert-plus": "^1.0.0",
2311 + "bcrypt-pbkdf": "^1.0.0",
2312 + "dashdash": "^1.12.0",
2313 + "ecc-jsbn": "~0.1.1",
2314 + "getpass": "^0.1.1",
2315 + "jsbn": "~0.1.0",
2316 + "safer-buffer": "^2.0.2",
2317 + "tweetnacl": "~0.14.0"
2318 + }
2319 + },
2320 + "statuses": {
2321 + "version": "2.0.1",
2322 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2323 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
2324 + },
2325 + "toidentifier": {
2326 + "version": "1.0.1",
2327 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
2328 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
2329 + },
2330 + "tough-cookie": {
2331 + "version": "2.5.0",
2332 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
2333 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
2334 + "requires": {
2335 + "psl": "^1.1.28",
2336 + "punycode": "^2.1.1"
2337 + }
2338 + },
2339 + "tr46": {
2340 + "version": "3.0.0",
2341 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
2342 + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
2343 + "requires": {
2344 + "punycode": "^2.1.1"
2345 + }
2346 + },
2347 + "tunnel-agent": {
2348 + "version": "0.6.0",
2349 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2350 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2351 + "requires": {
2352 + "safe-buffer": "^5.0.1"
2353 + }
2354 + },
2355 + "tweetnacl": {
2356 + "version": "0.14.5",
2357 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2358 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
2359 + },
2360 + "type-is": {
2361 + "version": "1.6.18",
2362 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
2363 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2364 + "requires": {
2365 + "media-typer": "0.3.0",
2366 + "mime-types": "~2.1.24"
2367 + }
2368 + },
2369 + "unpipe": {
2370 + "version": "1.0.0",
2371 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2372 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
2373 + },
2374 + "uri-js": {
2375 + "version": "4.4.1",
2376 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2377 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2378 + "requires": {
2379 + "punycode": "^2.1.0"
2380 + }
2381 + },
2382 + "utils-merge": {
2383 + "version": "1.0.1",
2384 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2385 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2386 + },
2387 + "uuid": {
2388 + "version": "3.4.0",
2389 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
2390 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
2391 + },
2392 + "vary": {
2393 + "version": "1.1.2",
2394 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2395 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2396 + },
2397 + "verror": {
2398 + "version": "1.10.0",
2399 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2400 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2401 + "requires": {
2402 + "assert-plus": "^1.0.0",
2403 + "core-util-is": "1.0.2",
2404 + "extsprintf": "^1.2.0"
2405 + }
2406 + },
2407 + "webidl-conversions": {
2408 + "version": "7.0.0",
2409 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
2410 + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
2411 + },
2412 + "whatwg-url": {
2413 + "version": "11.0.0",
2414 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
2415 + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
2416 + "requires": {
2417 + "tr46": "^3.0.0",
2418 + "webidl-conversions": "^7.0.0"
2419 + }
2420 + },
2421 + "wmf": {
2422 + "version": "1.0.2",
2423 + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
2424 + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
2425 + },
2426 + "word": {
2427 + "version": "0.3.0",
2428 + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
2429 + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
2430 + },
2431 + "xlsx": {
2432 + "version": "0.18.5",
2433 + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
2434 + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
2435 + "requires": {
2436 + "adler-32": "~1.3.0",
2437 + "cfb": "~1.2.1",
2438 + "codepage": "~1.15.0",
2439 + "crc-32": "~1.2.1",
2440 + "ssf": "~0.11.2",
2441 + "wmf": "~1.0.1",
2442 + "word": "~0.3.0"
2443 + }
2444 + }
2445 + }
2446 +}
1 { 1 {
2 + "name": "db_collect",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "AI.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1"
8 + },
9 + "keywords": [],
10 + "author": "",
11 + "license": "ISC",
2 "dependencies": { 12 "dependencies": {
13 + "express": "^4.18.1",
14 + "mongoose": "^6.3.5",
3 "request": "^2.88.2", 15 "request": "^2.88.2",
4 "xlsx": "^0.18.5" 16 "xlsx": "^0.18.5"
5 } 17 }
......
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 -{
2 - "name": "time_table",
3 - "lockfileVersion": 2,
4 - "requires": true,
5 - "packages": {
6 - "": {
7 - "dependencies": {
8 - "request": "^2.88.2",
9 - "xlsx": "^0.18.5"
10 - }
11 - },
12 - "node_modules/adler-32": {
13 - "version": "1.3.1",
14 - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
15 - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
16 - "engines": {
17 - "node": ">=0.8"
18 - }
19 - },
20 - "node_modules/ajv": {
21 - "version": "6.12.6",
22 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
23 - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
24 - "dependencies": {
25 - "fast-deep-equal": "^3.1.1",
26 - "fast-json-stable-stringify": "^2.0.0",
27 - "json-schema-traverse": "^0.4.1",
28 - "uri-js": "^4.2.2"
29 - },
30 - "funding": {
31 - "type": "github",
32 - "url": "https://github.com/sponsors/epoberezkin"
33 - }
34 - },
35 - "node_modules/asn1": {
36 - "version": "0.2.6",
37 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
38 - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
39 - "dependencies": {
40 - "safer-buffer": "~2.1.0"
41 - }
42 - },
43 - "node_modules/assert-plus": {
44 - "version": "1.0.0",
45 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
46 - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
47 - "engines": {
48 - "node": ">=0.8"
49 - }
50 - },
51 - "node_modules/asynckit": {
52 - "version": "0.4.0",
53 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
54 - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
55 - },
56 - "node_modules/aws-sign2": {
57 - "version": "0.7.0",
58 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
59 - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
60 - "engines": {
61 - "node": "*"
62 - }
63 - },
64 - "node_modules/aws4": {
65 - "version": "1.11.0",
66 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
67 - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
68 - },
69 - "node_modules/bcrypt-pbkdf": {
70 - "version": "1.0.2",
71 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
72 - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
73 - "dependencies": {
74 - "tweetnacl": "^0.14.3"
75 - }
76 - },
77 - "node_modules/caseless": {
78 - "version": "0.12.0",
79 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
80 - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
81 - },
82 - "node_modules/cfb": {
83 - "version": "1.2.2",
84 - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
85 - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
86 - "dependencies": {
87 - "adler-32": "~1.3.0",
88 - "crc-32": "~1.2.0"
89 - },
90 - "engines": {
91 - "node": ">=0.8"
92 - }
93 - },
94 - "node_modules/codepage": {
95 - "version": "1.15.0",
96 - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
97 - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
98 - "engines": {
99 - "node": ">=0.8"
100 - }
101 - },
102 - "node_modules/combined-stream": {
103 - "version": "1.0.8",
104 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
105 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
106 - "dependencies": {
107 - "delayed-stream": "~1.0.0"
108 - },
109 - "engines": {
110 - "node": ">= 0.8"
111 - }
112 - },
113 - "node_modules/core-util-is": {
114 - "version": "1.0.2",
115 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
116 - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
117 - },
118 - "node_modules/crc-32": {
119 - "version": "1.2.2",
120 - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
121 - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
122 - "bin": {
123 - "crc32": "bin/crc32.njs"
124 - },
125 - "engines": {
126 - "node": ">=0.8"
127 - }
128 - },
129 - "node_modules/dashdash": {
130 - "version": "1.14.1",
131 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
132 - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
133 - "dependencies": {
134 - "assert-plus": "^1.0.0"
135 - },
136 - "engines": {
137 - "node": ">=0.10"
138 - }
139 - },
140 - "node_modules/delayed-stream": {
141 - "version": "1.0.0",
142 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
143 - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
144 - "engines": {
145 - "node": ">=0.4.0"
146 - }
147 - },
148 - "node_modules/ecc-jsbn": {
149 - "version": "0.1.2",
150 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
151 - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
152 - "dependencies": {
153 - "jsbn": "~0.1.0",
154 - "safer-buffer": "^2.1.0"
155 - }
156 - },
157 - "node_modules/extend": {
158 - "version": "3.0.2",
159 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
160 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
161 - },
162 - "node_modules/extsprintf": {
163 - "version": "1.3.0",
164 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
165 - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
166 - "engines": [
167 - "node >=0.6.0"
168 - ]
169 - },
170 - "node_modules/fast-deep-equal": {
171 - "version": "3.1.3",
172 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
173 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
174 - },
175 - "node_modules/fast-json-stable-stringify": {
176 - "version": "2.1.0",
177 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
178 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
179 - },
180 - "node_modules/forever-agent": {
181 - "version": "0.6.1",
182 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
183 - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
184 - "engines": {
185 - "node": "*"
186 - }
187 - },
188 - "node_modules/form-data": {
189 - "version": "2.3.3",
190 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
191 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
192 - "dependencies": {
193 - "asynckit": "^0.4.0",
194 - "combined-stream": "^1.0.6",
195 - "mime-types": "^2.1.12"
196 - },
197 - "engines": {
198 - "node": ">= 0.12"
199 - }
200 - },
201 - "node_modules/frac": {
202 - "version": "1.1.2",
203 - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
204 - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
205 - "engines": {
206 - "node": ">=0.8"
207 - }
208 - },
209 - "node_modules/getpass": {
210 - "version": "0.1.7",
211 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
212 - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
213 - "dependencies": {
214 - "assert-plus": "^1.0.0"
215 - }
216 - },
217 - "node_modules/har-schema": {
218 - "version": "2.0.0",
219 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
220 - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
221 - "engines": {
222 - "node": ">=4"
223 - }
224 - },
225 - "node_modules/har-validator": {
226 - "version": "5.1.5",
227 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
228 - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
229 - "deprecated": "this library is no longer supported",
230 - "dependencies": {
231 - "ajv": "^6.12.3",
232 - "har-schema": "^2.0.0"
233 - },
234 - "engines": {
235 - "node": ">=6"
236 - }
237 - },
238 - "node_modules/http-signature": {
239 - "version": "1.2.0",
240 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
241 - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
242 - "dependencies": {
243 - "assert-plus": "^1.0.0",
244 - "jsprim": "^1.2.2",
245 - "sshpk": "^1.7.0"
246 - },
247 - "engines": {
248 - "node": ">=0.8",
249 - "npm": ">=1.3.7"
250 - }
251 - },
252 - "node_modules/is-typedarray": {
253 - "version": "1.0.0",
254 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
255 - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
256 - },
257 - "node_modules/isstream": {
258 - "version": "0.1.2",
259 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
260 - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
261 - },
262 - "node_modules/jsbn": {
263 - "version": "0.1.1",
264 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
265 - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
266 - },
267 - "node_modules/json-schema": {
268 - "version": "0.4.0",
269 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
270 - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
271 - },
272 - "node_modules/json-schema-traverse": {
273 - "version": "0.4.1",
274 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
275 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
276 - },
277 - "node_modules/json-stringify-safe": {
278 - "version": "5.0.1",
279 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
280 - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
281 - },
282 - "node_modules/jsprim": {
283 - "version": "1.4.2",
284 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
285 - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
286 - "dependencies": {
287 - "assert-plus": "1.0.0",
288 - "extsprintf": "1.3.0",
289 - "json-schema": "0.4.0",
290 - "verror": "1.10.0"
291 - },
292 - "engines": {
293 - "node": ">=0.6.0"
294 - }
295 - },
296 - "node_modules/mime-db": {
297 - "version": "1.52.0",
298 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
299 - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
300 - "engines": {
301 - "node": ">= 0.6"
302 - }
303 - },
304 - "node_modules/mime-types": {
305 - "version": "2.1.35",
306 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
307 - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
308 - "dependencies": {
309 - "mime-db": "1.52.0"
310 - },
311 - "engines": {
312 - "node": ">= 0.6"
313 - }
314 - },
315 - "node_modules/oauth-sign": {
316 - "version": "0.9.0",
317 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
318 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
319 - "engines": {
320 - "node": "*"
321 - }
322 - },
323 - "node_modules/performance-now": {
324 - "version": "2.1.0",
325 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
326 - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
327 - },
328 - "node_modules/psl": {
329 - "version": "1.8.0",
330 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
331 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
332 - },
333 - "node_modules/punycode": {
334 - "version": "2.1.1",
335 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
336 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
337 - "engines": {
338 - "node": ">=6"
339 - }
340 - },
341 - "node_modules/qs": {
342 - "version": "6.5.3",
343 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
344 - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
345 - "engines": {
346 - "node": ">=0.6"
347 - }
348 - },
349 - "node_modules/request": {
350 - "version": "2.88.2",
351 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
352 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
353 - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
354 - "dependencies": {
355 - "aws-sign2": "~0.7.0",
356 - "aws4": "^1.8.0",
357 - "caseless": "~0.12.0",
358 - "combined-stream": "~1.0.6",
359 - "extend": "~3.0.2",
360 - "forever-agent": "~0.6.1",
361 - "form-data": "~2.3.2",
362 - "har-validator": "~5.1.3",
363 - "http-signature": "~1.2.0",
364 - "is-typedarray": "~1.0.0",
365 - "isstream": "~0.1.2",
366 - "json-stringify-safe": "~5.0.1",
367 - "mime-types": "~2.1.19",
368 - "oauth-sign": "~0.9.0",
369 - "performance-now": "^2.1.0",
370 - "qs": "~6.5.2",
371 - "safe-buffer": "^5.1.2",
372 - "tough-cookie": "~2.5.0",
373 - "tunnel-agent": "^0.6.0",
374 - "uuid": "^3.3.2"
375 - },
376 - "engines": {
377 - "node": ">= 6"
378 - }
379 - },
380 - "node_modules/safe-buffer": {
381 - "version": "5.2.1",
382 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
383 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
384 - "funding": [
385 - {
386 - "type": "github",
387 - "url": "https://github.com/sponsors/feross"
388 - },
389 - {
390 - "type": "patreon",
391 - "url": "https://www.patreon.com/feross"
392 - },
393 - {
394 - "type": "consulting",
395 - "url": "https://feross.org/support"
396 - }
397 - ]
398 - },
399 - "node_modules/safer-buffer": {
400 - "version": "2.1.2",
401 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
402 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
403 - },
404 - "node_modules/ssf": {
405 - "version": "0.11.2",
406 - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
407 - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
408 - "dependencies": {
409 - "frac": "~1.1.2"
410 - },
411 - "engines": {
412 - "node": ">=0.8"
413 - }
414 - },
415 - "node_modules/sshpk": {
416 - "version": "1.17.0",
417 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
418 - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
419 - "dependencies": {
420 - "asn1": "~0.2.3",
421 - "assert-plus": "^1.0.0",
422 - "bcrypt-pbkdf": "^1.0.0",
423 - "dashdash": "^1.12.0",
424 - "ecc-jsbn": "~0.1.1",
425 - "getpass": "^0.1.1",
426 - "jsbn": "~0.1.0",
427 - "safer-buffer": "^2.0.2",
428 - "tweetnacl": "~0.14.0"
429 - },
430 - "bin": {
431 - "sshpk-conv": "bin/sshpk-conv",
432 - "sshpk-sign": "bin/sshpk-sign",
433 - "sshpk-verify": "bin/sshpk-verify"
434 - },
435 - "engines": {
436 - "node": ">=0.10.0"
437 - }
438 - },
439 - "node_modules/tough-cookie": {
440 - "version": "2.5.0",
441 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
442 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
443 - "dependencies": {
444 - "psl": "^1.1.28",
445 - "punycode": "^2.1.1"
446 - },
447 - "engines": {
448 - "node": ">=0.8"
449 - }
450 - },
451 - "node_modules/tunnel-agent": {
452 - "version": "0.6.0",
453 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
454 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
455 - "dependencies": {
456 - "safe-buffer": "^5.0.1"
457 - },
458 - "engines": {
459 - "node": "*"
460 - }
461 - },
462 - "node_modules/tweetnacl": {
463 - "version": "0.14.5",
464 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
465 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
466 - },
467 - "node_modules/uri-js": {
468 - "version": "4.4.1",
469 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
470 - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
471 - "dependencies": {
472 - "punycode": "^2.1.0"
473 - }
474 - },
475 - "node_modules/uuid": {
476 - "version": "3.4.0",
477 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
478 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
479 - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
480 - "bin": {
481 - "uuid": "bin/uuid"
482 - }
483 - },
484 - "node_modules/verror": {
485 - "version": "1.10.0",
486 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
487 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
488 - "engines": [
489 - "node >=0.6.0"
490 - ],
491 - "dependencies": {
492 - "assert-plus": "^1.0.0",
493 - "core-util-is": "1.0.2",
494 - "extsprintf": "^1.2.0"
495 - }
496 - },
497 - "node_modules/wmf": {
498 - "version": "1.0.2",
499 - "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
500 - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
501 - "engines": {
502 - "node": ">=0.8"
503 - }
504 - },
505 - "node_modules/word": {
506 - "version": "0.3.0",
507 - "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
508 - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
509 - "engines": {
510 - "node": ">=0.8"
511 - }
512 - },
513 - "node_modules/xlsx": {
514 - "version": "0.18.5",
515 - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
516 - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
517 - "dependencies": {
518 - "adler-32": "~1.3.0",
519 - "cfb": "~1.2.1",
520 - "codepage": "~1.15.0",
521 - "crc-32": "~1.2.1",
522 - "ssf": "~0.11.2",
523 - "wmf": "~1.0.1",
524 - "word": "~0.3.0"
525 - },
526 - "bin": {
527 - "xlsx": "bin/xlsx.njs"
528 - },
529 - "engines": {
530 - "node": ">=0.8"
531 - }
532 - }
533 - },
534 - "dependencies": {
535 - "adler-32": {
536 - "version": "1.3.1",
537 - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
538 - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
539 - },
540 - "ajv": {
541 - "version": "6.12.6",
542 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
543 - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
544 - "requires": {
545 - "fast-deep-equal": "^3.1.1",
546 - "fast-json-stable-stringify": "^2.0.0",
547 - "json-schema-traverse": "^0.4.1",
548 - "uri-js": "^4.2.2"
549 - }
550 - },
551 - "asn1": {
552 - "version": "0.2.6",
553 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
554 - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
555 - "requires": {
556 - "safer-buffer": "~2.1.0"
557 - }
558 - },
559 - "assert-plus": {
560 - "version": "1.0.0",
561 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
562 - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
563 - },
564 - "asynckit": {
565 - "version": "0.4.0",
566 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
567 - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
568 - },
569 - "aws-sign2": {
570 - "version": "0.7.0",
571 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
572 - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
573 - },
574 - "aws4": {
575 - "version": "1.11.0",
576 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
577 - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
578 - },
579 - "bcrypt-pbkdf": {
580 - "version": "1.0.2",
581 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
582 - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
583 - "requires": {
584 - "tweetnacl": "^0.14.3"
585 - }
586 - },
587 - "caseless": {
588 - "version": "0.12.0",
589 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
590 - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
591 - },
592 - "cfb": {
593 - "version": "1.2.2",
594 - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
595 - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
596 - "requires": {
597 - "adler-32": "~1.3.0",
598 - "crc-32": "~1.2.0"
599 - }
600 - },
601 - "codepage": {
602 - "version": "1.15.0",
603 - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
604 - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
605 - },
606 - "combined-stream": {
607 - "version": "1.0.8",
608 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
609 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
610 - "requires": {
611 - "delayed-stream": "~1.0.0"
612 - }
613 - },
614 - "core-util-is": {
615 - "version": "1.0.2",
616 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
617 - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
618 - },
619 - "crc-32": {
620 - "version": "1.2.2",
621 - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
622 - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
623 - },
624 - "dashdash": {
625 - "version": "1.14.1",
626 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
627 - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
628 - "requires": {
629 - "assert-plus": "^1.0.0"
630 - }
631 - },
632 - "delayed-stream": {
633 - "version": "1.0.0",
634 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
635 - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
636 - },
637 - "ecc-jsbn": {
638 - "version": "0.1.2",
639 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
640 - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
641 - "requires": {
642 - "jsbn": "~0.1.0",
643 - "safer-buffer": "^2.1.0"
644 - }
645 - },
646 - "extend": {
647 - "version": "3.0.2",
648 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
649 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
650 - },
651 - "extsprintf": {
652 - "version": "1.3.0",
653 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
654 - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
655 - },
656 - "fast-deep-equal": {
657 - "version": "3.1.3",
658 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
659 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
660 - },
661 - "fast-json-stable-stringify": {
662 - "version": "2.1.0",
663 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
664 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
665 - },
666 - "forever-agent": {
667 - "version": "0.6.1",
668 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
669 - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
670 - },
671 - "form-data": {
672 - "version": "2.3.3",
673 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
674 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
675 - "requires": {
676 - "asynckit": "^0.4.0",
677 - "combined-stream": "^1.0.6",
678 - "mime-types": "^2.1.12"
679 - }
680 - },
681 - "frac": {
682 - "version": "1.1.2",
683 - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
684 - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
685 - },
686 - "getpass": {
687 - "version": "0.1.7",
688 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
689 - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
690 - "requires": {
691 - "assert-plus": "^1.0.0"
692 - }
693 - },
694 - "har-schema": {
695 - "version": "2.0.0",
696 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
697 - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
698 - },
699 - "har-validator": {
700 - "version": "5.1.5",
701 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
702 - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
703 - "requires": {
704 - "ajv": "^6.12.3",
705 - "har-schema": "^2.0.0"
706 - }
707 - },
708 - "http-signature": {
709 - "version": "1.2.0",
710 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
711 - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
712 - "requires": {
713 - "assert-plus": "^1.0.0",
714 - "jsprim": "^1.2.2",
715 - "sshpk": "^1.7.0"
716 - }
717 - },
718 - "is-typedarray": {
719 - "version": "1.0.0",
720 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
721 - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
722 - },
723 - "isstream": {
724 - "version": "0.1.2",
725 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
726 - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
727 - },
728 - "jsbn": {
729 - "version": "0.1.1",
730 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
731 - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
732 - },
733 - "json-schema": {
734 - "version": "0.4.0",
735 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
736 - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
737 - },
738 - "json-schema-traverse": {
739 - "version": "0.4.1",
740 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
741 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
742 - },
743 - "json-stringify-safe": {
744 - "version": "5.0.1",
745 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
746 - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
747 - },
748 - "jsprim": {
749 - "version": "1.4.2",
750 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
751 - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
752 - "requires": {
753 - "assert-plus": "1.0.0",
754 - "extsprintf": "1.3.0",
755 - "json-schema": "0.4.0",
756 - "verror": "1.10.0"
757 - }
758 - },
759 - "mime-db": {
760 - "version": "1.52.0",
761 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
762 - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
763 - },
764 - "mime-types": {
765 - "version": "2.1.35",
766 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
767 - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
768 - "requires": {
769 - "mime-db": "1.52.0"
770 - }
771 - },
772 - "oauth-sign": {
773 - "version": "0.9.0",
774 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
775 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
776 - },
777 - "performance-now": {
778 - "version": "2.1.0",
779 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
780 - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
781 - },
782 - "psl": {
783 - "version": "1.8.0",
784 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
785 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
786 - },
787 - "punycode": {
788 - "version": "2.1.1",
789 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
790 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
791 - },
792 - "qs": {
793 - "version": "6.5.3",
794 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
795 - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
796 - },
797 - "request": {
798 - "version": "2.88.2",
799 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
800 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
801 - "requires": {
802 - "aws-sign2": "~0.7.0",
803 - "aws4": "^1.8.0",
804 - "caseless": "~0.12.0",
805 - "combined-stream": "~1.0.6",
806 - "extend": "~3.0.2",
807 - "forever-agent": "~0.6.1",
808 - "form-data": "~2.3.2",
809 - "har-validator": "~5.1.3",
810 - "http-signature": "~1.2.0",
811 - "is-typedarray": "~1.0.0",
812 - "isstream": "~0.1.2",
813 - "json-stringify-safe": "~5.0.1",
814 - "mime-types": "~2.1.19",
815 - "oauth-sign": "~0.9.0",
816 - "performance-now": "^2.1.0",
817 - "qs": "~6.5.2",
818 - "safe-buffer": "^5.1.2",
819 - "tough-cookie": "~2.5.0",
820 - "tunnel-agent": "^0.6.0",
821 - "uuid": "^3.3.2"
822 - }
823 - },
824 - "safe-buffer": {
825 - "version": "5.2.1",
826 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
827 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
828 - },
829 - "safer-buffer": {
830 - "version": "2.1.2",
831 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
832 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
833 - },
834 - "ssf": {
835 - "version": "0.11.2",
836 - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
837 - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
838 - "requires": {
839 - "frac": "~1.1.2"
840 - }
841 - },
842 - "sshpk": {
843 - "version": "1.17.0",
844 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
845 - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
846 - "requires": {
847 - "asn1": "~0.2.3",
848 - "assert-plus": "^1.0.0",
849 - "bcrypt-pbkdf": "^1.0.0",
850 - "dashdash": "^1.12.0",
851 - "ecc-jsbn": "~0.1.1",
852 - "getpass": "^0.1.1",
853 - "jsbn": "~0.1.0",
854 - "safer-buffer": "^2.0.2",
855 - "tweetnacl": "~0.14.0"
856 - }
857 - },
858 - "tough-cookie": {
859 - "version": "2.5.0",
860 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
861 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
862 - "requires": {
863 - "psl": "^1.1.28",
864 - "punycode": "^2.1.1"
865 - }
866 - },
867 - "tunnel-agent": {
868 - "version": "0.6.0",
869 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
870 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
871 - "requires": {
872 - "safe-buffer": "^5.0.1"
873 - }
874 - },
875 - "tweetnacl": {
876 - "version": "0.14.5",
877 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
878 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
879 - },
880 - "uri-js": {
881 - "version": "4.4.1",
882 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
883 - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
884 - "requires": {
885 - "punycode": "^2.1.0"
886 - }
887 - },
888 - "uuid": {
889 - "version": "3.4.0",
890 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
891 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
892 - },
893 - "verror": {
894 - "version": "1.10.0",
895 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
896 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
897 - "requires": {
898 - "assert-plus": "^1.0.0",
899 - "core-util-is": "1.0.2",
900 - "extsprintf": "^1.2.0"
901 - }
902 - },
903 - "wmf": {
904 - "version": "1.0.2",
905 - "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
906 - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
907 - },
908 - "word": {
909 - "version": "0.3.0",
910 - "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
911 - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
912 - },
913 - "xlsx": {
914 - "version": "0.18.5",
915 - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
916 - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
917 - "requires": {
918 - "adler-32": "~1.3.0",
919 - "cfb": "~1.2.1",
920 - "codepage": "~1.15.0",
921 - "crc-32": "~1.2.1",
922 - "ssf": "~0.11.2",
923 - "wmf": "~1.0.1",
924 - "word": "~0.3.0"
925 - }
926 - }
927 - }
928 -}
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