오세헌

organized repo 2

Showing 59 changed files with 0 additions and 4764 deletions
1 -let express = require('express');
2 -let app = express();
3 -let bodyParser = require('body-parser');
4 -
5 -app.use(bodyParser.urlencoded({ extended: false }));
6 -app.use(bodyParser.json());
7 -
8 -
9 -let books = new Array();
10 -
11 -app.get('/books/:bookId', (req, res) => {
12 - let bookId = req.params.bookId;
13 - console.log(books[bookId]);
14 - res.send(books[bookId]);
15 -});
16 -
17 -/*
18 - * json representation of book object
19 -{
20 - "id" : 2,
21 - "name" : "book2",
22 - "price" : 2000,
23 - "author" : "jin"
24 -}
25 -*/
26 -app.post('/books', (req, res) => {
27 - // Create book information
28 - books[req.body.id] = [req.body.id, req.body.name, req.body.price, req.body.author];
29 - res.send(books[req.body.id]);
30 -})
31 -
32 -app.put('/books', (req, res) => {
33 - // Update book information
34 -
35 -})
36 -
37 -
38 -app.delete('/books/:bookId', (req, res) => {
39 - // Delete book information
40 -
41 -})
42 -let server = app.listen(80);
43 - console.log(books);
1 -{
2 - "name": "assignment01",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "body-parser": "^1.17.1",
13 - "express": "^4.15.2"
14 - }
15 -}
1 -let express = require('express');
2 -let app = express();
3 -let bodyParser = require('body-parser');
4 -let session = require('express-session')
5 -
6 -app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
7 -app.use(bodyParser.urlencoded({ extended: false }));
8 -app.use(bodyParser.json());
9 -
10 -
11 -let users = new Array();
12 -users[0] = {
13 - "userId" : 0,
14 - "name" : "jin",
15 - "password" : "abc",
16 - "isAdmin" : true
17 -}
18 -
19 -app.put('/login', (req, res) => {
20 - // users 배열에서 찾도록 처리 해야 함
21 - // admin 여부를 확인하여 체크
22 - // req.body.id : ID
23 - // req.body.name : 패스워드
24 -
25 - res.send("Login");
26 -});
27 -
28 -app.put('/logout', (req, res) => {
29 - // Logout
30 - // 세션 유효 여부를 체크하고 세션 Delete
31 - req.session.userId = null;
32 - res.send("LogOut");
33 -
34 -});
35 -
36 -let auth = (req, res, next) => {
37 - // Session Check
38 - // 어드민 여부 체크 필요
39 - if (req.session.userId != null)
40 - next();
41 - else
42 - res.send("Error");
43 -
44 -};
45 -app.get('/user/:userId', auth, (req, res) => {
46 - // get User Information
47 - res.send("OK");
48 -});
49 -
50 -// 사용자 추가 시에 admin 여부도 추가해야 함
51 -
52 -let server = app.listen(80);
1 -{
2 - "name": "assignment02",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "body-parser": "^1.17.1",
13 - "express": "^4.15.2",
14 - "express-session": "^1.15.2"
15 - }
16 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.get('/', function (req, res) {
5 - res.send('hello world');
6 -})
7 -
8 -app.route('/book')
9 - .get(function (req, res) {
10 - res.send('Get a random book');
11 - })
12 - .post(function (req, res) {
13 - res.send('Add a book');
14 - })
15 - .put(function (req, res) {
16 - res.send('Update the book');
17 - });
18 -
19 -
20 -var server = app.listen(23023);
1 -{
2 - "name": "approute",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -var birds = require('./birds');
4 -
5 -
6 -app.get('/', function (req, res) {
7 - res.send('hello world');
8 -})
9 -
10 -app.use('/birds',birds);
11 -var server = app.listen(23023);
1 -var express = require('express');
2 -var router = express.Router();
3 -
4 -
5 -router.get('/', function (req, res) {
6 - res.send('Birds home page');
7 -})
8 -router.get('/about', function (req, res) {
9 - res.send('About birds');
10 -});
11 -
12 -module.exports=router;
1 -{
2 - "name": "expressrouter",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -app.get('/', function (req, res) {
4 - res.send('Hello World');
5 -})
6 -
7 -var server = app.listen(23023, function () {
8 - var host = server.address().address
9 - var port = server.address().port
10 - console.log("Example app listening at http://%s:%s", host, port)
11 -})
12 -
1 -{
2 - "name": "helloworld",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.get('/b', function (req, res, next) {
5 - console.log('the response will be sent by the next function ...')
6 - next()
7 -}, function (req, res) {
8 - res.send('Hello from B!')
9 -})
10 -
11 -var cb0 = function (req, res, next) {
12 - console.log("call by cb0");
13 - next()
14 -}
15 -var cb1 = function (req, res, next) {
16 - console.log("call by cb1");
17 - res.send('Hello from C!')
18 -}
19 -app.get('/c', [cb0, cb1])
20 -
21 -var server = app.listen(23023);
1 -{
2 - "name": "multiplehandler",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.set('view engine', 'ejs');
5 -app.set('views', 'views');
6 -
7 -app.get('/', function(req, res) {
8 - res.render('index', { title: 'OSS Page' });
9 -});
10 -
11 -var server = app.listen(23023);
1 -{
2 - "name": "render",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "ejs": "^2.5.6",
13 - "express": "^4.15.2"
14 - }
15 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.get('/users/:userId/books/:bookId', function (req, res) {
5 - res.send(req.params);
6 -})
7 -
8 -var server = app.listen(23023);
1 -{
2 - "name": "routeparameter",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -// The routing path matches requests to /about
5 -app.get('/about', function (req, res) {
6 - res.send('about')
7 -})
8 -
9 -// The routing path matches requests to /random.text
10 -app.get('/random.text', function (req, res) {
11 - res.send('random.text')
12 -})
13 -
14 -// This route path matches abcd, abxcd, abRANDOMcd, ab123cd, and so on.
15 -app.get('/ab*cd', function (req, res) {
16 - res.send('ab*cd')
17 -})
18 -
19 -var server = app.listen(23023);
1 -{
2 - "name": "routingpath",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -var session = require('express-session')
5 -
6 -app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
7 -
8 -
9 -
10 -app.get('/', function(req, res, next) {
11 - var sess = req.session;
12 - console.log(req.session);
13 - if (sess.views) {
14 - sess.views++;
15 - res.send("session Views " + sess.views);
16 - res.send();
17 - } else {
18 - req.session.views = 1;
19 - res.send("welcome to the session demo. refresh!");
20 - res.end();
21 - }
22 -});
23 -
24 -var server = app.listen(23023);
1 -{
2 - "name": "session",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2",
13 - "express-session": "^1.15.2"
14 - }
15 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.get('/', function (req, res) {
5 - res.send('hello world');
6 -})
7 -
8 -var server = app.listen(23023);
1 -{
2 - "name": "simplerouting",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -
4 -app.all('/', function (req, res, next) {
5 - console.log('Accessing the secret section ...')
6 - next() // pass control to the next handler
7 -})
8 -
9 -app.get('/', function (req, res) {
10 - res.send('hello world');
11 -})
12 -
13 -app.post('/', function (req, res) {
14 - res.send('POST request to the homepage')
15 -})
16 -
17 -var server = app.listen(23023);
1 -{
2 - "name": "specialrouting",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -var express = require('express');
2 -var app = express();
3 -app.use(express.static('public'));
4 -app.get('/', function (req, res) {
5 - res.send('Hello World');
6 -})
7 -var server = app.listen(23023);
1 -{
2 - "name": "staticfiles",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "index.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.15.2"
13 - }
14 -}
1 -// 모듈을 읽어 들입니다.
2 -const request = require('request');
3 -// 요청을 위한 상수를 선언합니다: TOKEN은 자신의 것을 입력해주세요.
4 -const TARGET_URL = 'https://notify-api.line.me/api/notify';
5 -const TOKEN = '///채워주세요///';
6 -// 요청합니다.
7 -request.post(
8 - {
9 - url: TARGET_URL,
10 - headers: {
11 - 'Authorization': `Bearer ${TOKEN}`
12 - },
13 - form: {
14 - message: '안녕하세요. LINE Notify 테스트입니다.',
15 - stickerPackageId: 1,
16 - stickerId: 1
17 - }
18 - },(error, response, body) => {
19 - console.log(body)
20 - });
1 -{
2 - "name": "notify",
3 - "version": "1.0.0",
4 - "lockfileVersion": 1,
5 - "requires": true,
6 - "dependencies": {
7 - "ajv": {
8 - "version": "6.12.2",
9 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
10 - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
11 - "requires": {
12 - "fast-deep-equal": "^3.1.1",
13 - "fast-json-stable-stringify": "^2.0.0",
14 - "json-schema-traverse": "^0.4.1",
15 - "uri-js": "^4.2.2"
16 - }
17 - },
18 - "asn1": {
19 - "version": "0.2.4",
20 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
21 - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
22 - "requires": {
23 - "safer-buffer": "~2.1.0"
24 - }
25 - },
26 - "assert-plus": {
27 - "version": "1.0.0",
28 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
29 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
30 - },
31 - "asynckit": {
32 - "version": "0.4.0",
33 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
34 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
35 - },
36 - "aws-sign2": {
37 - "version": "0.7.0",
38 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
39 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
40 - },
41 - "aws4": {
42 - "version": "1.9.1",
43 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
44 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
45 - },
46 - "bcrypt-pbkdf": {
47 - "version": "1.0.2",
48 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
49 - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
50 - "requires": {
51 - "tweetnacl": "^0.14.3"
52 - }
53 - },
54 - "caseless": {
55 - "version": "0.12.0",
56 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
57 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
58 - },
59 - "combined-stream": {
60 - "version": "1.0.8",
61 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
62 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
63 - "requires": {
64 - "delayed-stream": "~1.0.0"
65 - }
66 - },
67 - "core-util-is": {
68 - "version": "1.0.2",
69 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
70 - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
71 - },
72 - "dashdash": {
73 - "version": "1.14.1",
74 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
75 - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
76 - "requires": {
77 - "assert-plus": "^1.0.0"
78 - }
79 - },
80 - "delayed-stream": {
81 - "version": "1.0.0",
82 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
83 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
84 - },
85 - "ecc-jsbn": {
86 - "version": "0.1.2",
87 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
88 - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
89 - "requires": {
90 - "jsbn": "~0.1.0",
91 - "safer-buffer": "^2.1.0"
92 - }
93 - },
94 - "extend": {
95 - "version": "3.0.2",
96 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
97 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
98 - },
99 - "extsprintf": {
100 - "version": "1.3.0",
101 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
102 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
103 - },
104 - "fast-deep-equal": {
105 - "version": "3.1.1",
106 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
107 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
108 - },
109 - "fast-json-stable-stringify": {
110 - "version": "2.1.0",
111 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
112 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
113 - },
114 - "forever-agent": {
115 - "version": "0.6.1",
116 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
117 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
118 - },
119 - "form-data": {
120 - "version": "2.3.3",
121 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
122 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
123 - "requires": {
124 - "asynckit": "^0.4.0",
125 - "combined-stream": "^1.0.6",
126 - "mime-types": "^2.1.12"
127 - }
128 - },
129 - "getpass": {
130 - "version": "0.1.7",
131 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
132 - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
133 - "requires": {
134 - "assert-plus": "^1.0.0"
135 - }
136 - },
137 - "har-schema": {
138 - "version": "2.0.0",
139 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
140 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
141 - },
142 - "har-validator": {
143 - "version": "5.1.3",
144 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
145 - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
146 - "requires": {
147 - "ajv": "^6.5.5",
148 - "har-schema": "^2.0.0"
149 - }
150 - },
151 - "http-signature": {
152 - "version": "1.2.0",
153 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
154 - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
155 - "requires": {
156 - "assert-plus": "^1.0.0",
157 - "jsprim": "^1.2.2",
158 - "sshpk": "^1.7.0"
159 - }
160 - },
161 - "is-typedarray": {
162 - "version": "1.0.0",
163 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
164 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
165 - },
166 - "isstream": {
167 - "version": "0.1.2",
168 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
169 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
170 - },
171 - "jsbn": {
172 - "version": "0.1.1",
173 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
174 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
175 - },
176 - "json-schema": {
177 - "version": "0.2.3",
178 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
179 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
180 - },
181 - "json-schema-traverse": {
182 - "version": "0.4.1",
183 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
184 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
185 - },
186 - "json-stringify-safe": {
187 - "version": "5.0.1",
188 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
189 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
190 - },
191 - "jsprim": {
192 - "version": "1.4.1",
193 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
194 - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
195 - "requires": {
196 - "assert-plus": "1.0.0",
197 - "extsprintf": "1.3.0",
198 - "json-schema": "0.2.3",
199 - "verror": "1.10.0"
200 - }
201 - },
202 - "mime-db": {
203 - "version": "1.44.0",
204 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
205 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
206 - },
207 - "mime-types": {
208 - "version": "2.1.27",
209 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
210 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
211 - "requires": {
212 - "mime-db": "1.44.0"
213 - }
214 - },
215 - "oauth-sign": {
216 - "version": "0.9.0",
217 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
218 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
219 - },
220 - "performance-now": {
221 - "version": "2.1.0",
222 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
223 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
224 - },
225 - "psl": {
226 - "version": "1.8.0",
227 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
228 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
229 - },
230 - "punycode": {
231 - "version": "2.1.1",
232 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
233 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
234 - },
235 - "qs": {
236 - "version": "6.5.2",
237 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
238 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
239 - },
240 - "request": {
241 - "version": "2.88.2",
242 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
243 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
244 - "requires": {
245 - "aws-sign2": "~0.7.0",
246 - "aws4": "^1.8.0",
247 - "caseless": "~0.12.0",
248 - "combined-stream": "~1.0.6",
249 - "extend": "~3.0.2",
250 - "forever-agent": "~0.6.1",
251 - "form-data": "~2.3.2",
252 - "har-validator": "~5.1.3",
253 - "http-signature": "~1.2.0",
254 - "is-typedarray": "~1.0.0",
255 - "isstream": "~0.1.2",
256 - "json-stringify-safe": "~5.0.1",
257 - "mime-types": "~2.1.19",
258 - "oauth-sign": "~0.9.0",
259 - "performance-now": "^2.1.0",
260 - "qs": "~6.5.2",
261 - "safe-buffer": "^5.1.2",
262 - "tough-cookie": "~2.5.0",
263 - "tunnel-agent": "^0.6.0",
264 - "uuid": "^3.3.2"
265 - }
266 - },
267 - "safe-buffer": {
268 - "version": "5.2.1",
269 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
270 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
271 - },
272 - "safer-buffer": {
273 - "version": "2.1.2",
274 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
275 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
276 - },
277 - "sshpk": {
278 - "version": "1.16.1",
279 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
280 - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
281 - "requires": {
282 - "asn1": "~0.2.3",
283 - "assert-plus": "^1.0.0",
284 - "bcrypt-pbkdf": "^1.0.0",
285 - "dashdash": "^1.12.0",
286 - "ecc-jsbn": "~0.1.1",
287 - "getpass": "^0.1.1",
288 - "jsbn": "~0.1.0",
289 - "safer-buffer": "^2.0.2",
290 - "tweetnacl": "~0.14.0"
291 - }
292 - },
293 - "tough-cookie": {
294 - "version": "2.5.0",
295 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
296 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
297 - "requires": {
298 - "psl": "^1.1.28",
299 - "punycode": "^2.1.1"
300 - }
301 - },
302 - "tunnel-agent": {
303 - "version": "0.6.0",
304 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
305 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
306 - "requires": {
307 - "safe-buffer": "^5.0.1"
308 - }
309 - },
310 - "tweetnacl": {
311 - "version": "0.14.5",
312 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
313 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
314 - },
315 - "uri-js": {
316 - "version": "4.2.2",
317 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
318 - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
319 - "requires": {
320 - "punycode": "^2.1.0"
321 - }
322 - },
323 - "uuid": {
324 - "version": "3.4.0",
325 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
326 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
327 - },
328 - "verror": {
329 - "version": "1.10.0",
330 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
331 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
332 - "requires": {
333 - "assert-plus": "^1.0.0",
334 - "core-util-is": "1.0.2",
335 - "extsprintf": "^1.2.0"
336 - }
337 - }
338 - }
339 -}
1 -{
2 - "name": "notify",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "request": "^2.88.2"
13 - }
14 -}
1 -const request = require('request');
2 -const TARGET_URL = 'https://api.line.me/v2/bot/message/push'
3 -const MULTI_TARGET_URL = 'https://api.line.me/v2/bot/message/multicast'
4 -const BROAD_TARGET_URL = 'https://api.line.me/v2/bot/message/broadcast'
5 -const TOKEN = '채널 토큰으로 교체'
6 -const USER_ID = '사용자의 ID, 메세지 수신 시에 확인할 수 있음'
7 -
8 -// Single User
9 -// request.post(
10 -// {
11 -// url: TARGET_URL,
12 -// headers: {
13 -// 'Authorization': `Bearer ${TOKEN}`
14 -// },
15 -// json: {
16 -// "to": `${USER_ID}`,
17 -// "messages":[
18 -// {
19 -// "type":"text",
20 -// "text":"Hello, user"
21 -// },
22 -// {
23 -// "type":"text",
24 -// "text":"May I help you?"
25 -// }
26 -// ]
27 -// }
28 -// },(error, response, body) => {
29 -// console.log(body)
30 -// });
31 -
32 -
33 -// Multicast User
34 -// request.post(
35 -// {
36 -// url: MULTI_TARGET_URL,
37 -// headers: {
38 -// 'Authorization': `Bearer ${TOKEN}`
39 -// },
40 -// json: {
41 -// "to": [`${USER_ID}`],
42 -// "messages":[
43 -// {
44 -// "type":"text",
45 -// "text":"Hello, user"
46 -// },
47 -// {
48 -// "type":"text",
49 -// "text":"May I help you?"
50 -// }
51 -// ]
52 -// }
53 -// },(error, response, body) => {
54 -// console.log(body)
55 -// });
56 -
57 -
58 -// Broadcast
59 - request.post(
60 - {
61 - url: BROAD_TARGET_URL,
62 - headers: {
63 - 'Authorization': `Bearer ${TOKEN}`
64 - },
65 - json: {
66 - "messages":[
67 - {
68 - "type":"text",
69 - "text":"Hello, user"
70 - },
71 - {
72 - "type":"text",
73 - "text":"May I help you?"
74 - }
75 - ]
76 - }
77 - },(error, response, body) => {
78 - console.log(body)
79 - });
...\ No newline at end of file ...\ No newline at end of file
1 -{
2 - "name": "push",
3 - "version": "1.0.0",
4 - "lockfileVersion": 1,
5 - "requires": true,
6 - "dependencies": {
7 - "ajv": {
8 - "version": "6.12.2",
9 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
10 - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
11 - "requires": {
12 - "fast-deep-equal": "^3.1.1",
13 - "fast-json-stable-stringify": "^2.0.0",
14 - "json-schema-traverse": "^0.4.1",
15 - "uri-js": "^4.2.2"
16 - }
17 - },
18 - "asn1": {
19 - "version": "0.2.4",
20 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
21 - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
22 - "requires": {
23 - "safer-buffer": "~2.1.0"
24 - }
25 - },
26 - "assert-plus": {
27 - "version": "1.0.0",
28 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
29 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
30 - },
31 - "asynckit": {
32 - "version": "0.4.0",
33 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
34 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
35 - },
36 - "aws-sign2": {
37 - "version": "0.7.0",
38 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
39 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
40 - },
41 - "aws4": {
42 - "version": "1.9.1",
43 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
44 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
45 - },
46 - "bcrypt-pbkdf": {
47 - "version": "1.0.2",
48 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
49 - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
50 - "requires": {
51 - "tweetnacl": "^0.14.3"
52 - }
53 - },
54 - "caseless": {
55 - "version": "0.12.0",
56 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
57 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
58 - },
59 - "combined-stream": {
60 - "version": "1.0.8",
61 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
62 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
63 - "requires": {
64 - "delayed-stream": "~1.0.0"
65 - }
66 - },
67 - "core-util-is": {
68 - "version": "1.0.2",
69 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
70 - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
71 - },
72 - "dashdash": {
73 - "version": "1.14.1",
74 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
75 - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
76 - "requires": {
77 - "assert-plus": "^1.0.0"
78 - }
79 - },
80 - "delayed-stream": {
81 - "version": "1.0.0",
82 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
83 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
84 - },
85 - "ecc-jsbn": {
86 - "version": "0.1.2",
87 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
88 - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
89 - "requires": {
90 - "jsbn": "~0.1.0",
91 - "safer-buffer": "^2.1.0"
92 - }
93 - },
94 - "extend": {
95 - "version": "3.0.2",
96 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
97 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
98 - },
99 - "extsprintf": {
100 - "version": "1.3.0",
101 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
102 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
103 - },
104 - "fast-deep-equal": {
105 - "version": "3.1.1",
106 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
107 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
108 - },
109 - "fast-json-stable-stringify": {
110 - "version": "2.1.0",
111 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
112 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
113 - },
114 - "forever-agent": {
115 - "version": "0.6.1",
116 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
117 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
118 - },
119 - "form-data": {
120 - "version": "2.3.3",
121 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
122 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
123 - "requires": {
124 - "asynckit": "^0.4.0",
125 - "combined-stream": "^1.0.6",
126 - "mime-types": "^2.1.12"
127 - }
128 - },
129 - "getpass": {
130 - "version": "0.1.7",
131 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
132 - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
133 - "requires": {
134 - "assert-plus": "^1.0.0"
135 - }
136 - },
137 - "har-schema": {
138 - "version": "2.0.0",
139 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
140 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
141 - },
142 - "har-validator": {
143 - "version": "5.1.3",
144 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
145 - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
146 - "requires": {
147 - "ajv": "^6.5.5",
148 - "har-schema": "^2.0.0"
149 - }
150 - },
151 - "http-signature": {
152 - "version": "1.2.0",
153 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
154 - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
155 - "requires": {
156 - "assert-plus": "^1.0.0",
157 - "jsprim": "^1.2.2",
158 - "sshpk": "^1.7.0"
159 - }
160 - },
161 - "is-typedarray": {
162 - "version": "1.0.0",
163 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
164 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
165 - },
166 - "isstream": {
167 - "version": "0.1.2",
168 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
169 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
170 - },
171 - "jsbn": {
172 - "version": "0.1.1",
173 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
174 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
175 - },
176 - "json-schema": {
177 - "version": "0.2.3",
178 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
179 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
180 - },
181 - "json-schema-traverse": {
182 - "version": "0.4.1",
183 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
184 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
185 - },
186 - "json-stringify-safe": {
187 - "version": "5.0.1",
188 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
189 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
190 - },
191 - "jsprim": {
192 - "version": "1.4.1",
193 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
194 - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
195 - "requires": {
196 - "assert-plus": "1.0.0",
197 - "extsprintf": "1.3.0",
198 - "json-schema": "0.2.3",
199 - "verror": "1.10.0"
200 - }
201 - },
202 - "mime-db": {
203 - "version": "1.44.0",
204 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
205 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
206 - },
207 - "mime-types": {
208 - "version": "2.1.27",
209 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
210 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
211 - "requires": {
212 - "mime-db": "1.44.0"
213 - }
214 - },
215 - "oauth-sign": {
216 - "version": "0.9.0",
217 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
218 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
219 - },
220 - "performance-now": {
221 - "version": "2.1.0",
222 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
223 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
224 - },
225 - "psl": {
226 - "version": "1.8.0",
227 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
228 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
229 - },
230 - "punycode": {
231 - "version": "2.1.1",
232 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
233 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
234 - },
235 - "qs": {
236 - "version": "6.5.2",
237 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
238 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
239 - },
240 - "request": {
241 - "version": "2.88.2",
242 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
243 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
244 - "requires": {
245 - "aws-sign2": "~0.7.0",
246 - "aws4": "^1.8.0",
247 - "caseless": "~0.12.0",
248 - "combined-stream": "~1.0.6",
249 - "extend": "~3.0.2",
250 - "forever-agent": "~0.6.1",
251 - "form-data": "~2.3.2",
252 - "har-validator": "~5.1.3",
253 - "http-signature": "~1.2.0",
254 - "is-typedarray": "~1.0.0",
255 - "isstream": "~0.1.2",
256 - "json-stringify-safe": "~5.0.1",
257 - "mime-types": "~2.1.19",
258 - "oauth-sign": "~0.9.0",
259 - "performance-now": "^2.1.0",
260 - "qs": "~6.5.2",
261 - "safe-buffer": "^5.1.2",
262 - "tough-cookie": "~2.5.0",
263 - "tunnel-agent": "^0.6.0",
264 - "uuid": "^3.3.2"
265 - }
266 - },
267 - "safe-buffer": {
268 - "version": "5.2.1",
269 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
270 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
271 - },
272 - "safer-buffer": {
273 - "version": "2.1.2",
274 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
275 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
276 - },
277 - "sshpk": {
278 - "version": "1.16.1",
279 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
280 - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
281 - "requires": {
282 - "asn1": "~0.2.3",
283 - "assert-plus": "^1.0.0",
284 - "bcrypt-pbkdf": "^1.0.0",
285 - "dashdash": "^1.12.0",
286 - "ecc-jsbn": "~0.1.1",
287 - "getpass": "^0.1.1",
288 - "jsbn": "~0.1.0",
289 - "safer-buffer": "^2.0.2",
290 - "tweetnacl": "~0.14.0"
291 - }
292 - },
293 - "tough-cookie": {
294 - "version": "2.5.0",
295 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
296 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
297 - "requires": {
298 - "psl": "^1.1.28",
299 - "punycode": "^2.1.1"
300 - }
301 - },
302 - "tunnel-agent": {
303 - "version": "0.6.0",
304 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
305 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
306 - "requires": {
307 - "safe-buffer": "^5.0.1"
308 - }
309 - },
310 - "tweetnacl": {
311 - "version": "0.14.5",
312 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
313 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
314 - },
315 - "uri-js": {
316 - "version": "4.2.2",
317 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
318 - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
319 - "requires": {
320 - "punycode": "^2.1.0"
321 - }
322 - },
323 - "uuid": {
324 - "version": "3.4.0",
325 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
326 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
327 - },
328 - "verror": {
329 - "version": "1.10.0",
330 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
331 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
332 - "requires": {
333 - "assert-plus": "^1.0.0",
334 - "core-util-is": "1.0.2",
335 - "extsprintf": "^1.2.0"
336 - }
337 - }
338 - }
339 -}
1 -{
2 - "name": "push",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "request": "^2.88.2"
13 - }
14 -}
1 -var express = require('express');
2 -const request = require('request');
3 -const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
4 -const TOKEN = '채널 토큰으로 변경'
5 -const fs = require('fs');
6 -const path = require('path');
7 -const HTTPS = require('https');
8 -const domain = "도메인 변경"
9 -const sslport = 23023;
10 -
11 -const bodyParser = require('body-parser');
12 -var app = express();
13 -app.use(bodyParser.json());
14 -app.post('/hook', function (req, res) {
15 -
16 - var eventObj = req.body.events[0];
17 - var source = eventObj.source;
18 - var message = eventObj.message;
19 -
20 - // request log
21 - console.log('======================', new Date() ,'======================');
22 - console.log('[request]', req.body);
23 - console.log('[request source] ', eventObj.source);
24 - console.log('[request message]', eventObj.message);
25 -
26 - request.post(
27 - {
28 - url: TARGET_URL,
29 - headers: {
30 - 'Authorization': `Bearer ${TOKEN}`
31 - },
32 - json: {
33 - "replyToken":eventObj.replyToken,
34 - "messages":[
35 - {
36 - "type":"text",
37 - "text":"Hello, user"
38 - },
39 - {
40 - "type":"text",
41 - "text":"May I help you?"
42 - }
43 - ]
44 - }
45 - },(error, response, body) => {
46 - console.log(body)
47 - });
48 -
49 -
50 - res.sendStatus(200);
51 -});
52 -
53 -try {
54 - const option = {
55 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
56 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
57 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
58 - };
59 -
60 - HTTPS.createServer(option, app).listen(sslport, () => {
61 - console.log(`[HTTPS] Server is started on port ${sslport}`);
62 - });
63 - } catch (error) {
64 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
65 - console.log(error);
66 - }
67 -
1 -{
2 - "name": "reply",
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.12.2",
18 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
19 - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
20 - "requires": {
21 - "fast-deep-equal": "^3.1.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 - "asynckit": {
46 - "version": "0.4.0",
47 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
48 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
49 - },
50 - "aws-sign2": {
51 - "version": "0.7.0",
52 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
53 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
54 - },
55 - "aws4": {
56 - "version": "1.9.1",
57 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
58 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
59 - },
60 - "bcrypt-pbkdf": {
61 - "version": "1.0.2",
62 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
63 - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
64 - "requires": {
65 - "tweetnacl": "^0.14.3"
66 - }
67 - },
68 - "body-parser": {
69 - "version": "1.19.0",
70 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
71 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
72 - "requires": {
73 - "bytes": "3.1.0",
74 - "content-type": "~1.0.4",
75 - "debug": "2.6.9",
76 - "depd": "~1.1.2",
77 - "http-errors": "1.7.2",
78 - "iconv-lite": "0.4.24",
79 - "on-finished": "~2.3.0",
80 - "qs": "6.7.0",
81 - "raw-body": "2.4.0",
82 - "type-is": "~1.6.17"
83 - }
84 - },
85 - "bytes": {
86 - "version": "3.1.0",
87 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
88 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
89 - },
90 - "caseless": {
91 - "version": "0.12.0",
92 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
93 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
94 - },
95 - "combined-stream": {
96 - "version": "1.0.8",
97 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
98 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
99 - "requires": {
100 - "delayed-stream": "~1.0.0"
101 - }
102 - },
103 - "content-disposition": {
104 - "version": "0.5.3",
105 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
106 - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
107 - "requires": {
108 - "safe-buffer": "5.1.2"
109 - }
110 - },
111 - "content-type": {
112 - "version": "1.0.4",
113 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
114 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
115 - },
116 - "cookie": {
117 - "version": "0.4.0",
118 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
119 - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
120 - },
121 - "cookie-signature": {
122 - "version": "1.0.6",
123 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
124 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
125 - },
126 - "core-util-is": {
127 - "version": "1.0.2",
128 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
129 - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
130 - },
131 - "dashdash": {
132 - "version": "1.14.1",
133 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
134 - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
135 - "requires": {
136 - "assert-plus": "^1.0.0"
137 - }
138 - },
139 - "debug": {
140 - "version": "2.6.9",
141 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
142 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
143 - "requires": {
144 - "ms": "2.0.0"
145 - }
146 - },
147 - "delayed-stream": {
148 - "version": "1.0.0",
149 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
150 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
151 - },
152 - "depd": {
153 - "version": "1.1.2",
154 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
155 - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
156 - },
157 - "destroy": {
158 - "version": "1.0.4",
159 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
160 - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
161 - },
162 - "ecc-jsbn": {
163 - "version": "0.1.2",
164 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
165 - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
166 - "requires": {
167 - "jsbn": "~0.1.0",
168 - "safer-buffer": "^2.1.0"
169 - }
170 - },
171 - "ee-first": {
172 - "version": "1.1.1",
173 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
174 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
175 - },
176 - "encodeurl": {
177 - "version": "1.0.2",
178 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
179 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
180 - },
181 - "escape-html": {
182 - "version": "1.0.3",
183 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
184 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
185 - },
186 - "etag": {
187 - "version": "1.8.1",
188 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
189 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
190 - },
191 - "express": {
192 - "version": "4.17.1",
193 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
194 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
195 - "requires": {
196 - "accepts": "~1.3.7",
197 - "array-flatten": "1.1.1",
198 - "body-parser": "1.19.0",
199 - "content-disposition": "0.5.3",
200 - "content-type": "~1.0.4",
201 - "cookie": "0.4.0",
202 - "cookie-signature": "1.0.6",
203 - "debug": "2.6.9",
204 - "depd": "~1.1.2",
205 - "encodeurl": "~1.0.2",
206 - "escape-html": "~1.0.3",
207 - "etag": "~1.8.1",
208 - "finalhandler": "~1.1.2",
209 - "fresh": "0.5.2",
210 - "merge-descriptors": "1.0.1",
211 - "methods": "~1.1.2",
212 - "on-finished": "~2.3.0",
213 - "parseurl": "~1.3.3",
214 - "path-to-regexp": "0.1.7",
215 - "proxy-addr": "~2.0.5",
216 - "qs": "6.7.0",
217 - "range-parser": "~1.2.1",
218 - "safe-buffer": "5.1.2",
219 - "send": "0.17.1",
220 - "serve-static": "1.14.1",
221 - "setprototypeof": "1.1.1",
222 - "statuses": "~1.5.0",
223 - "type-is": "~1.6.18",
224 - "utils-merge": "1.0.1",
225 - "vary": "~1.1.2"
226 - }
227 - },
228 - "extend": {
229 - "version": "3.0.2",
230 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
231 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
232 - },
233 - "extsprintf": {
234 - "version": "1.3.0",
235 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
236 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
237 - },
238 - "fast-deep-equal": {
239 - "version": "3.1.1",
240 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
241 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
242 - },
243 - "fast-json-stable-stringify": {
244 - "version": "2.1.0",
245 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
246 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
247 - },
248 - "finalhandler": {
249 - "version": "1.1.2",
250 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
251 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
252 - "requires": {
253 - "debug": "2.6.9",
254 - "encodeurl": "~1.0.2",
255 - "escape-html": "~1.0.3",
256 - "on-finished": "~2.3.0",
257 - "parseurl": "~1.3.3",
258 - "statuses": "~1.5.0",
259 - "unpipe": "~1.0.0"
260 - }
261 - },
262 - "forever-agent": {
263 - "version": "0.6.1",
264 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
265 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
266 - },
267 - "form-data": {
268 - "version": "2.3.3",
269 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
270 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
271 - "requires": {
272 - "asynckit": "^0.4.0",
273 - "combined-stream": "^1.0.6",
274 - "mime-types": "^2.1.12"
275 - }
276 - },
277 - "forwarded": {
278 - "version": "0.1.2",
279 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
280 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
281 - },
282 - "fresh": {
283 - "version": "0.5.2",
284 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
285 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
286 - },
287 - "getpass": {
288 - "version": "0.1.7",
289 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
290 - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
291 - "requires": {
292 - "assert-plus": "^1.0.0"
293 - }
294 - },
295 - "har-schema": {
296 - "version": "2.0.0",
297 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
298 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
299 - },
300 - "har-validator": {
301 - "version": "5.1.3",
302 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
303 - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
304 - "requires": {
305 - "ajv": "^6.5.5",
306 - "har-schema": "^2.0.0"
307 - }
308 - },
309 - "http-errors": {
310 - "version": "1.7.2",
311 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
312 - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
313 - "requires": {
314 - "depd": "~1.1.2",
315 - "inherits": "2.0.3",
316 - "setprototypeof": "1.1.1",
317 - "statuses": ">= 1.5.0 < 2",
318 - "toidentifier": "1.0.0"
319 - }
320 - },
321 - "http-signature": {
322 - "version": "1.2.0",
323 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
324 - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
325 - "requires": {
326 - "assert-plus": "^1.0.0",
327 - "jsprim": "^1.2.2",
328 - "sshpk": "^1.7.0"
329 - }
330 - },
331 - "iconv-lite": {
332 - "version": "0.4.24",
333 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
334 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
335 - "requires": {
336 - "safer-buffer": ">= 2.1.2 < 3"
337 - }
338 - },
339 - "inherits": {
340 - "version": "2.0.3",
341 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
342 - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
343 - },
344 - "ipaddr.js": {
345 - "version": "1.9.1",
346 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
347 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
348 - },
349 - "is-typedarray": {
350 - "version": "1.0.0",
351 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
352 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
353 - },
354 - "isstream": {
355 - "version": "0.1.2",
356 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
357 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
358 - },
359 - "jsbn": {
360 - "version": "0.1.1",
361 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
362 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
363 - },
364 - "json-schema": {
365 - "version": "0.2.3",
366 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
367 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
368 - },
369 - "json-schema-traverse": {
370 - "version": "0.4.1",
371 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
372 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
373 - },
374 - "json-stringify-safe": {
375 - "version": "5.0.1",
376 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
377 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
378 - },
379 - "jsprim": {
380 - "version": "1.4.1",
381 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
382 - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
383 - "requires": {
384 - "assert-plus": "1.0.0",
385 - "extsprintf": "1.3.0",
386 - "json-schema": "0.2.3",
387 - "verror": "1.10.0"
388 - }
389 - },
390 - "media-typer": {
391 - "version": "0.3.0",
392 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
393 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
394 - },
395 - "merge-descriptors": {
396 - "version": "1.0.1",
397 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
398 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
399 - },
400 - "methods": {
401 - "version": "1.1.2",
402 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
403 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
404 - },
405 - "mime": {
406 - "version": "1.6.0",
407 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
408 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
409 - },
410 - "mime-db": {
411 - "version": "1.44.0",
412 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
413 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
414 - },
415 - "mime-types": {
416 - "version": "2.1.27",
417 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
418 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
419 - "requires": {
420 - "mime-db": "1.44.0"
421 - }
422 - },
423 - "ms": {
424 - "version": "2.0.0",
425 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
426 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
427 - },
428 - "negotiator": {
429 - "version": "0.6.2",
430 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
431 - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
432 - },
433 - "oauth-sign": {
434 - "version": "0.9.0",
435 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
436 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
437 - },
438 - "on-finished": {
439 - "version": "2.3.0",
440 - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
441 - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
442 - "requires": {
443 - "ee-first": "1.1.1"
444 - }
445 - },
446 - "parseurl": {
447 - "version": "1.3.3",
448 - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
449 - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
450 - },
451 - "path-to-regexp": {
452 - "version": "0.1.7",
453 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
454 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
455 - },
456 - "performance-now": {
457 - "version": "2.1.0",
458 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
459 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
460 - },
461 - "proxy-addr": {
462 - "version": "2.0.6",
463 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
464 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
465 - "requires": {
466 - "forwarded": "~0.1.2",
467 - "ipaddr.js": "1.9.1"
468 - }
469 - },
470 - "psl": {
471 - "version": "1.8.0",
472 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
473 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
474 - },
475 - "punycode": {
476 - "version": "2.1.1",
477 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
478 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
479 - },
480 - "qs": {
481 - "version": "6.7.0",
482 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
483 - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
484 - },
485 - "range-parser": {
486 - "version": "1.2.1",
487 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
488 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
489 - },
490 - "raw-body": {
491 - "version": "2.4.0",
492 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
493 - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
494 - "requires": {
495 - "bytes": "3.1.0",
496 - "http-errors": "1.7.2",
497 - "iconv-lite": "0.4.24",
498 - "unpipe": "1.0.0"
499 - }
500 - },
501 - "request": {
502 - "version": "2.88.2",
503 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
504 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
505 - "requires": {
506 - "aws-sign2": "~0.7.0",
507 - "aws4": "^1.8.0",
508 - "caseless": "~0.12.0",
509 - "combined-stream": "~1.0.6",
510 - "extend": "~3.0.2",
511 - "forever-agent": "~0.6.1",
512 - "form-data": "~2.3.2",
513 - "har-validator": "~5.1.3",
514 - "http-signature": "~1.2.0",
515 - "is-typedarray": "~1.0.0",
516 - "isstream": "~0.1.2",
517 - "json-stringify-safe": "~5.0.1",
518 - "mime-types": "~2.1.19",
519 - "oauth-sign": "~0.9.0",
520 - "performance-now": "^2.1.0",
521 - "qs": "~6.5.2",
522 - "safe-buffer": "^5.1.2",
523 - "tough-cookie": "~2.5.0",
524 - "tunnel-agent": "^0.6.0",
525 - "uuid": "^3.3.2"
526 - },
527 - "dependencies": {
528 - "qs": {
529 - "version": "6.5.2",
530 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
531 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
532 - }
533 - }
534 - },
535 - "safe-buffer": {
536 - "version": "5.1.2",
537 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
538 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
539 - },
540 - "safer-buffer": {
541 - "version": "2.1.2",
542 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
543 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
544 - },
545 - "send": {
546 - "version": "0.17.1",
547 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
548 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
549 - "requires": {
550 - "debug": "2.6.9",
551 - "depd": "~1.1.2",
552 - "destroy": "~1.0.4",
553 - "encodeurl": "~1.0.2",
554 - "escape-html": "~1.0.3",
555 - "etag": "~1.8.1",
556 - "fresh": "0.5.2",
557 - "http-errors": "~1.7.2",
558 - "mime": "1.6.0",
559 - "ms": "2.1.1",
560 - "on-finished": "~2.3.0",
561 - "range-parser": "~1.2.1",
562 - "statuses": "~1.5.0"
563 - },
564 - "dependencies": {
565 - "ms": {
566 - "version": "2.1.1",
567 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
568 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
569 - }
570 - }
571 - },
572 - "serve-static": {
573 - "version": "1.14.1",
574 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
575 - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
576 - "requires": {
577 - "encodeurl": "~1.0.2",
578 - "escape-html": "~1.0.3",
579 - "parseurl": "~1.3.3",
580 - "send": "0.17.1"
581 - }
582 - },
583 - "setprototypeof": {
584 - "version": "1.1.1",
585 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
586 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
587 - },
588 - "sshpk": {
589 - "version": "1.16.1",
590 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
591 - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
592 - "requires": {
593 - "asn1": "~0.2.3",
594 - "assert-plus": "^1.0.0",
595 - "bcrypt-pbkdf": "^1.0.0",
596 - "dashdash": "^1.12.0",
597 - "ecc-jsbn": "~0.1.1",
598 - "getpass": "^0.1.1",
599 - "jsbn": "~0.1.0",
600 - "safer-buffer": "^2.0.2",
601 - "tweetnacl": "~0.14.0"
602 - }
603 - },
604 - "statuses": {
605 - "version": "1.5.0",
606 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
607 - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
608 - },
609 - "toidentifier": {
610 - "version": "1.0.0",
611 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
612 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
613 - },
614 - "tough-cookie": {
615 - "version": "2.5.0",
616 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
617 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
618 - "requires": {
619 - "psl": "^1.1.28",
620 - "punycode": "^2.1.1"
621 - }
622 - },
623 - "tunnel-agent": {
624 - "version": "0.6.0",
625 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
626 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
627 - "requires": {
628 - "safe-buffer": "^5.0.1"
629 - }
630 - },
631 - "tweetnacl": {
632 - "version": "0.14.5",
633 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
634 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
635 - },
636 - "type-is": {
637 - "version": "1.6.18",
638 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
639 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
640 - "requires": {
641 - "media-typer": "0.3.0",
642 - "mime-types": "~2.1.24"
643 - }
644 - },
645 - "unpipe": {
646 - "version": "1.0.0",
647 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
648 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
649 - },
650 - "uri-js": {
651 - "version": "4.2.2",
652 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
653 - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
654 - "requires": {
655 - "punycode": "^2.1.0"
656 - }
657 - },
658 - "utils-merge": {
659 - "version": "1.0.1",
660 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
661 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
662 - },
663 - "uuid": {
664 - "version": "3.4.0",
665 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
666 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
667 - },
668 - "vary": {
669 - "version": "1.1.2",
670 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
671 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
672 - },
673 - "verror": {
674 - "version": "1.10.0",
675 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
676 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
677 - "requires": {
678 - "assert-plus": "^1.0.0",
679 - "core-util-is": "1.0.2",
680 - "extsprintf": "^1.2.0"
681 - }
682 - }
683 - }
684 -}
1 -{
2 - "name": "reply",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "body-parser": "^1.19.0",
13 - "express": "^4.17.1",
14 - "request": "^2.88.2"
15 - }
16 -}
1 -{
2 - // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
3 - // 기존 특성에 대한 설명을 보려면 가리킵니다.
4 - // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
5 - "version": "0.2.0",
6 - "configurations": [
7 - {
8 - "type": "pwa-node",
9 - "request": "launch",
10 - "name": "Launch Program",
11 - "skipFiles": [
12 - "<node_internals>/**"
13 - ],
14 - "program": "${workspaceFolder}/app.js",
15 - "runtimeExecutable": "${env:HOME}/.nvm/versions/node/v16.15.0/bin/node"
16 - }
17 - ]
18 -}
...\ No newline at end of file ...\ No newline at end of file
1 -const express = require('express');
2 -const fs = require('fs');
3 -const path = require('path');
4 -const HTTPS = require('https');
5 -
6 -const app = express();
7 -// 본인이 소유한 도메인으로 변경해야 함
8 -// www 붙여야 함
9 -const domain = "2019102197.osschatbot2022.ml"
10 -const sslport = 23023;
11 -
12 -app.get('/', function (req, res) {
13 - res.send('Hello World');
14 -})
15 -
16 -try {
17 - const option = {
18 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
19 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
20 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
21 - };
22 -
23 - HTTPS.createServer(option, app).listen(sslport, () => {
24 - console.log(`[HTTPS] Server is started on port ${sslport}`);
25 - });
26 -} catch (error) {
27 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
28 - console.log(error);
29 -}
30 -
1 -{
2 - "name": "ssl",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.17.1",
13 - "npm": "^8.11.0"
14 - }
15 -}
1 -{
2 - // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
3 - // 기존 특성에 대한 설명을 보려면 가리킵니다.
4 - // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
5 - "version": "0.2.0",
6 - "configurations": [
7 - {
8 - "type": "pwa-node",
9 - "request": "launch",
10 - "name": "Launch Program",
11 - "skipFiles": [
12 - "<node_internals>/**"
13 - ],
14 - "program": "${workspaceFolder}/app.js",
15 - "runtimeExecutable": "${env:HOME}/.nvm/versions/node/v16.15.0/bin/node"
16 - }
17 - ]
18 -}
...\ No newline at end of file ...\ No newline at end of file
1 -var express = require('express');
2 -const request = require('request');
3 -const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
4 -const TOKEN = 'A3e2T6lFz02I+kWl6BydLTnWCtxcsvioAr6g4FJMgvZyRcxzy+EdJntPO09XKEHOF08Pgg+L9rNEFKEYrhdhRNg5bmiGZdiaTJfp1DaY/uTVMjRU+hRM00OwvaWq4mxYt/GYLEDzrsQ3O8ezd9WbqQdB04t89/1O/w1cDnyilFU='
5 -const PAPAGO_URL = 'https://openapi.naver.com/v1/papago/n2mt'
6 -const PAPAGO_ID = '파파고 ID'
7 -const PAPAGO_SECRET = '파파고 Client Secret'
8 -const fs = require('fs');
9 -const path = require('path');
10 -const HTTPS = require('https');
11 -const domain = "2019102197.osschatbot2022.ml"
12 -const sslport = 23023;
13 -const bodyParser = require('body-parser');
14 -var app = express();
15 -app.use(bodyParser.json());
16 -app.post('/hook', function (req, res) {
17 -
18 - var eventObj = req.body.events[0];
19 - var source = eventObj.source;
20 - var message = eventObj.message;
21 -
22 - // request log
23 - console.log('======================', new Date() ,'======================');
24 - console.log('[request]', req.body);
25 - console.log('[request source] ', eventObj.source);
26 - console.log('[request message]', eventObj.message);
27 -
28 - trans(eventObj.replyToken, eventObj.message.text);
29 -
30 -
31 - res.sendStatus(200);
32 -});
33 -
34 -function trans(replyToken, message) {
35 -
36 - request.post(
37 - {
38 - url: PAPAGO_URL,
39 - headers: {
40 - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
41 - 'X-Naver-Client-Id': `${PAPAGO_ID}`,
42 - 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
43 - },
44 - body: 'source=ko&target=en&text=' + message,
45 - json:true
46 - },(error, response, body) => {
47 - if(!error && response.statusCode == 200) {
48 - console.log(body.message);
49 - var transMessage = body.message.result.translatedText;
50 - request.post(
51 - {
52 - url: TARGET_URL,
53 - headers: {
54 - 'Authorization': `Bearer ${TOKEN}`
55 - },
56 - json: {
57 - "replyToken":replyToken,
58 - "messages":[
59 - {
60 - "type":"text",
61 - "text":transMessage
62 - }
63 - ]
64 - }
65 - },(error, response, body) => {
66 - console.log(body)
67 - });
68 - }
69 - });
70 -
71 -}
72 -
73 -try {
74 - const option = {
75 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
76 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
77 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
78 - };
79 -
80 - HTTPS.createServer(option, app).listen(sslport, () => {
81 - console.log(`[HTTPS] Server is started on port ${sslport}`);
82 - });
83 - } catch (error) {
84 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
85 - console.log(error);
86 - }
87 -
...\ No newline at end of file ...\ No newline at end of file
1 -{
2 - "name": "trans",
3 - "version": "1.0.0",
4 - "lockfileVersion": 2,
5 - "requires": true,
6 - "packages": {
7 - "": {
8 - "name": "trans",
9 - "version": "1.0.0",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.17.1",
13 - "request": "^2.88.2"
14 - }
15 - },
16 - "node_modules/accepts": {
17 - "version": "1.3.7",
18 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
19 - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
20 - "dependencies": {
21 - "mime-types": "~2.1.24",
22 - "negotiator": "0.6.2"
23 - },
24 - "engines": {
25 - "node": ">= 0.6"
26 - }
27 - },
28 - "node_modules/ajv": {
29 - "version": "6.12.2",
30 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
31 - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
32 - "dependencies": {
33 - "fast-deep-equal": "^3.1.1",
34 - "fast-json-stable-stringify": "^2.0.0",
35 - "json-schema-traverse": "^0.4.1",
36 - "uri-js": "^4.2.2"
37 - }
38 - },
39 - "node_modules/array-flatten": {
40 - "version": "1.1.1",
41 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
42 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
43 - },
44 - "node_modules/asn1": {
45 - "version": "0.2.4",
46 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
47 - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
48 - "dependencies": {
49 - "safer-buffer": "~2.1.0"
50 - }
51 - },
52 - "node_modules/assert-plus": {
53 - "version": "1.0.0",
54 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
55 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
56 - "engines": {
57 - "node": ">=0.8"
58 - }
59 - },
60 - "node_modules/asynckit": {
61 - "version": "0.4.0",
62 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
63 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
64 - },
65 - "node_modules/aws-sign2": {
66 - "version": "0.7.0",
67 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
68 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
69 - "engines": {
70 - "node": "*"
71 - }
72 - },
73 - "node_modules/aws4": {
74 - "version": "1.9.1",
75 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
76 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
77 - },
78 - "node_modules/bcrypt-pbkdf": {
79 - "version": "1.0.2",
80 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
81 - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
82 - "dependencies": {
83 - "tweetnacl": "^0.14.3"
84 - }
85 - },
86 - "node_modules/body-parser": {
87 - "version": "1.19.0",
88 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
89 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
90 - "dependencies": {
91 - "bytes": "3.1.0",
92 - "content-type": "~1.0.4",
93 - "debug": "2.6.9",
94 - "depd": "~1.1.2",
95 - "http-errors": "1.7.2",
96 - "iconv-lite": "0.4.24",
97 - "on-finished": "~2.3.0",
98 - "qs": "6.7.0",
99 - "raw-body": "2.4.0",
100 - "type-is": "~1.6.17"
101 - },
102 - "engines": {
103 - "node": ">= 0.8"
104 - }
105 - },
106 - "node_modules/bytes": {
107 - "version": "3.1.0",
108 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
109 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
110 - "engines": {
111 - "node": ">= 0.8"
112 - }
113 - },
114 - "node_modules/caseless": {
115 - "version": "0.12.0",
116 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
117 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
118 - },
119 - "node_modules/combined-stream": {
120 - "version": "1.0.8",
121 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
122 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
123 - "dependencies": {
124 - "delayed-stream": "~1.0.0"
125 - },
126 - "engines": {
127 - "node": ">= 0.8"
128 - }
129 - },
130 - "node_modules/content-disposition": {
131 - "version": "0.5.3",
132 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
133 - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
134 - "dependencies": {
135 - "safe-buffer": "5.1.2"
136 - },
137 - "engines": {
138 - "node": ">= 0.6"
139 - }
140 - },
141 - "node_modules/content-type": {
142 - "version": "1.0.4",
143 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
144 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
145 - "engines": {
146 - "node": ">= 0.6"
147 - }
148 - },
149 - "node_modules/cookie": {
150 - "version": "0.4.0",
151 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
152 - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
153 - "engines": {
154 - "node": ">= 0.6"
155 - }
156 - },
157 - "node_modules/cookie-signature": {
158 - "version": "1.0.6",
159 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
160 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
161 - },
162 - "node_modules/core-util-is": {
163 - "version": "1.0.2",
164 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
165 - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
166 - },
167 - "node_modules/dashdash": {
168 - "version": "1.14.1",
169 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
170 - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
171 - "dependencies": {
172 - "assert-plus": "^1.0.0"
173 - },
174 - "engines": {
175 - "node": ">=0.10"
176 - }
177 - },
178 - "node_modules/debug": {
179 - "version": "2.6.9",
180 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
181 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
182 - "dependencies": {
183 - "ms": "2.0.0"
184 - }
185 - },
186 - "node_modules/delayed-stream": {
187 - "version": "1.0.0",
188 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
189 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
190 - "engines": {
191 - "node": ">=0.4.0"
192 - }
193 - },
194 - "node_modules/depd": {
195 - "version": "1.1.2",
196 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
197 - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
198 - "engines": {
199 - "node": ">= 0.6"
200 - }
201 - },
202 - "node_modules/destroy": {
203 - "version": "1.0.4",
204 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
205 - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
206 - },
207 - "node_modules/ecc-jsbn": {
208 - "version": "0.1.2",
209 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
210 - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
211 - "dependencies": {
212 - "jsbn": "~0.1.0",
213 - "safer-buffer": "^2.1.0"
214 - }
215 - },
216 - "node_modules/ee-first": {
217 - "version": "1.1.1",
218 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
219 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
220 - },
221 - "node_modules/encodeurl": {
222 - "version": "1.0.2",
223 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
224 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
225 - "engines": {
226 - "node": ">= 0.8"
227 - }
228 - },
229 - "node_modules/escape-html": {
230 - "version": "1.0.3",
231 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
232 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
233 - },
234 - "node_modules/etag": {
235 - "version": "1.8.1",
236 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
237 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
238 - "engines": {
239 - "node": ">= 0.6"
240 - }
241 - },
242 - "node_modules/express": {
243 - "version": "4.17.1",
244 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
245 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
246 - "dependencies": {
247 - "accepts": "~1.3.7",
248 - "array-flatten": "1.1.1",
249 - "body-parser": "1.19.0",
250 - "content-disposition": "0.5.3",
251 - "content-type": "~1.0.4",
252 - "cookie": "0.4.0",
253 - "cookie-signature": "1.0.6",
254 - "debug": "2.6.9",
255 - "depd": "~1.1.2",
256 - "encodeurl": "~1.0.2",
257 - "escape-html": "~1.0.3",
258 - "etag": "~1.8.1",
259 - "finalhandler": "~1.1.2",
260 - "fresh": "0.5.2",
261 - "merge-descriptors": "1.0.1",
262 - "methods": "~1.1.2",
263 - "on-finished": "~2.3.0",
264 - "parseurl": "~1.3.3",
265 - "path-to-regexp": "0.1.7",
266 - "proxy-addr": "~2.0.5",
267 - "qs": "6.7.0",
268 - "range-parser": "~1.2.1",
269 - "safe-buffer": "5.1.2",
270 - "send": "0.17.1",
271 - "serve-static": "1.14.1",
272 - "setprototypeof": "1.1.1",
273 - "statuses": "~1.5.0",
274 - "type-is": "~1.6.18",
275 - "utils-merge": "1.0.1",
276 - "vary": "~1.1.2"
277 - },
278 - "engines": {
279 - "node": ">= 0.10.0"
280 - }
281 - },
282 - "node_modules/extend": {
283 - "version": "3.0.2",
284 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
285 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
286 - },
287 - "node_modules/extsprintf": {
288 - "version": "1.3.0",
289 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
290 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
291 - "engines": [
292 - "node >=0.6.0"
293 - ]
294 - },
295 - "node_modules/fast-deep-equal": {
296 - "version": "3.1.1",
297 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
298 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
299 - },
300 - "node_modules/fast-json-stable-stringify": {
301 - "version": "2.1.0",
302 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
303 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
304 - },
305 - "node_modules/finalhandler": {
306 - "version": "1.1.2",
307 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
308 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
309 - "dependencies": {
310 - "debug": "2.6.9",
311 - "encodeurl": "~1.0.2",
312 - "escape-html": "~1.0.3",
313 - "on-finished": "~2.3.0",
314 - "parseurl": "~1.3.3",
315 - "statuses": "~1.5.0",
316 - "unpipe": "~1.0.0"
317 - },
318 - "engines": {
319 - "node": ">= 0.8"
320 - }
321 - },
322 - "node_modules/forever-agent": {
323 - "version": "0.6.1",
324 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
325 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
326 - "engines": {
327 - "node": "*"
328 - }
329 - },
330 - "node_modules/form-data": {
331 - "version": "2.3.3",
332 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
333 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
334 - "dependencies": {
335 - "asynckit": "^0.4.0",
336 - "combined-stream": "^1.0.6",
337 - "mime-types": "^2.1.12"
338 - },
339 - "engines": {
340 - "node": ">= 0.12"
341 - }
342 - },
343 - "node_modules/forwarded": {
344 - "version": "0.1.2",
345 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
346 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
347 - "engines": {
348 - "node": ">= 0.6"
349 - }
350 - },
351 - "node_modules/fresh": {
352 - "version": "0.5.2",
353 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
354 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
355 - "engines": {
356 - "node": ">= 0.6"
357 - }
358 - },
359 - "node_modules/getpass": {
360 - "version": "0.1.7",
361 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
362 - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
363 - "dependencies": {
364 - "assert-plus": "^1.0.0"
365 - }
366 - },
367 - "node_modules/har-schema": {
368 - "version": "2.0.0",
369 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
370 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
371 - "engines": {
372 - "node": ">=4"
373 - }
374 - },
375 - "node_modules/har-validator": {
376 - "version": "5.1.3",
377 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
378 - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
379 - "deprecated": "this library is no longer supported",
380 - "dependencies": {
381 - "ajv": "^6.5.5",
382 - "har-schema": "^2.0.0"
383 - },
384 - "engines": {
385 - "node": ">=6"
386 - }
387 - },
388 - "node_modules/http-errors": {
389 - "version": "1.7.2",
390 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
391 - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
392 - "dependencies": {
393 - "depd": "~1.1.2",
394 - "inherits": "2.0.3",
395 - "setprototypeof": "1.1.1",
396 - "statuses": ">= 1.5.0 < 2",
397 - "toidentifier": "1.0.0"
398 - },
399 - "engines": {
400 - "node": ">= 0.6"
401 - }
402 - },
403 - "node_modules/http-signature": {
404 - "version": "1.2.0",
405 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
406 - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
407 - "dependencies": {
408 - "assert-plus": "^1.0.0",
409 - "jsprim": "^1.2.2",
410 - "sshpk": "^1.7.0"
411 - },
412 - "engines": {
413 - "node": ">=0.8",
414 - "npm": ">=1.3.7"
415 - }
416 - },
417 - "node_modules/iconv-lite": {
418 - "version": "0.4.24",
419 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
420 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
421 - "dependencies": {
422 - "safer-buffer": ">= 2.1.2 < 3"
423 - },
424 - "engines": {
425 - "node": ">=0.10.0"
426 - }
427 - },
428 - "node_modules/inherits": {
429 - "version": "2.0.3",
430 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
431 - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
432 - },
433 - "node_modules/ipaddr.js": {
434 - "version": "1.9.1",
435 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
436 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
437 - "engines": {
438 - "node": ">= 0.10"
439 - }
440 - },
441 - "node_modules/is-typedarray": {
442 - "version": "1.0.0",
443 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
444 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
445 - },
446 - "node_modules/isstream": {
447 - "version": "0.1.2",
448 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
449 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
450 - },
451 - "node_modules/jsbn": {
452 - "version": "0.1.1",
453 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
454 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
455 - },
456 - "node_modules/json-schema": {
457 - "version": "0.2.3",
458 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
459 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
460 - },
461 - "node_modules/json-schema-traverse": {
462 - "version": "0.4.1",
463 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
464 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
465 - },
466 - "node_modules/json-stringify-safe": {
467 - "version": "5.0.1",
468 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
469 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
470 - },
471 - "node_modules/jsprim": {
472 - "version": "1.4.1",
473 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
474 - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
475 - "engines": [
476 - "node >=0.6.0"
477 - ],
478 - "dependencies": {
479 - "assert-plus": "1.0.0",
480 - "extsprintf": "1.3.0",
481 - "json-schema": "0.2.3",
482 - "verror": "1.10.0"
483 - }
484 - },
485 - "node_modules/media-typer": {
486 - "version": "0.3.0",
487 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
488 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
489 - "engines": {
490 - "node": ">= 0.6"
491 - }
492 - },
493 - "node_modules/merge-descriptors": {
494 - "version": "1.0.1",
495 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
496 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
497 - },
498 - "node_modules/methods": {
499 - "version": "1.1.2",
500 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
501 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
502 - "engines": {
503 - "node": ">= 0.6"
504 - }
505 - },
506 - "node_modules/mime": {
507 - "version": "1.6.0",
508 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
509 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
510 - "bin": {
511 - "mime": "cli.js"
512 - },
513 - "engines": {
514 - "node": ">=4"
515 - }
516 - },
517 - "node_modules/mime-db": {
518 - "version": "1.44.0",
519 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
520 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
521 - "engines": {
522 - "node": ">= 0.6"
523 - }
524 - },
525 - "node_modules/mime-types": {
526 - "version": "2.1.27",
527 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
528 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
529 - "dependencies": {
530 - "mime-db": "1.44.0"
531 - },
532 - "engines": {
533 - "node": ">= 0.6"
534 - }
535 - },
536 - "node_modules/ms": {
537 - "version": "2.0.0",
538 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
539 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
540 - },
541 - "node_modules/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 - "engines": {
546 - "node": ">= 0.6"
547 - }
548 - },
549 - "node_modules/oauth-sign": {
550 - "version": "0.9.0",
551 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
552 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
553 - "engines": {
554 - "node": "*"
555 - }
556 - },
557 - "node_modules/on-finished": {
558 - "version": "2.3.0",
559 - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
560 - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
561 - "dependencies": {
562 - "ee-first": "1.1.1"
563 - },
564 - "engines": {
565 - "node": ">= 0.8"
566 - }
567 - },
568 - "node_modules/parseurl": {
569 - "version": "1.3.3",
570 - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
571 - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
572 - "engines": {
573 - "node": ">= 0.8"
574 - }
575 - },
576 - "node_modules/path-to-regexp": {
577 - "version": "0.1.7",
578 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
579 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
580 - },
581 - "node_modules/performance-now": {
582 - "version": "2.1.0",
583 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
584 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
585 - },
586 - "node_modules/proxy-addr": {
587 - "version": "2.0.6",
588 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
589 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
590 - "dependencies": {
591 - "forwarded": "~0.1.2",
592 - "ipaddr.js": "1.9.1"
593 - },
594 - "engines": {
595 - "node": ">= 0.10"
596 - }
597 - },
598 - "node_modules/psl": {
599 - "version": "1.8.0",
600 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
601 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
602 - },
603 - "node_modules/punycode": {
604 - "version": "2.1.1",
605 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
606 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
607 - "engines": {
608 - "node": ">=6"
609 - }
610 - },
611 - "node_modules/qs": {
612 - "version": "6.7.0",
613 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
614 - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
615 - "engines": {
616 - "node": ">=0.6"
617 - }
618 - },
619 - "node_modules/range-parser": {
620 - "version": "1.2.1",
621 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
622 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
623 - "engines": {
624 - "node": ">= 0.6"
625 - }
626 - },
627 - "node_modules/raw-body": {
628 - "version": "2.4.0",
629 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
630 - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
631 - "dependencies": {
632 - "bytes": "3.1.0",
633 - "http-errors": "1.7.2",
634 - "iconv-lite": "0.4.24",
635 - "unpipe": "1.0.0"
636 - },
637 - "engines": {
638 - "node": ">= 0.8"
639 - }
640 - },
641 - "node_modules/request": {
642 - "version": "2.88.2",
643 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
644 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
645 - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
646 - "dependencies": {
647 - "aws-sign2": "~0.7.0",
648 - "aws4": "^1.8.0",
649 - "caseless": "~0.12.0",
650 - "combined-stream": "~1.0.6",
651 - "extend": "~3.0.2",
652 - "forever-agent": "~0.6.1",
653 - "form-data": "~2.3.2",
654 - "har-validator": "~5.1.3",
655 - "http-signature": "~1.2.0",
656 - "is-typedarray": "~1.0.0",
657 - "isstream": "~0.1.2",
658 - "json-stringify-safe": "~5.0.1",
659 - "mime-types": "~2.1.19",
660 - "oauth-sign": "~0.9.0",
661 - "performance-now": "^2.1.0",
662 - "qs": "~6.5.2",
663 - "safe-buffer": "^5.1.2",
664 - "tough-cookie": "~2.5.0",
665 - "tunnel-agent": "^0.6.0",
666 - "uuid": "^3.3.2"
667 - },
668 - "engines": {
669 - "node": ">= 6"
670 - }
671 - },
672 - "node_modules/request/node_modules/qs": {
673 - "version": "6.5.2",
674 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
675 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
676 - "engines": {
677 - "node": ">=0.6"
678 - }
679 - },
680 - "node_modules/safe-buffer": {
681 - "version": "5.1.2",
682 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
683 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
684 - },
685 - "node_modules/safer-buffer": {
686 - "version": "2.1.2",
687 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
688 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
689 - },
690 - "node_modules/send": {
691 - "version": "0.17.1",
692 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
693 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
694 - "dependencies": {
695 - "debug": "2.6.9",
696 - "depd": "~1.1.2",
697 - "destroy": "~1.0.4",
698 - "encodeurl": "~1.0.2",
699 - "escape-html": "~1.0.3",
700 - "etag": "~1.8.1",
701 - "fresh": "0.5.2",
702 - "http-errors": "~1.7.2",
703 - "mime": "1.6.0",
704 - "ms": "2.1.1",
705 - "on-finished": "~2.3.0",
706 - "range-parser": "~1.2.1",
707 - "statuses": "~1.5.0"
708 - },
709 - "engines": {
710 - "node": ">= 0.8.0"
711 - }
712 - },
713 - "node_modules/send/node_modules/ms": {
714 - "version": "2.1.1",
715 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
716 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
717 - },
718 - "node_modules/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 - "dependencies": {
723 - "encodeurl": "~1.0.2",
724 - "escape-html": "~1.0.3",
725 - "parseurl": "~1.3.3",
726 - "send": "0.17.1"
727 - },
728 - "engines": {
729 - "node": ">= 0.8.0"
730 - }
731 - },
732 - "node_modules/setprototypeof": {
733 - "version": "1.1.1",
734 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
735 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
736 - },
737 - "node_modules/sshpk": {
738 - "version": "1.16.1",
739 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
740 - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
741 - "dependencies": {
742 - "asn1": "~0.2.3",
743 - "assert-plus": "^1.0.0",
744 - "bcrypt-pbkdf": "^1.0.0",
745 - "dashdash": "^1.12.0",
746 - "ecc-jsbn": "~0.1.1",
747 - "getpass": "^0.1.1",
748 - "jsbn": "~0.1.0",
749 - "safer-buffer": "^2.0.2",
750 - "tweetnacl": "~0.14.0"
751 - },
752 - "bin": {
753 - "sshpk-conv": "bin/sshpk-conv",
754 - "sshpk-sign": "bin/sshpk-sign",
755 - "sshpk-verify": "bin/sshpk-verify"
756 - },
757 - "engines": {
758 - "node": ">=0.10.0"
759 - }
760 - },
761 - "node_modules/statuses": {
762 - "version": "1.5.0",
763 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
764 - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
765 - "engines": {
766 - "node": ">= 0.6"
767 - }
768 - },
769 - "node_modules/toidentifier": {
770 - "version": "1.0.0",
771 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
772 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
773 - "engines": {
774 - "node": ">=0.6"
775 - }
776 - },
777 - "node_modules/tough-cookie": {
778 - "version": "2.5.0",
779 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
780 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
781 - "dependencies": {
782 - "psl": "^1.1.28",
783 - "punycode": "^2.1.1"
784 - },
785 - "engines": {
786 - "node": ">=0.8"
787 - }
788 - },
789 - "node_modules/tunnel-agent": {
790 - "version": "0.6.0",
791 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
792 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
793 - "dependencies": {
794 - "safe-buffer": "^5.0.1"
795 - },
796 - "engines": {
797 - "node": "*"
798 - }
799 - },
800 - "node_modules/tweetnacl": {
801 - "version": "0.14.5",
802 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
803 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
804 - },
805 - "node_modules/type-is": {
806 - "version": "1.6.18",
807 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
808 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
809 - "dependencies": {
810 - "media-typer": "0.3.0",
811 - "mime-types": "~2.1.24"
812 - },
813 - "engines": {
814 - "node": ">= 0.6"
815 - }
816 - },
817 - "node_modules/unpipe": {
818 - "version": "1.0.0",
819 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
820 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
821 - "engines": {
822 - "node": ">= 0.8"
823 - }
824 - },
825 - "node_modules/uri-js": {
826 - "version": "4.2.2",
827 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
828 - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
829 - "dependencies": {
830 - "punycode": "^2.1.0"
831 - }
832 - },
833 - "node_modules/utils-merge": {
834 - "version": "1.0.1",
835 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
836 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
837 - "engines": {
838 - "node": ">= 0.4.0"
839 - }
840 - },
841 - "node_modules/uuid": {
842 - "version": "3.4.0",
843 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
844 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
845 - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
846 - "bin": {
847 - "uuid": "bin/uuid"
848 - }
849 - },
850 - "node_modules/vary": {
851 - "version": "1.1.2",
852 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
853 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
854 - "engines": {
855 - "node": ">= 0.8"
856 - }
857 - },
858 - "node_modules/verror": {
859 - "version": "1.10.0",
860 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
861 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
862 - "engines": [
863 - "node >=0.6.0"
864 - ],
865 - "dependencies": {
866 - "assert-plus": "^1.0.0",
867 - "core-util-is": "1.0.2",
868 - "extsprintf": "^1.2.0"
869 - }
870 - }
871 - },
872 - "dependencies": {
873 - "accepts": {
874 - "version": "1.3.7",
875 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
876 - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
877 - "requires": {
878 - "mime-types": "~2.1.24",
879 - "negotiator": "0.6.2"
880 - }
881 - },
882 - "ajv": {
883 - "version": "6.12.2",
884 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
885 - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
886 - "requires": {
887 - "fast-deep-equal": "^3.1.1",
888 - "fast-json-stable-stringify": "^2.0.0",
889 - "json-schema-traverse": "^0.4.1",
890 - "uri-js": "^4.2.2"
891 - }
892 - },
893 - "array-flatten": {
894 - "version": "1.1.1",
895 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
896 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
897 - },
898 - "asn1": {
899 - "version": "0.2.4",
900 - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
901 - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
902 - "requires": {
903 - "safer-buffer": "~2.1.0"
904 - }
905 - },
906 - "assert-plus": {
907 - "version": "1.0.0",
908 - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
909 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
910 - },
911 - "asynckit": {
912 - "version": "0.4.0",
913 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
914 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
915 - },
916 - "aws-sign2": {
917 - "version": "0.7.0",
918 - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
919 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
920 - },
921 - "aws4": {
922 - "version": "1.9.1",
923 - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
924 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
925 - },
926 - "bcrypt-pbkdf": {
927 - "version": "1.0.2",
928 - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
929 - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
930 - "requires": {
931 - "tweetnacl": "^0.14.3"
932 - }
933 - },
934 - "body-parser": {
935 - "version": "1.19.0",
936 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
937 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
938 - "requires": {
939 - "bytes": "3.1.0",
940 - "content-type": "~1.0.4",
941 - "debug": "2.6.9",
942 - "depd": "~1.1.2",
943 - "http-errors": "1.7.2",
944 - "iconv-lite": "0.4.24",
945 - "on-finished": "~2.3.0",
946 - "qs": "6.7.0",
947 - "raw-body": "2.4.0",
948 - "type-is": "~1.6.17"
949 - }
950 - },
951 - "bytes": {
952 - "version": "3.1.0",
953 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
954 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
955 - },
956 - "caseless": {
957 - "version": "0.12.0",
958 - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
959 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
960 - },
961 - "combined-stream": {
962 - "version": "1.0.8",
963 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
964 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
965 - "requires": {
966 - "delayed-stream": "~1.0.0"
967 - }
968 - },
969 - "content-disposition": {
970 - "version": "0.5.3",
971 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
972 - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
973 - "requires": {
974 - "safe-buffer": "5.1.2"
975 - }
976 - },
977 - "content-type": {
978 - "version": "1.0.4",
979 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
980 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
981 - },
982 - "cookie": {
983 - "version": "0.4.0",
984 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
985 - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
986 - },
987 - "cookie-signature": {
988 - "version": "1.0.6",
989 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
990 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
991 - },
992 - "core-util-is": {
993 - "version": "1.0.2",
994 - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
995 - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
996 - },
997 - "dashdash": {
998 - "version": "1.14.1",
999 - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
1000 - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
1001 - "requires": {
1002 - "assert-plus": "^1.0.0"
1003 - }
1004 - },
1005 - "debug": {
1006 - "version": "2.6.9",
1007 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1008 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1009 - "requires": {
1010 - "ms": "2.0.0"
1011 - }
1012 - },
1013 - "delayed-stream": {
1014 - "version": "1.0.0",
1015 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1016 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
1017 - },
1018 - "depd": {
1019 - "version": "1.1.2",
1020 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1021 - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1022 - },
1023 - "destroy": {
1024 - "version": "1.0.4",
1025 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
1026 - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
1027 - },
1028 - "ecc-jsbn": {
1029 - "version": "0.1.2",
1030 - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1031 - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
1032 - "requires": {
1033 - "jsbn": "~0.1.0",
1034 - "safer-buffer": "^2.1.0"
1035 - }
1036 - },
1037 - "ee-first": {
1038 - "version": "1.1.1",
1039 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1040 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
1041 - },
1042 - "encodeurl": {
1043 - "version": "1.0.2",
1044 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1045 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
1046 - },
1047 - "escape-html": {
1048 - "version": "1.0.3",
1049 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1050 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
1051 - },
1052 - "etag": {
1053 - "version": "1.8.1",
1054 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1055 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1056 - },
1057 - "express": {
1058 - "version": "4.17.1",
1059 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
1060 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
1061 - "requires": {
1062 - "accepts": "~1.3.7",
1063 - "array-flatten": "1.1.1",
1064 - "body-parser": "1.19.0",
1065 - "content-disposition": "0.5.3",
1066 - "content-type": "~1.0.4",
1067 - "cookie": "0.4.0",
1068 - "cookie-signature": "1.0.6",
1069 - "debug": "2.6.9",
1070 - "depd": "~1.1.2",
1071 - "encodeurl": "~1.0.2",
1072 - "escape-html": "~1.0.3",
1073 - "etag": "~1.8.1",
1074 - "finalhandler": "~1.1.2",
1075 - "fresh": "0.5.2",
1076 - "merge-descriptors": "1.0.1",
1077 - "methods": "~1.1.2",
1078 - "on-finished": "~2.3.0",
1079 - "parseurl": "~1.3.3",
1080 - "path-to-regexp": "0.1.7",
1081 - "proxy-addr": "~2.0.5",
1082 - "qs": "6.7.0",
1083 - "range-parser": "~1.2.1",
1084 - "safe-buffer": "5.1.2",
1085 - "send": "0.17.1",
1086 - "serve-static": "1.14.1",
1087 - "setprototypeof": "1.1.1",
1088 - "statuses": "~1.5.0",
1089 - "type-is": "~1.6.18",
1090 - "utils-merge": "1.0.1",
1091 - "vary": "~1.1.2"
1092 - }
1093 - },
1094 - "extend": {
1095 - "version": "3.0.2",
1096 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1097 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
1098 - },
1099 - "extsprintf": {
1100 - "version": "1.3.0",
1101 - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1102 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
1103 - },
1104 - "fast-deep-equal": {
1105 - "version": "3.1.1",
1106 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
1107 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
1108 - },
1109 - "fast-json-stable-stringify": {
1110 - "version": "2.1.0",
1111 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1112 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1113 - },
1114 - "finalhandler": {
1115 - "version": "1.1.2",
1116 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
1117 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
1118 - "requires": {
1119 - "debug": "2.6.9",
1120 - "encodeurl": "~1.0.2",
1121 - "escape-html": "~1.0.3",
1122 - "on-finished": "~2.3.0",
1123 - "parseurl": "~1.3.3",
1124 - "statuses": "~1.5.0",
1125 - "unpipe": "~1.0.0"
1126 - }
1127 - },
1128 - "forever-agent": {
1129 - "version": "0.6.1",
1130 - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1131 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
1132 - },
1133 - "form-data": {
1134 - "version": "2.3.3",
1135 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1136 - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1137 - "requires": {
1138 - "asynckit": "^0.4.0",
1139 - "combined-stream": "^1.0.6",
1140 - "mime-types": "^2.1.12"
1141 - }
1142 - },
1143 - "forwarded": {
1144 - "version": "0.1.2",
1145 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1146 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
1147 - },
1148 - "fresh": {
1149 - "version": "0.5.2",
1150 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1151 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1152 - },
1153 - "getpass": {
1154 - "version": "0.1.7",
1155 - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1156 - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1157 - "requires": {
1158 - "assert-plus": "^1.0.0"
1159 - }
1160 - },
1161 - "har-schema": {
1162 - "version": "2.0.0",
1163 - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1164 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
1165 - },
1166 - "har-validator": {
1167 - "version": "5.1.3",
1168 - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
1169 - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
1170 - "requires": {
1171 - "ajv": "^6.5.5",
1172 - "har-schema": "^2.0.0"
1173 - }
1174 - },
1175 - "http-errors": {
1176 - "version": "1.7.2",
1177 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
1178 - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
1179 - "requires": {
1180 - "depd": "~1.1.2",
1181 - "inherits": "2.0.3",
1182 - "setprototypeof": "1.1.1",
1183 - "statuses": ">= 1.5.0 < 2",
1184 - "toidentifier": "1.0.0"
1185 - }
1186 - },
1187 - "http-signature": {
1188 - "version": "1.2.0",
1189 - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1190 - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1191 - "requires": {
1192 - "assert-plus": "^1.0.0",
1193 - "jsprim": "^1.2.2",
1194 - "sshpk": "^1.7.0"
1195 - }
1196 - },
1197 - "iconv-lite": {
1198 - "version": "0.4.24",
1199 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1200 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1201 - "requires": {
1202 - "safer-buffer": ">= 2.1.2 < 3"
1203 - }
1204 - },
1205 - "inherits": {
1206 - "version": "2.0.3",
1207 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1208 - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1209 - },
1210 - "ipaddr.js": {
1211 - "version": "1.9.1",
1212 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1213 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1214 - },
1215 - "is-typedarray": {
1216 - "version": "1.0.0",
1217 - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1218 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1219 - },
1220 - "isstream": {
1221 - "version": "0.1.2",
1222 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1223 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1224 - },
1225 - "jsbn": {
1226 - "version": "0.1.1",
1227 - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1228 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
1229 - },
1230 - "json-schema": {
1231 - "version": "0.2.3",
1232 - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1233 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1234 - },
1235 - "json-schema-traverse": {
1236 - "version": "0.4.1",
1237 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1238 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1239 - },
1240 - "json-stringify-safe": {
1241 - "version": "5.0.1",
1242 - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1243 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1244 - },
1245 - "jsprim": {
1246 - "version": "1.4.1",
1247 - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1248 - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1249 - "requires": {
1250 - "assert-plus": "1.0.0",
1251 - "extsprintf": "1.3.0",
1252 - "json-schema": "0.2.3",
1253 - "verror": "1.10.0"
1254 - }
1255 - },
1256 - "media-typer": {
1257 - "version": "0.3.0",
1258 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1259 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1260 - },
1261 - "merge-descriptors": {
1262 - "version": "1.0.1",
1263 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1264 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1265 - },
1266 - "methods": {
1267 - "version": "1.1.2",
1268 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1269 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1270 - },
1271 - "mime": {
1272 - "version": "1.6.0",
1273 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1274 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1275 - },
1276 - "mime-db": {
1277 - "version": "1.44.0",
1278 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
1279 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
1280 - },
1281 - "mime-types": {
1282 - "version": "2.1.27",
1283 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
1284 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
1285 - "requires": {
1286 - "mime-db": "1.44.0"
1287 - }
1288 - },
1289 - "ms": {
1290 - "version": "2.0.0",
1291 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1292 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1293 - },
1294 - "negotiator": {
1295 - "version": "0.6.2",
1296 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1297 - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1298 - },
1299 - "oauth-sign": {
1300 - "version": "0.9.0",
1301 - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1302 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
1303 - },
1304 - "on-finished": {
1305 - "version": "2.3.0",
1306 - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1307 - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1308 - "requires": {
1309 - "ee-first": "1.1.1"
1310 - }
1311 - },
1312 - "parseurl": {
1313 - "version": "1.3.3",
1314 - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1315 - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1316 - },
1317 - "path-to-regexp": {
1318 - "version": "0.1.7",
1319 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1320 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1321 - },
1322 - "performance-now": {
1323 - "version": "2.1.0",
1324 - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1325 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1326 - },
1327 - "proxy-addr": {
1328 - "version": "2.0.6",
1329 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
1330 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1331 - "requires": {
1332 - "forwarded": "~0.1.2",
1333 - "ipaddr.js": "1.9.1"
1334 - }
1335 - },
1336 - "psl": {
1337 - "version": "1.8.0",
1338 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
1339 - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
1340 - },
1341 - "punycode": {
1342 - "version": "2.1.1",
1343 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1344 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1345 - },
1346 - "qs": {
1347 - "version": "6.7.0",
1348 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1349 - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
1350 - },
1351 - "range-parser": {
1352 - "version": "1.2.1",
1353 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1354 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1355 - },
1356 - "raw-body": {
1357 - "version": "2.4.0",
1358 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1359 - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1360 - "requires": {
1361 - "bytes": "3.1.0",
1362 - "http-errors": "1.7.2",
1363 - "iconv-lite": "0.4.24",
1364 - "unpipe": "1.0.0"
1365 - }
1366 - },
1367 - "request": {
1368 - "version": "2.88.2",
1369 - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1370 - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1371 - "requires": {
1372 - "aws-sign2": "~0.7.0",
1373 - "aws4": "^1.8.0",
1374 - "caseless": "~0.12.0",
1375 - "combined-stream": "~1.0.6",
1376 - "extend": "~3.0.2",
1377 - "forever-agent": "~0.6.1",
1378 - "form-data": "~2.3.2",
1379 - "har-validator": "~5.1.3",
1380 - "http-signature": "~1.2.0",
1381 - "is-typedarray": "~1.0.0",
1382 - "isstream": "~0.1.2",
1383 - "json-stringify-safe": "~5.0.1",
1384 - "mime-types": "~2.1.19",
1385 - "oauth-sign": "~0.9.0",
1386 - "performance-now": "^2.1.0",
1387 - "qs": "~6.5.2",
1388 - "safe-buffer": "^5.1.2",
1389 - "tough-cookie": "~2.5.0",
1390 - "tunnel-agent": "^0.6.0",
1391 - "uuid": "^3.3.2"
1392 - },
1393 - "dependencies": {
1394 - "qs": {
1395 - "version": "6.5.2",
1396 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1397 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
1398 - }
1399 - }
1400 - },
1401 - "safe-buffer": {
1402 - "version": "5.1.2",
1403 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1404 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1405 - },
1406 - "safer-buffer": {
1407 - "version": "2.1.2",
1408 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1409 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1410 - },
1411 - "send": {
1412 - "version": "0.17.1",
1413 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1414 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1415 - "requires": {
1416 - "debug": "2.6.9",
1417 - "depd": "~1.1.2",
1418 - "destroy": "~1.0.4",
1419 - "encodeurl": "~1.0.2",
1420 - "escape-html": "~1.0.3",
1421 - "etag": "~1.8.1",
1422 - "fresh": "0.5.2",
1423 - "http-errors": "~1.7.2",
1424 - "mime": "1.6.0",
1425 - "ms": "2.1.1",
1426 - "on-finished": "~2.3.0",
1427 - "range-parser": "~1.2.1",
1428 - "statuses": "~1.5.0"
1429 - },
1430 - "dependencies": {
1431 - "ms": {
1432 - "version": "2.1.1",
1433 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1434 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1435 - }
1436 - }
1437 - },
1438 - "serve-static": {
1439 - "version": "1.14.1",
1440 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1441 - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1442 - "requires": {
1443 - "encodeurl": "~1.0.2",
1444 - "escape-html": "~1.0.3",
1445 - "parseurl": "~1.3.3",
1446 - "send": "0.17.1"
1447 - }
1448 - },
1449 - "setprototypeof": {
1450 - "version": "1.1.1",
1451 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1452 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1453 - },
1454 - "sshpk": {
1455 - "version": "1.16.1",
1456 - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1457 - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1458 - "requires": {
1459 - "asn1": "~0.2.3",
1460 - "assert-plus": "^1.0.0",
1461 - "bcrypt-pbkdf": "^1.0.0",
1462 - "dashdash": "^1.12.0",
1463 - "ecc-jsbn": "~0.1.1",
1464 - "getpass": "^0.1.1",
1465 - "jsbn": "~0.1.0",
1466 - "safer-buffer": "^2.0.2",
1467 - "tweetnacl": "~0.14.0"
1468 - }
1469 - },
1470 - "statuses": {
1471 - "version": "1.5.0",
1472 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1473 - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1474 - },
1475 - "toidentifier": {
1476 - "version": "1.0.0",
1477 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1478 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1479 - },
1480 - "tough-cookie": {
1481 - "version": "2.5.0",
1482 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1483 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1484 - "requires": {
1485 - "psl": "^1.1.28",
1486 - "punycode": "^2.1.1"
1487 - }
1488 - },
1489 - "tunnel-agent": {
1490 - "version": "0.6.0",
1491 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1492 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1493 - "requires": {
1494 - "safe-buffer": "^5.0.1"
1495 - }
1496 - },
1497 - "tweetnacl": {
1498 - "version": "0.14.5",
1499 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1500 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1501 - },
1502 - "type-is": {
1503 - "version": "1.6.18",
1504 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1505 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1506 - "requires": {
1507 - "media-typer": "0.3.0",
1508 - "mime-types": "~2.1.24"
1509 - }
1510 - },
1511 - "unpipe": {
1512 - "version": "1.0.0",
1513 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1514 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1515 - },
1516 - "uri-js": {
1517 - "version": "4.2.2",
1518 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1519 - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1520 - "requires": {
1521 - "punycode": "^2.1.0"
1522 - }
1523 - },
1524 - "utils-merge": {
1525 - "version": "1.0.1",
1526 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1527 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1528 - },
1529 - "uuid": {
1530 - "version": "3.4.0",
1531 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1532 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
1533 - },
1534 - "vary": {
1535 - "version": "1.1.2",
1536 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1537 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1538 - },
1539 - "verror": {
1540 - "version": "1.10.0",
1541 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1542 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1543 - "requires": {
1544 - "assert-plus": "^1.0.0",
1545 - "core-util-is": "1.0.2",
1546 - "extsprintf": "^1.2.0"
1547 - }
1548 - }
1549 - }
1550 -}
1 -{
2 - "name": "trans",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "express": "^4.17.1",
13 - "request": "^2.88.2"
14 - }
15 -}
1 -{
2 - // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
3 - // 기존 특성에 대한 설명을 보려면 가리킵니다.
4 - // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
5 - "version": "0.2.0",
6 - "configurations": [
7 - {
8 - "type": "pwa-node",
9 - "request": "launch",
10 - "name": "Launch Program",
11 - "skipFiles": [
12 - "<node_internals>/**"
13 - ],
14 - "program": "${workspaceFolder}/app.js",
15 - "runtimeExecutable": "${env:HOME}/.nvm/versions/node/v16.15.0/bin/node"
16 - }
17 - ]
18 -}
...\ No newline at end of file ...\ No newline at end of file
1 -var express = require('express');
2 -const bodyParser = require('body-parser');
3 -var app = express();
4 -const fs = require('fs');
5 -const path = require('path');
6 -const HTTPS = require('https');
7 -const domain = "2019102197.osschatbot2022.ml"
8 -const sslport = 23023;
9 -
10 -app.use(bodyParser.json());
11 -
12 -app.post('/hook', function (request, response) {
13 -
14 - var eventObj = request.body.events[0];
15 -
16 - // request log
17 - console.log('======================', new Date() ,'======================');
18 -
19 - response.sendStatus(200);
20 -});
21 -
22 -
23 -try {
24 - const option = {
25 - ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
26 - key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
27 - cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
28 - };
29 -
30 - HTTPS.createServer(option, app).listen(sslport, () => {
31 - console.log(`[HTTPS] Server is started on port ${sslport}`);
32 - });
33 - } catch (error) {
34 - console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
35 - console.log(error);
36 - }
37 -
1 -{
2 - "name": "webhook",
3 - "version": "1.0.0",
4 - "lockfileVersion": 2,
5 - "requires": true,
6 - "packages": {
7 - "": {
8 - "name": "webhook",
9 - "version": "1.0.0",
10 - "license": "ISC",
11 - "dependencies": {
12 - "body-parser": "^1.19.0",
13 - "express": "^4.17.1"
14 - }
15 - },
16 - "node_modules/accepts": {
17 - "version": "1.3.7",
18 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
19 - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
20 - "dependencies": {
21 - "mime-types": "~2.1.24",
22 - "negotiator": "0.6.2"
23 - },
24 - "engines": {
25 - "node": ">= 0.6"
26 - }
27 - },
28 - "node_modules/array-flatten": {
29 - "version": "1.1.1",
30 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
31 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
32 - },
33 - "node_modules/body-parser": {
34 - "version": "1.19.0",
35 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
36 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
37 - "dependencies": {
38 - "bytes": "3.1.0",
39 - "content-type": "~1.0.4",
40 - "debug": "2.6.9",
41 - "depd": "~1.1.2",
42 - "http-errors": "1.7.2",
43 - "iconv-lite": "0.4.24",
44 - "on-finished": "~2.3.0",
45 - "qs": "6.7.0",
46 - "raw-body": "2.4.0",
47 - "type-is": "~1.6.17"
48 - },
49 - "engines": {
50 - "node": ">= 0.8"
51 - }
52 - },
53 - "node_modules/bytes": {
54 - "version": "3.1.0",
55 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
56 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
57 - "engines": {
58 - "node": ">= 0.8"
59 - }
60 - },
61 - "node_modules/content-disposition": {
62 - "version": "0.5.3",
63 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
64 - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
65 - "dependencies": {
66 - "safe-buffer": "5.1.2"
67 - },
68 - "engines": {
69 - "node": ">= 0.6"
70 - }
71 - },
72 - "node_modules/content-type": {
73 - "version": "1.0.4",
74 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
75 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
76 - "engines": {
77 - "node": ">= 0.6"
78 - }
79 - },
80 - "node_modules/cookie": {
81 - "version": "0.4.0",
82 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
83 - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
84 - "engines": {
85 - "node": ">= 0.6"
86 - }
87 - },
88 - "node_modules/cookie-signature": {
89 - "version": "1.0.6",
90 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
91 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
92 - },
93 - "node_modules/debug": {
94 - "version": "2.6.9",
95 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
96 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
97 - "dependencies": {
98 - "ms": "2.0.0"
99 - }
100 - },
101 - "node_modules/depd": {
102 - "version": "1.1.2",
103 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
104 - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
105 - "engines": {
106 - "node": ">= 0.6"
107 - }
108 - },
109 - "node_modules/destroy": {
110 - "version": "1.0.4",
111 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
112 - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
113 - },
114 - "node_modules/ee-first": {
115 - "version": "1.1.1",
116 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
117 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
118 - },
119 - "node_modules/encodeurl": {
120 - "version": "1.0.2",
121 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
122 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
123 - "engines": {
124 - "node": ">= 0.8"
125 - }
126 - },
127 - "node_modules/escape-html": {
128 - "version": "1.0.3",
129 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
130 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
131 - },
132 - "node_modules/etag": {
133 - "version": "1.8.1",
134 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
135 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
136 - "engines": {
137 - "node": ">= 0.6"
138 - }
139 - },
140 - "node_modules/express": {
141 - "version": "4.17.1",
142 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
143 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
144 - "dependencies": {
145 - "accepts": "~1.3.7",
146 - "array-flatten": "1.1.1",
147 - "body-parser": "1.19.0",
148 - "content-disposition": "0.5.3",
149 - "content-type": "~1.0.4",
150 - "cookie": "0.4.0",
151 - "cookie-signature": "1.0.6",
152 - "debug": "2.6.9",
153 - "depd": "~1.1.2",
154 - "encodeurl": "~1.0.2",
155 - "escape-html": "~1.0.3",
156 - "etag": "~1.8.1",
157 - "finalhandler": "~1.1.2",
158 - "fresh": "0.5.2",
159 - "merge-descriptors": "1.0.1",
160 - "methods": "~1.1.2",
161 - "on-finished": "~2.3.0",
162 - "parseurl": "~1.3.3",
163 - "path-to-regexp": "0.1.7",
164 - "proxy-addr": "~2.0.5",
165 - "qs": "6.7.0",
166 - "range-parser": "~1.2.1",
167 - "safe-buffer": "5.1.2",
168 - "send": "0.17.1",
169 - "serve-static": "1.14.1",
170 - "setprototypeof": "1.1.1",
171 - "statuses": "~1.5.0",
172 - "type-is": "~1.6.18",
173 - "utils-merge": "1.0.1",
174 - "vary": "~1.1.2"
175 - },
176 - "engines": {
177 - "node": ">= 0.10.0"
178 - }
179 - },
180 - "node_modules/finalhandler": {
181 - "version": "1.1.2",
182 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
183 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
184 - "dependencies": {
185 - "debug": "2.6.9",
186 - "encodeurl": "~1.0.2",
187 - "escape-html": "~1.0.3",
188 - "on-finished": "~2.3.0",
189 - "parseurl": "~1.3.3",
190 - "statuses": "~1.5.0",
191 - "unpipe": "~1.0.0"
192 - },
193 - "engines": {
194 - "node": ">= 0.8"
195 - }
196 - },
197 - "node_modules/forwarded": {
198 - "version": "0.1.2",
199 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
200 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
201 - "engines": {
202 - "node": ">= 0.6"
203 - }
204 - },
205 - "node_modules/fresh": {
206 - "version": "0.5.2",
207 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
208 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
209 - "engines": {
210 - "node": ">= 0.6"
211 - }
212 - },
213 - "node_modules/http-errors": {
214 - "version": "1.7.2",
215 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
216 - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
217 - "dependencies": {
218 - "depd": "~1.1.2",
219 - "inherits": "2.0.3",
220 - "setprototypeof": "1.1.1",
221 - "statuses": ">= 1.5.0 < 2",
222 - "toidentifier": "1.0.0"
223 - },
224 - "engines": {
225 - "node": ">= 0.6"
226 - }
227 - },
228 - "node_modules/iconv-lite": {
229 - "version": "0.4.24",
230 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
231 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
232 - "dependencies": {
233 - "safer-buffer": ">= 2.1.2 < 3"
234 - },
235 - "engines": {
236 - "node": ">=0.10.0"
237 - }
238 - },
239 - "node_modules/inherits": {
240 - "version": "2.0.3",
241 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
242 - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
243 - },
244 - "node_modules/ipaddr.js": {
245 - "version": "1.9.1",
246 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
247 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
248 - "engines": {
249 - "node": ">= 0.10"
250 - }
251 - },
252 - "node_modules/media-typer": {
253 - "version": "0.3.0",
254 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
255 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
256 - "engines": {
257 - "node": ">= 0.6"
258 - }
259 - },
260 - "node_modules/merge-descriptors": {
261 - "version": "1.0.1",
262 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
263 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
264 - },
265 - "node_modules/methods": {
266 - "version": "1.1.2",
267 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
268 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
269 - "engines": {
270 - "node": ">= 0.6"
271 - }
272 - },
273 - "node_modules/mime": {
274 - "version": "1.6.0",
275 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
276 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
277 - "bin": {
278 - "mime": "cli.js"
279 - },
280 - "engines": {
281 - "node": ">=4"
282 - }
283 - },
284 - "node_modules/mime-db": {
285 - "version": "1.44.0",
286 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
287 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
288 - "engines": {
289 - "node": ">= 0.6"
290 - }
291 - },
292 - "node_modules/mime-types": {
293 - "version": "2.1.27",
294 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
295 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
296 - "dependencies": {
297 - "mime-db": "1.44.0"
298 - },
299 - "engines": {
300 - "node": ">= 0.6"
301 - }
302 - },
303 - "node_modules/ms": {
304 - "version": "2.0.0",
305 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
306 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
307 - },
308 - "node_modules/negotiator": {
309 - "version": "0.6.2",
310 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
311 - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
312 - "engines": {
313 - "node": ">= 0.6"
314 - }
315 - },
316 - "node_modules/on-finished": {
317 - "version": "2.3.0",
318 - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
319 - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
320 - "dependencies": {
321 - "ee-first": "1.1.1"
322 - },
323 - "engines": {
324 - "node": ">= 0.8"
325 - }
326 - },
327 - "node_modules/parseurl": {
328 - "version": "1.3.3",
329 - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
330 - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
331 - "engines": {
332 - "node": ">= 0.8"
333 - }
334 - },
335 - "node_modules/path-to-regexp": {
336 - "version": "0.1.7",
337 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
338 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
339 - },
340 - "node_modules/proxy-addr": {
341 - "version": "2.0.6",
342 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
343 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
344 - "dependencies": {
345 - "forwarded": "~0.1.2",
346 - "ipaddr.js": "1.9.1"
347 - },
348 - "engines": {
349 - "node": ">= 0.10"
350 - }
351 - },
352 - "node_modules/qs": {
353 - "version": "6.7.0",
354 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
355 - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
356 - "engines": {
357 - "node": ">=0.6"
358 - }
359 - },
360 - "node_modules/range-parser": {
361 - "version": "1.2.1",
362 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
363 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
364 - "engines": {
365 - "node": ">= 0.6"
366 - }
367 - },
368 - "node_modules/raw-body": {
369 - "version": "2.4.0",
370 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
371 - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
372 - "dependencies": {
373 - "bytes": "3.1.0",
374 - "http-errors": "1.7.2",
375 - "iconv-lite": "0.4.24",
376 - "unpipe": "1.0.0"
377 - },
378 - "engines": {
379 - "node": ">= 0.8"
380 - }
381 - },
382 - "node_modules/safe-buffer": {
383 - "version": "5.1.2",
384 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
385 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
386 - },
387 - "node_modules/safer-buffer": {
388 - "version": "2.1.2",
389 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
390 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
391 - },
392 - "node_modules/send": {
393 - "version": "0.17.1",
394 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
395 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
396 - "dependencies": {
397 - "debug": "2.6.9",
398 - "depd": "~1.1.2",
399 - "destroy": "~1.0.4",
400 - "encodeurl": "~1.0.2",
401 - "escape-html": "~1.0.3",
402 - "etag": "~1.8.1",
403 - "fresh": "0.5.2",
404 - "http-errors": "~1.7.2",
405 - "mime": "1.6.0",
406 - "ms": "2.1.1",
407 - "on-finished": "~2.3.0",
408 - "range-parser": "~1.2.1",
409 - "statuses": "~1.5.0"
410 - },
411 - "engines": {
412 - "node": ">= 0.8.0"
413 - }
414 - },
415 - "node_modules/send/node_modules/ms": {
416 - "version": "2.1.1",
417 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
418 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
419 - },
420 - "node_modules/serve-static": {
421 - "version": "1.14.1",
422 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
423 - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
424 - "dependencies": {
425 - "encodeurl": "~1.0.2",
426 - "escape-html": "~1.0.3",
427 - "parseurl": "~1.3.3",
428 - "send": "0.17.1"
429 - },
430 - "engines": {
431 - "node": ">= 0.8.0"
432 - }
433 - },
434 - "node_modules/setprototypeof": {
435 - "version": "1.1.1",
436 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
437 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
438 - },
439 - "node_modules/statuses": {
440 - "version": "1.5.0",
441 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
442 - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
443 - "engines": {
444 - "node": ">= 0.6"
445 - }
446 - },
447 - "node_modules/toidentifier": {
448 - "version": "1.0.0",
449 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
450 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
451 - "engines": {
452 - "node": ">=0.6"
453 - }
454 - },
455 - "node_modules/type-is": {
456 - "version": "1.6.18",
457 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
458 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
459 - "dependencies": {
460 - "media-typer": "0.3.0",
461 - "mime-types": "~2.1.24"
462 - },
463 - "engines": {
464 - "node": ">= 0.6"
465 - }
466 - },
467 - "node_modules/unpipe": {
468 - "version": "1.0.0",
469 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
470 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
471 - "engines": {
472 - "node": ">= 0.8"
473 - }
474 - },
475 - "node_modules/utils-merge": {
476 - "version": "1.0.1",
477 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
478 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
479 - "engines": {
480 - "node": ">= 0.4.0"
481 - }
482 - },
483 - "node_modules/vary": {
484 - "version": "1.1.2",
485 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
486 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
487 - "engines": {
488 - "node": ">= 0.8"
489 - }
490 - }
491 - },
492 - "dependencies": {
493 - "accepts": {
494 - "version": "1.3.7",
495 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
496 - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
497 - "requires": {
498 - "mime-types": "~2.1.24",
499 - "negotiator": "0.6.2"
500 - }
501 - },
502 - "array-flatten": {
503 - "version": "1.1.1",
504 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
505 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
506 - },
507 - "body-parser": {
508 - "version": "1.19.0",
509 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
510 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
511 - "requires": {
512 - "bytes": "3.1.0",
513 - "content-type": "~1.0.4",
514 - "debug": "2.6.9",
515 - "depd": "~1.1.2",
516 - "http-errors": "1.7.2",
517 - "iconv-lite": "0.4.24",
518 - "on-finished": "~2.3.0",
519 - "qs": "6.7.0",
520 - "raw-body": "2.4.0",
521 - "type-is": "~1.6.17"
522 - }
523 - },
524 - "bytes": {
525 - "version": "3.1.0",
526 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
527 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
528 - },
529 - "content-disposition": {
530 - "version": "0.5.3",
531 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
532 - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
533 - "requires": {
534 - "safe-buffer": "5.1.2"
535 - }
536 - },
537 - "content-type": {
538 - "version": "1.0.4",
539 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
540 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
541 - },
542 - "cookie": {
543 - "version": "0.4.0",
544 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
545 - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
546 - },
547 - "cookie-signature": {
548 - "version": "1.0.6",
549 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
550 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
551 - },
552 - "debug": {
553 - "version": "2.6.9",
554 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
555 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
556 - "requires": {
557 - "ms": "2.0.0"
558 - }
559 - },
560 - "depd": {
561 - "version": "1.1.2",
562 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
563 - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
564 - },
565 - "destroy": {
566 - "version": "1.0.4",
567 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
568 - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
569 - },
570 - "ee-first": {
571 - "version": "1.1.1",
572 - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
573 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
574 - },
575 - "encodeurl": {
576 - "version": "1.0.2",
577 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
578 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
579 - },
580 - "escape-html": {
581 - "version": "1.0.3",
582 - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
583 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
584 - },
585 - "etag": {
586 - "version": "1.8.1",
587 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
588 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
589 - },
590 - "express": {
591 - "version": "4.17.1",
592 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
593 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
594 - "requires": {
595 - "accepts": "~1.3.7",
596 - "array-flatten": "1.1.1",
597 - "body-parser": "1.19.0",
598 - "content-disposition": "0.5.3",
599 - "content-type": "~1.0.4",
600 - "cookie": "0.4.0",
601 - "cookie-signature": "1.0.6",
602 - "debug": "2.6.9",
603 - "depd": "~1.1.2",
604 - "encodeurl": "~1.0.2",
605 - "escape-html": "~1.0.3",
606 - "etag": "~1.8.1",
607 - "finalhandler": "~1.1.2",
608 - "fresh": "0.5.2",
609 - "merge-descriptors": "1.0.1",
610 - "methods": "~1.1.2",
611 - "on-finished": "~2.3.0",
612 - "parseurl": "~1.3.3",
613 - "path-to-regexp": "0.1.7",
614 - "proxy-addr": "~2.0.5",
615 - "qs": "6.7.0",
616 - "range-parser": "~1.2.1",
617 - "safe-buffer": "5.1.2",
618 - "send": "0.17.1",
619 - "serve-static": "1.14.1",
620 - "setprototypeof": "1.1.1",
621 - "statuses": "~1.5.0",
622 - "type-is": "~1.6.18",
623 - "utils-merge": "1.0.1",
624 - "vary": "~1.1.2"
625 - }
626 - },
627 - "finalhandler": {
628 - "version": "1.1.2",
629 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
630 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
631 - "requires": {
632 - "debug": "2.6.9",
633 - "encodeurl": "~1.0.2",
634 - "escape-html": "~1.0.3",
635 - "on-finished": "~2.3.0",
636 - "parseurl": "~1.3.3",
637 - "statuses": "~1.5.0",
638 - "unpipe": "~1.0.0"
639 - }
640 - },
641 - "forwarded": {
642 - "version": "0.1.2",
643 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
644 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
645 - },
646 - "fresh": {
647 - "version": "0.5.2",
648 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
649 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
650 - },
651 - "http-errors": {
652 - "version": "1.7.2",
653 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
654 - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
655 - "requires": {
656 - "depd": "~1.1.2",
657 - "inherits": "2.0.3",
658 - "setprototypeof": "1.1.1",
659 - "statuses": ">= 1.5.0 < 2",
660 - "toidentifier": "1.0.0"
661 - }
662 - },
663 - "iconv-lite": {
664 - "version": "0.4.24",
665 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
666 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
667 - "requires": {
668 - "safer-buffer": ">= 2.1.2 < 3"
669 - }
670 - },
671 - "inherits": {
672 - "version": "2.0.3",
673 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
674 - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
675 - },
676 - "ipaddr.js": {
677 - "version": "1.9.1",
678 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
679 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
680 - },
681 - "media-typer": {
682 - "version": "0.3.0",
683 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
684 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
685 - },
686 - "merge-descriptors": {
687 - "version": "1.0.1",
688 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
689 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
690 - },
691 - "methods": {
692 - "version": "1.1.2",
693 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
694 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
695 - },
696 - "mime": {
697 - "version": "1.6.0",
698 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
699 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
700 - },
701 - "mime-db": {
702 - "version": "1.44.0",
703 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
704 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
705 - },
706 - "mime-types": {
707 - "version": "2.1.27",
708 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
709 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
710 - "requires": {
711 - "mime-db": "1.44.0"
712 - }
713 - },
714 - "ms": {
715 - "version": "2.0.0",
716 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
717 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
718 - },
719 - "negotiator": {
720 - "version": "0.6.2",
721 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
722 - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
723 - },
724 - "on-finished": {
725 - "version": "2.3.0",
726 - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
727 - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
728 - "requires": {
729 - "ee-first": "1.1.1"
730 - }
731 - },
732 - "parseurl": {
733 - "version": "1.3.3",
734 - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
735 - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
736 - },
737 - "path-to-regexp": {
738 - "version": "0.1.7",
739 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
740 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
741 - },
742 - "proxy-addr": {
743 - "version": "2.0.6",
744 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
745 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
746 - "requires": {
747 - "forwarded": "~0.1.2",
748 - "ipaddr.js": "1.9.1"
749 - }
750 - },
751 - "qs": {
752 - "version": "6.7.0",
753 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
754 - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
755 - },
756 - "range-parser": {
757 - "version": "1.2.1",
758 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
759 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
760 - },
761 - "raw-body": {
762 - "version": "2.4.0",
763 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
764 - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
765 - "requires": {
766 - "bytes": "3.1.0",
767 - "http-errors": "1.7.2",
768 - "iconv-lite": "0.4.24",
769 - "unpipe": "1.0.0"
770 - }
771 - },
772 - "safe-buffer": {
773 - "version": "5.1.2",
774 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
775 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
776 - },
777 - "safer-buffer": {
778 - "version": "2.1.2",
779 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
780 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
781 - },
782 - "send": {
783 - "version": "0.17.1",
784 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
785 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
786 - "requires": {
787 - "debug": "2.6.9",
788 - "depd": "~1.1.2",
789 - "destroy": "~1.0.4",
790 - "encodeurl": "~1.0.2",
791 - "escape-html": "~1.0.3",
792 - "etag": "~1.8.1",
793 - "fresh": "0.5.2",
794 - "http-errors": "~1.7.2",
795 - "mime": "1.6.0",
796 - "ms": "2.1.1",
797 - "on-finished": "~2.3.0",
798 - "range-parser": "~1.2.1",
799 - "statuses": "~1.5.0"
800 - },
801 - "dependencies": {
802 - "ms": {
803 - "version": "2.1.1",
804 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
805 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
806 - }
807 - }
808 - },
809 - "serve-static": {
810 - "version": "1.14.1",
811 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
812 - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
813 - "requires": {
814 - "encodeurl": "~1.0.2",
815 - "escape-html": "~1.0.3",
816 - "parseurl": "~1.3.3",
817 - "send": "0.17.1"
818 - }
819 - },
820 - "setprototypeof": {
821 - "version": "1.1.1",
822 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
823 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
824 - },
825 - "statuses": {
826 - "version": "1.5.0",
827 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
828 - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
829 - },
830 - "toidentifier": {
831 - "version": "1.0.0",
832 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
833 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
834 - },
835 - "type-is": {
836 - "version": "1.6.18",
837 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
838 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
839 - "requires": {
840 - "media-typer": "0.3.0",
841 - "mime-types": "~2.1.24"
842 - }
843 - },
844 - "unpipe": {
845 - "version": "1.0.0",
846 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
847 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
848 - },
849 - "utils-merge": {
850 - "version": "1.0.1",
851 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
852 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
853 - },
854 - "vary": {
855 - "version": "1.1.2",
856 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
857 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
858 - }
859 - }
860 -}
1 -{
2 - "name": "webhook",
3 - "version": "1.0.0",
4 - "description": "",
5 - "main": "app.js",
6 - "scripts": {
7 - "test": "echo \"Error: no test specified\" && exit 1"
8 - },
9 - "author": "",
10 - "license": "ISC",
11 - "dependencies": {
12 - "body-parser": "^1.19.0",
13 - "express": "^4.17.1"
14 - }
15 -}
1 -// 아래 2개의 함수를 모듈로 정의하는 것이 필요함
2 -function add(a,b) {
3 - return a+b;
4 -}
5 -function sub(a,b) {
6 - return a-b;
7 -}
1 -const doSomethingAsync = () => {
2 - return new Promise(resolve => {
3 - setTimeout(() => resolve('I did something'), 3000)
4 - })
5 -}
6 -
7 -// doSomething 함수를 async await 형태로 변경하시오
8 -const doSomething = () => {
9 - doSomethingAsync().then( a => console.log(a))
10 -}
11 -
12 -console.log('Before')
13 -doSomething()
14 -console.log('After')
1 -var events = require('events');
2 -var eventEmitter = new events.EventEmitter();
3 -var connectHandler = function connected() {
4 - console.log('connection successful.');
5 - eventEmitter.emit('data_received');
6 -}
7 -
8 -eventEmitter.on('connection', connectHandler);
9 -
10 -eventEmitter.on('data_received', function(){
11 - console.log('data received successfully.');
12 -});
13 -
14 -eventEmitter.emit('connection');
15 -console.log("Program Ended.");
1 -var events = require('events');
2 -var eventEmitter = new events.EventEmitter();
3 -var listner1 = function listner1() {
4 -console.log('listner1 executed.');
5 -}
6 -var listner2 = function listner2() {
7 -console.log('listner2 executed.');
8 -}
9 -
10 -eventEmitter.addListener('connection', listner1);
11 -eventEmitter.on('connection', listner2);
12 -var eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection');
13 -console.log(eventListeners + " Listner(s) listening to connection event");
14 -
15 -eventEmitter.emit('connection');
16 -eventEmitter.removeListener('connection', listner1);
17 -console.log("Listner1 will not listen now.");
18 -
19 -eventEmitter.emit('connection');
20 -eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection');
21 -console.log(eventListeners + " Listner(s) listening to connection event");
22 -console.log("Program Ended.");