mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 13:47:33 +01:00
reert all the deps upgrades
This commit is contained in:
12
.travis.yml
12
.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"
|
||||
15
package.json
15
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",
|
||||
|
||||
@@ -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('<h1>' + i18n.t('unsubscribedSuccessfully', null, req.language) + '</h1>' + i18n.t('unsubscribedTextUsers', null, req.language));
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user