wjc0930

Tutorial code for making Facebook chatbot.

1 +node_modules
1 ++2019/5/25
2 ++mother project : LINEBOT
3 ++new project : 페이스북 메신저 기반 컴공/소융 강의평가 봇
4 ++
1 +var express = require("express");
2 +var request = require("request");
3 +var bodyParser = require("body-parser");
4 +
5 +var app = express();
6 +app.use(bodyParser.urlencoded({extended: false}));
7 +app.use(bodyParser.json());
8 +app.listen((process.env.PORT || 5000));
9 +
10 +// Server index page
11 +app.get("/", function (req, res) {
12 + res.send("Deployed!");
13 +});
14 +
15 +// Facebook Webhook
16 +// Used for verification
17 +app.get("/webhook", function (req, res) {
18 + if (req.query["hub.verify_token"] === "process.env.VERIFICATION_TOKEN") {
19 + console.log("Verified webhook");
20 + res.status(200).send(req.query["hub.challenge"]);
21 + } else {
22 + console.error("Verification failed. The tokens do not match.");
23 + res.sendStatus(403);
24 + }
25 +});
26 +
27 +// All callbacks for Messenger will be POST-ed here
28 +app.post("/webhook", function (req, res) {
29 + // Make sure this is a page subscription
30 + if (req.body.object == "page") {
31 + // Iterate over each entry
32 + // There may be multiple entries if batched
33 + req.body.entry.forEach(function(entry) {
34 + // Iterate over each messaging event
35 + entry.messaging.forEach(function(event) {
36 + if (event.postback) {
37 + processPostback(event);
38 + }
39 + });
40 + });
41 +
42 + res.sendStatus(200);
43 + }
44 +});
45 +
46 +function processPostback(event) {
47 + var senderId = event.sender.id;
48 + var payload = event.postback.payload;
49 +
50 + if (payload === "Greeting") {
51 + // Get user's first name from the User Profile API
52 + // and include it in the greeting
53 + request({
54 + url: "https://graph.facebook.com/v2.6/" + senderId,
55 + qs: {
56 + access_token: process.env.PAGE_ACCESS_TOKEN,
57 + fields: "first_name"
58 + },
59 + method: "GET"
60 + }, function(error, response, body) {
61 + var greeting = "";
62 + if (error) {
63 + console.log("Error getting user's name: " + error);
64 + } else {
65 + var bodyObj = JSON.parse(body);
66 + name = bodyObj.first_name;
67 + greeting = "Hi " + name + ". ";
68 + }
69 + var message = greeting + "My name is SP Movie Bot. I can tell you various details regarding movies. What movie would you like to know about?";
70 + sendMessage(senderId, {text: message});
71 + });
72 + }
73 +}
74 +
75 +// sends message to user
76 +function sendMessage(recipientId, message) {
77 + request({
78 + url: "https://graph.facebook.com/v2.6/me/messages",
79 + qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
80 + method: "POST",
81 + json: {
82 + recipient: {id: recipientId},
83 + message: message,
84 + }
85 + }, function(error, response, body) {
86 + if (error) {
87 + console.log("Error sending message: " + response.error);
88 + }
89 + });
90 +}
1 +{
2 + "name": "spbot",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "accepts": {
8 + "version": "1.3.7",
9 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
10 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
11 + "requires": {
12 + "mime-types": "~2.1.24",
13 + "negotiator": "0.6.2"
14 + }
15 + },
16 + "ajv": {
17 + "version": "6.10.0",
18 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
19 + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
20 + "requires": {
21 + "fast-deep-equal": "^2.0.1",
22 + "fast-json-stable-stringify": "^2.0.0",
23 + "json-schema-traverse": "^0.4.1",
24 + "uri-js": "^4.2.2"
25 + }
26 + },
27 + "array-flatten": {
28 + "version": "1.1.1",
29 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
30 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
31 + },
32 + "asn1": {
33 + "version": "0.2.4",
34 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
35 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
36 + "requires": {
37 + "safer-buffer": "~2.1.0"
38 + }
39 + },
40 + "assert-plus": {
41 + "version": "1.0.0",
42 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
43 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
44 + },
45 + "async": {
46 + "version": "2.6.2",
47 + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
48 + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
49 + "requires": {
50 + "lodash": "^4.17.11"
51 + }
52 + },
53 + "asynckit": {
54 + "version": "0.4.0",
55 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
56 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
57 + },
58 + "aws-sign2": {
59 + "version": "0.7.0",
60 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
61 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
62 + },
63 + "aws4": {
64 + "version": "1.8.0",
65 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
66 + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
67 + },
68 + "bcrypt-pbkdf": {
69 + "version": "1.0.2",
70 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
71 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
72 + "requires": {
73 + "tweetnacl": "^0.14.3"
74 + }
75 + },
76 + "bluebird": {
77 + "version": "3.5.1",
78 + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
79 + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
80 + },
81 + "body-parser": {
82 + "version": "1.19.0",
83 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
84 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
85 + "requires": {
86 + "bytes": "3.1.0",
87 + "content-type": "~1.0.4",
88 + "debug": "2.6.9",
89 + "depd": "~1.1.2",
90 + "http-errors": "1.7.2",
91 + "iconv-lite": "0.4.24",
92 + "on-finished": "~2.3.0",
93 + "qs": "6.7.0",
94 + "raw-body": "2.4.0",
95 + "type-is": "~1.6.17"
96 + }
97 + },
98 + "bson": {
99 + "version": "1.1.1",
100 + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz",
101 + "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
102 + },
103 + "bytes": {
104 + "version": "3.1.0",
105 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
106 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
107 + },
108 + "caseless": {
109 + "version": "0.12.0",
110 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
111 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
112 + },
113 + "combined-stream": {
114 + "version": "1.0.8",
115 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
116 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
117 + "requires": {
118 + "delayed-stream": "~1.0.0"
119 + }
120 + },
121 + "content-disposition": {
122 + "version": "0.5.3",
123 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
124 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
125 + "requires": {
126 + "safe-buffer": "5.1.2"
127 + }
128 + },
129 + "content-type": {
130 + "version": "1.0.4",
131 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
132 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
133 + },
134 + "cookie": {
135 + "version": "0.4.0",
136 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
137 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
138 + },
139 + "cookie-signature": {
140 + "version": "1.0.6",
141 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
142 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
143 + },
144 + "core-util-is": {
145 + "version": "1.0.2",
146 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
147 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
148 + },
149 + "dashdash": {
150 + "version": "1.14.1",
151 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
152 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
153 + "requires": {
154 + "assert-plus": "^1.0.0"
155 + }
156 + },
157 + "debug": {
158 + "version": "2.6.9",
159 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
160 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
161 + "requires": {
162 + "ms": "2.0.0"
163 + }
164 + },
165 + "delayed-stream": {
166 + "version": "1.0.0",
167 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
168 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
169 + },
170 + "depd": {
171 + "version": "1.1.2",
172 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
173 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
174 + },
175 + "destroy": {
176 + "version": "1.0.4",
177 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
178 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
179 + },
180 + "ecc-jsbn": {
181 + "version": "0.1.2",
182 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
183 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
184 + "requires": {
185 + "jsbn": "~0.1.0",
186 + "safer-buffer": "^2.1.0"
187 + }
188 + },
189 + "ee-first": {
190 + "version": "1.1.1",
191 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
192 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
193 + },
194 + "encodeurl": {
195 + "version": "1.0.2",
196 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
197 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
198 + },
199 + "escape-html": {
200 + "version": "1.0.3",
201 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
202 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
203 + },
204 + "etag": {
205 + "version": "1.8.1",
206 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
207 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
208 + },
209 + "express": {
210 + "version": "4.17.0",
211 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.0.tgz",
212 + "integrity": "sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ==",
213 + "requires": {
214 + "accepts": "~1.3.7",
215 + "array-flatten": "1.1.1",
216 + "body-parser": "1.19.0",
217 + "content-disposition": "0.5.3",
218 + "content-type": "~1.0.4",
219 + "cookie": "0.4.0",
220 + "cookie-signature": "1.0.6",
221 + "debug": "2.6.9",
222 + "depd": "~1.1.2",
223 + "encodeurl": "~1.0.2",
224 + "escape-html": "~1.0.3",
225 + "etag": "~1.8.1",
226 + "finalhandler": "~1.1.2",
227 + "fresh": "0.5.2",
228 + "merge-descriptors": "1.0.1",
229 + "methods": "~1.1.2",
230 + "on-finished": "~2.3.0",
231 + "parseurl": "~1.3.3",
232 + "path-to-regexp": "0.1.7",
233 + "proxy-addr": "~2.0.5",
234 + "qs": "6.7.0",
235 + "range-parser": "~1.2.1",
236 + "safe-buffer": "5.1.2",
237 + "send": "0.17.1",
238 + "serve-static": "1.14.1",
239 + "setprototypeof": "1.1.1",
240 + "statuses": "~1.5.0",
241 + "type-is": "~1.6.18",
242 + "utils-merge": "1.0.1",
243 + "vary": "~1.1.2"
244 + }
245 + },
246 + "extend": {
247 + "version": "3.0.2",
248 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
249 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
250 + },
251 + "extsprintf": {
252 + "version": "1.3.0",
253 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
254 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
255 + },
256 + "fast-deep-equal": {
257 + "version": "2.0.1",
258 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
259 + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
260 + },
261 + "fast-json-stable-stringify": {
262 + "version": "2.0.0",
263 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
264 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
265 + },
266 + "finalhandler": {
267 + "version": "1.1.2",
268 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
269 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
270 + "requires": {
271 + "debug": "2.6.9",
272 + "encodeurl": "~1.0.2",
273 + "escape-html": "~1.0.3",
274 + "on-finished": "~2.3.0",
275 + "parseurl": "~1.3.3",
276 + "statuses": "~1.5.0",
277 + "unpipe": "~1.0.0"
278 + }
279 + },
280 + "forever-agent": {
281 + "version": "0.6.1",
282 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
283 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
284 + },
285 + "form-data": {
286 + "version": "2.3.3",
287 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
288 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
289 + "requires": {
290 + "asynckit": "^0.4.0",
291 + "combined-stream": "^1.0.6",
292 + "mime-types": "^2.1.12"
293 + }
294 + },
295 + "forwarded": {
296 + "version": "0.1.2",
297 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
298 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
299 + },
300 + "fresh": {
301 + "version": "0.5.2",
302 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
303 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
304 + },
305 + "getpass": {
306 + "version": "0.1.7",
307 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
308 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
309 + "requires": {
310 + "assert-plus": "^1.0.0"
311 + }
312 + },
313 + "har-schema": {
314 + "version": "2.0.0",
315 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
316 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
317 + },
318 + "har-validator": {
319 + "version": "5.1.3",
320 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
321 + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
322 + "requires": {
323 + "ajv": "^6.5.5",
324 + "har-schema": "^2.0.0"
325 + }
326 + },
327 + "http-errors": {
328 + "version": "1.7.2",
329 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
330 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
331 + "requires": {
332 + "depd": "~1.1.2",
333 + "inherits": "2.0.3",
334 + "setprototypeof": "1.1.1",
335 + "statuses": ">= 1.5.0 < 2",
336 + "toidentifier": "1.0.0"
337 + }
338 + },
339 + "http-signature": {
340 + "version": "1.2.0",
341 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
342 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
343 + "requires": {
344 + "assert-plus": "^1.0.0",
345 + "jsprim": "^1.2.2",
346 + "sshpk": "^1.7.0"
347 + }
348 + },
349 + "iconv-lite": {
350 + "version": "0.4.24",
351 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
352 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
353 + "requires": {
354 + "safer-buffer": ">= 2.1.2 < 3"
355 + }
356 + },
357 + "inherits": {
358 + "version": "2.0.3",
359 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
360 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
361 + },
362 + "ipaddr.js": {
363 + "version": "1.9.0",
364 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
365 + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
366 + },
367 + "is-typedarray": {
368 + "version": "1.0.0",
369 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
370 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
371 + },
372 + "isstream": {
373 + "version": "0.1.2",
374 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
375 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
376 + },
377 + "jsbn": {
378 + "version": "0.1.1",
379 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
380 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
381 + },
382 + "json-schema": {
383 + "version": "0.2.3",
384 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
385 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
386 + },
387 + "json-schema-traverse": {
388 + "version": "0.4.1",
389 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
390 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
391 + },
392 + "json-stringify-safe": {
393 + "version": "5.0.1",
394 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
395 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
396 + },
397 + "jsprim": {
398 + "version": "1.4.1",
399 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
400 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
401 + "requires": {
402 + "assert-plus": "1.0.0",
403 + "extsprintf": "1.3.0",
404 + "json-schema": "0.2.3",
405 + "verror": "1.10.0"
406 + }
407 + },
408 + "kareem": {
409 + "version": "2.3.0",
410 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz",
411 + "integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg=="
412 + },
413 + "lodash": {
414 + "version": "4.17.11",
415 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
416 + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
417 + },
418 + "media-typer": {
419 + "version": "0.3.0",
420 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
421 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
422 + },
423 + "memory-pager": {
424 + "version": "1.5.0",
425 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
426 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
427 + "optional": true
428 + },
429 + "merge-descriptors": {
430 + "version": "1.0.1",
431 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
432 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
433 + },
434 + "methods": {
435 + "version": "1.1.2",
436 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
437 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
438 + },
439 + "mime": {
440 + "version": "1.6.0",
441 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
442 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
443 + },
444 + "mime-db": {
445 + "version": "1.40.0",
446 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
447 + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
448 + },
449 + "mime-types": {
450 + "version": "2.1.24",
451 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
452 + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
453 + "requires": {
454 + "mime-db": "1.40.0"
455 + }
456 + },
457 + "mongodb": {
458 + "version": "3.2.5",
459 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.5.tgz",
460 + "integrity": "sha512-VEu2nsfFMwWA6q6JVnlJ2kNVwjluU4op2J/YiG1LeI14t9HotLXbg8w3I794BvezC4ZCZ/wBTTdby01txalwwQ==",
461 + "requires": {
462 + "mongodb-core": "3.2.5",
463 + "safe-buffer": "^5.1.2"
464 + }
465 + },
466 + "mongodb-core": {
467 + "version": "3.2.5",
468 + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.5.tgz",
469 + "integrity": "sha512-czmFd/7Cy+PxItL5KewYgkKTJGb2JyC1PdIdLBVGHER4Vsgu/A+fXDDNO+PLuyHNdh7qbH2XyLP4HHAifgBBoQ==",
470 + "requires": {
471 + "bson": "^1.1.1",
472 + "require_optional": "^1.0.1",
473 + "safe-buffer": "^5.1.2",
474 + "saslprep": "^1.0.0"
475 + }
476 + },
477 + "mongoose": {
478 + "version": "5.5.11",
479 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.5.11.tgz",
480 + "integrity": "sha512-jLYPk4jYe1N5CNwBcj48tQwQZ5Dc8VsnAjdMiqaKh5+CwU9EqEfuEtYMkFhJLu/LaTA4LN7crFzydGHdlAZtmg==",
481 + "requires": {
482 + "async": "2.6.2",
483 + "bson": "~1.1.1",
484 + "kareem": "2.3.0",
485 + "mongodb": "3.2.5",
486 + "mongodb-core": "3.2.5",
487 + "mongoose-legacy-pluralize": "1.0.2",
488 + "mpath": "0.6.0",
489 + "mquery": "3.2.0",
490 + "ms": "2.1.1",
491 + "regexp-clone": "0.0.1",
492 + "safe-buffer": "5.1.2",
493 + "sift": "7.0.1",
494 + "sliced": "1.0.1"
495 + },
496 + "dependencies": {
497 + "ms": {
498 + "version": "2.1.1",
499 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
500 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
501 + }
502 + }
503 + },
504 + "mongoose-legacy-pluralize": {
505 + "version": "1.0.2",
506 + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
507 + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
508 + },
509 + "mpath": {
510 + "version": "0.6.0",
511 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz",
512 + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
513 + },
514 + "mquery": {
515 + "version": "3.2.0",
516 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz",
517 + "integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==",
518 + "requires": {
519 + "bluebird": "3.5.1",
520 + "debug": "3.1.0",
521 + "regexp-clone": "0.0.1",
522 + "safe-buffer": "5.1.2",
523 + "sliced": "1.0.1"
524 + },
525 + "dependencies": {
526 + "debug": {
527 + "version": "3.1.0",
528 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
529 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
530 + "requires": {
531 + "ms": "2.0.0"
532 + }
533 + }
534 + }
535 + },
536 + "ms": {
537 + "version": "2.0.0",
538 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
539 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
540 + },
541 + "negotiator": {
542 + "version": "0.6.2",
543 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
544 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
545 + },
546 + "oauth-sign": {
547 + "version": "0.9.0",
548 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
549 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
550 + },
551 + "on-finished": {
552 + "version": "2.3.0",
553 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
554 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
555 + "requires": {
556 + "ee-first": "1.1.1"
557 + }
558 + },
559 + "parseurl": {
560 + "version": "1.3.3",
561 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
562 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
563 + },
564 + "path-to-regexp": {
565 + "version": "0.1.7",
566 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
567 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
568 + },
569 + "performance-now": {
570 + "version": "2.1.0",
571 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
572 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
573 + },
574 + "proxy-addr": {
575 + "version": "2.0.5",
576 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
577 + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
578 + "requires": {
579 + "forwarded": "~0.1.2",
580 + "ipaddr.js": "1.9.0"
581 + }
582 + },
583 + "psl": {
584 + "version": "1.1.31",
585 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
586 + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
587 + },
588 + "punycode": {
589 + "version": "2.1.1",
590 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
591 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
592 + },
593 + "qs": {
594 + "version": "6.7.0",
595 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
596 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
597 + },
598 + "range-parser": {
599 + "version": "1.2.1",
600 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
601 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
602 + },
603 + "raw-body": {
604 + "version": "2.4.0",
605 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
606 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
607 + "requires": {
608 + "bytes": "3.1.0",
609 + "http-errors": "1.7.2",
610 + "iconv-lite": "0.4.24",
611 + "unpipe": "1.0.0"
612 + }
613 + },
614 + "regexp-clone": {
615 + "version": "0.0.1",
616 + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
617 + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
618 + },
619 + "request": {
620 + "version": "2.88.0",
621 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
622 + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
623 + "requires": {
624 + "aws-sign2": "~0.7.0",
625 + "aws4": "^1.8.0",
626 + "caseless": "~0.12.0",
627 + "combined-stream": "~1.0.6",
628 + "extend": "~3.0.2",
629 + "forever-agent": "~0.6.1",
630 + "form-data": "~2.3.2",
631 + "har-validator": "~5.1.0",
632 + "http-signature": "~1.2.0",
633 + "is-typedarray": "~1.0.0",
634 + "isstream": "~0.1.2",
635 + "json-stringify-safe": "~5.0.1",
636 + "mime-types": "~2.1.19",
637 + "oauth-sign": "~0.9.0",
638 + "performance-now": "^2.1.0",
639 + "qs": "~6.5.2",
640 + "safe-buffer": "^5.1.2",
641 + "tough-cookie": "~2.4.3",
642 + "tunnel-agent": "^0.6.0",
643 + "uuid": "^3.3.2"
644 + },
645 + "dependencies": {
646 + "qs": {
647 + "version": "6.5.2",
648 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
649 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
650 + }
651 + }
652 + },
653 + "require_optional": {
654 + "version": "1.0.1",
655 + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
656 + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
657 + "requires": {
658 + "resolve-from": "^2.0.0",
659 + "semver": "^5.1.0"
660 + }
661 + },
662 + "resolve-from": {
663 + "version": "2.0.0",
664 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
665 + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
666 + },
667 + "safe-buffer": {
668 + "version": "5.1.2",
669 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
670 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
671 + },
672 + "safer-buffer": {
673 + "version": "2.1.2",
674 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
675 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
676 + },
677 + "saslprep": {
678 + "version": "1.0.3",
679 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
680 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
681 + "optional": true,
682 + "requires": {
683 + "sparse-bitfield": "^3.0.3"
684 + }
685 + },
686 + "semver": {
687 + "version": "5.7.0",
688 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
689 + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
690 + },
691 + "send": {
692 + "version": "0.17.1",
693 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
694 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
695 + "requires": {
696 + "debug": "2.6.9",
697 + "depd": "~1.1.2",
698 + "destroy": "~1.0.4",
699 + "encodeurl": "~1.0.2",
700 + "escape-html": "~1.0.3",
701 + "etag": "~1.8.1",
702 + "fresh": "0.5.2",
703 + "http-errors": "~1.7.2",
704 + "mime": "1.6.0",
705 + "ms": "2.1.1",
706 + "on-finished": "~2.3.0",
707 + "range-parser": "~1.2.1",
708 + "statuses": "~1.5.0"
709 + },
710 + "dependencies": {
711 + "ms": {
712 + "version": "2.1.1",
713 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
714 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
715 + }
716 + }
717 + },
718 + "serve-static": {
719 + "version": "1.14.1",
720 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
721 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
722 + "requires": {
723 + "encodeurl": "~1.0.2",
724 + "escape-html": "~1.0.3",
725 + "parseurl": "~1.3.3",
726 + "send": "0.17.1"
727 + }
728 + },
729 + "setprototypeof": {
730 + "version": "1.1.1",
731 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
732 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
733 + },
734 + "sift": {
735 + "version": "7.0.1",
736 + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
737 + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
738 + },
739 + "sliced": {
740 + "version": "1.0.1",
741 + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
742 + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
743 + },
744 + "sparse-bitfield": {
745 + "version": "3.0.3",
746 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
747 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
748 + "optional": true,
749 + "requires": {
750 + "memory-pager": "^1.0.2"
751 + }
752 + },
753 + "sshpk": {
754 + "version": "1.16.1",
755 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
756 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
757 + "requires": {
758 + "asn1": "~0.2.3",
759 + "assert-plus": "^1.0.0",
760 + "bcrypt-pbkdf": "^1.0.0",
761 + "dashdash": "^1.12.0",
762 + "ecc-jsbn": "~0.1.1",
763 + "getpass": "^0.1.1",
764 + "jsbn": "~0.1.0",
765 + "safer-buffer": "^2.0.2",
766 + "tweetnacl": "~0.14.0"
767 + }
768 + },
769 + "statuses": {
770 + "version": "1.5.0",
771 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
772 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
773 + },
774 + "toidentifier": {
775 + "version": "1.0.0",
776 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
777 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
778 + },
779 + "tough-cookie": {
780 + "version": "2.4.3",
781 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
782 + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
783 + "requires": {
784 + "psl": "^1.1.24",
785 + "punycode": "^1.4.1"
786 + },
787 + "dependencies": {
788 + "punycode": {
789 + "version": "1.4.1",
790 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
791 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
792 + }
793 + }
794 + },
795 + "tunnel-agent": {
796 + "version": "0.6.0",
797 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
798 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
799 + "requires": {
800 + "safe-buffer": "^5.0.1"
801 + }
802 + },
803 + "tweetnacl": {
804 + "version": "0.14.5",
805 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
806 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
807 + },
808 + "type-is": {
809 + "version": "1.6.18",
810 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
811 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
812 + "requires": {
813 + "media-typer": "0.3.0",
814 + "mime-types": "~2.1.24"
815 + }
816 + },
817 + "unpipe": {
818 + "version": "1.0.0",
819 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
820 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
821 + },
822 + "uri-js": {
823 + "version": "4.2.2",
824 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
825 + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
826 + "requires": {
827 + "punycode": "^2.1.0"
828 + }
829 + },
830 + "utils-merge": {
831 + "version": "1.0.1",
832 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
833 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
834 + },
835 + "uuid": {
836 + "version": "3.3.2",
837 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
838 + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
839 + },
840 + "vary": {
841 + "version": "1.1.2",
842 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
843 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
844 + },
845 + "verror": {
846 + "version": "1.10.0",
847 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
848 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
849 + "requires": {
850 + "assert-plus": "^1.0.0",
851 + "core-util-is": "1.0.2",
852 + "extsprintf": "^1.2.0"
853 + }
854 + }
855 + }
856 +}
1 +{
2 + "name": "spbot",
3 + "version": "1.0.0",
4 + "description": "SPBot Server",
5 + "main": "app.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1",
8 + "start": "node app.js"
9 + },
10 + "author": "WonJun Choi",
11 + "license": "ISC",
12 + "dependencies": {
13 + "body-parser": "^1.19.0",
14 + "express": "^4.17.0",
15 + "mongoose": "^5.5.11",
16 + "request": "^2.88.0"
17 + }
18 +}