diff --git a/README.md b/README.md index 2faf6e3..39d98d2 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/account.nintendo.net/debugger.js b/account.nintendo.net/debugger.js new file mode 100644 index 0000000..72115db --- /dev/null +++ b/account.nintendo.net/debugger.js @@ -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; \ No newline at end of file diff --git a/account.nintendo.net/package-lock.json b/account.nintendo.net/package-lock.json index 14ef207..61ee83d 100644 --- a/account.nintendo.net/package-lock.json +++ b/account.nintendo.net/package-lock.json @@ -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", diff --git a/account.nintendo.net/package.json b/account.nintendo.net/package.json index ce6d85d..8453e0f 100644 --- a/account.nintendo.net/package.json +++ b/account.nintendo.net/package.json @@ -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", diff --git a/account.nintendo.net/routes/account/index.js b/account.nintendo.net/routes/account/index.js index c5a8287..7241118 100644 --- a/account.nintendo.net/routes/account/index.js +++ b/account.nintendo.net/routes/account/index.js @@ -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 diff --git a/account.nintendo.net/routes/admin/index.js b/account.nintendo.net/routes/admin/index.js index 20e5af0..2ef318c 100644 --- a/account.nintendo.net/routes/admin/index.js +++ b/account.nintendo.net/routes/admin/index.js @@ -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] diff --git a/account.nintendo.net/routes/content/index.js b/account.nintendo.net/routes/content/index.js index 6549f24..20c5ec6 100644 --- a/account.nintendo.net/routes/content/index.js +++ b/account.nintendo.net/routes/content/index.js @@ -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' diff --git a/account.nintendo.net/routes/devices/index.js b/account.nintendo.net/routes/devices/index.js index 0046c19..b90bbf5 100644 --- a/account.nintendo.net/routes/devices/index.js +++ b/account.nintendo.net/routes/devices/index.js @@ -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] diff --git a/account.nintendo.net/routes/oauth20/index.js b/account.nintendo.net/routes/oauth20/index.js index 532f8a9..e85c3e7 100644 --- a/account.nintendo.net/routes/oauth20/index.js +++ b/account.nintendo.net/routes/oauth20/index.js @@ -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] diff --git a/account.nintendo.net/routes/people/index.js b/account.nintendo.net/routes/people/index.js index 83bc808..d3280ec 100644 --- a/account.nintendo.net/routes/people/index.js +++ b/account.nintendo.net/routes/people/index.js @@ -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] diff --git a/account.nintendo.net/routes/provider/index.js b/account.nintendo.net/routes/provider/index.js index 8a939eb..eb4a402 100644 --- a/account.nintendo.net/routes/provider/index.js +++ b/account.nintendo.net/routes/provider/index.js @@ -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 = { diff --git a/account.nintendo.net/routes/root/index.js b/account.nintendo.net/routes/root/index.js index baaac06..1b5c9ff 100644 --- a/account.nintendo.net/routes/root/index.js +++ b/account.nintendo.net/routes/root/index.js @@ -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 diff --git a/account.nintendo.net/routes/support/index.js b/account.nintendo.net/routes/support/index.js index 9198659..a9e14cc 100644 --- a/account.nintendo.net/routes/support/index.js +++ b/account.nintendo.net/routes/support/index.js @@ -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 = { diff --git a/account.nintendo.net/server.js b/account.nintendo.net/server.js index 8f9f36f..a0ed1cf 100644 --- a/account.nintendo.net/server.js +++ b/account.nintendo.net/server.js @@ -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); });