DMKael

Start Project

1 +node_modules/
2 +.env
...\ No newline at end of file ...\ No newline at end of file
1 +var express = require('express');
2 +var app = express();
3 +const line = require('@line/bot-sdk');
4 +require("dotenv").config({path : '.env'});
5 +
6 +
7 +//papago api
8 +var request = require('request');
9 +
10 +//번역 api_url
11 +var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt';
12 +
13 +//언어감지 api_url
14 +var languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs'
15 +
16 +// Naver Auth Key
17 +//새로 발급받은 naver papago api id, pw 입력
18 +var client_id = process.env.client_id;
19 +var client_secret = process.env.client_secret;
20 +const config = {
21 + channelAccessToken: process.env.channelAccessToken,
22 + channelSecret: process.env.channelSecret,
23 +};
24 +
25 +
26 +// create LINE SDK client
27 +const client = new line.Client(config);
28 +
29 +// create Express app
30 +// about Express itself: https://expressjs.com/
31 +
32 +// register a webhook handler with middleware
33 +// about the middleware, please refer to doc
34 +app.post('/webhook', line.middleware(config), (req, res) => {
35 + Promise
36 + .all(req.body.events.map(handleEvent))
37 + .then((result) => res.json(result))
38 + .catch((err) => {
39 + console.error(err);
40 + res.status(200).end();
41 + });
42 +});
43 +
44 +// event handler
45 +function handleEvent(event) {
46 + if (event.type !== 'message' || event.message.type !== 'text') {
47 + // ignore non-text-message event
48 + return Promise.resolve(null);
49 + }
50 + return new Promise(function(resolve, reject) {
51 + //언어 감지 option
52 + var detect_options = {
53 + url : languagedetect_api_url,
54 + form : {'query': event.message.text},
55 + headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
56 + };
57 +
58 + //papago 언어 감지
59 + request.post(detect_options,function(error,response,body){
60 + console.log(response.statusCode);
61 + if(!error && response.statusCode == 200){
62 + var detect_body = JSON.parse(response.body);
63 + var source = '';
64 + var target = '';
65 + var result = { type: 'text', text:''};
66 +
67 + //언어 감지가 제대로 됐는지 확인
68 + console.log(detect_body.langCode);
69 +
70 +
71 + //번역은 한국어->영어 / 영어->한국어만 지원
72 + if(detect_body.langCode == 'ko'||detect_body.langCode == 'en'){
73 + source = detect_body.langCode == 'ko' ? 'ko':'en';
74 + target = source == 'ko' ? 'en':'ko';
75 + //papago 번역 option
76 + var options = {
77 + url: translate_api_url,
78 + // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
79 + form: {'source':source, 'target':target, 'text':event.message.text},
80 + headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
81 + };
82 +
83 + // Naver Post API
84 + request.post(options, function(error, response, body){
85 + // Translate API Sucess
86 + if(!error && response.statusCode == 200){
87 + // JSON
88 + var objBody = JSON.parse(response.body);
89 + // Message 잘 찍히는지 확인
90 +
91 + result.text = objBody.message.result.translatedText;
92 + console.log(result.text);
93 + //번역된 문장 보내기
94 + client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
95 + }
96 + });
97 + }
98 + // 메시지의 언어가 영어 또는 한국어가 아닐 경우
99 + else{
100 + result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.';
101 + client.replyMessage(event.replyToken,result).then(resolve).catch(reject);
102 + }
103 +
104 + }
105 +
106 + });
107 +
108 + });
109 + }
110 +
111 +app.listen(3000, function () {
112 + console.log('Linebot listening on port 3000!');
113 +});
1 +#!/usr/bin/env node
2 +
3 +/**
4 + * Module dependencies.
5 + */
6 +
7 +var app = require('../app');
8 +var debug = require('debug')('project:server');
9 +var http = require('http');
10 +
11 +/**
12 + * Get port from environment and store in Express.
13 + */
14 +
15 +var port = normalizePort(process.env.PORT || '3000');
16 +app.set('port', port);
17 +
18 +/**
19 + * Create HTTP server.
20 + */
21 +
22 +var server = http.createServer(app);
23 +
24 +/**
25 + * Listen on provided port, on all network interfaces.
26 + */
27 +
28 +server.listen(port);
29 +server.on('error', onError);
30 +server.on('listening', onListening);
31 +
32 +/**
33 + * Normalize a port into a number, string, or false.
34 + */
35 +
36 +function normalizePort(val) {
37 + var port = parseInt(val, 10);
38 +
39 + if (isNaN(port)) {
40 + // named pipe
41 + return val;
42 + }
43 +
44 + if (port >= 0) {
45 + // port number
46 + return port;
47 + }
48 +
49 + return false;
50 +}
51 +
52 +/**
53 + * Event listener for HTTP server "error" event.
54 + */
55 +
56 +function onError(error) {
57 + if (error.syscall !== 'listen') {
58 + throw error;
59 + }
60 +
61 + var bind = typeof port === 'string'
62 + ? 'Pipe ' + port
63 + : 'Port ' + port;
64 +
65 + // handle specific listen errors with friendly messages
66 + switch (error.code) {
67 + case 'EACCES':
68 + console.error(bind + ' requires elevated privileges');
69 + process.exit(1);
70 + break;
71 + case 'EADDRINUSE':
72 + console.error(bind + ' is already in use');
73 + process.exit(1);
74 + break;
75 + default:
76 + throw error;
77 + }
78 +}
79 +
80 +/**
81 + * Event listener for HTTP server "listening" event.
82 + */
83 +
84 +function onListening() {
85 + var addr = server.address();
86 + var bind = typeof addr === 'string'
87 + ? 'pipe ' + addr
88 + : 'port ' + addr.port;
89 + debug('Listening on ' + bind);
90 +}
1 +{
2 + "name": "linebot",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "@line/bot-sdk": {
8 + "version": "6.8.3",
9 + "resolved": "https://registry.npmjs.org/@line/bot-sdk/-/bot-sdk-6.8.3.tgz",
10 + "integrity": "sha512-nj2T4CQxw0W/juAlpj0kMTDScOh5QUK6xMCR2dZp+pN8B0vj/c+5uX3TyGB4ijz/NIsehgfKujPgzw7LhtYtJw==",
11 + "requires": {
12 + "@types/body-parser": "^1.16.8",
13 + "@types/file-type": "^5.2.1",
14 + "@types/node": "^7.0.31",
15 + "axios": "^0.19.0",
16 + "body-parser": "^1.18.2",
17 + "file-type": "^7.2.0"
18 + }
19 + },
20 + "@types/body-parser": {
21 + "version": "1.17.1",
22 + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz",
23 + "integrity": "sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==",
24 + "requires": {
25 + "@types/connect": "*",
26 + "@types/node": "*"
27 + }
28 + },
29 + "@types/connect": {
30 + "version": "3.4.32",
31 + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz",
32 + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==",
33 + "requires": {
34 + "@types/node": "*"
35 + }
36 + },
37 + "@types/file-type": {
38 + "version": "5.2.2",
39 + "resolved": "https://registry.npmjs.org/@types/file-type/-/file-type-5.2.2.tgz",
40 + "integrity": "sha512-GWtM4fyqfb+bec4ocpo51/y4x0b83Je+iA6eV131LT9wL0//G+1UgwbkMg7w61ceOwR+KkZXK00z44jrrNljWg==",
41 + "requires": {
42 + "@types/node": "*"
43 + }
44 + },
45 + "@types/node": {
46 + "version": "7.10.9",
47 + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.9.tgz",
48 + "integrity": "sha512-usSpgoUsRtO5xNV5YEPU8PPnHisFx8u0rokj1BPVn/hDF7zwUDzVLiuKZM38B7z8V2111Fj6kd4rGtQFUZpNOw=="
49 + },
50 + "accepts": {
51 + "version": "1.3.7",
52 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
53 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
54 + "requires": {
55 + "mime-types": "~2.1.24",
56 + "negotiator": "0.6.2"
57 + },
58 + "dependencies": {
59 + "mime-db": {
60 + "version": "1.42.0",
61 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
62 + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
63 + },
64 + "mime-types": {
65 + "version": "2.1.25",
66 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
67 + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
68 + "requires": {
69 + "mime-db": "1.42.0"
70 + }
71 + }
72 + }
73 + },
74 + "ajv": {
75 + "version": "6.10.2",
76 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
77 + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
78 + "requires": {
79 + "fast-deep-equal": "^2.0.1",
80 + "fast-json-stable-stringify": "^2.0.0",
81 + "json-schema-traverse": "^0.4.1",
82 + "uri-js": "^4.2.2"
83 + }
84 + },
85 + "array-flatten": {
86 + "version": "1.1.1",
87 + "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
88 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
89 + },
90 + "asn1": {
91 + "version": "0.2.4",
92 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
93 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
94 + "requires": {
95 + "safer-buffer": "~2.1.0"
96 + }
97 + },
98 + "assert-plus": {
99 + "version": "1.0.0",
100 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
101 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
102 + },
103 + "asynckit": {
104 + "version": "0.4.0",
105 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
106 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
107 + },
108 + "aws-sign2": {
109 + "version": "0.7.0",
110 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
111 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
112 + },
113 + "aws4": {
114 + "version": "1.9.0",
115 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz",
116 + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A=="
117 + },
118 + "axios": {
119 + "version": "0.19.0",
120 + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
121 + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
122 + "requires": {
123 + "follow-redirects": "1.5.10",
124 + "is-buffer": "^2.0.2"
125 + }
126 + },
127 + "bcrypt-pbkdf": {
128 + "version": "1.0.2",
129 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
130 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
131 + "requires": {
132 + "tweetnacl": "^0.14.3"
133 + }
134 + },
135 + "body-parser": {
136 + "version": "1.19.0",
137 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
138 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
139 + "requires": {
140 + "bytes": "3.1.0",
141 + "content-type": "~1.0.4",
142 + "debug": "2.6.9",
143 + "depd": "~1.1.2",
144 + "http-errors": "1.7.2",
145 + "iconv-lite": "0.4.24",
146 + "on-finished": "~2.3.0",
147 + "qs": "6.7.0",
148 + "raw-body": "2.4.0",
149 + "type-is": "~1.6.17"
150 + }
151 + },
152 + "bytes": {
153 + "version": "3.1.0",
154 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
155 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
156 + },
157 + "caseless": {
158 + "version": "0.12.0",
159 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
160 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
161 + },
162 + "combined-stream": {
163 + "version": "1.0.8",
164 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
165 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
166 + "requires": {
167 + "delayed-stream": "~1.0.0"
168 + }
169 + },
170 + "content-disposition": {
171 + "version": "0.5.3",
172 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
173 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
174 + "requires": {
175 + "safe-buffer": "5.1.2"
176 + }
177 + },
178 + "content-type": {
179 + "version": "1.0.4",
180 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
181 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
182 + },
183 + "cookie": {
184 + "version": "0.4.0",
185 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
186 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
187 + },
188 + "cookie-signature": {
189 + "version": "1.0.6",
190 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
191 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
192 + },
193 + "core-util-is": {
194 + "version": "1.0.2",
195 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
196 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
197 + },
198 + "dashdash": {
199 + "version": "1.14.1",
200 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
201 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
202 + "requires": {
203 + "assert-plus": "^1.0.0"
204 + }
205 + },
206 + "debug": {
207 + "version": "2.6.9",
208 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
209 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
210 + "requires": {
211 + "ms": "2.0.0"
212 + }
213 + },
214 + "delayed-stream": {
215 + "version": "1.0.0",
216 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
217 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
218 + },
219 + "depd": {
220 + "version": "1.1.2",
221 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
222 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
223 + },
224 + "destroy": {
225 + "version": "1.0.4",
226 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
227 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
228 + },
229 + "dotenv": {
230 + "version": "8.2.0",
231 + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
232 + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
233 + },
234 + "ecc-jsbn": {
235 + "version": "0.1.2",
236 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
237 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
238 + "requires": {
239 + "jsbn": "~0.1.0",
240 + "safer-buffer": "^2.1.0"
241 + }
242 + },
243 + "ee-first": {
244 + "version": "1.1.1",
245 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
246 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
247 + },
248 + "encodeurl": {
249 + "version": "1.0.2",
250 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
251 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
252 + },
253 + "escape-html": {
254 + "version": "1.0.3",
255 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
256 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
257 + },
258 + "etag": {
259 + "version": "1.8.1",
260 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
261 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
262 + },
263 + "express": {
264 + "version": "4.17.1",
265 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
266 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
267 + "requires": {
268 + "accepts": "~1.3.7",
269 + "array-flatten": "1.1.1",
270 + "body-parser": "1.19.0",
271 + "content-disposition": "0.5.3",
272 + "content-type": "~1.0.4",
273 + "cookie": "0.4.0",
274 + "cookie-signature": "1.0.6",
275 + "debug": "2.6.9",
276 + "depd": "~1.1.2",
277 + "encodeurl": "~1.0.2",
278 + "escape-html": "~1.0.3",
279 + "etag": "~1.8.1",
280 + "finalhandler": "~1.1.2",
281 + "fresh": "0.5.2",
282 + "merge-descriptors": "1.0.1",
283 + "methods": "~1.1.2",
284 + "on-finished": "~2.3.0",
285 + "parseurl": "~1.3.3",
286 + "path-to-regexp": "0.1.7",
287 + "proxy-addr": "~2.0.5",
288 + "qs": "6.7.0",
289 + "range-parser": "~1.2.1",
290 + "safe-buffer": "5.1.2",
291 + "send": "0.17.1",
292 + "serve-static": "1.14.1",
293 + "setprototypeof": "1.1.1",
294 + "statuses": "~1.5.0",
295 + "type-is": "~1.6.18",
296 + "utils-merge": "1.0.1",
297 + "vary": "~1.1.2"
298 + },
299 + "dependencies": {
300 + "body-parser": {
301 + "version": "1.19.0",
302 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
303 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
304 + "requires": {
305 + "bytes": "3.1.0",
306 + "content-type": "~1.0.4",
307 + "debug": "2.6.9",
308 + "depd": "~1.1.2",
309 + "http-errors": "1.7.2",
310 + "iconv-lite": "0.4.24",
311 + "on-finished": "~2.3.0",
312 + "qs": "6.7.0",
313 + "raw-body": "2.4.0",
314 + "type-is": "~1.6.17"
315 + }
316 + },
317 + "bytes": {
318 + "version": "3.1.0",
319 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
320 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
321 + },
322 + "http-errors": {
323 + "version": "1.7.2",
324 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
325 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
326 + "requires": {
327 + "depd": "~1.1.2",
328 + "inherits": "2.0.3",
329 + "setprototypeof": "1.1.1",
330 + "statuses": ">= 1.5.0 < 2",
331 + "toidentifier": "1.0.0"
332 + }
333 + },
334 + "iconv-lite": {
335 + "version": "0.4.24",
336 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
337 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
338 + "requires": {
339 + "safer-buffer": ">= 2.1.2 < 3"
340 + }
341 + },
342 + "mime-db": {
343 + "version": "1.42.0",
344 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
345 + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
346 + },
347 + "mime-types": {
348 + "version": "2.1.25",
349 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
350 + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
351 + "requires": {
352 + "mime-db": "1.42.0"
353 + }
354 + },
355 + "qs": {
356 + "version": "6.7.0",
357 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
358 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
359 + },
360 + "raw-body": {
361 + "version": "2.4.0",
362 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
363 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
364 + "requires": {
365 + "bytes": "3.1.0",
366 + "http-errors": "1.7.2",
367 + "iconv-lite": "0.4.24",
368 + "unpipe": "1.0.0"
369 + }
370 + },
371 + "setprototypeof": {
372 + "version": "1.1.1",
373 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
374 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
375 + },
376 + "statuses": {
377 + "version": "1.5.0",
378 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
379 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
380 + },
381 + "type-is": {
382 + "version": "1.6.18",
383 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
384 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
385 + "requires": {
386 + "media-typer": "0.3.0",
387 + "mime-types": "~2.1.24"
388 + }
389 + }
390 + }
391 + },
392 + "extend": {
393 + "version": "3.0.2",
394 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
395 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
396 + },
397 + "extsprintf": {
398 + "version": "1.3.0",
399 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
400 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
401 + },
402 + "fast-deep-equal": {
403 + "version": "2.0.1",
404 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
405 + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
406 + },
407 + "fast-json-stable-stringify": {
408 + "version": "2.0.0",
409 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
410 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
411 + },
412 + "file-type": {
413 + "version": "7.7.1",
414 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz",
415 + "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ=="
416 + },
417 + "finalhandler": {
418 + "version": "1.1.2",
419 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
420 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
421 + "requires": {
422 + "debug": "2.6.9",
423 + "encodeurl": "~1.0.2",
424 + "escape-html": "~1.0.3",
425 + "on-finished": "~2.3.0",
426 + "parseurl": "~1.3.3",
427 + "statuses": "~1.5.0",
428 + "unpipe": "~1.0.0"
429 + },
430 + "dependencies": {
431 + "statuses": {
432 + "version": "1.5.0",
433 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
434 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
435 + }
436 + }
437 + },
438 + "follow-redirects": {
439 + "version": "1.5.10",
440 + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
441 + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
442 + "requires": {
443 + "debug": "=3.1.0"
444 + },
445 + "dependencies": {
446 + "debug": {
447 + "version": "3.1.0",
448 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
449 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
450 + "requires": {
451 + "ms": "2.0.0"
452 + }
453 + }
454 + }
455 + },
456 + "forever-agent": {
457 + "version": "0.6.1",
458 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
459 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
460 + },
461 + "form-data": {
462 + "version": "2.3.3",
463 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
464 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
465 + "requires": {
466 + "asynckit": "^0.4.0",
467 + "combined-stream": "^1.0.6",
468 + "mime-types": "^2.1.12"
469 + }
470 + },
471 + "forwarded": {
472 + "version": "0.1.2",
473 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
474 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
475 + },
476 + "fresh": {
477 + "version": "0.5.2",
478 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
479 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
480 + },
481 + "getpass": {
482 + "version": "0.1.7",
483 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
484 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
485 + "requires": {
486 + "assert-plus": "^1.0.0"
487 + }
488 + },
489 + "har-schema": {
490 + "version": "2.0.0",
491 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
492 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
493 + },
494 + "har-validator": {
495 + "version": "5.1.3",
496 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
497 + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
498 + "requires": {
499 + "ajv": "^6.5.5",
500 + "har-schema": "^2.0.0"
501 + }
502 + },
503 + "http-errors": {
504 + "version": "1.7.2",
505 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
506 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
507 + "requires": {
508 + "depd": "~1.1.2",
509 + "inherits": "2.0.3",
510 + "setprototypeof": "1.1.1",
511 + "statuses": ">= 1.5.0 < 2",
512 + "toidentifier": "1.0.0"
513 + }
514 + },
515 + "http-signature": {
516 + "version": "1.2.0",
517 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
518 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
519 + "requires": {
520 + "assert-plus": "^1.0.0",
521 + "jsprim": "^1.2.2",
522 + "sshpk": "^1.7.0"
523 + }
524 + },
525 + "iconv-lite": {
526 + "version": "0.4.24",
527 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
528 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
529 + "requires": {
530 + "safer-buffer": ">= 2.1.2 < 3"
531 + }
532 + },
533 + "inherits": {
534 + "version": "2.0.3",
535 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
536 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
537 + },
538 + "ipaddr.js": {
539 + "version": "1.9.0",
540 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
541 + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
542 + },
543 + "is-buffer": {
544 + "version": "2.0.4",
545 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
546 + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
547 + },
548 + "is-typedarray": {
549 + "version": "1.0.0",
550 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
551 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
552 + },
553 + "isstream": {
554 + "version": "0.1.2",
555 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
556 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
557 + },
558 + "jsbn": {
559 + "version": "0.1.1",
560 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
561 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
562 + },
563 + "json-schema": {
564 + "version": "0.2.3",
565 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
566 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
567 + },
568 + "json-schema-traverse": {
569 + "version": "0.4.1",
570 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
571 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
572 + },
573 + "json-stringify-safe": {
574 + "version": "5.0.1",
575 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
576 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
577 + },
578 + "jsprim": {
579 + "version": "1.4.1",
580 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
581 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
582 + "requires": {
583 + "assert-plus": "1.0.0",
584 + "extsprintf": "1.3.0",
585 + "json-schema": "0.2.3",
586 + "verror": "1.10.0"
587 + }
588 + },
589 + "lodash": {
590 + "version": "4.17.15",
591 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
592 + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
593 + },
594 + "media-typer": {
595 + "version": "0.3.0",
596 + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
597 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
598 + },
599 + "merge-descriptors": {
600 + "version": "1.0.1",
601 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
602 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
603 + },
604 + "methods": {
605 + "version": "1.1.2",
606 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
607 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
608 + },
609 + "mime": {
610 + "version": "1.6.0",
611 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
612 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
613 + },
614 + "mime-db": {
615 + "version": "1.42.0",
616 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
617 + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
618 + },
619 + "mime-types": {
620 + "version": "2.1.25",
621 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
622 + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
623 + "requires": {
624 + "mime-db": "1.42.0"
625 + }
626 + },
627 + "ms": {
628 + "version": "2.0.0",
629 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
630 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
631 + },
632 + "negotiator": {
633 + "version": "0.6.2",
634 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
635 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
636 + },
637 + "oauth-sign": {
638 + "version": "0.9.0",
639 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
640 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
641 + },
642 + "on-finished": {
643 + "version": "2.3.0",
644 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
645 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
646 + "requires": {
647 + "ee-first": "1.1.1"
648 + }
649 + },
650 + "parseurl": {
651 + "version": "1.3.3",
652 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
653 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
654 + },
655 + "path-to-regexp": {
656 + "version": "0.1.7",
657 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
658 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
659 + },
660 + "performance-now": {
661 + "version": "2.1.0",
662 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
663 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
664 + },
665 + "proxy-addr": {
666 + "version": "2.0.5",
667 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
668 + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
669 + "requires": {
670 + "forwarded": "~0.1.2",
671 + "ipaddr.js": "1.9.0"
672 + }
673 + },
674 + "psl": {
675 + "version": "1.6.0",
676 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz",
677 + "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA=="
678 + },
679 + "punycode": {
680 + "version": "2.1.1",
681 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
682 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
683 + },
684 + "qs": {
685 + "version": "6.7.0",
686 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
687 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
688 + },
689 + "range-parser": {
690 + "version": "1.2.1",
691 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
692 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
693 + },
694 + "raw-body": {
695 + "version": "2.4.0",
696 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
697 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
698 + "requires": {
699 + "bytes": "3.1.0",
700 + "http-errors": "1.7.2",
701 + "iconv-lite": "0.4.24",
702 + "unpipe": "1.0.0"
703 + }
704 + },
705 + "request": {
706 + "version": "2.88.0",
707 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
708 + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
709 + "requires": {
710 + "aws-sign2": "~0.7.0",
711 + "aws4": "^1.8.0",
712 + "caseless": "~0.12.0",
713 + "combined-stream": "~1.0.6",
714 + "extend": "~3.0.2",
715 + "forever-agent": "~0.6.1",
716 + "form-data": "~2.3.2",
717 + "har-validator": "~5.1.0",
718 + "http-signature": "~1.2.0",
719 + "is-typedarray": "~1.0.0",
720 + "isstream": "~0.1.2",
721 + "json-stringify-safe": "~5.0.1",
722 + "mime-types": "~2.1.19",
723 + "oauth-sign": "~0.9.0",
724 + "performance-now": "^2.1.0",
725 + "qs": "~6.5.2",
726 + "safe-buffer": "^5.1.2",
727 + "tough-cookie": "~2.4.3",
728 + "tunnel-agent": "^0.6.0",
729 + "uuid": "^3.3.2"
730 + },
731 + "dependencies": {
732 + "punycode": {
733 + "version": "1.4.1",
734 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
735 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
736 + },
737 + "qs": {
738 + "version": "6.5.2",
739 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
740 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
741 + },
742 + "tough-cookie": {
743 + "version": "2.4.3",
744 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
745 + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
746 + "requires": {
747 + "psl": "^1.1.24",
748 + "punycode": "^1.4.1"
749 + }
750 + }
751 + }
752 + },
753 + "request-promise-core": {
754 + "version": "1.1.3",
755 + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
756 + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
757 + "requires": {
758 + "lodash": "^4.17.15"
759 + }
760 + },
761 + "request-promise-native": {
762 + "version": "1.0.8",
763 + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
764 + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
765 + "requires": {
766 + "request-promise-core": "1.1.3",
767 + "stealthy-require": "^1.1.1",
768 + "tough-cookie": "^2.3.3"
769 + }
770 + },
771 + "safe-buffer": {
772 + "version": "5.1.2",
773 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
774 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
775 + },
776 + "safer-buffer": {
777 + "version": "2.1.2",
778 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
779 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
780 + },
781 + "send": {
782 + "version": "0.17.1",
783 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
784 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
785 + "requires": {
786 + "debug": "2.6.9",
787 + "depd": "~1.1.2",
788 + "destroy": "~1.0.4",
789 + "encodeurl": "~1.0.2",
790 + "escape-html": "~1.0.3",
791 + "etag": "~1.8.1",
792 + "fresh": "0.5.2",
793 + "http-errors": "~1.7.2",
794 + "mime": "1.6.0",
795 + "ms": "2.1.1",
796 + "on-finished": "~2.3.0",
797 + "range-parser": "~1.2.1",
798 + "statuses": "~1.5.0"
799 + },
800 + "dependencies": {
801 + "http-errors": {
802 + "version": "1.7.3",
803 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
804 + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
805 + "requires": {
806 + "depd": "~1.1.2",
807 + "inherits": "2.0.4",
808 + "setprototypeof": "1.1.1",
809 + "statuses": ">= 1.5.0 < 2",
810 + "toidentifier": "1.0.0"
811 + }
812 + },
813 + "inherits": {
814 + "version": "2.0.4",
815 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
816 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
817 + },
818 + "ms": {
819 + "version": "2.1.1",
820 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
821 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
822 + },
823 + "setprototypeof": {
824 + "version": "1.1.1",
825 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
826 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
827 + },
828 + "statuses": {
829 + "version": "1.5.0",
830 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
831 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
832 + }
833 + }
834 + },
835 + "serve-static": {
836 + "version": "1.14.1",
837 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
838 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
839 + "requires": {
840 + "encodeurl": "~1.0.2",
841 + "escape-html": "~1.0.3",
842 + "parseurl": "~1.3.3",
843 + "send": "0.17.1"
844 + }
845 + },
846 + "setprototypeof": {
847 + "version": "1.1.1",
848 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
849 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
850 + },
851 + "sshpk": {
852 + "version": "1.16.1",
853 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
854 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
855 + "requires": {
856 + "asn1": "~0.2.3",
857 + "assert-plus": "^1.0.0",
858 + "bcrypt-pbkdf": "^1.0.0",
859 + "dashdash": "^1.12.0",
860 + "ecc-jsbn": "~0.1.1",
861 + "getpass": "^0.1.1",
862 + "jsbn": "~0.1.0",
863 + "safer-buffer": "^2.0.2",
864 + "tweetnacl": "~0.14.0"
865 + }
866 + },
867 + "statuses": {
868 + "version": "1.5.0",
869 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
870 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
871 + },
872 + "stealthy-require": {
873 + "version": "1.1.1",
874 + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
875 + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
876 + },
877 + "toidentifier": {
878 + "version": "1.0.0",
879 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
880 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
881 + },
882 + "tough-cookie": {
883 + "version": "2.5.0",
884 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
885 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
886 + "requires": {
887 + "psl": "^1.1.28",
888 + "punycode": "^2.1.1"
889 + }
890 + },
891 + "tunnel-agent": {
892 + "version": "0.6.0",
893 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
894 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
895 + "requires": {
896 + "safe-buffer": "^5.0.1"
897 + }
898 + },
899 + "tweetnacl": {
900 + "version": "0.14.5",
901 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
902 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
903 + },
904 + "type-is": {
905 + "version": "1.6.18",
906 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
907 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
908 + "requires": {
909 + "media-typer": "0.3.0",
910 + "mime-types": "~2.1.24"
911 + }
912 + },
913 + "unpipe": {
914 + "version": "1.0.0",
915 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
916 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
917 + },
918 + "uri-js": {
919 + "version": "4.2.2",
920 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
921 + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
922 + "requires": {
923 + "punycode": "^2.1.0"
924 + }
925 + },
926 + "utils-merge": {
927 + "version": "1.0.1",
928 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
929 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
930 + },
931 + "uuid": {
932 + "version": "3.3.3",
933 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
934 + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
935 + },
936 + "vary": {
937 + "version": "1.1.2",
938 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
939 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
940 + },
941 + "verror": {
942 + "version": "1.10.0",
943 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
944 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
945 + "requires": {
946 + "assert-plus": "^1.0.0",
947 + "core-util-is": "1.0.2",
948 + "extsprintf": "^1.2.0"
949 + }
950 + }
951 + }
952 +}
1 +{
2 + "name": "linebot",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "app.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1",
8 + "start": "node server.js"
9 + },
10 + "author": "김형도",
11 + "license": "MIT",
12 + "dependencies": {
13 + "@line/bot-sdk": "^6.8.3",
14 + "dotenv": "^8.2.0",
15 + "express": "^4.17.1",
16 + "request": "^2.88.0",
17 + "request-promise-native": "^1.0.8"
18 + }
19 +}