From 0131ba3e452a263dab1a1f9b56010e3e22b5cc7f Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 30 Oct 2015 14:16:35 +0100 Subject: [PATCH] reert all the deps upgrades --- .travis.yml | 12 ++- package.json | 15 +--- website/src/controllers/unsubscription.js | 2 +- website/src/i18n.js | 21 ++--- website/src/server.js | 100 +++++++++------------- website/src/utils.js | 2 +- 6 files changed, 61 insertions(+), 91 deletions(-) diff --git a/.travis.yml b/.travis.yml index 915e677edf..bdbbc2c781 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,15 @@ language: node_js node_js: - - '4.1' + - '0.10' before_install: - - "npm install -g npm@3" - "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10" - - "sudo wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz -O /tmp/mongodb.tgz" - - "sudo tar -xvf /tmp/mongodb.tgz" - - "sudo mkdir /tmp/data" - - "sudo ${PWD}/mongodb-linux-x86_64-3.0.4/bin/mongod --dbpath /tmp/data --bind_ip 127.0.0.1 &> /dev/null &" + - "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list" + - "sudo apt-get update" + - "sudo apt-get install mongodb-org-server" before_script: - 'npm install -g grunt-cli mocha' - cp config.json.example config.json - "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done" - "export DISPLAY=:99" after_script: - - "./node_modules/.bin/lcov-result-merger 'coverage/**/*.info' | ./node_modules/coveralls/bin/coveralls.js" + - "./node_modules/.bin/lcov-result-merger 'coverage/**/*.info' | ./node_modules/coveralls/bin/coveralls.js" \ No newline at end of file diff --git a/package.json b/package.json index 51ffe2dc64..201947a660 100644 --- a/package.json +++ b/package.json @@ -4,25 +4,20 @@ "version": "0.0.0-152", "main": "./website/src/server.js", "dependencies": { - "accepts": "^1.2.12", "amazon-payments": "0.0.4", "amplitude": "^2.0.1", "async": "~0.9.0", "aws-sdk": "^2.0.25", "babel": "^5.5.4", "gulp-babel": "^5.2.1", - "body-parser": "^1.13.3", "bower": "~1.3.12", "browserify": "~3.30.2", "coffee-script": "1.6.x", "coffeeify": "0.6.0", - "compression": "^1.5.2", "connect-ratelimit": "0.0.7", - "cookie-parser": "^1.3.5", - "cookie-session": "^1.2.0", "coupon-code": "~0.3.0", "domain-middleware": "~0.1.0", - "express": "~4.13.3", + "express": "~3.17.5" "express-csv": "~0.6.0", "firebase": "^2.2.9", "firebase-token-generator": "^2.0.0", @@ -58,9 +53,8 @@ "merge-stream": "^1.0.0", "method-override": "~2.2.0", "moment": "~2.8.3", - "mongoose": "~4.2.3", + "mongoose": "~3.8.23", "mongoose-id-autoinc": "~2013.7.14-4", - "morgan": "^1.6.1", "nconf": "~0.6.9", "newrelic": "~1.23.0", "nib": "~1.0.1", @@ -77,7 +71,6 @@ "qs": "^2.3.2", "request": "~2.44.0", "s3-upload-stream": "^1.0.6", - "serve-favicon": "^2.3.0", "stripe": "*", "superagent": "~1.4.0", "swagger-node-express": "lefnire/swagger-node-express#habitrpg", @@ -89,8 +82,7 @@ }, "private": true, "engines": { - "node": "^4.1.1", - "npm": "^3.3.8" + "node": "0.10.x" }, "scripts": { "test": "gulp test", @@ -128,7 +120,6 @@ "mongodb": "^2.0.46", "mongoskin": "~0.6.1", "protractor": "~2.0.0", - "requirejs": "^2.1.20", "rewire": "^2.3.3", "shelljs": "^0.4.0", "sinon": "^1.17.2", diff --git a/website/src/controllers/unsubscription.js b/website/src/controllers/unsubscription.js index f839b11551..8c0edffd5f 100644 --- a/website/src/controllers/unsubscription.js +++ b/website/src/controllers/unsubscription.js @@ -15,7 +15,7 @@ api.unsubscribe = function(req, res, next){ $set: {'preferences.emailNotifications.unsubscribeFromAll': true} }, {multi: false}, function(err, updateRes){ if(err) return next(err); - if(updateRes.n !== 1) return res.json(404, {err: 'User not found'}); + if(updateRes !== 1) return res.json(404, {err: 'User not found'}); res.send('

' + i18n.t('unsubscribedSuccessfully', null, req.language) + '

' + i18n.t('unsubscribedTextUsers', null, req.language)); }); diff --git a/website/src/i18n.js b/website/src/i18n.js index 19444f89f0..463565ac3e 100644 --- a/website/src/i18n.js +++ b/website/src/i18n.js @@ -1,10 +1,9 @@ -var fs = require('fs'); -var path = require('path'); -var _ = require('lodash'); -var accepts = require('accepts'); -var User = require('./models/user').model; -var shared = require('../../common'); -var translations = {}; +var fs = require('fs'), + path = require('path'), + _ = require('lodash'), + User = require('./models/user').model, + shared = require('../../common'), + translations = {}; var localePath = path.join(__dirname, "/../../common/locales/") @@ -75,9 +74,7 @@ var chineseVersions = ['zh-tw']; var getUserLanguage = function(req, res, next){ var getFromBrowser = function(){ - var acceptedLanguages = accepts(req).languages(); - - var acceptable = _(acceptedLanguages).map(function(lang){ + var acceptable = _(req.acceptedLanguages).map(function(lang){ return lang.slice(0, 2); }).uniq().value(); @@ -86,7 +83,7 @@ var getUserLanguage = function(req, res, next){ var iAcceptedCompleteLang = (matches.length > 0) ? multipleVersionsLanguages.indexOf(matches[0].toLowerCase()) : -1; if(iAcceptedCompleteLang !== -1){ - var acceptedCompleteLang = _.find(acceptedLanguages, function(accepted){ + var acceptedCompleteLang = _.find(req.acceptedLanguages, function(accepted){ return accepted.slice(0, 2) == multipleVersionsLanguages[iAcceptedCompleteLang]; }); @@ -158,4 +155,4 @@ module.exports.enTranslations = function(){ // stringName and vars are the allow var args = Array.prototype.slice.call(arguments, 0); args.push(language.code); return shared.i18n.t.apply(null, args); -}; +}; \ No newline at end of file diff --git a/website/src/server.js b/website/src/server.js index 92f5df84e1..23ce277eba 100644 --- a/website/src/server.js +++ b/website/src/server.js @@ -1,5 +1,5 @@ // Only do the minimal amount of work before forking just in case of a dyno restart -var cluster = require('cluster'); +var cluster = require("cluster"); var _ = require('lodash'); var nconf = require('nconf'); var utils = require('./utils'); @@ -8,13 +8,11 @@ var logging = require('./logging'); var isProd = nconf.get('NODE_ENV') === 'production'; var isDev = nconf.get('NODE_ENV') === 'development'; var DISABLE_LOGGING = nconf.get('DISABLE_REQUEST_LOGGING'); -var cores = +nconf.get('WEB_CONCURRENCY') || 0; +var cores = +nconf.get("WEB_CONCURRENCY") || 0; if (cores!==0 && cluster.isMaster && (isDev || isProd)) { // Fork workers. If config.json has CORES=x, use that - otherwise, use all cpus-1 (production) - for (var i = 0, n = cores; i < n; i += 1) { - cluster.fork(); - } + _.times(cores, cluster.fork); cluster.on('disconnect', function(worker, code, signal) { var w = cluster.fork(); // replace the dead worker @@ -23,10 +21,10 @@ if (cores!==0 && cluster.isMaster && (isDev || isProd)) { } else { require('coffee-script'); // remove this once we've fully converted over - var express = require('express'); - var http = require('http'); - var path = require('path'); - var swagger = require('swagger-node-express'); + var express = require("express"); + var http = require("http"); + var path = require("path"); + var swagger = require("swagger-node-express"); var autoinc = require('mongoose-id-autoinc'); var shared = require('../../common'); @@ -79,8 +77,8 @@ if (cores!==0 && cluster.isMaster && (isDev || isProd)) { // This auth strategy is no longer used. It's just kept around for auth.js#loginFacebook() (passport._strategies.facebook.userProfile) // The proper fix would be to move to a general OAuth module simply to verify accessTokens passport.use(new FacebookStrategy({ - clientID: nconf.get('FACEBOOK_KEY'), - clientSecret: nconf.get('FACEBOOK_SECRET'), + clientID: nconf.get("FACEBOOK_KEY"), + clientSecret: nconf.get("FACEBOOK_SECRET"), //callbackURL: nconf.get("BASE_URL") + "/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { @@ -89,76 +87,62 @@ if (cores!==0 && cluster.isMaster && (isDev || isProd)) { )); // ------------ Server Configuration ------------ - var publicDir = path.join(__dirname, '/../public'); + var publicDir = path.join(__dirname, "/../public"); - app.set('port', nconf.get('PORT')); + app.set("port", nconf.get('PORT')); require('./middlewares/apiThrottle')(app); app.use(require('./middlewares/domain')(server,mongoose)); - if (!isProd && !DISABLE_LOGGING) app.use(require('morgan')('dev')); - app.use(require('compression')()); - app.set('views', __dirname + '/../views'); - app.set('view engine', 'jade'); - app.use(require('serve-favicon')(publicDir + '/favicon.ico')); + if (!isProd && !DISABLE_LOGGING) app.use(express.logger("dev")); + app.use(express.compress()); + app.set("views", __dirname + "/../views"); + app.set("view engine", "jade"); + app.use(express.favicon(publicDir + '/favicon.ico')); app.use(require('./middlewares/cors')); var redirects = require('./middlewares/redirects'); app.use(redirects.forceHabitica); app.use(redirects.forceSSL); - - var bodyParser = require('body-parser'); - // Default limit is 100kb, need that because we actually send whole groups to the server - // FIXME as soon as possible (need to move on the client from $resource -> $http) - app.use(bodyParser.urlencoded({ - limit: '1mb', - parameterLimit: 10000, // Upped for safety from 1k, FIXME as above - extended: true // Uses 'qs' library as old connect middleware - })); - app.use(bodyParser.json({ - limit: '1mb' - })); - + app.use(express.urlencoded()); + app.use(express.json()); app.use(require('method-override')()); //app.use(express.cookieParser(nconf.get('SESSION_SECRET'))); - app.use(require('cookie-parser')()); - app.use(require('cookie-session')({ - name: 'connect:sess', // Used to keep backward compatibility with Express 3 cookies - secret: nconf.get('SESSION_SECRET'), - httpOnly: false, - maxAge: TWO_WEEKS - })); + app.use(express.cookieParser()); + app.use(express.cookieSession({ secret: nconf.get('SESSION_SECRET'), httpOnly: false, cookie: { maxAge: TWO_WEEKS }})); + //app.use(express.session()); // Initialize Passport! Also use passport.session() middleware, to support // persistent login sessions (recommended). app.use(passport.initialize()); app.use(passport.session()); - // Custom Directives - app.use(require('./routes/pages')); - app.use(require('./routes/payments')); - app.use(require('./routes/auth')); - app.use(require('./routes/coupon')); - app.use(require('./routes/unsubscription')); - var v2 = express(); - app.use('/api/v2', v2); - app.use('/api/v1', require('./routes/apiv1')); - app.use('/export', require('./routes/dataexport')); - require('./routes/apiv2.coffee')(swagger, v2); + app.use(app.router); var maxAge = isProd ? 31536000000 : 0; // Cache emojis without copying them to build, they are too many - app.use(express.static(path.join(__dirname, '/../build'), { maxAge: maxAge })); - app.use('/common/dist', express.static(publicDir + '/../../common/dist', { maxAge: maxAge })); - app.use('/common/audio', express.static(publicDir + '/../../common/audio', { maxAge: maxAge })); - app.use('/common/script/public', express.static(publicDir + '/../../common/script/public', { maxAge: maxAge })); - app.use('/common/img', express.static(publicDir + '/../../common/img', { maxAge: maxAge })); - app.use(express.static(publicDir)); + app.use(express['static'](path.join(__dirname, "/../build"), { maxAge: maxAge })); + app.use('/common/dist', express['static'](publicDir + "/../../common/dist", { maxAge: maxAge })); + app.use('/common/audio', express['static'](publicDir + "/../../common/audio", { maxAge: maxAge })); + app.use('/common/script/public', express['static'](publicDir + "/../../common/script/public", { maxAge: maxAge })); + app.use('/common/img', express['static'](publicDir + "/../../common/img", { maxAge: maxAge })); + app.use(express['static'](publicDir)); + // Custom Directives + app.use(require('./routes/pages').middleware); + app.use(require('./routes/payments').middleware); + app.use(require('./routes/auth').middleware); + app.use(require('./routes/coupon').middleware); + app.use(require('./routes/unsubscription').middleware); + var v2 = express(); + app.use('/api/v2', v2); + app.use('/api/v1', require('./routes/apiv1').middleware); + app.use('/export', require('./routes/dataexport').middleware); + require('./routes/apiv2.coffee')(swagger, v2); app.use(require('./middlewares/errorHandler')); server.on('request', app); - server.listen(app.get('port'), function() { - return logging.info('Express server listening on port ' + app.get('port')); + server.listen(app.get("port"), function() { + return logging.info("Express server listening on port " + app.get("port")); }); module.exports = server; -} +} \ No newline at end of file diff --git a/website/src/utils.js b/website/src/utils.js index f0779ce3a2..d63c54b531 100644 --- a/website/src/utils.js +++ b/website/src/utils.js @@ -174,7 +174,7 @@ module.exports.setupConfig = function(){ if (nconf.get('NODE_ENV') === "development") Error.stackTraceLimit = Infinity; - if (nconf.get('NODE_ENV') === 'production') + //if (nconf.get('NODE_ENV') === 'production') //require('newrelic'); isProd = nconf.get('NODE_ENV') === 'production';