김대철

기본 파일 생성

1 +var createError = require('http-errors');
2 +var express = require('express');
3 +var path = require('path');
4 +var cookieParser = require('cookie-parser');
5 +var logger = require('morgan');
6 +
7 +var indexRouter = require('./routes/index');
8 +var usersRouter = require('./routes/users');
9 +
10 +var app = express();
11 +
12 +// view engine setup
13 +app.set('views', path.join(__dirname, 'views'));
14 +app.set('view engine', 'pug');
15 +
16 +app.use(logger('dev'));
17 +app.use(express.json());
18 +app.use(express.urlencoded({ extended: false }));
19 +app.use(cookieParser());
20 +app.use(express.static(path.join(__dirname, 'public')));
21 +
22 +app.use('/', indexRouter);
23 +app.use('/users', usersRouter);
24 +
25 +// catch 404 and forward to error handler
26 +app.use(function(req, res, next) {
27 + next(createError(404));
28 +});
29 +
30 +// error handler
31 +app.use(function(err, req, res, next) {
32 + // set locals, only providing error in development
33 + res.locals.message = err.message;
34 + res.locals.error = req.app.get('env') === 'development' ? err : {};
35 +
36 + // render the error page
37 + res.status(err.status || 500);
38 + res.render('error');
39 +});
40 +
41 +module.exports = app;
1 +#!/usr/bin/env node
2 +
3 +/**
4 + * Module dependencies.
5 + */
6 +
7 +var app = require('../app');
8 +var debug = require('debug')('myapp:server');
9 +var http = require('http');
10 +
11 +/**
12 + * Get port from environment and store in Express.
13 + */
14 +
15 +var port = normalizePort(process.env.PORT || '3000');
16 +app.set('port', port);
17 +
18 +/**
19 + * Create HTTP server.
20 + */
21 +
22 +var server = http.createServer(app);
23 +
24 +/**
25 + * Listen on provided port, on all network interfaces.
26 + */
27 +
28 +server.listen(port);
29 +server.on('error', onError);
30 +server.on('listening', onListening);
31 +
32 +/**
33 + * Normalize a port into a number, string, or false.
34 + */
35 +
36 +function normalizePort(val) {
37 + var port = parseInt(val, 10);
38 +
39 + if (isNaN(port)) {
40 + // named pipe
41 + return val;
42 + }
43 +
44 + if (port >= 0) {
45 + // port number
46 + return port;
47 + }
48 +
49 + return false;
50 +}
51 +
52 +/**
53 + * Event listener for HTTP server "error" event.
54 + */
55 +
56 +function onError(error) {
57 + if (error.syscall !== 'listen') {
58 + throw error;
59 + }
60 +
61 + var bind = typeof port === 'string'
62 + ? 'Pipe ' + port
63 + : 'Port ' + port;
64 +
65 + // handle specific listen errors with friendly messages
66 + switch (error.code) {
67 + case 'EACCES':
68 + console.error(bind + ' requires elevated privileges');
69 + process.exit(1);
70 + break;
71 + case 'EADDRINUSE':
72 + console.error(bind + ' is already in use');
73 + process.exit(1);
74 + break;
75 + default:
76 + throw error;
77 + }
78 +}
79 +
80 +/**
81 + * Event listener for HTTP server "listening" event.
82 + */
83 +
84 +function onListening() {
85 + var addr = server.address();
86 + var bind = typeof addr === 'string'
87 + ? 'pipe ' + addr
88 + : 'port ' + addr.port;
89 + debug('Listening on ' + bind);
90 +}
1 +{
2 + "name": "myapp",
3 + "version": "0.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "@types/babel-types": {
8 + "version": "7.0.9",
9 + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz",
10 + "integrity": "sha512-qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA=="
11 + },
12 + "@types/babylon": {
13 + "version": "6.16.5",
14 + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
15 + "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
16 + "requires": {
17 + "@types/babel-types": "*"
18 + }
19 + },
20 + "accepts": {
21 + "version": "1.3.7",
22 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
23 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
24 + "requires": {
25 + "mime-types": "~2.1.24",
26 + "negotiator": "0.6.2"
27 + }
28 + },
29 + "acorn": {
30 + "version": "3.3.0",
31 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
32 + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
33 + },
34 + "acorn-globals": {
35 + "version": "3.1.0",
36 + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
37 + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
38 + "requires": {
39 + "acorn": "^4.0.4"
40 + },
41 + "dependencies": {
42 + "acorn": {
43 + "version": "4.0.13",
44 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
45 + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
46 + }
47 + }
48 + },
49 + "align-text": {
50 + "version": "0.1.4",
51 + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
52 + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
53 + "requires": {
54 + "kind-of": "^3.0.2",
55 + "longest": "^1.0.1",
56 + "repeat-string": "^1.5.2"
57 + }
58 + },
59 + "amdefine": {
60 + "version": "1.0.1",
61 + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
62 + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
63 + },
64 + "array-flatten": {
65 + "version": "1.1.1",
66 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
67 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
68 + },
69 + "asap": {
70 + "version": "2.0.6",
71 + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
72 + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
73 + },
74 + "babel-runtime": {
75 + "version": "6.26.0",
76 + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
77 + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
78 + "requires": {
79 + "core-js": "^2.4.0",
80 + "regenerator-runtime": "^0.11.0"
81 + }
82 + },
83 + "babel-types": {
84 + "version": "6.26.0",
85 + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
86 + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
87 + "requires": {
88 + "babel-runtime": "^6.26.0",
89 + "esutils": "^2.0.2",
90 + "lodash": "^4.17.4",
91 + "to-fast-properties": "^1.0.3"
92 + }
93 + },
94 + "babylon": {
95 + "version": "6.18.0",
96 + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
97 + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
98 + },
99 + "basic-auth": {
100 + "version": "2.0.1",
101 + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
102 + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
103 + "requires": {
104 + "safe-buffer": "5.1.2"
105 + }
106 + },
107 + "body-parser": {
108 + "version": "1.18.3",
109 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
110 + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
111 + "requires": {
112 + "bytes": "3.0.0",
113 + "content-type": "~1.0.4",
114 + "debug": "2.6.9",
115 + "depd": "~1.1.2",
116 + "http-errors": "~1.6.3",
117 + "iconv-lite": "0.4.23",
118 + "on-finished": "~2.3.0",
119 + "qs": "6.5.2",
120 + "raw-body": "2.3.3",
121 + "type-is": "~1.6.16"
122 + }
123 + },
124 + "bytes": {
125 + "version": "3.0.0",
126 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
127 + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
128 + },
129 + "call-bind": {
130 + "version": "1.0.2",
131 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
132 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
133 + "requires": {
134 + "function-bind": "^1.1.1",
135 + "get-intrinsic": "^1.0.2"
136 + }
137 + },
138 + "camelcase": {
139 + "version": "1.2.1",
140 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
141 + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
142 + },
143 + "center-align": {
144 + "version": "0.1.3",
145 + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
146 + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
147 + "requires": {
148 + "align-text": "^0.1.3",
149 + "lazy-cache": "^1.0.3"
150 + }
151 + },
152 + "character-parser": {
153 + "version": "2.2.0",
154 + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
155 + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
156 + "requires": {
157 + "is-regex": "^1.0.3"
158 + }
159 + },
160 + "clean-css": {
161 + "version": "3.4.28",
162 + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
163 + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
164 + "requires": {
165 + "commander": "2.8.x",
166 + "source-map": "0.4.x"
167 + },
168 + "dependencies": {
169 + "commander": {
170 + "version": "2.8.1",
171 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
172 + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
173 + "requires": {
174 + "graceful-readlink": ">= 1.0.0"
175 + }
176 + }
177 + }
178 + },
179 + "cliui": {
180 + "version": "2.1.0",
181 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
182 + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
183 + "requires": {
184 + "center-align": "^0.1.1",
185 + "right-align": "^0.1.1",
186 + "wordwrap": "0.0.2"
187 + }
188 + },
189 + "constantinople": {
190 + "version": "3.1.2",
191 + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
192 + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
193 + "requires": {
194 + "@types/babel-types": "^7.0.0",
195 + "@types/babylon": "^6.16.2",
196 + "babel-types": "^6.26.0",
197 + "babylon": "^6.18.0"
198 + }
199 + },
200 + "content-disposition": {
201 + "version": "0.5.2",
202 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
203 + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
204 + },
205 + "content-type": {
206 + "version": "1.0.4",
207 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
208 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
209 + },
210 + "cookie": {
211 + "version": "0.4.0",
212 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
213 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
214 + },
215 + "cookie-parser": {
216 + "version": "1.4.5",
217 + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
218 + "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
219 + "requires": {
220 + "cookie": "0.4.0",
221 + "cookie-signature": "1.0.6"
222 + }
223 + },
224 + "cookie-signature": {
225 + "version": "1.0.6",
226 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
227 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
228 + },
229 + "core-js": {
230 + "version": "2.6.12",
231 + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
232 + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
233 + },
234 + "debug": {
235 + "version": "2.6.9",
236 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
237 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
238 + "requires": {
239 + "ms": "2.0.0"
240 + }
241 + },
242 + "decamelize": {
243 + "version": "1.2.0",
244 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
245 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
246 + },
247 + "depd": {
248 + "version": "1.1.2",
249 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
250 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
251 + },
252 + "destroy": {
253 + "version": "1.0.4",
254 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
255 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
256 + },
257 + "doctypes": {
258 + "version": "1.1.0",
259 + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
260 + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
261 + },
262 + "ee-first": {
263 + "version": "1.1.1",
264 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
265 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
266 + },
267 + "encodeurl": {
268 + "version": "1.0.2",
269 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
270 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
271 + },
272 + "escape-html": {
273 + "version": "1.0.3",
274 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
275 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
276 + },
277 + "esutils": {
278 + "version": "2.0.3",
279 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
280 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
281 + },
282 + "etag": {
283 + "version": "1.8.1",
284 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
285 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
286 + },
287 + "express": {
288 + "version": "4.16.4",
289 + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
290 + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
291 + "requires": {
292 + "accepts": "~1.3.5",
293 + "array-flatten": "1.1.1",
294 + "body-parser": "1.18.3",
295 + "content-disposition": "0.5.2",
296 + "content-type": "~1.0.4",
297 + "cookie": "0.3.1",
298 + "cookie-signature": "1.0.6",
299 + "debug": "2.6.9",
300 + "depd": "~1.1.2",
301 + "encodeurl": "~1.0.2",
302 + "escape-html": "~1.0.3",
303 + "etag": "~1.8.1",
304 + "finalhandler": "1.1.1",
305 + "fresh": "0.5.2",
306 + "merge-descriptors": "1.0.1",
307 + "methods": "~1.1.2",
308 + "on-finished": "~2.3.0",
309 + "parseurl": "~1.3.2",
310 + "path-to-regexp": "0.1.7",
311 + "proxy-addr": "~2.0.4",
312 + "qs": "6.5.2",
313 + "range-parser": "~1.2.0",
314 + "safe-buffer": "5.1.2",
315 + "send": "0.16.2",
316 + "serve-static": "1.13.2",
317 + "setprototypeof": "1.1.0",
318 + "statuses": "~1.4.0",
319 + "type-is": "~1.6.16",
320 + "utils-merge": "1.0.1",
321 + "vary": "~1.1.2"
322 + },
323 + "dependencies": {
324 + "cookie": {
325 + "version": "0.3.1",
326 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
327 + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
328 + }
329 + }
330 + },
331 + "finalhandler": {
332 + "version": "1.1.1",
333 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
334 + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
335 + "requires": {
336 + "debug": "2.6.9",
337 + "encodeurl": "~1.0.2",
338 + "escape-html": "~1.0.3",
339 + "on-finished": "~2.3.0",
340 + "parseurl": "~1.3.2",
341 + "statuses": "~1.4.0",
342 + "unpipe": "~1.0.0"
343 + }
344 + },
345 + "forwarded": {
346 + "version": "0.1.2",
347 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
348 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
349 + },
350 + "fresh": {
351 + "version": "0.5.2",
352 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
353 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
354 + },
355 + "function-bind": {
356 + "version": "1.1.1",
357 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
358 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
359 + },
360 + "get-intrinsic": {
361 + "version": "1.1.1",
362 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
363 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
364 + "requires": {
365 + "function-bind": "^1.1.1",
366 + "has": "^1.0.3",
367 + "has-symbols": "^1.0.1"
368 + }
369 + },
370 + "graceful-readlink": {
371 + "version": "1.0.1",
372 + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
373 + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
374 + },
375 + "has": {
376 + "version": "1.0.3",
377 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
378 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
379 + "requires": {
380 + "function-bind": "^1.1.1"
381 + }
382 + },
383 + "has-symbols": {
384 + "version": "1.0.2",
385 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
386 + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
387 + },
388 + "http-errors": {
389 + "version": "1.6.3",
390 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
391 + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
392 + "requires": {
393 + "depd": "~1.1.2",
394 + "inherits": "2.0.3",
395 + "setprototypeof": "1.1.0",
396 + "statuses": ">= 1.4.0 < 2"
397 + }
398 + },
399 + "iconv-lite": {
400 + "version": "0.4.23",
401 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
402 + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
403 + "requires": {
404 + "safer-buffer": ">= 2.1.2 < 3"
405 + }
406 + },
407 + "inherits": {
408 + "version": "2.0.3",
409 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
410 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
411 + },
412 + "ipaddr.js": {
413 + "version": "1.9.1",
414 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
415 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
416 + },
417 + "is-buffer": {
418 + "version": "1.1.6",
419 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
420 + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
421 + },
422 + "is-core-module": {
423 + "version": "2.3.0",
424 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz",
425 + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==",
426 + "requires": {
427 + "has": "^1.0.3"
428 + }
429 + },
430 + "is-expression": {
431 + "version": "3.0.0",
432 + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
433 + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
434 + "requires": {
435 + "acorn": "~4.0.2",
436 + "object-assign": "^4.0.1"
437 + },
438 + "dependencies": {
439 + "acorn": {
440 + "version": "4.0.13",
441 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
442 + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
443 + }
444 + }
445 + },
446 + "is-promise": {
447 + "version": "2.2.2",
448 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
449 + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
450 + },
451 + "is-regex": {
452 + "version": "1.1.2",
453 + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
454 + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
455 + "requires": {
456 + "call-bind": "^1.0.2",
457 + "has-symbols": "^1.0.1"
458 + }
459 + },
460 + "js-stringify": {
461 + "version": "1.0.2",
462 + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
463 + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
464 + },
465 + "jstransformer": {
466 + "version": "1.0.0",
467 + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
468 + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
469 + "requires": {
470 + "is-promise": "^2.0.0",
471 + "promise": "^7.0.1"
472 + }
473 + },
474 + "kind-of": {
475 + "version": "3.2.2",
476 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
477 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
478 + "requires": {
479 + "is-buffer": "^1.1.5"
480 + }
481 + },
482 + "lazy-cache": {
483 + "version": "1.0.4",
484 + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
485 + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
486 + },
487 + "lodash": {
488 + "version": "4.17.21",
489 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
490 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
491 + },
492 + "longest": {
493 + "version": "1.0.1",
494 + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
495 + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
496 + },
497 + "media-typer": {
498 + "version": "0.3.0",
499 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
500 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
501 + },
502 + "merge-descriptors": {
503 + "version": "1.0.1",
504 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
505 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
506 + },
507 + "methods": {
508 + "version": "1.1.2",
509 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
510 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
511 + },
512 + "mime": {
513 + "version": "1.4.1",
514 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
515 + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
516 + },
517 + "mime-db": {
518 + "version": "1.47.0",
519 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
520 + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
521 + },
522 + "mime-types": {
523 + "version": "2.1.30",
524 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
525 + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
526 + "requires": {
527 + "mime-db": "1.47.0"
528 + }
529 + },
530 + "morgan": {
531 + "version": "1.9.1",
532 + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
533 + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
534 + "requires": {
535 + "basic-auth": "~2.0.0",
536 + "debug": "2.6.9",
537 + "depd": "~1.1.2",
538 + "on-finished": "~2.3.0",
539 + "on-headers": "~1.0.1"
540 + }
541 + },
542 + "ms": {
543 + "version": "2.0.0",
544 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
545 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
546 + },
547 + "negotiator": {
548 + "version": "0.6.2",
549 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
550 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
551 + },
552 + "object-assign": {
553 + "version": "4.1.1",
554 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
555 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
556 + },
557 + "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 + "requires": {
562 + "ee-first": "1.1.1"
563 + }
564 + },
565 + "on-headers": {
566 + "version": "1.0.2",
567 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
568 + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
569 + },
570 + "parseurl": {
571 + "version": "1.3.3",
572 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
573 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
574 + },
575 + "path-parse": {
576 + "version": "1.0.6",
577 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
578 + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
579 + },
580 + "path-to-regexp": {
581 + "version": "0.1.7",
582 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
583 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
584 + },
585 + "promise": {
586 + "version": "7.3.1",
587 + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
588 + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
589 + "requires": {
590 + "asap": "~2.0.3"
591 + }
592 + },
593 + "proxy-addr": {
594 + "version": "2.0.6",
595 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
596 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
597 + "requires": {
598 + "forwarded": "~0.1.2",
599 + "ipaddr.js": "1.9.1"
600 + }
601 + },
602 + "pug": {
603 + "version": "2.0.0-beta11",
604 + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-beta11.tgz",
605 + "integrity": "sha1-Favmr1AEx+LPRhPksnRlyVRrXwE=",
606 + "requires": {
607 + "pug-code-gen": "^1.1.1",
608 + "pug-filters": "^2.1.1",
609 + "pug-lexer": "^3.0.0",
610 + "pug-linker": "^2.0.2",
611 + "pug-load": "^2.0.5",
612 + "pug-parser": "^2.0.2",
613 + "pug-runtime": "^2.0.3",
614 + "pug-strip-comments": "^1.0.2"
615 + }
616 + },
617 + "pug-attrs": {
618 + "version": "2.0.4",
619 + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
620 + "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
621 + "requires": {
622 + "constantinople": "^3.0.1",
623 + "js-stringify": "^1.0.1",
624 + "pug-runtime": "^2.0.5"
625 + }
626 + },
627 + "pug-code-gen": {
628 + "version": "1.1.1",
629 + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-1.1.1.tgz",
630 + "integrity": "sha1-HPcnRO8qA56uajNAyqoRBYcSWOg=",
631 + "requires": {
632 + "constantinople": "^3.0.1",
633 + "doctypes": "^1.1.0",
634 + "js-stringify": "^1.0.1",
635 + "pug-attrs": "^2.0.2",
636 + "pug-error": "^1.3.2",
637 + "pug-runtime": "^2.0.3",
638 + "void-elements": "^2.0.1",
639 + "with": "^5.0.0"
640 + }
641 + },
642 + "pug-error": {
643 + "version": "1.3.3",
644 + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
645 + "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
646 + },
647 + "pug-filters": {
648 + "version": "2.1.5",
649 + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-2.1.5.tgz",
650 + "integrity": "sha512-xkw71KtrC4sxleKiq+cUlQzsiLn8pM5+vCgkChW2E6oNOzaqTSIBKIQ5cl4oheuDzvJYCTSYzRaVinMUrV4YLQ==",
651 + "requires": {
652 + "clean-css": "^3.3.0",
653 + "constantinople": "^3.0.1",
654 + "jstransformer": "1.0.0",
655 + "pug-error": "^1.3.2",
656 + "pug-walk": "^1.1.5",
657 + "resolve": "^1.1.6",
658 + "uglify-js": "^2.6.1"
659 + }
660 + },
661 + "pug-lexer": {
662 + "version": "3.1.0",
663 + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-3.1.0.tgz",
664 + "integrity": "sha1-/QhzdtSmdbT1n4/vQiiDQ06VgaI=",
665 + "requires": {
666 + "character-parser": "^2.1.1",
667 + "is-expression": "^3.0.0",
668 + "pug-error": "^1.3.2"
669 + }
670 + },
671 + "pug-linker": {
672 + "version": "2.0.3",
673 + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-2.0.3.tgz",
674 + "integrity": "sha1-szH/olc33eacEntWwQ/xf652bco=",
675 + "requires": {
676 + "pug-error": "^1.3.2",
677 + "pug-walk": "^1.1.2"
678 + }
679 + },
680 + "pug-load": {
681 + "version": "2.0.12",
682 + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
683 + "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
684 + "requires": {
685 + "object-assign": "^4.1.0",
686 + "pug-walk": "^1.1.8"
687 + }
688 + },
689 + "pug-parser": {
690 + "version": "2.0.2",
691 + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-2.0.2.tgz",
692 + "integrity": "sha1-U6aAz9BQOdywwn0CkJS8SnkmibA=",
693 + "requires": {
694 + "pug-error": "^1.3.2",
695 + "token-stream": "0.0.1"
696 + }
697 + },
698 + "pug-runtime": {
699 + "version": "2.0.5",
700 + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
701 + "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
702 + },
703 + "pug-strip-comments": {
704 + "version": "1.0.4",
705 + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
706 + "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
707 + "requires": {
708 + "pug-error": "^1.3.3"
709 + }
710 + },
711 + "pug-walk": {
712 + "version": "1.1.8",
713 + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
714 + "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
715 + },
716 + "qs": {
717 + "version": "6.5.2",
718 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
719 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
720 + },
721 + "range-parser": {
722 + "version": "1.2.1",
723 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
724 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
725 + },
726 + "raw-body": {
727 + "version": "2.3.3",
728 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
729 + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
730 + "requires": {
731 + "bytes": "3.0.0",
732 + "http-errors": "1.6.3",
733 + "iconv-lite": "0.4.23",
734 + "unpipe": "1.0.0"
735 + }
736 + },
737 + "regenerator-runtime": {
738 + "version": "0.11.1",
739 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
740 + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
741 + },
742 + "repeat-string": {
743 + "version": "1.6.1",
744 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
745 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
746 + },
747 + "resolve": {
748 + "version": "1.20.0",
749 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
750 + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
751 + "requires": {
752 + "is-core-module": "^2.2.0",
753 + "path-parse": "^1.0.6"
754 + }
755 + },
756 + "right-align": {
757 + "version": "0.1.3",
758 + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
759 + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
760 + "requires": {
761 + "align-text": "^0.1.1"
762 + }
763 + },
764 + "safe-buffer": {
765 + "version": "5.1.2",
766 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
767 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
768 + },
769 + "safer-buffer": {
770 + "version": "2.1.2",
771 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
772 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
773 + },
774 + "send": {
775 + "version": "0.16.2",
776 + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
777 + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
778 + "requires": {
779 + "debug": "2.6.9",
780 + "depd": "~1.1.2",
781 + "destroy": "~1.0.4",
782 + "encodeurl": "~1.0.2",
783 + "escape-html": "~1.0.3",
784 + "etag": "~1.8.1",
785 + "fresh": "0.5.2",
786 + "http-errors": "~1.6.2",
787 + "mime": "1.4.1",
788 + "ms": "2.0.0",
789 + "on-finished": "~2.3.0",
790 + "range-parser": "~1.2.0",
791 + "statuses": "~1.4.0"
792 + }
793 + },
794 + "serve-static": {
795 + "version": "1.13.2",
796 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
797 + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
798 + "requires": {
799 + "encodeurl": "~1.0.2",
800 + "escape-html": "~1.0.3",
801 + "parseurl": "~1.3.2",
802 + "send": "0.16.2"
803 + }
804 + },
805 + "setprototypeof": {
806 + "version": "1.1.0",
807 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
808 + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
809 + },
810 + "source-map": {
811 + "version": "0.4.4",
812 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
813 + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
814 + "requires": {
815 + "amdefine": ">=0.0.4"
816 + }
817 + },
818 + "statuses": {
819 + "version": "1.4.0",
820 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
821 + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
822 + },
823 + "to-fast-properties": {
824 + "version": "1.0.3",
825 + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
826 + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
827 + },
828 + "token-stream": {
829 + "version": "0.0.1",
830 + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
831 + "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
832 + },
833 + "type-is": {
834 + "version": "1.6.18",
835 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
836 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
837 + "requires": {
838 + "media-typer": "0.3.0",
839 + "mime-types": "~2.1.24"
840 + }
841 + },
842 + "uglify-js": {
843 + "version": "2.8.29",
844 + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
845 + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
846 + "requires": {
847 + "source-map": "~0.5.1",
848 + "uglify-to-browserify": "~1.0.0",
849 + "yargs": "~3.10.0"
850 + },
851 + "dependencies": {
852 + "source-map": {
853 + "version": "0.5.7",
854 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
855 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
856 + }
857 + }
858 + },
859 + "uglify-to-browserify": {
860 + "version": "1.0.2",
861 + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
862 + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
863 + "optional": true
864 + },
865 + "unpipe": {
866 + "version": "1.0.0",
867 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
868 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
869 + },
870 + "utils-merge": {
871 + "version": "1.0.1",
872 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
873 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
874 + },
875 + "vary": {
876 + "version": "1.1.2",
877 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
878 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
879 + },
880 + "void-elements": {
881 + "version": "2.0.1",
882 + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
883 + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
884 + },
885 + "window-size": {
886 + "version": "0.1.0",
887 + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
888 + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
889 + },
890 + "with": {
891 + "version": "5.1.1",
892 + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
893 + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
894 + "requires": {
895 + "acorn": "^3.1.0",
896 + "acorn-globals": "^3.0.0"
897 + }
898 + },
899 + "wordwrap": {
900 + "version": "0.0.2",
901 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
902 + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
903 + },
904 + "yargs": {
905 + "version": "3.10.0",
906 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
907 + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
908 + "requires": {
909 + "camelcase": "^1.0.2",
910 + "cliui": "^2.1.0",
911 + "decamelize": "^1.0.0",
912 + "window-size": "0.1.0"
913 + }
914 + }
915 + }
916 +}
1 +{
2 + "name": "myapp",
3 + "version": "0.0.0",
4 + "private": true,
5 + "scripts": {
6 + "start": "node ./bin/www"
7 + },
8 + "dependencies": {
9 + "cookie-parser": "~1.4.4",
10 + "debug": "~2.6.9",
11 + "express": "~4.16.1",
12 + "http-errors": "~1.6.3",
13 + "morgan": "~1.9.1",
14 + "pug": "2.0.0-beta11"
15 + }
16 +}
1 +body {
2 + padding: 50px;
3 + font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4 +}
5 +
6 +a {
7 + color: #00B7FF;
8 +}
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +/* GET home page. */
5 +router.get('/', function(req, res, next) {
6 + res.render('index', { title: 'Express' });
7 +});
8 +
9 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +/* GET users listing. */
5 +router.get('/', function(req, res, next) {
6 + res.send('respond with a resource');
7 +});
8 +
9 +module.exports = router;
1 +extends layout
2 +
3 +block content
4 + h1= message
5 + h2= error.status
6 + pre #{error.stack}
1 +extends layout
2 +
3 +block content
4 + h1= title
5 + p Welcome to #{title}
1 +doctype html
2 +html
3 + head
4 + title= title
5 + link(rel='stylesheet', href='/stylesheets/style.css')
6 + body
7 + block content