Showing
26 changed files
with
1964 additions
and
0 deletions
README.md
0 → 100644
1 | +# 나만의 편성표 - My Personal Broadcating Schedule | ||
2 | +## Description | ||
3 | +- 오픈소스SW개발 프로젝트 | ||
4 | +- 관심있는 인물이 출연하는 방송 프로그램을 검색하여 나만의 편성표를 만든다. | ||
5 | + | ||
6 | +## Environment | ||
7 | +- Backend - Node.js / Express | ||
8 | +- Frontend - HTML5/CSS/Javascript | ||
9 | +- DB - MongoDB | ||
10 | + | ||
11 | +## Prerequisite | ||
12 | +- Terminal Environment | ||
13 | + | ||
14 | +- 1.Clone | ||
15 | +> git clone \<THIS-PROJECT\> | ||
16 | + | ||
17 | +- 2.Install modules | ||
18 | +> cd \<THIS-PROJECT\> | ||
19 | +> npm install | ||
20 | + | ||
21 | +- 3.Run | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/app.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +var app = express(); | ||
3 | +var bodyParser = require('body-parser'); | ||
4 | +var session = require('express-session'); | ||
5 | +var mongoose = require('mongoose'); | ||
6 | +var passport = require('passport'); | ||
7 | + | ||
8 | +//DB연결 | ||
9 | +mongoose.connect('mongodb://username:pwd@host/dbname'); | ||
10 | +mongoose.Promise = global.Promise; | ||
11 | +var db = mongoose.connection; | ||
12 | + | ||
13 | +//연결실패 | ||
14 | +db.on('error', function() | ||
15 | +{ | ||
16 | + console.log('Connection Failed!'); | ||
17 | +}); | ||
18 | + | ||
19 | +//연결 성공 | ||
20 | +db.once('open', function() | ||
21 | +{ | ||
22 | + console.log('Connected!'); | ||
23 | +}); | ||
24 | + | ||
25 | +// DB모델정의 | ||
26 | +var Users = require('./models/users'); | ||
27 | + | ||
28 | +// session | ||
29 | +app.use(session({ | ||
30 | + secret: 'keyboard cat', | ||
31 | + resave: false, | ||
32 | + saveUninitialized: true | ||
33 | +})); | ||
34 | + | ||
35 | +// passport setting | ||
36 | +require('./passport')(passport); | ||
37 | +app.use(passport.initialize()); | ||
38 | +app.use(passport.session()); //로그인 세션 유지 | ||
39 | +// 주의! passport.session을 사용하기 전에 app.use(session(~))설정을 해줘야 한다. | ||
40 | +// 그렇지 않으면 passport가 session을 사용하지 못한다. | ||
41 | +// app.use는 동기식으로 작동하기 때문에 순서에 유의해야한다. | ||
42 | + | ||
43 | + | ||
44 | +// ejs사용 | ||
45 | +// json사용설정 | ||
46 | +app.set('view engine','ejs'); | ||
47 | +app.use(bodyParser.json()); | ||
48 | +app.use(bodyParser.urlencoded({extended: true})); | ||
49 | + | ||
50 | +// router import | ||
51 | +var router = require('./routing')(app, Users); | ||
52 | + | ||
53 | +var server = app.listen(23023, function() | ||
54 | +{ | ||
55 | + var host = server.address().address; | ||
56 | + var port = server.address().port; | ||
57 | + console.log("http://%s:%s",host, port); | ||
58 | +}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/models/users.js
0 → 100644
1 | +var mongoose = require('mongoose'); | ||
2 | +var bcrypt = require('bcrypt-nodejs'); | ||
3 | + | ||
4 | +var userSchema = mongoose.Schema | ||
5 | +( | ||
6 | + { | ||
7 | + id: String, | ||
8 | + pwd: String, | ||
9 | + name: String | ||
10 | + } | ||
11 | +); | ||
12 | + | ||
13 | +// 패스워드 암호화 | ||
14 | +userSchema.methods.generateHash = function(password) | ||
15 | +{ | ||
16 | + // password hash를 만든다 | ||
17 | + return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); | ||
18 | +}; | ||
19 | + | ||
20 | +// 패스워드 검증 | ||
21 | +userSchema.methods.validPassword = function(password) | ||
22 | +{ | ||
23 | + // 기존의 해쉬값과 들어온 패스워드를 해쉬값으로 만든 값을 비교한다. | ||
24 | + // 주의! 기존의 값이 해쉬가 아니라면 비교불가. 따라서 에러. | ||
25 | + // 또한 나는 bcrypt를 bcryt로 잘못 썼는데 잘 안보인다... 조심해라... | ||
26 | + //var good = bcrypt.hashSync(this.pwd, bcrypt.genSaltSync(8), null); | ||
27 | + return bcrypt.compareSync(password, this.pwd); | ||
28 | +}; | ||
29 | + | ||
30 | +module.exports = mongoose.model('user',userSchema); | ||
31 | + |
server_db/mongodb_connect.js
0 → 100644
1 | +var mongoose = require('mongoose'); | ||
2 | +mongoose.connect('mongodb://username:pwd@host/dbname'); | ||
3 | +var db = mongoose.connection; | ||
4 | + | ||
5 | +//연결실패 | ||
6 | +db.on('error', function(){ | ||
7 | + console.log('Connection Failed!'); | ||
8 | +}); | ||
9 | +//연결 성공 | ||
10 | +db.once('open', function() { | ||
11 | + console.log('Connected!'); | ||
12 | +}); | ||
13 | + | ||
14 | + | ||
15 | + | ||
16 | +var testSchema = mongoose.Schema | ||
17 | +({ | ||
18 | + name: String | ||
19 | +}); | ||
20 | + | ||
21 | +var TestModel = mongoose.model("TestModel", testSchema); | ||
22 | + | ||
23 | +/* | ||
24 | +var test = new TestModel({ name: "test" }); | ||
25 | + | ||
26 | +test.save(function(err, test) | ||
27 | +{ | ||
28 | + if(err){console.log(err);} | ||
29 | + else{console.log("Success!");} | ||
30 | + console.log("ok4"); | ||
31 | +}); | ||
32 | +*/ | ||
33 | + | ||
34 | +TestModel.find(function(err, test){ | ||
35 | + if(err){console.log(err);} | ||
36 | + else{ | ||
37 | + console.log(test); | ||
38 | + } | ||
39 | +}); | ||
40 | + | ||
41 | + | ||
42 | +db.close() | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/package-lock.json
0 → 100644
1 | +{ | ||
2 | + "name": "my-broadcasting-ksw", | ||
3 | + "version": "1.0.0", | ||
4 | + "lockfileVersion": 1, | ||
5 | + "requires": true, | ||
6 | + "dependencies": { | ||
7 | + "@types/node": { | ||
8 | + "version": "10.12.10", | ||
9 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", | ||
10 | + "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==" | ||
11 | + }, | ||
12 | + "accepts": { | ||
13 | + "version": "1.3.5", | ||
14 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | ||
15 | + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", | ||
16 | + "requires": { | ||
17 | + "mime-types": "2.1.21", | ||
18 | + "negotiator": "0.6.1" | ||
19 | + } | ||
20 | + }, | ||
21 | + "ajv": { | ||
22 | + "version": "6.5.5", | ||
23 | + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", | ||
24 | + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", | ||
25 | + "requires": { | ||
26 | + "fast-deep-equal": "2.0.1", | ||
27 | + "fast-json-stable-stringify": "2.0.0", | ||
28 | + "json-schema-traverse": "0.4.1", | ||
29 | + "uri-js": "4.2.2" | ||
30 | + } | ||
31 | + }, | ||
32 | + "array-flatten": { | ||
33 | + "version": "1.1.1", | ||
34 | + "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||
35 | + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" | ||
36 | + }, | ||
37 | + "asn1": { | ||
38 | + "version": "0.2.4", | ||
39 | + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", | ||
40 | + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", | ||
41 | + "requires": { | ||
42 | + "safer-buffer": "2.1.2" | ||
43 | + } | ||
44 | + }, | ||
45 | + "assert-plus": { | ||
46 | + "version": "1.0.0", | ||
47 | + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
48 | + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | ||
49 | + }, | ||
50 | + "async": { | ||
51 | + "version": "2.6.1", | ||
52 | + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", | ||
53 | + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", | ||
54 | + "requires": { | ||
55 | + "lodash": "4.17.11" | ||
56 | + } | ||
57 | + }, | ||
58 | + "asynckit": { | ||
59 | + "version": "0.4.0", | ||
60 | + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||
61 | + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | ||
62 | + }, | ||
63 | + "aws-sign2": { | ||
64 | + "version": "0.7.0", | ||
65 | + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", | ||
66 | + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" | ||
67 | + }, | ||
68 | + "aws4": { | ||
69 | + "version": "1.8.0", | ||
70 | + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", | ||
71 | + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" | ||
72 | + }, | ||
73 | + "balanced-match": { | ||
74 | + "version": "1.0.0", | ||
75 | + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||
76 | + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | ||
77 | + }, | ||
78 | + "bcrypt-nodejs": { | ||
79 | + "version": "0.0.3", | ||
80 | + "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz", | ||
81 | + "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs=" | ||
82 | + }, | ||
83 | + "bcrypt-pbkdf": { | ||
84 | + "version": "1.0.2", | ||
85 | + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | ||
86 | + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", | ||
87 | + "requires": { | ||
88 | + "tweetnacl": "0.14.5" | ||
89 | + } | ||
90 | + }, | ||
91 | + "bluebird": { | ||
92 | + "version": "3.5.1", | ||
93 | + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", | ||
94 | + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" | ||
95 | + }, | ||
96 | + "body-parser": { | ||
97 | + "version": "1.18.3", | ||
98 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", | ||
99 | + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", | ||
100 | + "requires": { | ||
101 | + "bytes": "3.0.0", | ||
102 | + "content-type": "1.0.4", | ||
103 | + "debug": "2.6.9", | ||
104 | + "depd": "1.1.2", | ||
105 | + "http-errors": "1.6.3", | ||
106 | + "iconv-lite": "0.4.23", | ||
107 | + "on-finished": "2.3.0", | ||
108 | + "qs": "6.5.2", | ||
109 | + "raw-body": "2.3.3", | ||
110 | + "type-is": "1.6.16" | ||
111 | + }, | ||
112 | + "dependencies": { | ||
113 | + "debug": { | ||
114 | + "version": "2.6.9", | ||
115 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
116 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
117 | + "requires": { | ||
118 | + "ms": "2.0.0" | ||
119 | + } | ||
120 | + } | ||
121 | + } | ||
122 | + }, | ||
123 | + "boolbase": { | ||
124 | + "version": "1.0.0", | ||
125 | + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", | ||
126 | + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" | ||
127 | + }, | ||
128 | + "brace-expansion": { | ||
129 | + "version": "1.1.11", | ||
130 | + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||
131 | + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
132 | + "requires": { | ||
133 | + "balanced-match": "1.0.0", | ||
134 | + "concat-map": "0.0.1" | ||
135 | + } | ||
136 | + }, | ||
137 | + "bson": { | ||
138 | + "version": "1.1.0", | ||
139 | + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", | ||
140 | + "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" | ||
141 | + }, | ||
142 | + "bytes": { | ||
143 | + "version": "3.0.0", | ||
144 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", | ||
145 | + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" | ||
146 | + }, | ||
147 | + "caseless": { | ||
148 | + "version": "0.12.0", | ||
149 | + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||
150 | + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | ||
151 | + }, | ||
152 | + "cheerio": { | ||
153 | + "version": "1.0.0-rc.2", | ||
154 | + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", | ||
155 | + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", | ||
156 | + "requires": { | ||
157 | + "css-select": "1.2.0", | ||
158 | + "dom-serializer": "0.1.0", | ||
159 | + "entities": "1.1.2", | ||
160 | + "htmlparser2": "3.10.0", | ||
161 | + "lodash": "4.17.11", | ||
162 | + "parse5": "3.0.3" | ||
163 | + } | ||
164 | + }, | ||
165 | + "combined-stream": { | ||
166 | + "version": "1.0.7", | ||
167 | + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", | ||
168 | + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", | ||
169 | + "requires": { | ||
170 | + "delayed-stream": "1.0.0" | ||
171 | + } | ||
172 | + }, | ||
173 | + "concat-map": { | ||
174 | + "version": "0.0.1", | ||
175 | + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
176 | + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||
177 | + }, | ||
178 | + "content-disposition": { | ||
179 | + "version": "0.5.2", | ||
180 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", | ||
181 | + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" | ||
182 | + }, | ||
183 | + "content-type": { | ||
184 | + "version": "1.0.4", | ||
185 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||
186 | + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" | ||
187 | + }, | ||
188 | + "cookie": { | ||
189 | + "version": "0.3.1", | ||
190 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", | ||
191 | + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" | ||
192 | + }, | ||
193 | + "cookie-signature": { | ||
194 | + "version": "1.0.6", | ||
195 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||
196 | + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | ||
197 | + }, | ||
198 | + "core-js": { | ||
199 | + "version": "2.3.0", | ||
200 | + "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", | ||
201 | + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=" | ||
202 | + }, | ||
203 | + "core-util-is": { | ||
204 | + "version": "1.0.2", | ||
205 | + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||
206 | + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||
207 | + }, | ||
208 | + "crc": { | ||
209 | + "version": "3.4.4", | ||
210 | + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", | ||
211 | + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" | ||
212 | + }, | ||
213 | + "css-select": { | ||
214 | + "version": "1.2.0", | ||
215 | + "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", | ||
216 | + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", | ||
217 | + "requires": { | ||
218 | + "boolbase": "1.0.0", | ||
219 | + "css-what": "2.1.2", | ||
220 | + "domutils": "1.5.1", | ||
221 | + "nth-check": "1.0.2" | ||
222 | + } | ||
223 | + }, | ||
224 | + "css-what": { | ||
225 | + "version": "2.1.2", | ||
226 | + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", | ||
227 | + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==" | ||
228 | + }, | ||
229 | + "dashdash": { | ||
230 | + "version": "1.14.1", | ||
231 | + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
232 | + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | ||
233 | + "requires": { | ||
234 | + "assert-plus": "1.0.0" | ||
235 | + } | ||
236 | + }, | ||
237 | + "debug": { | ||
238 | + "version": "3.1.0", | ||
239 | + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | ||
240 | + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | ||
241 | + "requires": { | ||
242 | + "ms": "2.0.0" | ||
243 | + } | ||
244 | + }, | ||
245 | + "delayed-stream": { | ||
246 | + "version": "1.0.0", | ||
247 | + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||
248 | + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||
249 | + }, | ||
250 | + "depd": { | ||
251 | + "version": "1.1.2", | ||
252 | + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | ||
253 | + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" | ||
254 | + }, | ||
255 | + "destroy": { | ||
256 | + "version": "1.0.4", | ||
257 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", | ||
258 | + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" | ||
259 | + }, | ||
260 | + "dom-serializer": { | ||
261 | + "version": "0.1.0", | ||
262 | + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", | ||
263 | + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", | ||
264 | + "requires": { | ||
265 | + "domelementtype": "1.1.3", | ||
266 | + "entities": "1.1.2" | ||
267 | + }, | ||
268 | + "dependencies": { | ||
269 | + "domelementtype": { | ||
270 | + "version": "1.1.3", | ||
271 | + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", | ||
272 | + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" | ||
273 | + } | ||
274 | + } | ||
275 | + }, | ||
276 | + "domelementtype": { | ||
277 | + "version": "1.2.1", | ||
278 | + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", | ||
279 | + "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==" | ||
280 | + }, | ||
281 | + "domhandler": { | ||
282 | + "version": "2.4.2", | ||
283 | + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", | ||
284 | + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", | ||
285 | + "requires": { | ||
286 | + "domelementtype": "1.2.1" | ||
287 | + } | ||
288 | + }, | ||
289 | + "domutils": { | ||
290 | + "version": "1.5.1", | ||
291 | + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", | ||
292 | + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", | ||
293 | + "requires": { | ||
294 | + "dom-serializer": "0.1.0", | ||
295 | + "domelementtype": "1.2.1" | ||
296 | + } | ||
297 | + }, | ||
298 | + "ecc-jsbn": { | ||
299 | + "version": "0.1.2", | ||
300 | + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | ||
301 | + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", | ||
302 | + "requires": { | ||
303 | + "jsbn": "0.1.1", | ||
304 | + "safer-buffer": "2.1.2" | ||
305 | + } | ||
306 | + }, | ||
307 | + "ee-first": { | ||
308 | + "version": "1.1.1", | ||
309 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
310 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | ||
311 | + }, | ||
312 | + "ejs": { | ||
313 | + "version": "2.6.1", | ||
314 | + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", | ||
315 | + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" | ||
316 | + }, | ||
317 | + "encodeurl": { | ||
318 | + "version": "1.0.2", | ||
319 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
320 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" | ||
321 | + }, | ||
322 | + "entities": { | ||
323 | + "version": "1.1.2", | ||
324 | + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | ||
325 | + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" | ||
326 | + }, | ||
327 | + "es6-promise": { | ||
328 | + "version": "3.0.2", | ||
329 | + "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", | ||
330 | + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" | ||
331 | + }, | ||
332 | + "escape-html": { | ||
333 | + "version": "1.0.3", | ||
334 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
335 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" | ||
336 | + }, | ||
337 | + "etag": { | ||
338 | + "version": "1.8.1", | ||
339 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
340 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" | ||
341 | + }, | ||
342 | + "express": { | ||
343 | + "version": "4.16.4", | ||
344 | + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", | ||
345 | + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", | ||
346 | + "requires": { | ||
347 | + "accepts": "1.3.5", | ||
348 | + "array-flatten": "1.1.1", | ||
349 | + "body-parser": "1.18.3", | ||
350 | + "content-disposition": "0.5.2", | ||
351 | + "content-type": "1.0.4", | ||
352 | + "cookie": "0.3.1", | ||
353 | + "cookie-signature": "1.0.6", | ||
354 | + "debug": "2.6.9", | ||
355 | + "depd": "1.1.2", | ||
356 | + "encodeurl": "1.0.2", | ||
357 | + "escape-html": "1.0.3", | ||
358 | + "etag": "1.8.1", | ||
359 | + "finalhandler": "1.1.1", | ||
360 | + "fresh": "0.5.2", | ||
361 | + "merge-descriptors": "1.0.1", | ||
362 | + "methods": "1.1.2", | ||
363 | + "on-finished": "2.3.0", | ||
364 | + "parseurl": "1.3.2", | ||
365 | + "path-to-regexp": "0.1.7", | ||
366 | + "proxy-addr": "2.0.4", | ||
367 | + "qs": "6.5.2", | ||
368 | + "range-parser": "1.2.0", | ||
369 | + "safe-buffer": "5.1.2", | ||
370 | + "send": "0.16.2", | ||
371 | + "serve-static": "1.13.2", | ||
372 | + "setprototypeof": "1.1.0", | ||
373 | + "statuses": "1.4.0", | ||
374 | + "type-is": "1.6.16", | ||
375 | + "utils-merge": "1.0.1", | ||
376 | + "vary": "1.1.2" | ||
377 | + }, | ||
378 | + "dependencies": { | ||
379 | + "debug": { | ||
380 | + "version": "2.6.9", | ||
381 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
382 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
383 | + "requires": { | ||
384 | + "ms": "2.0.0" | ||
385 | + } | ||
386 | + } | ||
387 | + } | ||
388 | + }, | ||
389 | + "express-session": { | ||
390 | + "version": "1.15.6", | ||
391 | + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", | ||
392 | + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", | ||
393 | + "requires": { | ||
394 | + "cookie": "0.3.1", | ||
395 | + "cookie-signature": "1.0.6", | ||
396 | + "crc": "3.4.4", | ||
397 | + "debug": "2.6.9", | ||
398 | + "depd": "1.1.2", | ||
399 | + "on-headers": "1.0.1", | ||
400 | + "parseurl": "1.3.2", | ||
401 | + "uid-safe": "2.1.5", | ||
402 | + "utils-merge": "1.0.1" | ||
403 | + }, | ||
404 | + "dependencies": { | ||
405 | + "debug": { | ||
406 | + "version": "2.6.9", | ||
407 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
408 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
409 | + "requires": { | ||
410 | + "ms": "2.0.0" | ||
411 | + } | ||
412 | + } | ||
413 | + } | ||
414 | + }, | ||
415 | + "extend": { | ||
416 | + "version": "3.0.2", | ||
417 | + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", | ||
418 | + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" | ||
419 | + }, | ||
420 | + "extsprintf": { | ||
421 | + "version": "1.3.0", | ||
422 | + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", | ||
423 | + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" | ||
424 | + }, | ||
425 | + "fast-deep-equal": { | ||
426 | + "version": "2.0.1", | ||
427 | + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", | ||
428 | + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" | ||
429 | + }, | ||
430 | + "fast-json-stable-stringify": { | ||
431 | + "version": "2.0.0", | ||
432 | + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", | ||
433 | + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" | ||
434 | + }, | ||
435 | + "finalhandler": { | ||
436 | + "version": "1.1.1", | ||
437 | + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", | ||
438 | + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", | ||
439 | + "requires": { | ||
440 | + "debug": "2.6.9", | ||
441 | + "encodeurl": "1.0.2", | ||
442 | + "escape-html": "1.0.3", | ||
443 | + "on-finished": "2.3.0", | ||
444 | + "parseurl": "1.3.2", | ||
445 | + "statuses": "1.4.0", | ||
446 | + "unpipe": "1.0.0" | ||
447 | + }, | ||
448 | + "dependencies": { | ||
449 | + "debug": { | ||
450 | + "version": "2.6.9", | ||
451 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
452 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
453 | + "requires": { | ||
454 | + "ms": "2.0.0" | ||
455 | + } | ||
456 | + } | ||
457 | + } | ||
458 | + }, | ||
459 | + "forever-agent": { | ||
460 | + "version": "0.6.1", | ||
461 | + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||
462 | + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" | ||
463 | + }, | ||
464 | + "form-data": { | ||
465 | + "version": "2.3.3", | ||
466 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", | ||
467 | + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", | ||
468 | + "requires": { | ||
469 | + "asynckit": "0.4.0", | ||
470 | + "combined-stream": "1.0.7", | ||
471 | + "mime-types": "2.1.21" | ||
472 | + } | ||
473 | + }, | ||
474 | + "forwarded": { | ||
475 | + "version": "0.1.2", | ||
476 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", | ||
477 | + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" | ||
478 | + }, | ||
479 | + "fresh": { | ||
480 | + "version": "0.5.2", | ||
481 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
482 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" | ||
483 | + }, | ||
484 | + "fs.realpath": { | ||
485 | + "version": "1.0.0", | ||
486 | + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||
487 | + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | ||
488 | + }, | ||
489 | + "getpass": { | ||
490 | + "version": "0.1.7", | ||
491 | + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
492 | + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | ||
493 | + "requires": { | ||
494 | + "assert-plus": "1.0.0" | ||
495 | + } | ||
496 | + }, | ||
497 | + "glob": { | ||
498 | + "version": "7.1.3", | ||
499 | + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", | ||
500 | + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", | ||
501 | + "requires": { | ||
502 | + "fs.realpath": "1.0.0", | ||
503 | + "inflight": "1.0.6", | ||
504 | + "inherits": "2.0.3", | ||
505 | + "minimatch": "3.0.4", | ||
506 | + "once": "1.4.0", | ||
507 | + "path-is-absolute": "1.0.1" | ||
508 | + } | ||
509 | + }, | ||
510 | + "har-schema": { | ||
511 | + "version": "2.0.0", | ||
512 | + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", | ||
513 | + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" | ||
514 | + }, | ||
515 | + "har-validator": { | ||
516 | + "version": "5.1.3", | ||
517 | + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", | ||
518 | + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", | ||
519 | + "requires": { | ||
520 | + "ajv": "6.5.5", | ||
521 | + "har-schema": "2.0.0" | ||
522 | + } | ||
523 | + }, | ||
524 | + "htmlparser2": { | ||
525 | + "version": "3.10.0", | ||
526 | + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", | ||
527 | + "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", | ||
528 | + "requires": { | ||
529 | + "domelementtype": "1.3.0", | ||
530 | + "domhandler": "2.4.2", | ||
531 | + "domutils": "1.5.1", | ||
532 | + "entities": "1.1.2", | ||
533 | + "inherits": "2.0.3", | ||
534 | + "readable-stream": "3.0.6" | ||
535 | + }, | ||
536 | + "dependencies": { | ||
537 | + "domelementtype": { | ||
538 | + "version": "1.3.0", | ||
539 | + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", | ||
540 | + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" | ||
541 | + } | ||
542 | + } | ||
543 | + }, | ||
544 | + "http-errors": { | ||
545 | + "version": "1.6.3", | ||
546 | + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", | ||
547 | + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", | ||
548 | + "requires": { | ||
549 | + "depd": "1.1.2", | ||
550 | + "inherits": "2.0.3", | ||
551 | + "setprototypeof": "1.1.0", | ||
552 | + "statuses": "1.4.0" | ||
553 | + } | ||
554 | + }, | ||
555 | + "http-signature": { | ||
556 | + "version": "1.2.0", | ||
557 | + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", | ||
558 | + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", | ||
559 | + "requires": { | ||
560 | + "assert-plus": "1.0.0", | ||
561 | + "jsprim": "1.4.1", | ||
562 | + "sshpk": "1.15.2" | ||
563 | + } | ||
564 | + }, | ||
565 | + "iconv": { | ||
566 | + "version": "2.3.1", | ||
567 | + "resolved": "https://registry.npmjs.org/iconv/-/iconv-2.3.1.tgz", | ||
568 | + "integrity": "sha512-6gvRjd4frcMhTbWpdESntx1HGlvyezMjAH0HOmimelzfpDhUQhQ1DBoEeCabfmj0N0/0zJzr1E1P1O420Z+Bww==", | ||
569 | + "requires": { | ||
570 | + "nan": "2.11.1", | ||
571 | + "safer-buffer": "2.1.2" | ||
572 | + } | ||
573 | + }, | ||
574 | + "iconv-lite": { | ||
575 | + "version": "0.4.23", | ||
576 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", | ||
577 | + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", | ||
578 | + "requires": { | ||
579 | + "safer-buffer": "2.1.2" | ||
580 | + } | ||
581 | + }, | ||
582 | + "immediate": { | ||
583 | + "version": "3.0.6", | ||
584 | + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", | ||
585 | + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" | ||
586 | + }, | ||
587 | + "inflight": { | ||
588 | + "version": "1.0.6", | ||
589 | + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||
590 | + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
591 | + "requires": { | ||
592 | + "once": "1.4.0", | ||
593 | + "wrappy": "1.0.2" | ||
594 | + } | ||
595 | + }, | ||
596 | + "inherits": { | ||
597 | + "version": "2.0.3", | ||
598 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||
599 | + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||
600 | + }, | ||
601 | + "ipaddr.js": { | ||
602 | + "version": "1.8.0", | ||
603 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", | ||
604 | + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" | ||
605 | + }, | ||
606 | + "is-typedarray": { | ||
607 | + "version": "1.0.0", | ||
608 | + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||
609 | + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" | ||
610 | + }, | ||
611 | + "isarray": { | ||
612 | + "version": "1.0.0", | ||
613 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||
614 | + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | ||
615 | + }, | ||
616 | + "isstream": { | ||
617 | + "version": "0.1.2", | ||
618 | + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||
619 | + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" | ||
620 | + }, | ||
621 | + "jsbn": { | ||
622 | + "version": "0.1.1", | ||
623 | + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||
624 | + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" | ||
625 | + }, | ||
626 | + "json-schema": { | ||
627 | + "version": "0.2.3", | ||
628 | + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", | ||
629 | + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" | ||
630 | + }, | ||
631 | + "json-schema-traverse": { | ||
632 | + "version": "0.4.1", | ||
633 | + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", | ||
634 | + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" | ||
635 | + }, | ||
636 | + "json-stringify-safe": { | ||
637 | + "version": "5.0.1", | ||
638 | + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||
639 | + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||
640 | + }, | ||
641 | + "jsprim": { | ||
642 | + "version": "1.4.1", | ||
643 | + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | ||
644 | + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", | ||
645 | + "requires": { | ||
646 | + "assert-plus": "1.0.0", | ||
647 | + "extsprintf": "1.3.0", | ||
648 | + "json-schema": "0.2.3", | ||
649 | + "verror": "1.10.0" | ||
650 | + } | ||
651 | + }, | ||
652 | + "jszip": { | ||
653 | + "version": "3.1.5", | ||
654 | + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", | ||
655 | + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", | ||
656 | + "requires": { | ||
657 | + "core-js": "2.3.0", | ||
658 | + "es6-promise": "3.0.2", | ||
659 | + "lie": "3.1.1", | ||
660 | + "pako": "1.0.7", | ||
661 | + "readable-stream": "2.0.6" | ||
662 | + }, | ||
663 | + "dependencies": { | ||
664 | + "readable-stream": { | ||
665 | + "version": "2.0.6", | ||
666 | + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", | ||
667 | + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", | ||
668 | + "requires": { | ||
669 | + "core-util-is": "1.0.2", | ||
670 | + "inherits": "2.0.3", | ||
671 | + "isarray": "1.0.0", | ||
672 | + "process-nextick-args": "1.0.7", | ||
673 | + "string_decoder": "0.10.31", | ||
674 | + "util-deprecate": "1.0.2" | ||
675 | + } | ||
676 | + }, | ||
677 | + "string_decoder": { | ||
678 | + "version": "0.10.31", | ||
679 | + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", | ||
680 | + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" | ||
681 | + } | ||
682 | + } | ||
683 | + }, | ||
684 | + "kareem": { | ||
685 | + "version": "2.3.0", | ||
686 | + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz", | ||
687 | + "integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg==" | ||
688 | + }, | ||
689 | + "lie": { | ||
690 | + "version": "3.1.1", | ||
691 | + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", | ||
692 | + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", | ||
693 | + "requires": { | ||
694 | + "immediate": "3.0.6" | ||
695 | + } | ||
696 | + }, | ||
697 | + "lodash": { | ||
698 | + "version": "4.17.11", | ||
699 | + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", | ||
700 | + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" | ||
701 | + }, | ||
702 | + "lodash.get": { | ||
703 | + "version": "4.4.2", | ||
704 | + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", | ||
705 | + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" | ||
706 | + }, | ||
707 | + "media-typer": { | ||
708 | + "version": "0.3.0", | ||
709 | + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||
710 | + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | ||
711 | + }, | ||
712 | + "memory-pager": { | ||
713 | + "version": "1.1.0", | ||
714 | + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", | ||
715 | + "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==", | ||
716 | + "optional": true | ||
717 | + }, | ||
718 | + "merge-descriptors": { | ||
719 | + "version": "1.0.1", | ||
720 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||
721 | + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" | ||
722 | + }, | ||
723 | + "methods": { | ||
724 | + "version": "1.1.2", | ||
725 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | ||
726 | + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" | ||
727 | + }, | ||
728 | + "mime": { | ||
729 | + "version": "1.4.1", | ||
730 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", | ||
731 | + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" | ||
732 | + }, | ||
733 | + "mime-db": { | ||
734 | + "version": "1.37.0", | ||
735 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", | ||
736 | + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" | ||
737 | + }, | ||
738 | + "mime-types": { | ||
739 | + "version": "2.1.21", | ||
740 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", | ||
741 | + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", | ||
742 | + "requires": { | ||
743 | + "mime-db": "1.37.0" | ||
744 | + } | ||
745 | + }, | ||
746 | + "minimatch": { | ||
747 | + "version": "3.0.4", | ||
748 | + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
749 | + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
750 | + "requires": { | ||
751 | + "brace-expansion": "1.1.11" | ||
752 | + } | ||
753 | + }, | ||
754 | + "mongodb": { | ||
755 | + "version": "3.1.10", | ||
756 | + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.10.tgz", | ||
757 | + "integrity": "sha512-Uml42GeFxhTGQVml1XQ4cD0o/rp7J2ROy0fdYUcVitoE7vFqEhKH4TYVqRDpQr/bXtCJVxJdNQC1ntRxNREkPQ==", | ||
758 | + "requires": { | ||
759 | + "mongodb-core": "3.1.9", | ||
760 | + "safe-buffer": "5.1.2" | ||
761 | + } | ||
762 | + }, | ||
763 | + "mongodb-core": { | ||
764 | + "version": "3.1.9", | ||
765 | + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.9.tgz", | ||
766 | + "integrity": "sha512-MJpciDABXMchrZphh3vMcqu8hkNf/Mi+Gk6btOimVg1XMxLXh87j6FAvRm+KmwD1A9fpu3qRQYcbQe4egj23og==", | ||
767 | + "requires": { | ||
768 | + "bson": "1.1.0", | ||
769 | + "require_optional": "1.0.1", | ||
770 | + "safe-buffer": "5.1.2", | ||
771 | + "saslprep": "1.0.2" | ||
772 | + } | ||
773 | + }, | ||
774 | + "mongoose": { | ||
775 | + "version": "5.3.14", | ||
776 | + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.3.14.tgz", | ||
777 | + "integrity": "sha512-Vt7uC0+/SuPb+x6IwbtXl4tkUER1xU9INlfrDK1RdfsvvEMfG3FJUGNPVGeTWQaj8xqMBtZKIdUNt58rIAsCYg==", | ||
778 | + "requires": { | ||
779 | + "async": "2.6.1", | ||
780 | + "bson": "1.1.0", | ||
781 | + "kareem": "2.3.0", | ||
782 | + "lodash.get": "4.4.2", | ||
783 | + "mongodb": "3.1.10", | ||
784 | + "mongodb-core": "3.1.9", | ||
785 | + "mongoose-legacy-pluralize": "1.0.2", | ||
786 | + "mpath": "0.5.1", | ||
787 | + "mquery": "3.2.0", | ||
788 | + "ms": "2.0.0", | ||
789 | + "regexp-clone": "0.0.1", | ||
790 | + "safe-buffer": "5.1.2", | ||
791 | + "sliced": "1.0.1" | ||
792 | + } | ||
793 | + }, | ||
794 | + "mongoose-legacy-pluralize": { | ||
795 | + "version": "1.0.2", | ||
796 | + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", | ||
797 | + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" | ||
798 | + }, | ||
799 | + "mpath": { | ||
800 | + "version": "0.5.1", | ||
801 | + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz", | ||
802 | + "integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg==" | ||
803 | + }, | ||
804 | + "mquery": { | ||
805 | + "version": "3.2.0", | ||
806 | + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz", | ||
807 | + "integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==", | ||
808 | + "requires": { | ||
809 | + "bluebird": "3.5.1", | ||
810 | + "debug": "3.1.0", | ||
811 | + "regexp-clone": "0.0.1", | ||
812 | + "safe-buffer": "5.1.2", | ||
813 | + "sliced": "1.0.1" | ||
814 | + } | ||
815 | + }, | ||
816 | + "ms": { | ||
817 | + "version": "2.0.0", | ||
818 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
819 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||
820 | + }, | ||
821 | + "nan": { | ||
822 | + "version": "2.11.1", | ||
823 | + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", | ||
824 | + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" | ||
825 | + }, | ||
826 | + "negotiator": { | ||
827 | + "version": "0.6.1", | ||
828 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | ||
829 | + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" | ||
830 | + }, | ||
831 | + "nth-check": { | ||
832 | + "version": "1.0.2", | ||
833 | + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", | ||
834 | + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", | ||
835 | + "requires": { | ||
836 | + "boolbase": "1.0.0" | ||
837 | + } | ||
838 | + }, | ||
839 | + "oauth-sign": { | ||
840 | + "version": "0.9.0", | ||
841 | + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||
842 | + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" | ||
843 | + }, | ||
844 | + "on-finished": { | ||
845 | + "version": "2.3.0", | ||
846 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
847 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
848 | + "requires": { | ||
849 | + "ee-first": "1.1.1" | ||
850 | + } | ||
851 | + }, | ||
852 | + "on-headers": { | ||
853 | + "version": "1.0.1", | ||
854 | + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", | ||
855 | + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" | ||
856 | + }, | ||
857 | + "once": { | ||
858 | + "version": "1.4.0", | ||
859 | + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||
860 | + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||
861 | + "requires": { | ||
862 | + "wrappy": "1.0.2" | ||
863 | + } | ||
864 | + }, | ||
865 | + "os-tmpdir": { | ||
866 | + "version": "1.0.2", | ||
867 | + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", | ||
868 | + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" | ||
869 | + }, | ||
870 | + "pako": { | ||
871 | + "version": "1.0.7", | ||
872 | + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", | ||
873 | + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==" | ||
874 | + }, | ||
875 | + "parse5": { | ||
876 | + "version": "3.0.3", | ||
877 | + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", | ||
878 | + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", | ||
879 | + "requires": { | ||
880 | + "@types/node": "10.12.10" | ||
881 | + } | ||
882 | + }, | ||
883 | + "parseurl": { | ||
884 | + "version": "1.3.2", | ||
885 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", | ||
886 | + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" | ||
887 | + }, | ||
888 | + "passport": { | ||
889 | + "version": "0.4.0", | ||
890 | + "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", | ||
891 | + "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", | ||
892 | + "requires": { | ||
893 | + "passport-strategy": "1.0.0", | ||
894 | + "pause": "0.0.1" | ||
895 | + } | ||
896 | + }, | ||
897 | + "passport-local": { | ||
898 | + "version": "1.0.0", | ||
899 | + "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", | ||
900 | + "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", | ||
901 | + "requires": { | ||
902 | + "passport-strategy": "1.0.0" | ||
903 | + } | ||
904 | + }, | ||
905 | + "passport-strategy": { | ||
906 | + "version": "1.0.0", | ||
907 | + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", | ||
908 | + "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" | ||
909 | + }, | ||
910 | + "path-is-absolute": { | ||
911 | + "version": "1.0.1", | ||
912 | + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||
913 | + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" | ||
914 | + }, | ||
915 | + "path-to-regexp": { | ||
916 | + "version": "0.1.7", | ||
917 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||
918 | + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" | ||
919 | + }, | ||
920 | + "pause": { | ||
921 | + "version": "0.0.1", | ||
922 | + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", | ||
923 | + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" | ||
924 | + }, | ||
925 | + "performance-now": { | ||
926 | + "version": "2.1.0", | ||
927 | + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | ||
928 | + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | ||
929 | + }, | ||
930 | + "process-nextick-args": { | ||
931 | + "version": "1.0.7", | ||
932 | + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", | ||
933 | + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" | ||
934 | + }, | ||
935 | + "proxy-addr": { | ||
936 | + "version": "2.0.4", | ||
937 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", | ||
938 | + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", | ||
939 | + "requires": { | ||
940 | + "forwarded": "0.1.2", | ||
941 | + "ipaddr.js": "1.8.0" | ||
942 | + } | ||
943 | + }, | ||
944 | + "psl": { | ||
945 | + "version": "1.1.29", | ||
946 | + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", | ||
947 | + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" | ||
948 | + }, | ||
949 | + "punycode": { | ||
950 | + "version": "2.1.1", | ||
951 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
952 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" | ||
953 | + }, | ||
954 | + "qs": { | ||
955 | + "version": "6.5.2", | ||
956 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", | ||
957 | + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" | ||
958 | + }, | ||
959 | + "random-bytes": { | ||
960 | + "version": "1.0.0", | ||
961 | + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", | ||
962 | + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" | ||
963 | + }, | ||
964 | + "range-parser": { | ||
965 | + "version": "1.2.0", | ||
966 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", | ||
967 | + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" | ||
968 | + }, | ||
969 | + "raw-body": { | ||
970 | + "version": "2.3.3", | ||
971 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", | ||
972 | + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", | ||
973 | + "requires": { | ||
974 | + "bytes": "3.0.0", | ||
975 | + "http-errors": "1.6.3", | ||
976 | + "iconv-lite": "0.4.23", | ||
977 | + "unpipe": "1.0.0" | ||
978 | + } | ||
979 | + }, | ||
980 | + "readable-stream": { | ||
981 | + "version": "3.0.6", | ||
982 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", | ||
983 | + "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", | ||
984 | + "requires": { | ||
985 | + "inherits": "2.0.3", | ||
986 | + "string_decoder": "1.2.0", | ||
987 | + "util-deprecate": "1.0.2" | ||
988 | + } | ||
989 | + }, | ||
990 | + "regexp-clone": { | ||
991 | + "version": "0.0.1", | ||
992 | + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", | ||
993 | + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" | ||
994 | + }, | ||
995 | + "request": { | ||
996 | + "version": "2.88.0", | ||
997 | + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", | ||
998 | + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", | ||
999 | + "requires": { | ||
1000 | + "aws-sign2": "0.7.0", | ||
1001 | + "aws4": "1.8.0", | ||
1002 | + "caseless": "0.12.0", | ||
1003 | + "combined-stream": "1.0.7", | ||
1004 | + "extend": "3.0.2", | ||
1005 | + "forever-agent": "0.6.1", | ||
1006 | + "form-data": "2.3.3", | ||
1007 | + "har-validator": "5.1.3", | ||
1008 | + "http-signature": "1.2.0", | ||
1009 | + "is-typedarray": "1.0.0", | ||
1010 | + "isstream": "0.1.2", | ||
1011 | + "json-stringify-safe": "5.0.1", | ||
1012 | + "mime-types": "2.1.21", | ||
1013 | + "oauth-sign": "0.9.0", | ||
1014 | + "performance-now": "2.1.0", | ||
1015 | + "qs": "6.5.2", | ||
1016 | + "safe-buffer": "5.1.2", | ||
1017 | + "tough-cookie": "2.4.3", | ||
1018 | + "tunnel-agent": "0.6.0", | ||
1019 | + "uuid": "3.3.2" | ||
1020 | + } | ||
1021 | + }, | ||
1022 | + "require_optional": { | ||
1023 | + "version": "1.0.1", | ||
1024 | + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", | ||
1025 | + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", | ||
1026 | + "requires": { | ||
1027 | + "resolve-from": "2.0.0", | ||
1028 | + "semver": "5.6.0" | ||
1029 | + } | ||
1030 | + }, | ||
1031 | + "resolve-from": { | ||
1032 | + "version": "2.0.0", | ||
1033 | + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", | ||
1034 | + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" | ||
1035 | + }, | ||
1036 | + "rimraf": { | ||
1037 | + "version": "2.6.2", | ||
1038 | + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", | ||
1039 | + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", | ||
1040 | + "requires": { | ||
1041 | + "glob": "7.1.3" | ||
1042 | + } | ||
1043 | + }, | ||
1044 | + "safe-buffer": { | ||
1045 | + "version": "5.1.2", | ||
1046 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
1047 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
1048 | + }, | ||
1049 | + "safer-buffer": { | ||
1050 | + "version": "2.1.2", | ||
1051 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
1052 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
1053 | + }, | ||
1054 | + "saslprep": { | ||
1055 | + "version": "1.0.2", | ||
1056 | + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz", | ||
1057 | + "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==", | ||
1058 | + "optional": true, | ||
1059 | + "requires": { | ||
1060 | + "sparse-bitfield": "3.0.3" | ||
1061 | + } | ||
1062 | + }, | ||
1063 | + "sax": { | ||
1064 | + "version": "1.2.4", | ||
1065 | + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", | ||
1066 | + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" | ||
1067 | + }, | ||
1068 | + "selenium-webdriver": { | ||
1069 | + "version": "4.0.0-alpha.1", | ||
1070 | + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.1.tgz", | ||
1071 | + "integrity": "sha512-z88rdjHAv3jmTZ7KSGUkTvo4rGzcDGMq0oXWHNIDK96Gs31JKVdu9+FMtT4KBrVoibg8dUicJDok6GnqqttO5Q==", | ||
1072 | + "requires": { | ||
1073 | + "jszip": "3.1.5", | ||
1074 | + "rimraf": "2.6.2", | ||
1075 | + "tmp": "0.0.30", | ||
1076 | + "xml2js": "0.4.19" | ||
1077 | + } | ||
1078 | + }, | ||
1079 | + "semver": { | ||
1080 | + "version": "5.6.0", | ||
1081 | + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", | ||
1082 | + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" | ||
1083 | + }, | ||
1084 | + "send": { | ||
1085 | + "version": "0.16.2", | ||
1086 | + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", | ||
1087 | + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", | ||
1088 | + "requires": { | ||
1089 | + "debug": "2.6.9", | ||
1090 | + "depd": "1.1.2", | ||
1091 | + "destroy": "1.0.4", | ||
1092 | + "encodeurl": "1.0.2", | ||
1093 | + "escape-html": "1.0.3", | ||
1094 | + "etag": "1.8.1", | ||
1095 | + "fresh": "0.5.2", | ||
1096 | + "http-errors": "1.6.3", | ||
1097 | + "mime": "1.4.1", | ||
1098 | + "ms": "2.0.0", | ||
1099 | + "on-finished": "2.3.0", | ||
1100 | + "range-parser": "1.2.0", | ||
1101 | + "statuses": "1.4.0" | ||
1102 | + }, | ||
1103 | + "dependencies": { | ||
1104 | + "debug": { | ||
1105 | + "version": "2.6.9", | ||
1106 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
1107 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
1108 | + "requires": { | ||
1109 | + "ms": "2.0.0" | ||
1110 | + } | ||
1111 | + } | ||
1112 | + } | ||
1113 | + }, | ||
1114 | + "serve-static": { | ||
1115 | + "version": "1.13.2", | ||
1116 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", | ||
1117 | + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", | ||
1118 | + "requires": { | ||
1119 | + "encodeurl": "1.0.2", | ||
1120 | + "escape-html": "1.0.3", | ||
1121 | + "parseurl": "1.3.2", | ||
1122 | + "send": "0.16.2" | ||
1123 | + } | ||
1124 | + }, | ||
1125 | + "setprototypeof": { | ||
1126 | + "version": "1.1.0", | ||
1127 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", | ||
1128 | + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" | ||
1129 | + }, | ||
1130 | + "sliced": { | ||
1131 | + "version": "1.0.1", | ||
1132 | + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", | ||
1133 | + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" | ||
1134 | + }, | ||
1135 | + "sparse-bitfield": { | ||
1136 | + "version": "3.0.3", | ||
1137 | + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", | ||
1138 | + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", | ||
1139 | + "optional": true, | ||
1140 | + "requires": { | ||
1141 | + "memory-pager": "1.1.0" | ||
1142 | + } | ||
1143 | + }, | ||
1144 | + "sshpk": { | ||
1145 | + "version": "1.15.2", | ||
1146 | + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", | ||
1147 | + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", | ||
1148 | + "requires": { | ||
1149 | + "asn1": "0.2.4", | ||
1150 | + "assert-plus": "1.0.0", | ||
1151 | + "bcrypt-pbkdf": "1.0.2", | ||
1152 | + "dashdash": "1.14.1", | ||
1153 | + "ecc-jsbn": "0.1.2", | ||
1154 | + "getpass": "0.1.7", | ||
1155 | + "jsbn": "0.1.1", | ||
1156 | + "safer-buffer": "2.1.2", | ||
1157 | + "tweetnacl": "0.14.5" | ||
1158 | + } | ||
1159 | + }, | ||
1160 | + "statuses": { | ||
1161 | + "version": "1.4.0", | ||
1162 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", | ||
1163 | + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" | ||
1164 | + }, | ||
1165 | + "string_decoder": { | ||
1166 | + "version": "1.2.0", | ||
1167 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", | ||
1168 | + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", | ||
1169 | + "requires": { | ||
1170 | + "safe-buffer": "5.1.2" | ||
1171 | + } | ||
1172 | + }, | ||
1173 | + "tmp": { | ||
1174 | + "version": "0.0.30", | ||
1175 | + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", | ||
1176 | + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", | ||
1177 | + "requires": { | ||
1178 | + "os-tmpdir": "1.0.2" | ||
1179 | + } | ||
1180 | + }, | ||
1181 | + "tough-cookie": { | ||
1182 | + "version": "2.4.3", | ||
1183 | + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", | ||
1184 | + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", | ||
1185 | + "requires": { | ||
1186 | + "psl": "1.1.29", | ||
1187 | + "punycode": "1.4.1" | ||
1188 | + }, | ||
1189 | + "dependencies": { | ||
1190 | + "punycode": { | ||
1191 | + "version": "1.4.1", | ||
1192 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||
1193 | + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" | ||
1194 | + } | ||
1195 | + } | ||
1196 | + }, | ||
1197 | + "tunnel-agent": { | ||
1198 | + "version": "0.6.0", | ||
1199 | + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||
1200 | + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | ||
1201 | + "requires": { | ||
1202 | + "safe-buffer": "5.1.2" | ||
1203 | + } | ||
1204 | + }, | ||
1205 | + "tweetnacl": { | ||
1206 | + "version": "0.14.5", | ||
1207 | + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||
1208 | + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" | ||
1209 | + }, | ||
1210 | + "type-is": { | ||
1211 | + "version": "1.6.16", | ||
1212 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", | ||
1213 | + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", | ||
1214 | + "requires": { | ||
1215 | + "media-typer": "0.3.0", | ||
1216 | + "mime-types": "2.1.21" | ||
1217 | + } | ||
1218 | + }, | ||
1219 | + "uid-safe": { | ||
1220 | + "version": "2.1.5", | ||
1221 | + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", | ||
1222 | + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", | ||
1223 | + "requires": { | ||
1224 | + "random-bytes": "1.0.0" | ||
1225 | + } | ||
1226 | + }, | ||
1227 | + "unpipe": { | ||
1228 | + "version": "1.0.0", | ||
1229 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||
1230 | + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" | ||
1231 | + }, | ||
1232 | + "uri-js": { | ||
1233 | + "version": "4.2.2", | ||
1234 | + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", | ||
1235 | + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", | ||
1236 | + "requires": { | ||
1237 | + "punycode": "2.1.1" | ||
1238 | + } | ||
1239 | + }, | ||
1240 | + "util-deprecate": { | ||
1241 | + "version": "1.0.2", | ||
1242 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
1243 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||
1244 | + }, | ||
1245 | + "utils-merge": { | ||
1246 | + "version": "1.0.1", | ||
1247 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||
1248 | + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" | ||
1249 | + }, | ||
1250 | + "uuid": { | ||
1251 | + "version": "3.3.2", | ||
1252 | + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", | ||
1253 | + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" | ||
1254 | + }, | ||
1255 | + "vary": { | ||
1256 | + "version": "1.1.2", | ||
1257 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | ||
1258 | + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" | ||
1259 | + }, | ||
1260 | + "verror": { | ||
1261 | + "version": "1.10.0", | ||
1262 | + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
1263 | + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | ||
1264 | + "requires": { | ||
1265 | + "assert-plus": "1.0.0", | ||
1266 | + "core-util-is": "1.0.2", | ||
1267 | + "extsprintf": "1.3.0" | ||
1268 | + } | ||
1269 | + }, | ||
1270 | + "wrappy": { | ||
1271 | + "version": "1.0.2", | ||
1272 | + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||
1273 | + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | ||
1274 | + }, | ||
1275 | + "xml2js": { | ||
1276 | + "version": "0.4.19", | ||
1277 | + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", | ||
1278 | + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", | ||
1279 | + "requires": { | ||
1280 | + "sax": "1.2.4", | ||
1281 | + "xmlbuilder": "9.0.7" | ||
1282 | + } | ||
1283 | + }, | ||
1284 | + "xmlbuilder": { | ||
1285 | + "version": "9.0.7", | ||
1286 | + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", | ||
1287 | + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" | ||
1288 | + } | ||
1289 | + } | ||
1290 | +} |
server_db/package.json
0 → 100644
1 | +{ | ||
2 | + "name": "my-broadcasting-ksw", | ||
3 | + "version": "1.0.0", | ||
4 | + "description": "- 오픈소스SW개발 프로젝트 - 관심있는 인물이 출연하는 방송 프로그램을 검색하여 나만의 편성표를 만든다.", | ||
5 | + "main": "index.js", | ||
6 | + "scripts": { | ||
7 | + "test": "echo \"Error: no test specified\" && exit 1" | ||
8 | + }, | ||
9 | + "repository": { | ||
10 | + "type": "git", | ||
11 | + "url": "http://khuhub.khu.ac.kr/2013104043/my-broadcasting.git" | ||
12 | + }, | ||
13 | + "author": "", | ||
14 | + "license": "ISC", | ||
15 | + "dependencies": { | ||
16 | + "bcrypt-nodejs": "0.0.3", | ||
17 | + "body-parser": "^1.18.3", | ||
18 | + "cheerio": "^1.0.0-rc.2", | ||
19 | + "ejs": "^2.6.1", | ||
20 | + "express": "^4.16.4", | ||
21 | + "express-session": "^1.15.6", | ||
22 | + "iconv": "^2.3.1", | ||
23 | + "mongoose": "^5.3.14", | ||
24 | + "passport": "^0.4.0", | ||
25 | + "passport-local": "^1.0.0", | ||
26 | + "request": "^2.88.0", | ||
27 | + "selenium-webdriver": "^4.0.0-alpha.1" | ||
28 | + } | ||
29 | +} |
server_db/passport.js
0 → 100644
1 | +var LocalStrategy = require('passport-local').Strategy; | ||
2 | +var Users = require('./models/users'); | ||
3 | + | ||
4 | +module.exports = function(passport) | ||
5 | +{ | ||
6 | + passport.serializeUser(function(user, done) | ||
7 | + { | ||
8 | + done(null, user.id); | ||
9 | + }); | ||
10 | + | ||
11 | + passport.deserializeUser(function(id, done) | ||
12 | + { | ||
13 | + done(null, id); | ||
14 | + /* | ||
15 | + Users.findById(id, function(err, user) | ||
16 | + { | ||
17 | + done(err, user); | ||
18 | + }); | ||
19 | + */ | ||
20 | + }); | ||
21 | + | ||
22 | + // 회원가입 처리 | ||
23 | + passport.use('join', new LocalStrategy | ||
24 | + ( | ||
25 | + { | ||
26 | + usernameField: 'id', | ||
27 | + passwordField: 'pwd', | ||
28 | + passReqToCallback: true | ||
29 | + }, | ||
30 | + | ||
31 | + function(req, id, pwd, done) | ||
32 | + { | ||
33 | + Users.findOne({'id':id}, function(err, user) | ||
34 | + { | ||
35 | + if(err) return done(err); | ||
36 | + | ||
37 | + // 유저가 있을 경우 처리 | ||
38 | + if(user) | ||
39 | + { | ||
40 | + console.log("Duplicated user"); | ||
41 | + return done(null, false); | ||
42 | + } | ||
43 | + | ||
44 | + // 새로운 유저 DB추가처리 | ||
45 | + else | ||
46 | + { | ||
47 | + var newUser = new Users(); | ||
48 | + newUser.id = id; | ||
49 | + newUser.pwd = newUser.generateHash(pwd); | ||
50 | + | ||
51 | + // 로그인 이외 필요한 값들 추가 | ||
52 | + newUser.name = req.body.name; | ||
53 | + | ||
54 | + newUser.save(function(err) | ||
55 | + { | ||
56 | + if(err) throw err; | ||
57 | + return done(null, newUser); | ||
58 | + }); | ||
59 | + | ||
60 | + } | ||
61 | + }); | ||
62 | + })); | ||
63 | + | ||
64 | + // 로그인 처리 | ||
65 | + passport.use('login', new LocalStrategy | ||
66 | + ( | ||
67 | + { | ||
68 | + usernameField: 'id', | ||
69 | + passwordField: 'pwd', | ||
70 | + passReqToCallback: true | ||
71 | + }, | ||
72 | + function(req, id, pwd, done) | ||
73 | + { | ||
74 | + Users.findOne({'id': id}, function(err, user) | ||
75 | + { | ||
76 | + if(err) return done(err); | ||
77 | + | ||
78 | + // 유저가 없을 시 | ||
79 | + if(!user) | ||
80 | + { | ||
81 | + console.log('no user'); | ||
82 | + return done(null, false); | ||
83 | + //return done(null, false, req.flash('loginMessage', '없는 유저입니다..')); | ||
84 | + } | ||
85 | + | ||
86 | + // 틀린 비밀번호 | ||
87 | + if(!user.validPassword(pwd)) | ||
88 | + { | ||
89 | + console.log('bad password'); | ||
90 | + return done(null, false); | ||
91 | + //return done(null, false, req.flash('loginMessage', '비밀번호가 다릅니다.')); | ||
92 | + } | ||
93 | + | ||
94 | + console.log('login sucess'); | ||
95 | + return done(null, user); | ||
96 | + }); | ||
97 | + } | ||
98 | + )); | ||
99 | + | ||
100 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/routing.js
0 → 100644
1 | +module.exports = function(app, Users) | ||
2 | +{ | ||
3 | + var passport = require('passport'); | ||
4 | + | ||
5 | + app.get('/', function(req, res) | ||
6 | + { | ||
7 | + // 로그인 중이면 메인페이지로 | ||
8 | + if(req.isAuthenticated()) | ||
9 | + res.redirect("/main"); | ||
10 | + // 로그인 중이 아니라면 인덱스페이지 | ||
11 | + else | ||
12 | + { | ||
13 | + res.render("index"); | ||
14 | + console.log("The index page!"); | ||
15 | + } | ||
16 | + }); | ||
17 | + | ||
18 | + // 로그인 수행 - POST | ||
19 | + app.route('/login') | ||
20 | + .post(passport.authenticate('login', | ||
21 | + { | ||
22 | + successRedirect: '/main', | ||
23 | + failureRedirect: '/' | ||
24 | + //failureFlash : true | ||
25 | + })) | ||
26 | + // unexpected access | ||
27 | + .get(function(req, res) | ||
28 | + { | ||
29 | + res.redirect("/"); | ||
30 | + }); | ||
31 | + | ||
32 | + | ||
33 | + // 로그아웃 수행 | ||
34 | + app.get('/logout', function(req, res) | ||
35 | + { | ||
36 | + req.logout(); | ||
37 | + res.redirect('/'); | ||
38 | + }) | ||
39 | + | ||
40 | + | ||
41 | + // Join | ||
42 | + app.route('/join') | ||
43 | + // 처음 Join화면 랜더 - GET | ||
44 | + .get(function(req, res) | ||
45 | + { | ||
46 | + res.render("join") | ||
47 | + }) | ||
48 | + // 실제 Join 수행 - POST | ||
49 | + .post(passport.authenticate('join', | ||
50 | + { | ||
51 | + successRedirect: '/main', | ||
52 | + failureRedirect: '/', | ||
53 | + //failureFlash : true | ||
54 | + })); | ||
55 | + | ||
56 | + | ||
57 | + // 메인화면 - 로그인 후 기본 검색화면으로 | ||
58 | + app.get('/main', function(req, res) | ||
59 | + { | ||
60 | + // 로그인 중이라면 | ||
61 | + if(req.isAuthenticated()) | ||
62 | + { | ||
63 | + console.log("Logged in page"); | ||
64 | + res.render("main"); | ||
65 | + } | ||
66 | + // 로그인 중이 아니라면 | ||
67 | + else res.redirect("/"); | ||
68 | + | ||
69 | + }); | ||
70 | + | ||
71 | + // 마이페이지 - 로그인 필수 | ||
72 | + app.get('/mypage',function(req, res) | ||
73 | + { | ||
74 | + // 로그인 중이라면 | ||
75 | + if(req.isAuthenticated()) | ||
76 | + { | ||
77 | + // find를 쓰면, 다행으로 반환되기 때문에 결과의 첫번째 요소를 지정하고 해야함 | ||
78 | + // 그래서 하나만을 대상으로 할 때는 보통 findOne을 사용 | ||
79 | + // mongoose로 디비 find는 콜백으로 정의해야함. | ||
80 | + Users.findOne({id: req.user}, function(err, user_info) | ||
81 | + { | ||
82 | + console.log("mypage"); | ||
83 | + res.render("mypage", | ||
84 | + { | ||
85 | + id: user_info.id, | ||
86 | + name: user_info.name | ||
87 | + }); | ||
88 | + }); | ||
89 | + | ||
90 | + } | ||
91 | + // 로그인 중이 아니라면 | ||
92 | + else res.redirect("/"); | ||
93 | + }); | ||
94 | + | ||
95 | + | ||
96 | + // 동명이인 검색 페이지 | ||
97 | + app.get("/samename" ,function(req, res) | ||
98 | + { | ||
99 | + var samename_list = [["강호동", "https://search.pstatic.net/common?type=a&size=60x76&quality=95&src=http://sstatic.naver.net/people/portrait/201304/20130403113314207.jpg"], ["강호동", "https://search.pstatic.net/common?type=a&size=60x76&quality=95&src=http://sstatic.naver.net/people/72/201601061648058211.jpg"]]; | ||
100 | + console.log("samename page"); | ||
101 | + res.render("samename",{samename : samename_list}); | ||
102 | + }); | ||
103 | + | ||
104 | + // 인물-방송정보 페이지 | ||
105 | + app.get("/programs", function(req, res) | ||
106 | + { | ||
107 | + var program_list = | ||
108 | + [ | ||
109 | + ["https://search.pstatic.net/common?type=o&size=120x172&quality=90&direct=true&src=http%3A%2F%2Fsstatic.naver.net%2Fkeypage%2Fimage%2Fdss%2F57%2F03%2F30%2F31%2F57_9033031_poster_image_1543806768348.jpg", | ||
110 | + "2018", | ||
111 | + "아모르파티", | ||
112 | + true, | ||
113 | + "SUN", | ||
114 | + "2240"], | ||
115 | + ["https://search.pstatic.net/common?type=o&size=120x172&quality=90&direct=true&src=http%3A%2F%2Fsstatic.naver.net%2Fkeypage%2Fimage%2Fdss%2F57%2F03%2F30%2F31%2F57_9033031_poster_image_1543806768348.jpg", | ||
116 | + "2018", | ||
117 | + "아모르파티", | ||
118 | + true, | ||
119 | + "SUN", | ||
120 | + "2240"] | ||
121 | + ]; | ||
122 | + res.render("programs", {programs: program_list}); | ||
123 | + }); | ||
124 | + | ||
125 | + // 나만의 시간표 | ||
126 | + app.get("/timetable", function(req, res) | ||
127 | + { | ||
128 | + | ||
129 | + var program_list = | ||
130 | + [ | ||
131 | + { | ||
132 | + content: '런닝맨', | ||
133 | + endDate: new Date(2018, 11, 9, 5, 45), | ||
134 | + startDate: new Date(2018, 11, 9, 1, 30), | ||
135 | + disabled: true | ||
136 | + } | ||
137 | + ]; | ||
138 | + | ||
139 | + res.render("timetable", {pl: JSON.stringify(program_list)}); | ||
140 | + }); | ||
141 | + | ||
142 | +} | ||
143 | + | ||
144 | + | ||
145 | + | ||
146 | + | ||
147 | + | ||
148 | +/* | ||
149 | +(구)직접 DB에 저장하기 | ||
150 | +.post(function(req, res) // 실제 Join 수행 - POST | ||
151 | +{ | ||
152 | + // user정보 입력 | ||
153 | + var user = new Users(); | ||
154 | + user.id = req.body.id; | ||
155 | + user.pwd = req.body.pwd; | ||
156 | + user.name = req.body.name; | ||
157 | + | ||
158 | + // DB저장 | ||
159 | + user.save(function(err) | ||
160 | + { | ||
161 | + if(err) | ||
162 | + { | ||
163 | + console.log(err); | ||
164 | + res.send("Error!") | ||
165 | + } | ||
166 | + else | ||
167 | + { | ||
168 | + console.log("Join Success"); | ||
169 | + res.redirect('/'); | ||
170 | + } | ||
171 | + }); | ||
172 | +}); | ||
173 | +*/ | ||
174 | + | ||
175 | +/* | ||
176 | +(구)직접 로그인 하기 | ||
177 | +app.post('/login', function(req, res) | ||
178 | +{ | ||
179 | + Users.find({id: req.body.id, pwd: req.body.pwd},{_id: 1}, function(err, user) | ||
180 | + { | ||
181 | + if(err) | ||
182 | + { | ||
183 | + console.log("Error!"); | ||
184 | + res.send("Error!") | ||
185 | + } | ||
186 | + | ||
187 | + // 매칭정보 없음 - 로그인 실패 | ||
188 | + if(user.length==0) | ||
189 | + { | ||
190 | + console.log("Login failed!") | ||
191 | + res.send("Login_failed"); | ||
192 | + } | ||
193 | + | ||
194 | + // 매칭정보 있음 - 로그인 성공 | ||
195 | + else | ||
196 | + { | ||
197 | + console.log("Login Success!") | ||
198 | + res.redirect("/main"); | ||
199 | + // main으로 이동 | ||
200 | + } | ||
201 | + }); | ||
202 | +}); | ||
203 | +*/ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/alloyscheulertest.ejs
0 → 100644
1 | + | ||
2 | +<div id="wrapper"> | ||
3 | +<div id="myScheduler"></div> | ||
4 | +</div> | ||
5 | +<script> | ||
6 | + setTimeout(() => | ||
7 | + { | ||
8 | + YUI().use('aui-scheduler', | ||
9 | + function(Y) | ||
10 | + { | ||
11 | + // code goes here | ||
12 | + | ||
13 | + //console.log(<%- pl %>); | ||
14 | + | ||
15 | + var events = | ||
16 | + [ | ||
17 | + { | ||
18 | + content: '<%- pl[0].content%>', | ||
19 | + endDate: new Date(2018, 11, 9, 5, 30), | ||
20 | + startDate: new Date(2018, 11, 9, 1, 30), | ||
21 | + disabled: true | ||
22 | + } | ||
23 | + ]; | ||
24 | + | ||
25 | + var weekView = new Y.SchedulerWeekView(); | ||
26 | + | ||
27 | + myScheduler = new Y.Scheduler( | ||
28 | + { | ||
29 | + boundingBox: '#myScheduler', | ||
30 | + date: new Date(Date.now().getYear, Date.now().getMonth, Date.now().getDay), | ||
31 | + items: events, | ||
32 | + render: true, | ||
33 | + views: [weekView] | ||
34 | + } | ||
35 | + ); | ||
36 | + | ||
37 | + }); | ||
38 | + }, 1000); | ||
39 | +</script> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/contents_index.ejs
0 → 100644
1 | +<div class="contents_index"> | ||
2 | + <form method="POST" action="/login"> | ||
3 | + <label>id:</label><input type="text" name="id"><br/> | ||
4 | + <label>pwd:</label><input type="password" name="pwd"><br/> | ||
5 | + <button type="submit">로그인</button> | ||
6 | + </form> | ||
7 | +</div> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/contents_join.ejs
0 → 100644
1 | +<div class="contents_index"> | ||
2 | + <form method="POST" action="/join"> | ||
3 | + <label>id:</label><input type="text" name="id"><br/> | ||
4 | + <label>pwd:</label><input type="password" name="pwd"><br/> | ||
5 | + <label>name:</label><input type="text" name="name"><br/> | ||
6 | + <button type="submit">가입</button> | ||
7 | + </form> | ||
8 | + <a href='/'><button>취소</button></a> | ||
9 | +</div> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/contents_main.ejs
0 → 100644
server_db/views/contents_mypage.ejs
0 → 100644
server_db/views/contents_programs.ejs
0 → 100644
1 | +<div class="contents_main"> | ||
2 | + <h1>This is Programs</h1> | ||
3 | + <% programs.forEach(function(val){ %> | ||
4 | + <li><img src="<%= val[0]%>"></li> | ||
5 | + <li><%= val[1]%></li> | ||
6 | + <li><%= val[2]%></li> | ||
7 | + | ||
8 | + <% if(val[3] == true) { %> | ||
9 | + <li><%= val[4] %></li> | ||
10 | + <li><%= val[5] %></li> | ||
11 | + <button>추가</button> | ||
12 | + <% } %> | ||
13 | + <% }) %> | ||
14 | +</div> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/contents_samename.ejs
0 → 100644
server_db/views/contents_timetable.ejs
0 → 100644
1 | +<div class="contents_main"> | ||
2 | + <h1>This is TimeTable</h1> | ||
3 | + <table border="1"> | ||
4 | + <tr> | ||
5 | + <td>*</td> | ||
6 | + <td>월</td> | ||
7 | + <td>화</td> | ||
8 | + <td>수</td> | ||
9 | + <td>목</td> | ||
10 | + <td>금</td> | ||
11 | + <td>토</td> | ||
12 | + <td>일</td> | ||
13 | + </tr> | ||
14 | + <% for(var i=0; i<=24; i++) { %> | ||
15 | + <tr> | ||
16 | + <td><%=i %></td> | ||
17 | + <% for(var j=1; j<=7; j++) { %> | ||
18 | + <td><%=j %></td> | ||
19 | + <% } %> | ||
20 | + </tr> | ||
21 | + <% } %> | ||
22 | + | ||
23 | + </table> | ||
24 | +</div> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
server_db/views/index.ejs
0 → 100644
server_db/views/join.ejs
0 → 100644
server_db/views/main.ejs
0 → 100644
server_db/views/mypage.ejs
0 → 100644
server_db/views/navigation_index.ejs
0 → 100644
server_db/views/navigation_main.ejs
0 → 100644
server_db/views/programs.ejs
0 → 100644
server_db/views/samename.ejs
0 → 100644
server_db/views/timetable.ejs
0 → 100644
1 | +<html> | ||
2 | +<head> | ||
3 | + <title>My Timetable</title> | ||
4 | + <script src="https://cdn.alloyui.com/3.0.1/aui/aui-min.js"></script> | ||
5 | + <link href="https://cdn.alloyui.com/3.0.1/aui-css/css/bootstrap.min.css" rel="stylesheet"></link> | ||
6 | +</head> | ||
7 | +<body> | ||
8 | + <% include ./navigation_main.ejs %> | ||
9 | + <% include ./alloyscheulertest.ejs %> | ||
10 | +</body> | ||
11 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment