diff --git a/common/models/user.js b/common/models/user.js index a34348f0ef5..b7daadd6042 100644 --- a/common/models/user.js +++ b/common/models/user.js @@ -786,7 +786,6 @@ module.exports = function(User) { User.remoteMethod( 'updateTheme', { - isStatic: false, description: 'updates the users chosen theme', accepts: [ { diff --git a/common/models/user.json b/common/models/user.json index c8152d7f964..737b2055e04 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -58,6 +58,15 @@ "joinedGithubOn": { "type": "date" }, + "website": { + "type": "string" + }, + "githubProfile": { + "type": "string" + }, + "_csrf": { + "type": "string" + }, "isMigrationGrandfathered": { "type": "boolean", "default": false diff --git a/package-lock.json b/package-lock.json index 8a8563abf15..e04c4464867 100644 --- a/package-lock.json +++ b/package-lock.json @@ -521,15 +521,6 @@ "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", "dev": true }, - "async-listener": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.8.tgz", - "integrity": "sha512-1Sy1jDhjlgxcSd9/ICHqiAHT8VSJ9R1lzEyWwP/4Hm9p8nVTNtU0SxG/Z15XHD/aZvQraSw9BpDU3EBcFnOVrw==", - "requires": { - "semver": "5.4.1", - "shimmer": "1.1.0" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3118,15 +3109,6 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "continuation-local-storage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.0.tgz", - "integrity": "sha1-4Z/Da1lwkKXU5KOy6j68XilpSiQ=", - "requires": { - "async-listener": "0.6.8", - "emitter-listener": "1.0.1" - } - }, "conventional-commit-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", @@ -3942,21 +3924,6 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" }, - "emitter-listener": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz", - "integrity": "sha1-skmepuWCMKUsJo1d8mHuzZ8Q/pc=", - "requires": { - "shimmer": "1.0.0" - }, - "dependencies": { - "shimmer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz", - "integrity": "sha1-ScLXHGeDYLgCvhiyeDgtHLuAXDk=" - } - } - }, "emitter-steward": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz", @@ -8382,9 +8349,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" }, "isexe": { "version": "2.0.0", @@ -9649,33 +9616,93 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loopback": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/loopback/-/loopback-2.39.0.tgz", - "integrity": "sha512-vTZJsN92zUbGj03MBrQYgtR8RCk8z+23OAplXAsv21FBnxdoW2Yrxvv7tyeno9uyl7252PZpvQokGaHtiWaW/Q==", + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/loopback/-/loopback-3.16.2.tgz", + "integrity": "sha512-07mqcSZ2f9jRmA7wXen+2TQIn8MUKkTI0l78rvIBqVlmsUyFAaLCcVzISwzG1xi435jET802YOWYIACLlTT3NQ==", "requires": { "async": "2.1.5", "bcryptjs": "2.4.3", + "bluebird": "3.5.1", "body-parser": "1.18.2", "canonical-json": "0.0.4", - "cookie-parser": "1.4.3", "debug": "2.6.9", "depd": "1.1.1", "ejs": "2.5.7", - "errorhandler": "1.5.0", "express": "4.16.2", "inflection": "1.12.0", - "isemail": "1.2.0", - "loopback-connector-remote": "1.3.3", - "loopback-context": "1.0.0", - "loopback-phase": "1.4.1", + "isemail": "2.2.1", + "loopback-connector-remote": "3.1.1", + "loopback-datasource-juggler": "3.13.0", + "loopback-phase": "3.1.0", "nodemailer": "2.7.2", "nodemailer-stub-transport": "1.1.0", "serve-favicon": "2.4.5", "stable": "0.1.6", - "strong-globalize": "2.10.0", - "strong-remoting": "2.34.0", + "strong-globalize": "3.1.0", + "strong-remoting": "3.6.0", "uid2": "0.0.3", "underscore.string": "3.3.4" + }, + "dependencies": { + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + } } }, "loopback-boot": { @@ -9733,9 +9760,9 @@ } }, "loopback-component-passport": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loopback-component-passport/-/loopback-component-passport-2.3.0.tgz", - "integrity": "sha1-N9weQlVPS2QCZOjKH3CPJcPuq2Q=", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/loopback-component-passport/-/loopback-component-passport-3.4.1.tgz", + "integrity": "sha1-LHyB6iPHLkN56BFLmS16v5Af2IU=", "requires": { "passport": "0.3.2", "strong-globalize": "2.10.0", @@ -9759,34 +9786,89 @@ } }, "loopback-connector": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/loopback-connector/-/loopback-connector-2.7.1.tgz", - "integrity": "sha1-YK/CROMZGZdjkamXg4aFeB+ijlI=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/loopback-connector/-/loopback-connector-4.4.0.tgz", + "integrity": "sha1-FRNlMolredjcKAvifWV/rQAMEgk=", "requires": { - "async": "1.5.2", + "async": "2.1.5", "bluebird": "3.5.1", - "debug": "2.6.9", + "debug": "3.1.0", "msgpack5": "3.6.0", - "strong-globalize": "2.10.0" + "strong-globalize": "3.1.0", + "uuid": "3.1.0" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + } + } } } }, "loopback-connector-mongodb": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/loopback-connector-mongodb/-/loopback-connector-mongodb-1.17.0.tgz", - "integrity": "sha1-12coqjFWJCpmxl69lyftz8ikc0k=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/loopback-connector-mongodb/-/loopback-connector-mongodb-3.3.0.tgz", + "integrity": "sha1-WsS9GfgDFtyN8N8tg3NxSU/Ks8g=", "requires": { "async": "1.5.2", "debug": "2.6.9", - "loopback-connector": "2.7.1", - "mongodb": "2.1.21", - "strong-globalize": "2.10.0" + "loopback-connector": "4.4.0", + "mongodb": "2.2.33", + "strong-globalize": "3.1.0" }, "dependencies": { "async": { @@ -9794,114 +9876,235 @@ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, - "bson": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/bson/-/bson-0.4.23.tgz", - "integrity": "sha1-5louPHUH/63kEJvHV1p25Q+NqRU=" + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" }, - "es6-promise": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "mongodb": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.1.21.tgz", - "integrity": "sha1-dkcJ28zrWCW06zH5U5X5Zf1EInI=", + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "requires": { - "es6-promise": "3.0.2", - "mongodb-core": "1.3.21", - "readable-stream": "1.0.31" - } - }, - "mongodb-core": { - "version": "1.3.21", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.21.tgz", - "integrity": "sha1-/hKee+4rOybBQJ3gKrYNA/YpHMo=", - "requires": { - "bson": "0.4.23", - "require_optional": "1.0.1" - } - }, - "readable-stream": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", - "integrity": "sha1-jyUC4LyeOw2huUUgqrtOJgPsr64=", - "requires": { - "core-util-is": "1.0.2", + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "readable-stream": "2.2.7" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } } } }, "loopback-connector-remote": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/loopback-connector-remote/-/loopback-connector-remote-1.3.3.tgz", - "integrity": "sha1-ePpyTk4ptNeqXcpVybNKC819Y+A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/loopback-connector-remote/-/loopback-connector-remote-3.1.1.tgz", + "integrity": "sha1-wQM29Se/h8PZs/Y8GWDLHAMhOhM=", "requires": { - "loopback-datasource-juggler": "2.55.3", - "strong-remoting": "2.34.0" - } - }, - "loopback-context": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/loopback-context/-/loopback-context-1.0.0.tgz", - "integrity": "sha1-MMmyMVzqsD7JAac5QudhTNk+lUg=", - "requires": { - "continuation-local-storage": "3.2.0" + "loopback-datasource-juggler": "3.13.0", + "strong-remoting": "3.6.0" } }, "loopback-datasource-juggler": { - "version": "2.55.3", - "resolved": "https://registry.npmjs.org/loopback-datasource-juggler/-/loopback-datasource-juggler-2.55.3.tgz", - "integrity": "sha1-RqPNj5O6VaCoz89xa91DpbSre3w=", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/loopback-datasource-juggler/-/loopback-datasource-juggler-3.13.0.tgz", + "integrity": "sha1-dJMsruVxM3q+jz1t+XTUF7MaAqc=", "requires": { - "async": "1.0.0", - "debug": "2.6.9", + "async": "2.1.5", + "bluebird": "3.5.1", + "debug": "3.1.0", "depd": "1.1.1", "inflection": "1.12.0", - "loopback-connector": "2.7.1", + "lodash": "4.17.4", + "loopback-connector": "4.4.0", "minimatch": "3.0.4", "qs": "6.5.1", "shortid": "2.2.8", - "strong-globalize": "2.10.0", + "strong-globalize": "3.1.0", "traverse": "0.6.6", "uuid": "3.1.0" }, "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + } + } } } }, + "loopback-datatype-geopoint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loopback-datatype-geopoint/-/loopback-datatype-geopoint-1.0.0.tgz", + "integrity": "sha1-/apcerjXMKmrflRVS+Fl8xzfYQA=" + }, "loopback-phase": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/loopback-phase/-/loopback-phase-1.4.1.tgz", - "integrity": "sha1-125asObsecxTcNPFMPY0hxAgvO4=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/loopback-phase/-/loopback-phase-3.1.0.tgz", + "integrity": "sha512-0FFccBdB28h5/G9r1bjeuDqE5xD/Wv42uo8dWKMz4yd300+Jc5dfso/dmJzdSyLMxI8RLtx15mkFT9JVAXRduw==", "requires": { "async": "0.9.2", "debug": "2.6.9", - "strong-globalize": "2.10.0" + "strong-globalize": "3.1.0" }, "dependencies": { "async": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } } } }, @@ -11438,8 +11641,7 @@ "options": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, "orchestrator": { "version": "0.3.8", @@ -13429,11 +13631,6 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, - "shimmer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.1.0.tgz", - "integrity": "sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU=" - }, "shortid": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.8.tgz", @@ -14093,13 +14290,6 @@ "integrity": "sha1-MZJGHfo4x4Qk3Zv46gJWGaElqhA=", "requires": { "options": "0.0.6" - }, - "dependencies": { - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" - } } }, "sshpk": { @@ -14300,6 +14490,93 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=" }, + "strong-error-handler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/strong-error-handler/-/strong-error-handler-2.3.0.tgz", + "integrity": "sha512-aBeGbfOBm2LyAtno8yXJSRNDW3vZxjIHNI6y120WirkDIPV5Ytcx9Y1IG22qo3tXi6Zo2s1OJssUM9ji8PzwXA==", + "requires": { + "accepts": "1.3.4", + "debug": "2.6.9", + "ejs": "2.5.7", + "http-status": "1.0.1", + "js2xmlparser": "3.0.0", + "strong-globalize": "3.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "http-status": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/http-status/-/http-status-1.0.1.tgz", + "integrity": "sha1-3EMAGov8UKyH1IWokvdXiWS8lKI=" + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "requires": { + "xmlcreate": "1.0.2" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + } + } + }, "strong-globalize": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-2.10.0.tgz", @@ -14357,28 +14634,91 @@ } }, "strong-remoting": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/strong-remoting/-/strong-remoting-2.34.0.tgz", - "integrity": "sha512-Llm7SbEcYAe4HwPShjnN4wVRlK1afOHWqs1afQYyILfBpPFUh9OXFGH9msdAR8VyulvxlZznTisyrV2GJSCSIQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/strong-remoting/-/strong-remoting-3.6.0.tgz", + "integrity": "sha1-XVxD/Fffmy8axt2KF+C9iiNfjD0=", "requires": { "async": "2.1.5", "body-parser": "1.18.2", - "cors": "2.8.4", "debug": "2.6.9", "depd": "1.1.1", + "escape-string-regexp": "1.0.5", "eventemitter2": "2.2.2", "express": "4.16.2", "inflection": "1.12.0", "jayson": "1.2.2", "js2xmlparser": "1.0.0", - "loopback-phase": "1.4.1", + "loopback-datatype-geopoint": "1.0.0", + "loopback-phase": "3.1.0", "mux-demux": "3.7.9", "qs": "6.5.1", "request": "2.83.0", "sse": "0.0.6", - "strong-globalize": "2.10.0", + "strong-error-handler": "2.3.0", + "strong-globalize": "3.1.0", "traverse": "0.6.6", "xml2js": "0.4.19" + }, + "dependencies": { + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.2.7" + } + }, + "strong-globalize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.1.0.tgz", + "integrity": "sha512-n81I4Zc+V9gSju7SW7QoZkMoBH4j806nrJdigBDF8juzbGGDI+TNaiw9moHNHyHwBV9E9zy1bGGmBWm80II6ww==", + "requires": { + "async": "2.6.0", + "debug": "3.1.0", + "esprima": "4.0.0", + "estraverse": "4.2.0", + "g11n-pipeline": "2.0.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "md5": "2.2.1", + "mkdirp": "0.5.1", + "mktmpdir": "0.1.1", + "optional": "0.1.4", + "os-locale": "2.1.0", + "posix-getopt": "1.2.0", + "word-count": "0.2.2", + "xtend": "4.0.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + } } }, "strong-swagger-ui": { @@ -15916,6 +16256,11 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz", "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=" }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=" + }, "xmldom": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", diff --git a/package.json b/package.json index 62e3ee8e694..ca3c68adc5d 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "compression": "^1.6.0", "connect-mongo": "^1.3.2", "cookie-parser": "^1.4.0", + "cors": "^2.8.4", "csurf": "^1.8.3", "d3": "~3.5.17", "debug": "^2.2.0", @@ -74,10 +75,10 @@ "jsonlint-cli": "^1.0.1", "lightbox2": "~2.8.2", "lodash": "^4.1.0", - "loopback": "^2.22.0", - "loopback-boot": "^2.13.0", - "loopback-component-passport": "^2.0.0", - "loopback-connector-mongodb": "1.17.0", + "loopback": "^3.11.1", + "loopback-boot": "^2.26.1", + "loopback-component-passport": "^3.4.1", + "loopback-connector-mongodb": "^3.2.1", "method-override": "^2.3.0", "moment": "^2.10.2", "moment-timezone": "^0.5.0", diff --git a/server/config.json b/server/config.json index 02cb729409c..cb159c8f0b0 100644 --- a/server/config.json +++ b/server/config.json @@ -4,13 +4,11 @@ "port": 3000, "legacyExplorer": false, "remoting": { - "context": { - "enableHttpContext": false - }, "rest": { "handleErrors": false, "normalizeHttpPath": false, - "xml": false + "xml": false, + "handleErrors": false }, "json": { "strict": false, @@ -20,9 +18,6 @@ "extended": true, "limit": "100kb" }, - "cors": { - "origin": true, - "credentials": true - } + "cors": false } } diff --git a/server/middleware.json b/server/middleware.json index 18f7aaa5cc3..dfcabd66c6a 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -16,6 +16,13 @@ "compression": {}, "morgan": { "params": ":status :method :response-time ms - :url" + }, + "cors": { + "params": { + "origin": true, + "credentials": true, + "maxAge": 86400 + } } }, "session": { @@ -54,6 +61,12 @@ "files": {}, "final:after": { "./middlewares/error-reporter": {}, - "./middlewares/error-handlers": {} + "./middlewares/error-handlers": {}, + "strong-error-handler": { + "params": { + "debug": false, + "log": true + } + } } }