parent
7ff35b9539
commit
bf52f6871a
10 changed files with 1206 additions and 0 deletions
@ -0,0 +1,47 @@ |
|||||||
|
var createError = require('http-errors'); |
||||||
|
var express = require('express'); |
||||||
|
var path = require('path'); |
||||||
|
var cookieParser = require('cookie-parser'); |
||||||
|
var logger = require('morgan'); |
||||||
|
var expressWs = require('express-ws'); |
||||||
|
|
||||||
|
var indexRouter = require('./routes/index'); |
||||||
|
//var usersRouter = require('./routes/users');
|
||||||
|
|
||||||
|
var app = express(); |
||||||
|
|
||||||
|
// view engine setup
|
||||||
|
app.set('views', path.join(__dirname, 'views')); |
||||||
|
app.set('view engine', 'pug'); |
||||||
|
|
||||||
|
|
||||||
|
/* ws config */ |
||||||
|
expressWs(app); |
||||||
|
app.listen(21514); |
||||||
|
|
||||||
|
app.use(logger('dev')); |
||||||
|
app.use(express.json()); |
||||||
|
app.use(express.urlencoded({ extended: false })); |
||||||
|
app.use(cookieParser()); |
||||||
|
app.use(express.static(path.join(__dirname, 'public'))); |
||||||
|
|
||||||
|
app.use('/', indexRouter); |
||||||
|
//app.use('/users', usersRouter);
|
||||||
|
|
||||||
|
// catch 404 and forward to error handler
|
||||||
|
app.use(function(req, res, next) { |
||||||
|
next(createError(404)); |
||||||
|
}); |
||||||
|
|
||||||
|
// error handler
|
||||||
|
app.use(function(err, req, res, next) { |
||||||
|
// set locals, only providing error in development
|
||||||
|
res.locals.message = err.message; |
||||||
|
res.locals.error = req.app.get('env') === 'development' ? err : {}; |
||||||
|
|
||||||
|
// render the error page
|
||||||
|
res.status(err.status || 500); |
||||||
|
res.render('error'); |
||||||
|
}); |
||||||
|
|
||||||
|
module.exports = app; |
@ -0,0 +1,90 @@ |
|||||||
|
#!/usr/bin/env node |
||||||
|
|
||||||
|
/** |
||||||
|
* Module dependencies. |
||||||
|
*/ |
||||||
|
|
||||||
|
var app = require('../app'); |
||||||
|
var debug = require('debug')('ushio-session:server'); |
||||||
|
var http = require('http'); |
||||||
|
|
||||||
|
/** |
||||||
|
* Get port from environment and store in Express. |
||||||
|
*/ |
||||||
|
|
||||||
|
var port = normalizePort(process.env.PORT || '21513'); |
||||||
|
app.set('port', port); |
||||||
|
|
||||||
|
/** |
||||||
|
* Create HTTP server. |
||||||
|
*/ |
||||||
|
|
||||||
|
var server = http.createServer(app); |
||||||
|
|
||||||
|
/** |
||||||
|
* Listen on provided port, on all network interfaces. |
||||||
|
*/ |
||||||
|
|
||||||
|
server.listen(port); |
||||||
|
server.on('error', onError); |
||||||
|
server.on('listening', onListening); |
||||||
|
|
||||||
|
/** |
||||||
|
* Normalize a port into a number, string, or false. |
||||||
|
*/ |
||||||
|
|
||||||
|
function normalizePort(val) { |
||||||
|
var port = parseInt(val, 10); |
||||||
|
|
||||||
|
if (isNaN(port)) { |
||||||
|
// named pipe |
||||||
|
return val; |
||||||
|
} |
||||||
|
|
||||||
|
if (port >= 0) { |
||||||
|
// port number |
||||||
|
return port; |
||||||
|
} |
||||||
|
|
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Event listener for HTTP server "error" event. |
||||||
|
*/ |
||||||
|
|
||||||
|
function onError(error) { |
||||||
|
if (error.syscall !== 'listen') { |
||||||
|
throw error; |
||||||
|
} |
||||||
|
|
||||||
|
var bind = typeof port === 'string' |
||||||
|
? 'Pipe ' + port |
||||||
|
: 'Port ' + port; |
||||||
|
|
||||||
|
// handle specific listen errors with friendly messages |
||||||
|
switch (error.code) { |
||||||
|
case 'EACCES': |
||||||
|
console.error(bind + ' requires elevated privileges'); |
||||||
|
process.exit(1); |
||||||
|
break; |
||||||
|
case 'EADDRINUSE': |
||||||
|
console.error(bind + ' is already in use'); |
||||||
|
process.exit(1); |
||||||
|
break; |
||||||
|
default: |
||||||
|
throw error; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Event listener for HTTP server "listening" event. |
||||||
|
*/ |
||||||
|
|
||||||
|
function onListening() { |
||||||
|
var addr = server.address(); |
||||||
|
var bind = typeof addr === 'string' |
||||||
|
? 'pipe ' + addr |
||||||
|
: 'port ' + addr.port; |
||||||
|
debug('Listening on ' + bind); |
||||||
|
} |
@ -0,0 +1,907 @@ |
|||||||
|
{ |
||||||
|
"name": "ushio-session", |
||||||
|
"version": "0.0.0", |
||||||
|
"lockfileVersion": 1, |
||||||
|
"requires": true, |
||||||
|
"dependencies": { |
||||||
|
"@types/babel-types": { |
||||||
|
"version": "7.0.7", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", |
||||||
|
"integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" |
||||||
|
}, |
||||||
|
"@types/babylon": { |
||||||
|
"version": "6.16.5", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", |
||||||
|
"integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", |
||||||
|
"requires": { |
||||||
|
"@types/babel-types": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"accepts": { |
||||||
|
"version": "1.3.7", |
||||||
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", |
||||||
|
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", |
||||||
|
"requires": { |
||||||
|
"mime-types": "~2.1.24", |
||||||
|
"negotiator": "0.6.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"acorn": { |
||||||
|
"version": "3.3.0", |
||||||
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", |
||||||
|
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" |
||||||
|
}, |
||||||
|
"acorn-globals": { |
||||||
|
"version": "3.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", |
||||||
|
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", |
||||||
|
"requires": { |
||||||
|
"acorn": "^4.0.4" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"acorn": { |
||||||
|
"version": "4.0.13", |
||||||
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", |
||||||
|
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"align-text": { |
||||||
|
"version": "0.1.4", |
||||||
|
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", |
||||||
|
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", |
||||||
|
"requires": { |
||||||
|
"kind-of": "^3.0.2", |
||||||
|
"longest": "^1.0.1", |
||||||
|
"repeat-string": "^1.5.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"array-flatten": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", |
||||||
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" |
||||||
|
}, |
||||||
|
"asap": { |
||||||
|
"version": "2.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", |
||||||
|
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" |
||||||
|
}, |
||||||
|
"async-limiter": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", |
||||||
|
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" |
||||||
|
}, |
||||||
|
"babel-runtime": { |
||||||
|
"version": "6.26.0", |
||||||
|
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", |
||||||
|
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", |
||||||
|
"requires": { |
||||||
|
"core-js": "^2.4.0", |
||||||
|
"regenerator-runtime": "^0.11.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"babel-types": { |
||||||
|
"version": "6.26.0", |
||||||
|
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", |
||||||
|
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", |
||||||
|
"requires": { |
||||||
|
"babel-runtime": "^6.26.0", |
||||||
|
"esutils": "^2.0.2", |
||||||
|
"lodash": "^4.17.4", |
||||||
|
"to-fast-properties": "^1.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"babylon": { |
||||||
|
"version": "6.18.0", |
||||||
|
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", |
||||||
|
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" |
||||||
|
}, |
||||||
|
"basic-auth": { |
||||||
|
"version": "2.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", |
||||||
|
"integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", |
||||||
|
"requires": { |
||||||
|
"safe-buffer": "5.1.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"body-parser": { |
||||||
|
"version": "1.18.3", |
||||||
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", |
||||||
|
"integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", |
||||||
|
"requires": { |
||||||
|
"bytes": "3.0.0", |
||||||
|
"content-type": "~1.0.4", |
||||||
|
"debug": "2.6.9", |
||||||
|
"depd": "~1.1.2", |
||||||
|
"http-errors": "~1.6.3", |
||||||
|
"iconv-lite": "0.4.23", |
||||||
|
"on-finished": "~2.3.0", |
||||||
|
"qs": "6.5.2", |
||||||
|
"raw-body": "2.3.3", |
||||||
|
"type-is": "~1.6.16" |
||||||
|
} |
||||||
|
}, |
||||||
|
"bytes": { |
||||||
|
"version": "3.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", |
||||||
|
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" |
||||||
|
}, |
||||||
|
"camelcase": { |
||||||
|
"version": "1.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", |
||||||
|
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" |
||||||
|
}, |
||||||
|
"center-align": { |
||||||
|
"version": "0.1.3", |
||||||
|
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", |
||||||
|
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", |
||||||
|
"requires": { |
||||||
|
"align-text": "^0.1.3", |
||||||
|
"lazy-cache": "^1.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"character-parser": { |
||||||
|
"version": "2.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", |
||||||
|
"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", |
||||||
|
"requires": { |
||||||
|
"is-regex": "^1.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"clean-css": { |
||||||
|
"version": "4.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", |
||||||
|
"integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", |
||||||
|
"requires": { |
||||||
|
"source-map": "~0.6.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"cliui": { |
||||||
|
"version": "2.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", |
||||||
|
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", |
||||||
|
"requires": { |
||||||
|
"center-align": "^0.1.1", |
||||||
|
"right-align": "^0.1.1", |
||||||
|
"wordwrap": "0.0.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"constantinople": { |
||||||
|
"version": "3.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", |
||||||
|
"integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", |
||||||
|
"requires": { |
||||||
|
"@types/babel-types": "^7.0.0", |
||||||
|
"@types/babylon": "^6.16.2", |
||||||
|
"babel-types": "^6.26.0", |
||||||
|
"babylon": "^6.18.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"content-disposition": { |
||||||
|
"version": "0.5.2", |
||||||
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", |
||||||
|
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" |
||||||
|
}, |
||||||
|
"content-type": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", |
||||||
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" |
||||||
|
}, |
||||||
|
"cookie": { |
||||||
|
"version": "0.3.1", |
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", |
||||||
|
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" |
||||||
|
}, |
||||||
|
"cookie-parser": { |
||||||
|
"version": "1.4.4", |
||||||
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz", |
||||||
|
"integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==", |
||||||
|
"requires": { |
||||||
|
"cookie": "0.3.1", |
||||||
|
"cookie-signature": "1.0.6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"cookie-signature": { |
||||||
|
"version": "1.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", |
||||||
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" |
||||||
|
}, |
||||||
|
"core-js": { |
||||||
|
"version": "2.6.9", |
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", |
||||||
|
"integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" |
||||||
|
}, |
||||||
|
"debug": { |
||||||
|
"version": "2.6.9", |
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", |
||||||
|
"requires": { |
||||||
|
"ms": "2.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"decamelize": { |
||||||
|
"version": "1.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", |
||||||
|
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" |
||||||
|
}, |
||||||
|
"depd": { |
||||||
|
"version": "1.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", |
||||||
|
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" |
||||||
|
}, |
||||||
|
"destroy": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", |
||||||
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" |
||||||
|
}, |
||||||
|
"doctypes": { |
||||||
|
"version": "1.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", |
||||||
|
"integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" |
||||||
|
}, |
||||||
|
"double-ended-queue": { |
||||||
|
"version": "2.1.0-0", |
||||||
|
"resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", |
||||||
|
"integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" |
||||||
|
}, |
||||||
|
"ee-first": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", |
||||||
|
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" |
||||||
|
}, |
||||||
|
"encodeurl": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", |
||||||
|
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" |
||||||
|
}, |
||||||
|
"escape-html": { |
||||||
|
"version": "1.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", |
||||||
|
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" |
||||||
|
}, |
||||||
|
"esutils": { |
||||||
|
"version": "2.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", |
||||||
|
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" |
||||||
|
}, |
||||||
|
"etag": { |
||||||
|
"version": "1.8.1", |
||||||
|
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", |
||||||
|
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" |
||||||
|
}, |
||||||
|
"express": { |
||||||
|
"version": "4.16.4", |
||||||
|
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", |
||||||
|
"integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", |
||||||
|
"requires": { |
||||||
|
"accepts": "~1.3.5", |
||||||
|
"array-flatten": "1.1.1", |
||||||
|
"body-parser": "1.18.3", |
||||||
|
"content-disposition": "0.5.2", |
||||||
|
"content-type": "~1.0.4", |
||||||
|
"cookie": "0.3.1", |
||||||
|
"cookie-signature": "1.0.6", |
||||||
|
"debug": "2.6.9", |
||||||
|
"depd": "~1.1.2", |
||||||
|
"encodeurl": "~1.0.2", |
||||||
|
"escape-html": "~1.0.3", |
||||||
|
"etag": "~1.8.1", |
||||||
|
"finalhandler": "1.1.1", |
||||||
|
"fresh": "0.5.2", |
||||||
|
"merge-descriptors": "1.0.1", |
||||||
|
"methods": "~1.1.2", |
||||||
|
"on-finished": "~2.3.0", |
||||||
|
"parseurl": "~1.3.2", |
||||||
|
"path-to-regexp": "0.1.7", |
||||||
|
"proxy-addr": "~2.0.4", |
||||||
|
"qs": "6.5.2", |
||||||
|
"range-parser": "~1.2.0", |
||||||
|
"safe-buffer": "5.1.2", |
||||||
|
"send": "0.16.2", |
||||||
|
"serve-static": "1.13.2", |
||||||
|
"setprototypeof": "1.1.0", |
||||||
|
"statuses": "~1.4.0", |
||||||
|
"type-is": "~1.6.16", |
||||||
|
"utils-merge": "1.0.1", |
||||||
|
"vary": "~1.1.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"express-ws": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", |
||||||
|
"integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", |
||||||
|
"requires": { |
||||||
|
"ws": "^5.2.0" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"ws": { |
||||||
|
"version": "5.2.2", |
||||||
|
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", |
||||||
|
"integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", |
||||||
|
"requires": { |
||||||
|
"async-limiter": "~1.0.0" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"finalhandler": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", |
||||||
|
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", |
||||||
|
"requires": { |
||||||
|
"debug": "2.6.9", |
||||||
|
"encodeurl": "~1.0.2", |
||||||
|
"escape-html": "~1.0.3", |
||||||
|
"on-finished": "~2.3.0", |
||||||
|
"parseurl": "~1.3.2", |
||||||
|
"statuses": "~1.4.0", |
||||||
|
"unpipe": "~1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"forwarded": { |
||||||
|
"version": "0.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", |
||||||
|
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" |
||||||
|
}, |
||||||
|
"fresh": { |
||||||
|
"version": "0.5.2", |
||||||
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", |
||||||
|
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" |
||||||
|
}, |
||||||
|
"function-bind": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
||||||
|
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" |
||||||
|
}, |
||||||
|
"has": { |
||||||
|
"version": "1.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
||||||
|
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
||||||
|
"requires": { |
||||||
|
"function-bind": "^1.1.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"http-errors": { |
||||||
|
"version": "1.6.3", |
||||||
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", |
||||||
|
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", |
||||||
|
"requires": { |
||||||
|
"depd": "~1.1.2", |
||||||
|
"inherits": "2.0.3", |
||||||
|
"setprototypeof": "1.1.0", |
||||||
|
"statuses": ">= 1.4.0 < 2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"iconv-lite": { |
||||||
|
"version": "0.4.23", |
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", |
||||||
|
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", |
||||||
|
"requires": { |
||||||
|
"safer-buffer": ">= 2.1.2 < 3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"inherits": { |
||||||
|
"version": "2.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", |
||||||
|
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" |
||||||
|
}, |
||||||
|
"ipaddr.js": { |
||||||
|
"version": "1.9.0", |
||||||
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", |
||||||
|
"integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" |
||||||
|
}, |
||||||
|
"is-buffer": { |
||||||
|
"version": "1.1.6", |
||||||
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", |
||||||
|
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" |
||||||
|
}, |
||||||
|
"is-expression": { |
||||||
|
"version": "3.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", |
||||||
|
"integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", |
||||||
|
"requires": { |
||||||
|
"acorn": "~4.0.2", |
||||||
|
"object-assign": "^4.0.1" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"acorn": { |
||||||
|
"version": "4.0.13", |
||||||
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", |
||||||
|
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"is-promise": { |
||||||
|
"version": "2.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", |
||||||
|
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" |
||||||
|
}, |
||||||
|
"is-regex": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", |
||||||
|
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", |
||||||
|
"requires": { |
||||||
|
"has": "^1.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"js-stringify": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", |
||||||
|
"integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" |
||||||
|
}, |
||||||
|
"jstransformer": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", |
||||||
|
"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", |
||||||
|
"requires": { |
||||||
|
"is-promise": "^2.0.0", |
||||||
|
"promise": "^7.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"kind-of": { |
||||||
|
"version": "3.2.2", |
||||||
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", |
||||||
|
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", |
||||||
|
"requires": { |
||||||
|
"is-buffer": "^1.1.5" |
||||||
|
} |
||||||
|
}, |
||||||
|
"lazy-cache": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", |
||||||
|
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" |
||||||
|
}, |
||||||
|
"lodash": { |
||||||
|
"version": "4.17.11", |
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", |
||||||
|
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" |
||||||
|
}, |
||||||
|
"longest": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", |
||||||
|
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" |
||||||
|
}, |
||||||
|
"media-typer": { |
||||||
|
"version": "0.3.0", |
||||||
|
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", |
||||||
|
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" |
||||||
|
}, |
||||||
|
"merge-descriptors": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", |
||||||
|
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" |
||||||
|
}, |
||||||
|
"methods": { |
||||||
|
"version": "1.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", |
||||||
|
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" |
||||||
|
}, |
||||||
|
"mime": { |
||||||
|
"version": "1.4.1", |
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", |
||||||
|
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" |
||||||
|
}, |
||||||
|
"mime-db": { |
||||||
|
"version": "1.40.0", |
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", |
||||||
|
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" |
||||||
|
}, |
||||||
|
"mime-types": { |
||||||
|
"version": "2.1.24", |
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", |
||||||
|
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", |
||||||
|
"requires": { |
||||||
|
"mime-db": "1.40.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"morgan": { |
||||||
|
"version": "1.9.1", |
||||||
|
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", |
||||||
|
"integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", |
||||||
|
"requires": { |
||||||
|
"basic-auth": "~2.0.0", |
||||||
|
"debug": "2.6.9", |
||||||
|
"depd": "~1.1.2", |
||||||
|
"on-finished": "~2.3.0", |
||||||
|
"on-headers": "~1.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"ms": { |
||||||
|
"version": "2.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" |
||||||
|
}, |
||||||
|
"negotiator": { |
||||||
|
"version": "0.6.2", |
||||||
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", |
||||||
|
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" |
||||||
|
}, |
||||||
|
"object-assign": { |
||||||
|
"version": "4.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", |
||||||
|
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" |
||||||
|
}, |
||||||
|
"on-finished": { |
||||||
|
"version": "2.3.0", |
||||||
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", |
||||||
|
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", |
||||||
|
"requires": { |
||||||
|
"ee-first": "1.1.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"on-headers": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", |
||||||
|
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" |
||||||
|
}, |
||||||
|
"parseurl": { |
||||||
|
"version": "1.3.3", |
||||||
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", |
||||||
|
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" |
||||||
|
}, |
||||||
|
"path-parse": { |
||||||
|
"version": "1.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", |
||||||
|
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" |
||||||
|
}, |
||||||
|
"path-to-regexp": { |
||||||
|
"version": "0.1.7", |
||||||
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", |
||||||
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" |
||||||
|
}, |
||||||
|
"promise": { |
||||||
|
"version": "7.3.1", |
||||||
|
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", |
||||||
|
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", |
||||||
|
"requires": { |
||||||
|
"asap": "~2.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"proxy-addr": { |
||||||
|
"version": "2.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", |
||||||
|
"integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", |
||||||
|
"requires": { |
||||||
|
"forwarded": "~0.1.2", |
||||||
|
"ipaddr.js": "1.9.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug": { |
||||||
|
"version": "2.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", |
||||||
|
"integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", |
||||||
|
"requires": { |
||||||
|
"pug-code-gen": "^2.0.2", |
||||||
|
"pug-filters": "^3.1.1", |
||||||
|
"pug-lexer": "^4.1.0", |
||||||
|
"pug-linker": "^3.0.6", |
||||||
|
"pug-load": "^2.0.12", |
||||||
|
"pug-parser": "^5.0.1", |
||||||
|
"pug-runtime": "^2.0.5", |
||||||
|
"pug-strip-comments": "^1.0.4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-attrs": { |
||||||
|
"version": "2.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", |
||||||
|
"integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", |
||||||
|
"requires": { |
||||||
|
"constantinople": "^3.0.1", |
||||||
|
"js-stringify": "^1.0.1", |
||||||
|
"pug-runtime": "^2.0.5" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-code-gen": { |
||||||
|
"version": "2.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz", |
||||||
|
"integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==", |
||||||
|
"requires": { |
||||||
|
"constantinople": "^3.1.2", |
||||||
|
"doctypes": "^1.1.0", |
||||||
|
"js-stringify": "^1.0.1", |
||||||
|
"pug-attrs": "^2.0.4", |
||||||
|
"pug-error": "^1.3.3", |
||||||
|
"pug-runtime": "^2.0.5", |
||||||
|
"void-elements": "^2.0.1", |
||||||
|
"with": "^5.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-error": { |
||||||
|
"version": "1.3.3", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", |
||||||
|
"integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==" |
||||||
|
}, |
||||||
|
"pug-filters": { |
||||||
|
"version": "3.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", |
||||||
|
"integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", |
||||||
|
"requires": { |
||||||
|
"clean-css": "^4.1.11", |
||||||
|
"constantinople": "^3.0.1", |
||||||
|
"jstransformer": "1.0.0", |
||||||
|
"pug-error": "^1.3.3", |
||||||
|
"pug-walk": "^1.1.8", |
||||||
|
"resolve": "^1.1.6", |
||||||
|
"uglify-js": "^2.6.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-lexer": { |
||||||
|
"version": "4.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", |
||||||
|
"integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", |
||||||
|
"requires": { |
||||||
|
"character-parser": "^2.1.1", |
||||||
|
"is-expression": "^3.0.0", |
||||||
|
"pug-error": "^1.3.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-linker": { |
||||||
|
"version": "3.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", |
||||||
|
"integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", |
||||||
|
"requires": { |
||||||
|
"pug-error": "^1.3.3", |
||||||
|
"pug-walk": "^1.1.8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-load": { |
||||||
|
"version": "2.0.12", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", |
||||||
|
"integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", |
||||||
|
"requires": { |
||||||
|
"object-assign": "^4.1.0", |
||||||
|
"pug-walk": "^1.1.8" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-parser": { |
||||||
|
"version": "5.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", |
||||||
|
"integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", |
||||||
|
"requires": { |
||||||
|
"pug-error": "^1.3.3", |
||||||
|
"token-stream": "0.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-runtime": { |
||||||
|
"version": "2.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", |
||||||
|
"integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==" |
||||||
|
}, |
||||||
|
"pug-strip-comments": { |
||||||
|
"version": "1.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", |
||||||
|
"integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", |
||||||
|
"requires": { |
||||||
|
"pug-error": "^1.3.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"pug-walk": { |
||||||
|
"version": "1.1.8", |
||||||
|
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", |
||||||
|
"integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==" |
||||||
|
}, |
||||||
|
"qs": { |
||||||
|
"version": "6.5.2", |
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", |
||||||
|
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" |
||||||
|
}, |
||||||
|
"range-parser": { |
||||||
|
"version": "1.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", |
||||||
|
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" |
||||||
|
}, |
||||||
|
"raw-body": { |
||||||
|
"version": "2.3.3", |
||||||
|
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", |
||||||
|
"integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", |
||||||
|
"requires": { |
||||||
|
"bytes": "3.0.0", |
||||||
|
"http-errors": "1.6.3", |
||||||
|
"iconv-lite": "0.4.23", |
||||||
|
"unpipe": "1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"redis": { |
||||||
|
"version": "2.8.0", |
||||||
|
"resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", |
||||||
|
"integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", |
||||||
|
"requires": { |
||||||
|
"double-ended-queue": "^2.1.0-0", |
||||||
|
"redis-commands": "^1.2.0", |
||||||
|
"redis-parser": "^2.6.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"redis-commands": { |
||||||
|
"version": "1.5.0", |
||||||
|
"resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz", |
||||||
|
"integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==" |
||||||
|
}, |
||||||
|
"redis-parser": { |
||||||
|
"version": "2.6.0", |
||||||
|
"resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", |
||||||
|
"integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=" |
||||||
|
}, |
||||||
|
"regenerator-runtime": { |
||||||
|
"version": "0.11.1", |
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", |
||||||
|
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" |
||||||
|
}, |
||||||
|
"repeat-string": { |
||||||
|
"version": "1.6.1", |
||||||
|
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", |
||||||
|
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" |
||||||
|
}, |
||||||
|
"resolve": { |
||||||
|
"version": "1.11.1", |
||||||
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", |
||||||
|
"integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", |
||||||
|
"requires": { |
||||||
|
"path-parse": "^1.0.6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"right-align": { |
||||||
|
"version": "0.1.3", |
||||||
|
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", |
||||||
|
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", |
||||||
|
"requires": { |
||||||
|
"align-text": "^0.1.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"safe-buffer": { |
||||||
|
"version": "5.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", |
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
||||||
|
}, |
||||||
|
"safer-buffer": { |
||||||
|
"version": "2.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
||||||
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" |
||||||
|
}, |
||||||
|
"send": { |
||||||
|
"version": "0.16.2", |
||||||
|
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", |
||||||
|
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", |
||||||
|
"requires": { |
||||||
|
"debug": "2.6.9", |
||||||
|
"depd": "~1.1.2", |
||||||
|
"destroy": "~1.0.4", |
||||||
|
"encodeurl": "~1.0.2", |
||||||
|
"escape-html": "~1.0.3", |
||||||
|
"etag": "~1.8.1", |
||||||
|
"fresh": "0.5.2", |
||||||
|
"http-errors": "~1.6.2", |
||||||
|
"mime": "1.4.1", |
||||||
|
"ms": "2.0.0", |
||||||
|
"on-finished": "~2.3.0", |
||||||
|
"range-parser": "~1.2.0", |
||||||
|
"statuses": "~1.4.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"serve-static": { |
||||||
|
"version": "1.13.2", |
||||||
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", |
||||||
|
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", |
||||||
|
"requires": { |
||||||
|
"encodeurl": "~1.0.2", |
||||||
|
"escape-html": "~1.0.3", |
||||||
|
"parseurl": "~1.3.2", |
||||||
|
"send": "0.16.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"setprototypeof": { |
||||||
|
"version": "1.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", |
||||||
|
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" |
||||||
|
}, |
||||||
|
"source-map": { |
||||||
|
"version": "0.6.1", |
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", |
||||||
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" |
||||||
|
}, |
||||||
|
"statuses": { |
||||||
|
"version": "1.4.0", |
||||||
|
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", |
||||||
|
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" |
||||||
|
}, |
||||||
|
"to-fast-properties": { |
||||||
|
"version": "1.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", |
||||||
|
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" |
||||||
|
}, |
||||||
|
"token-stream": { |
||||||
|
"version": "0.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", |
||||||
|
"integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=" |
||||||
|
}, |
||||||
|
"type-is": { |
||||||
|
"version": "1.6.18", |
||||||
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", |
||||||
|
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", |
||||||
|
"requires": { |
||||||
|
"media-typer": "0.3.0", |
||||||
|
"mime-types": "~2.1.24" |
||||||
|
} |
||||||
|
}, |
||||||
|
"uglify-js": { |
||||||
|
"version": "2.8.29", |
||||||
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", |
||||||
|
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", |
||||||
|
"requires": { |
||||||
|
"source-map": "~0.5.1", |
||||||
|
"uglify-to-browserify": "~1.0.0", |
||||||
|
"yargs": "~3.10.0" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"source-map": { |
||||||
|
"version": "0.5.7", |
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", |
||||||
|
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"uglify-to-browserify": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", |
||||||
|
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", |
||||||
|
"optional": true |
||||||
|
}, |
||||||
|
"unpipe": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", |
||||||
|
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" |
||||||
|
}, |
||||||
|
"utils-merge": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", |
||||||
|
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" |
||||||
|
}, |
||||||
|
"vary": { |
||||||
|
"version": "1.1.2", |
||||||
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", |
||||||
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" |
||||||
|
}, |
||||||
|
"void-elements": { |
||||||
|
"version": "2.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", |
||||||
|
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" |
||||||
|
}, |
||||||
|
"window-size": { |
||||||
|
"version": "0.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", |
||||||
|
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" |
||||||
|
}, |
||||||
|
"with": { |
||||||
|
"version": "5.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", |
||||||
|
"integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", |
||||||
|
"requires": { |
||||||
|
"acorn": "^3.1.0", |
||||||
|
"acorn-globals": "^3.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"wordwrap": { |
||||||
|
"version": "0.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", |
||||||
|
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" |
||||||
|
}, |
||||||
|
"ws": { |
||||||
|
"version": "7.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.0.1.tgz", |
||||||
|
"integrity": "sha512-ILHfMbuqLJvnSgYXLgy4kMntroJpe8hT41dOVWM8bxRuw6TK4mgMp9VJUNsZTEc5Bh+Mbs0DJT4M0N+wBG9l9A==", |
||||||
|
"requires": { |
||||||
|
"async-limiter": "^1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"yargs": { |
||||||
|
"version": "3.10.0", |
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", |
||||||
|
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", |
||||||
|
"requires": { |
||||||
|
"camelcase": "^1.0.2", |
||||||
|
"cliui": "^2.1.0", |
||||||
|
"decamelize": "^1.0.0", |
||||||
|
"window-size": "0.1.0" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
{ |
||||||
|
"name": "ushio-session", |
||||||
|
"version": "0.0.0", |
||||||
|
"private": true, |
||||||
|
"scripts": { |
||||||
|
"start": "node ./bin/www" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"cookie-parser": "~1.4.4", |
||||||
|
"debug": "~2.6.9", |
||||||
|
"express": "~4.16.1", |
||||||
|
"express-ws": "^4.0.0", |
||||||
|
"http-errors": "~1.6.3", |
||||||
|
"morgan": "~1.9.1", |
||||||
|
"pug": "^2.0.4", |
||||||
|
"redis": "^2.8.0", |
||||||
|
"ws": "^7.0.1" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
body { |
||||||
|
padding: 50px; |
||||||
|
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: #00B7FF; |
||||||
|
} |
@ -0,0 +1,108 @@ |
|||||||
|
var express = require('express'); |
||||||
|
var expressWs = require('express-ws'); |
||||||
|
var router = express.Router(); |
||||||
|
var redis = require('redis'); |
||||||
|
|
||||||
|
|
||||||
|
/* redis start */ |
||||||
|
var rc = new redis.createClient(); |
||||||
|
|
||||||
|
router.get('/set', function(req, res, next) { |
||||||
|
res.header('Access-Control-Allow-Origin', '*');
|
||||||
|
if(!req.query.key || !req.query.val || !req.query.fp || !req.query.t) {res.send({"code":"500"});;return;} |
||||||
|
|
||||||
|
rc.hset('session/'+req.query.fp, req.query.key, req.query.val); |
||||||
|
rc.hset('session/'+req.query.fp, 'LastOperateTime', req.query.t); |
||||||
|
res.send({code:"200"});
|
||||||
|
}); |
||||||
|
|
||||||
|
router.get('/del', function(req, res, next) { |
||||||
|
res.header('Access-Control-Allow-Origin', '*'); |
||||||
|
if(!req.query.del || !req.query.fp || !req.query.t) {res.send({"code":"500"});;return;} |
||||||
|
|
||||||
|
rc.hdel('session/'+req.query.fp, req.query.del); |
||||||
|
rc.hset('session/'+req.query.fp, 'LastOperateTime', req.query.t); |
||||||
|
res.send({code:"200"});
|
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
router.get('/get', function(req, res, next) { |
||||||
|
res.header('Access-Control-Allow-Origin', '*'); |
||||||
|
if(!req.query.fp) {res.send({"code":"500"});;return;} |
||||||
|
var o = {}; |
||||||
|
rc.hkeys('session/'+req.query.fp, function(err, keys){ |
||||||
|
if(!err){ |
||||||
|
if(!keys.length){ |
||||||
|
res.send(o); |
||||||
|
} |
||||||
|
keys.forEach(function(key, i){ |
||||||
|
rc.hget('session/'+req.query.fp, key, function(err2, val){ |
||||||
|
if(!err2){ |
||||||
|
o[key] = val; |
||||||
|
if(i == keys.length - 1){ |
||||||
|
res.send(o); |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
expressWs(router); |
||||||
|
|
||||||
|
router |
||||||
|
.ws('/', function (ws, req){ |
||||||
|
if(req.query.fp.length == 8){ |
||||||
|
var fp = req.query.fp; |
||||||
|
}else{ |
||||||
|
ws.close(); |
||||||
|
} |
||||||
|
ws.on('message', function (msg) { |
||||||
|
if(msg == 'get'){ |
||||||
|
var o = {}; |
||||||
|
rc.hkeys('session/'+fp, function(err, keys){ |
||||||
|
if(!err){ |
||||||
|
|
||||||
|
keys.forEach(function(key, i){ |
||||||
|
rc.hget('session/'+fp, key, function(err2, val){ |
||||||
|
if(!err2){ |
||||||
|
o[key] = val; |
||||||
|
if(i == keys.length - 1){ |
||||||
|
ws.send(JSON.stringify(o)); |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
}else if(isJson(msg)){ |
||||||
|
obj = JSON.parse(msg); |
||||||
|
if(obj.del && obj.t){ |
||||||
|
rc.hdel('session/'+fp, obj.del); |
||||||
|
rc.hset('session/'+fp, 'LastOperateTime', obj.t); |
||||||
|
} |
||||||
|
if(obj.key && obj.val && obj.t){ |
||||||
|
rc.hset('session/'+fp, obj.key, obj.val); |
||||||
|
rc.hset('session/'+fp, 'LastOperateTime', obj.t); |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
}) |
||||||
|
|
||||||
|
module.exports = router; |
||||||
|
|
||||||
|
|
||||||
|
function isJson(str) { |
||||||
|
try { |
||||||
|
if (typeof JSON.parse(str) == "object") { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} catch(e) { |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
var express = require('express'); |
||||||
|
var router = express.Router(); |
||||||
|
|
||||||
|
/* GET users listing. */ |
||||||
|
router.get('/', function(req, res, next) { |
||||||
|
res.send('respond with a resource'); |
||||||
|
}); |
||||||
|
|
||||||
|
module.exports = router; |
@ -0,0 +1,6 @@ |
|||||||
|
extends layout |
||||||
|
|
||||||
|
block content |
||||||
|
h1= message |
||||||
|
h2= error.status |
||||||
|
pre #{error.stack} |
@ -0,0 +1,5 @@ |
|||||||
|
extends layout |
||||||
|
|
||||||
|
block content |
||||||
|
h1= title |
||||||
|
p Welcome to #{title} |
@ -0,0 +1,7 @@ |
|||||||
|
doctype html |
||||||
|
html |
||||||
|
head |
||||||
|
title= title |
||||||
|
link(rel='stylesheet', href='/stylesheets/style.css') |
||||||
|
body |
||||||
|
block content |
Loading…
Reference in new issue