Added new debug logger and cleaned depends

This commit is contained in:
RedDucks 2018-02-27 03:53:27 -05:00
commit 2000656768
14 changed files with 273 additions and 603 deletions

View file

@ -104,6 +104,7 @@ Quick note, you will need Mocha installed on your WiiU. If you followed the guid
- [GET] https://account.nintendo.net/v1/api/provider/nex_token/@me (partly, still in testing)
- [PUT] https://account.nintendo.net/v1/api/support/email_confirmation/:USERPID/:CONFIRMCODE
- [POST] https://account.nintendo.net/v1/api/support/validate/email
- [GET] https://id.nintendo.net/account/email-confirmation

View file

@ -0,0 +1,59 @@
let ms = require('ms'),
colors = require('colors');
class Debugger {
constructor(title) {
this.title = title;
this.previous_time = new Date();
}
success(input) {
let current_time = new Date(),
time_taken = ms(ms(current_time - this.previous_time)),
suffix = '';
if (time_taken > 0) {
suffix = '-> '.green + (time_taken + 'ms').magenta;
}
let message = (this.title + ':').green.bold + ' ' + input.yellow.bold + ' ' + suffix.bold;
console.log(message);
this.previous_time = current_time;
}
error(input) {
let current_time = new Date(),
time_taken = ms(ms(current_time - this.previous_time)),
suffix = '';
if (time_taken > 0) {
suffix = '-> '.green + (time_taken + 'ms').magenta;
}
let message = (this.title + ':').red.bold + ' ' + input.yellow.bold + ' ' + suffix.bold;
console.log(message);
this.previous_time = current_time;
}
log(input) {
let current_time = new Date(),
time_taken = ms(ms(current_time - this.previous_time)),
suffix = '';
if (time_taken > 0) {
suffix = '-> '.green + (time_taken + 'ms').magenta;
}
let message = (this.title + ':').cyan.bold + ' ' + input.yellow.bold + ' ' + suffix.bold;
console.log(message);
this.previous_time = current_time;
}
}
module.exports = Debugger;

View file

@ -13,52 +13,11 @@
"negotiator": "0.6.1"
}
},
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
"co": "4.6.0",
"fast-deep-equal": "1.0.0",
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1"
}
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"asn1": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
},
"asn1js": {
"version": "1.2.12",
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-1.2.12.tgz",
"integrity": "sha1-h9XueXWWri0qPLAkciDcQv/D8hE="
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
},
"basic-auth": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz",
@ -67,31 +26,11 @@
"safe-buffer": "5.1.1"
}
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
}
},
"bcryptjs": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
"integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
},
"bindings": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
"integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==",
"optional": true
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
"body-parser": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
@ -107,14 +46,23 @@
"qs": "6.5.1",
"raw-body": "2.3.2",
"type-is": "1.6.15"
}
},
"boom": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
"requires": {
"hoek": "4.2.0"
},
"dependencies": {
"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"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
}
}
},
"bson": {
@ -127,70 +75,36 @@
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
},
"buffer-v6-polyfill": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/buffer-v6-polyfill/-/buffer-v6-polyfill-1.0.5.tgz",
"integrity": "sha1-0c2v61YAvvbCjWFElkJWvRLgFnc="
},
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"cassandra-driver": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-3.4.1.tgz",
"integrity": "sha512-Z8OJVH71iZtTN3olfpnQiVhMP+acCDA22lJeIyZ1b2TQL1o3RBVHaTG80SvvddCmOG/fCt8DF+OVm5fnFRn8gg==",
"cli-table": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
"integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
"requires": {
"long": "2.4.0"
"colors": "1.0.3"
},
"dependencies": {
"long": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz",
"integrity": "sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8="
"colors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
"integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
}
}
},
"certpem": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/certpem/-/certpem-1.0.1.tgz",
"integrity": "sha1-+koljEBXllxGVwCCL7jYB9fy2fU=",
"requires": {
"asn1js": "1.2.12",
"buffer-v6-polyfill": "1.0.5",
"node.extend": "1.1.6",
"pkijs": "1.3.33"
}
},
"clone": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
"integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8="
},
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
},
"colors": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
"integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
},
"combined-stream": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
"requires": {
"delayed-stream": "1.0.0"
}
},
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
@ -216,40 +130,6 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cryptiles": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
"requires": {
"boom": "5.2.0"
},
"dependencies": {
"boom": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
"requires": {
"hoek": "4.2.0"
}
}
}
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
"assert-plus": "1.0.0"
}
},
"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"
}
},
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
@ -258,11 +138,6 @@
"clone": "1.0.3"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@ -278,15 +153,6 @@
"resolved": "https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz",
"integrity": "sha1-+Ibmxm39sl7x/nNWQUbuXLR4r8s="
},
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -347,6 +213,23 @@
"type-is": "1.6.15",
"utils-merge": "1.0.1",
"vary": "1.1.2"
},
"dependencies": {
"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"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
}
}
},
"express-rate-limit": {
@ -362,26 +245,6 @@
"resolved": "https://registry.npmjs.org/express-subdomain/-/express-subdomain-1.0.5.tgz",
"integrity": "sha1-mQ75eUC39MKCPZWTZIt5voWKY4s="
},
"extend": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
},
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"finalhandler": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
@ -394,21 +257,23 @@
"parseurl": "1.3.2",
"statuses": "1.3.1",
"unpipe": "1.0.0"
}
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
"integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
"mime-types": "2.1.17"
},
"dependencies": {
"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"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
}
}
},
"forwarded": {
@ -431,87 +296,11 @@
"universalify": "0.1.1"
}
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
"assert-plus": "1.0.0"
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"greenlock": {
"version": "2.1.18",
"resolved": "https://registry.npmjs.org/greenlock/-/greenlock-2.1.18.tgz",
"integrity": "sha512-uHcIP1E3yF5ig7vLvXiyzK6MIPBsLnqQnEDzxcGV8Nwxkvh9jSimZuJ8txNI4kaIqHSkMa8KEFVWKEEht16iOA==",
"requires": {
"asn1js": "1.2.12",
"bluebird": "3.5.1",
"certpem": "1.0.1",
"homedir": "0.6.0",
"le-acme-core": "2.1.1",
"le-challenge-fs": "2.0.8",
"le-challenge-sni": "2.0.1",
"le-sni-auto": "2.1.1",
"le-store-certbot": "2.0.5",
"localhost.daplie.me-certificates": "1.3.5",
"node.extend": "1.1.6",
"pkijs": "1.3.33",
"rsa-compat": "1.2.7"
}
},
"greenlock-express": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/greenlock-express/-/greenlock-express-2.0.12.tgz",
"integrity": "sha512-kAYjge1cLE6ThPmFVIbaQiqlfp6VXUc7OHpOh0LDsHJIL8Ov7B8vI6npqvKejELe/UL37hn+IPXf19f5baemYA==",
"requires": {
"greenlock": "2.1.18",
"le-challenge-fs": "2.0.8",
"le-sni-auto": "2.1.1",
"le-store-certbot": "2.0.5",
"localhost.daplie.me-certificates": "1.3.5",
"redirect-https": "1.1.4"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"requires": {
"ajv": "5.5.2",
"har-schema": "2.0.0"
}
},
"hawk": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
"requires": {
"boom": "4.3.1",
"cryptiles": "3.1.2",
"hoek": "4.2.0",
"sntp": "2.1.0"
}
},
"hoek": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
"integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ=="
},
"homedir": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/homedir/-/homedir-0.6.0.tgz",
"integrity": "sha1-KyHbZr8Ipts4JJo+/1LX0YcGrx4="
},
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
@ -535,16 +324,6 @@
}
}
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
"assert-plus": "1.0.0",
"jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
@ -560,47 +339,11 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
},
"is": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
"integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json2xml": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/json2xml/-/json2xml-0.1.3.tgz",
@ -614,75 +357,6 @@
"graceful-fs": "4.1.11"
}
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
"le-acme-core": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/le-acme-core/-/le-acme-core-2.1.1.tgz",
"integrity": "sha512-dRW9W6R/rLeNsh70nEj7i7Xw+JH/6zG4SrWr8mEGh160Q3djGYJ9NKgnTgkBabb1CbXTcZGhhxx/DIx269JILw==",
"requires": {
"request": "2.83.0",
"rsa-compat": "1.2.7"
}
},
"le-challenge-fs": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/le-challenge-fs/-/le-challenge-fs-2.0.8.tgz",
"integrity": "sha1-ttRYo38JfoffPYtf9nATc3q51aI=",
"requires": {
"mkdirp": "0.5.1"
}
},
"le-challenge-sni": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/le-challenge-sni/-/le-challenge-sni-2.0.1.tgz",
"integrity": "sha1-TiYvG/Us8dGB5kvBh3dremjI9Bc=",
"requires": {
"le-tls-sni": "0.1.4"
}
},
"le-sni-auto": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/le-sni-auto/-/le-sni-auto-2.1.1.tgz",
"integrity": "sha1-rVvrnYzI2EseEoCCxwcvhMQ8qXs=",
"requires": {
"bluebird": "3.5.1"
}
},
"le-store-certbot": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/le-store-certbot/-/le-store-certbot-2.0.5.tgz",
"integrity": "sha1-tT/PwXe98A6oiBLQ3mc6DeD+NJE=",
"requires": {
"bluebird": "3.5.1",
"mkdirp": "0.5.1",
"pyconf": "1.1.2",
"safe-replace": "1.0.2"
}
},
"le-tls-sni": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/le-tls-sni/-/le-tls-sni-0.1.4.tgz",
"integrity": "sha1-eFMJoHsOuyQZD+W6YVucx2hc4Zw=",
"requires": {
"node-forge": "0.6.49",
"rsa-compat": "1.2.7"
}
},
"localhost.daplie.me-certificates": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/localhost.daplie.me-certificates/-/localhost.daplie.me-certificates-1.3.5.tgz",
"integrity": "sha1-GjqH5PlX8mn2LP7mCmNpe9JVOpo="
},
"long": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
@ -721,19 +395,6 @@
"mime-db": "1.30.0"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"moment": {
"version": "2.20.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz",
@ -799,47 +460,40 @@
"depd": "1.1.2",
"on-finished": "2.3.0",
"on-headers": "1.0.1"
},
"dependencies": {
"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"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
}
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"nan": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
"integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
"optional": true
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"node-forge": {
"version": "0.6.49",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.49.tgz",
"integrity": "sha1-8e6V1ddGI5OP4Z1piqWibVTS9g8="
},
"node.extend": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz",
"integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=",
"requires": {
"is": "3.2.1"
}
},
"nodemailer": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.4.2.tgz",
"integrity": "sha512-sstDxbCSPHDXrWRQhH++khr3yVU0CGvH2dCtAHOPQQ0lRR7xwq2txItEXckMpX481B/cN+0akER2bfExh7Gu/Q=="
},
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@ -876,21 +530,11 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pixl-xml": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/pixl-xml/-/pixl-xml-1.0.13.tgz",
"integrity": "sha1-W6cUCL3zeZTCOd0BJRwQxTwFh+M="
},
"pkijs": {
"version": "1.3.33",
"resolved": "https://registry.npmjs.org/pkijs/-/pkijs-1.3.33.tgz",
"integrity": "sha1-ponvYhE7fDSOH/wJll0iOeW7TJI="
},
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
@ -910,19 +554,6 @@
"resolved": "https://registry.npmjs.org/puid/-/puid-1.0.7.tgz",
"integrity": "sha1-+mOKc317IEGQWdk5Za7TbKIOHIQ="
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"pyconf": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pyconf/-/pyconf-1.1.2.tgz",
"integrity": "sha1-YaeqKZ/27le4xoetNVpV0ueoams=",
"requires": {
"safe-replace": "1.0.2"
}
},
"python-struct": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/python-struct/-/python-struct-1.0.6.tgz",
@ -971,43 +602,6 @@
"util-deprecate": "1.0.2"
}
},
"redirect-https": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/redirect-https/-/redirect-https-1.1.4.tgz",
"integrity": "sha1-qqH8cqxRYjpcSegEJQUf6kO87jI=",
"requires": {
"escape-html": "1.0.3"
}
},
"request": {
"version": "2.83.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
"integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
"requires": {
"aws-sign2": "0.7.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.5",
"extend": "3.0.1",
"forever-agent": "0.6.1",
"form-data": "2.3.1",
"har-validator": "5.0.3",
"hawk": "6.0.2",
"http-signature": "1.2.0",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.17",
"oauth-sign": "0.8.2",
"performance-now": "2.1.0",
"qs": "6.5.1",
"safe-buffer": "5.1.1",
"stringstream": "0.0.5",
"tough-cookie": "2.3.3",
"tunnel-agent": "0.6.0",
"uuid": "3.2.1"
}
},
"require_optional": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
@ -1022,26 +616,11 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"rsa-compat": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/rsa-compat/-/rsa-compat-1.2.7.tgz",
"integrity": "sha1-fEY23nmIhanzyQQ26jgE41sWhMg=",
"requires": {
"buffer-v6-polyfill": "1.0.5",
"node-forge": "0.6.49",
"ursa": "0.9.4"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"safe-replace": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/safe-replace/-/safe-replace-1.0.2.tgz",
"integrity": "sha1-sYGrQJWs32qwqPhAUXSRyoqZIro="
},
"semver": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
@ -1065,6 +644,21 @@
"on-finished": "2.3.0",
"range-parser": "1.2.0",
"statuses": "1.3.1"
},
"dependencies": {
"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"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"serve-static": {
@ -1083,29 +677,6 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"sntp": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
"requires": {
"hoek": "4.2.0"
}
},
"sshpk": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
"integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
"requires": {
"asn1": "0.2.3",
"assert-plus": "1.0.0",
"bcrypt-pbkdf": "1.0.1",
"dashdash": "1.14.1",
"ecc-jsbn": "0.1.1",
"getpass": "0.1.7",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
}
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
@ -1119,11 +690,6 @@
"safe-buffer": "5.1.1"
}
},
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
},
"thunky": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
@ -1134,28 +700,6 @@
"resolved": "https://registry.npmjs.org/to-mongodb-core/-/to-mongodb-core-2.0.0.tgz",
"integrity": "sha1-NZbsdhOsmtO5ioncua77pWnNJ+s="
},
"tough-cookie": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
"integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
"requires": {
"punycode": "1.4.1"
}
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
"safe-buffer": "5.1.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"optional": true
},
"type-is": {
"version": "1.6.15",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
@ -1175,16 +719,6 @@
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"ursa": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/ursa/-/ursa-0.9.4.tgz",
"integrity": "sha1-Ciq/t9xCZ/czsPjy/H8siV1ApBM=",
"optional": true,
"requires": {
"bindings": "1.3.0",
"nan": "2.8.0"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@ -1195,26 +729,11 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
"integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
"assert-plus": "1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "1.3.0"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View file

@ -11,19 +11,19 @@
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"cassandra-driver": "^3.4.1",
"cli-table": "^0.3.1",
"colors": "^1.1.2",
"express": "^4.16.2",
"express-rate-limit": "^2.11.0",
"express-subdomain": "^1.0.5",
"fs-extra": "^5.0.0",
"greenlock-express": "^2.0.12",
"json2xml": "^0.1.3",
"moment": "^2.20.1",
"moment-timezone": "^0.5.14",
"mongoist": "^1.5.1",
"mongojs": "^2.4.1",
"morgan": "^1.9.0",
"ms": "^2.1.1",
"nodemailer": "^4.4.2",
"pixl-xml": "^1.0.13",
"puid": "^1.0.7",

View file

@ -1,6 +1,9 @@
let routes = require('express').Router(),
database = require('../../db');
database = require('../../db'),
debug = require('../../debugger'),
route_debugger = new debug('Account Route');
route_debugger.success('Loading \'account\' API routes');
/**
* [GET]
* Replacement for: https://id.nintendo.net/account/email-confirmation

View file

@ -1,7 +1,11 @@
let routes = require('express').Router(),
json2xml = require('json2xml'),
database = require('../../db'),
constants = require('../../constants');
constants = require('../../constants'),
debug = require('../../debugger'),
route_debugger = new debug('Admin Route');
route_debugger.success('Loading \'admin\' API routes');
/**
* [GET]

View file

@ -3,7 +3,11 @@ let routes = require('express').Router(),
helpers = require('../../helpers'),
constants = require('../../constants'),
fs = require('fs-extra'),
json2xml = require('json2xml');
json2xml = require('json2xml'),
debug = require('../../debugger'),
route_debugger = new debug('Content Route');
route_debugger.success('Loading \'content\' API routes');
const VALID_REGIONS = [
'US', 'JP', 'GB', 'DE', 'FR'

View file

@ -3,7 +3,11 @@ let routes = require('express').Router(),
helpers = require('../../helpers'),
constants = require('../../constants'),
fs = require('fs-extra'),
json2xml = require('json2xml');
json2xml = require('json2xml'),
debug = require('../../debugger'),
route_debugger = new debug('Devices Route');
route_debugger.success('Loading \'devices\' API routes');
/**
* [GET]

View file

@ -3,7 +3,11 @@ let routes = require('express').Router(),
bcrypt = require('bcryptjs'),
database = require('../../db'),
helpers = require('../../helpers'),
constants = require('../../constants');
constants = require('../../constants'),
debug = require('../../debugger'),
route_debugger = new debug('oAuth Route'.green);
route_debugger.log('Loading \'oauth20\' API routes');
/**
* [GET]

View file

@ -9,7 +9,11 @@ let routes = require('express').Router(),
moment = require('moment'),
moment_timezone = require('moment-timezone'),
puid = require('puid'),
fs = require('fs-extra');
fs = require('fs-extra'),
debug = require('../../debugger'),
route_debugger = new debug('People Route'.green);
route_debugger.log('Loading \'people\' API routes');
/**
* [POST]

View file

@ -10,7 +10,11 @@ let routes = require('express').Router(),
moment = require('moment'),
moment_timezone = require('moment-timezone'),
puid = require('puid'),
fs = require('fs-extra');
fs = require('fs-extra'),
debug = require('../../debugger'),
route_debugger = new debug('Provider Route'.green);
route_debugger.log('Loading \'provider\' API routes');
//The game ips and ports are stored here. When the game tries to access its specific server, it will be given the respecive ip and port.
let gamePort = {

View file

@ -1,4 +1,8 @@
let routes = require('express').Router()
let routes = require('express').Router(),
debug = require('../../debugger'),
route_debugger = new debug('Root/Misc Route'.green);
route_debugger.log('Loading \'root/misc\' API routes');
/**
* [POST]
@ -6,7 +10,7 @@ let routes = require('express').Router()
* Description: tests the validity of this server by returning a predefined message
*/
routes.get('/isthisworking', async (req, res) => {
return res.send("it works!")
})
return res.send("it works!")
});
module.exports = routes

View file

@ -3,7 +3,11 @@ let routes = require('express').Router(),
constants = require('../../constants'),
database = require('../../db'),
dns = require('dns'),
json2xml = require('json2xml');
json2xml = require('json2xml'),
debug = require('../../debugger'),
route_debugger = new debug('Support Route'.green);
route_debugger.log('Loading \'support\' API routes');
/**
* [POST]
@ -70,8 +74,6 @@ routes.post('/validate/email', async (request, response) => {
let domain = email.split('@')[1];
console.log(email, domain);
dns.resolveMx(domain, (error, addr) => {
if (error) {
let error = {

View file

@ -5,9 +5,11 @@
//////////////////////////////////////////////////////////////////
let port = 8080,
debug = require('./debugger'),
path = require('path'),
express = require('express'),
subdomain = require('express-subdomain'),
table = require('cli-table'),
XMLMiddleware = require('./xml-middleware'),
colors = require('colors'),
morgan = require('morgan'),
@ -15,21 +17,26 @@ let port = 8080,
testing_env = true,
router = express.Router();
let server_debugger = new debug('Server');
server_debugger.log('Importing routes');
// API routes
const ROUTES = {
ACCOUNT: require('./routes/account'),
ADMIN: require('./routes/admin'),
CONTENT: require('./routes/content'),
DEVICES: require('./routes/devices'),
PEOPLE: require('./routes/people'),
SUPPORT: require('./routes/support'),
OAUTH20: require('./routes/oauth20'),
PEOPLE: require('./routes/people'),
PROVIDER: require('./routes/provider'),
ADMIN: require('./routes/admin'),
SUPPORT: require('./routes/support'),
ROOT: require('./routes/root')
}
// START APPLICATION
app.set('etag', false);
server_debugger.log('Setting up Middleware');
// Create router
app.use(morgan('dev'));
router.use(express.json());
@ -38,6 +45,7 @@ router.use(express.urlencoded({
extended: true
}));
server_debugger.log('Creating \'account\' subdomain');
// Create subdomain
if (testing_env === false) {
app.use(subdomain('account', router));
@ -45,23 +53,56 @@ if (testing_env === false) {
app.use(router)
}
server_debugger.log('Applying imported routes');
// Setup routes
router.use('/v1/api/content', ROUTES.CONTENT); // content API routes
router.use('/v1/api/devices', ROUTES.DEVICES); // device API routes
router.use('/v1/api/people', ROUTES.PEOPLE); // people API routes
router.use('/v1/api/support', ROUTES.SUPPORT); // support API routes
router.use('/v1/api/oauth20', ROUTES.OAUTH20); // OAuth API routes
router.use('/v1/api/provider', ROUTES.PROVIDER); // OAuth API routes
router.use('/v1/api/admin', ROUTES.ADMIN); // admin API routes (not sure what these do in general)
router.use('/v1/api', ROUTES.ROOT); // root routes
router.use('/account', ROUTES.ACCOUNT); // Account API routes (only used for email confirmation)
router.use('/v1/api/admin', ROUTES.ADMIN); // Admin API routes
router.use('/v1/api/content', ROUTES.CONTENT); // Content API routes
router.use('/v1/api/devices', ROUTES.DEVICES); // Device API routes
router.use('/v1/api/oauth20', ROUTES.OAUTH20); // oAuth API routes
router.use('/v1/api/people', ROUTES.PEOPLE); // People API routes
router.use('/v1/api/provider', ROUTES.PROVIDER); // Provider API routes
router.use('/v1/api/support', ROUTES.SUPPORT); // Support API routes
router.use('/v1/api', ROUTES.ROOT); // Root/Misc routes
function getRoutes(_router) {
let routes, ret = [];
_router.forEach(layer => {
if (layer.name == 'router') {
routes = layer;
}
});
let stack = routes.handle.stack;
stack.forEach(layer => {
if (layer.handle.stack) {
let base = layer.regexp.toString()
.replace('\\/?', '')
.replace('(?=\\/|$)', '$')
.match(/^\/\^((?:\\[.*+?^${}()|[\]\\\/]|[^.*+?^${}()|[\]\\\/])*)\$\//)[1]
.replace(/\\(.)/g, '$1');
layer.handle.stack.forEach(mini_layer => {
ret.push({
method: Object.keys(mini_layer.route.methods)[0].toUpperCase().replace('_', ''),
path: base + mini_layer.route.path
})
})
}
});
return ret;
}
server_debugger.log('Creating 404 status handler');
// 404 handler
router.use((request, response) => {
response.status(404);
response.send();
});
server_debugger.log('Creating non-404 status handler');
// non-404 error handler
router.use((error, request, response) => {
let status = error.status || 500;
@ -73,7 +114,24 @@ router.use((error, request, response) => {
});
});
server_debugger.log('Starting server');
// Starts the server
app.listen(port, () => {
console.log('Server'.blue + ' started '.green.bold + 'on port '.blue + new String(port).yellow);
let route_table = new table({
head: ["Method", "Path"]
}),
routes = getRoutes(app._router.stack);
routes.forEach(route => {
let obj = {};
obj[route.method] = route.path;
route_table.push(obj)
});
console.log(route_table.toString());
server_debugger.log('Started '.green + 'on port '.blue + new String(port).yellow);
});