{ "name": "habitica", "description": "A habit tracker app which treats your goals like a Role Playing Game.", "version": "4.2.1", "main": "./website/server/index.js", "dependencies": { "@slack/client": "^3.8.1", "accepts": "^1.3.2", "amazon-payments": "0.0.4", "amplitude": "^2.0.3", "apidoc": "^0.17.5", "apn": "^1.7.6", "async": "^1.5.0", "autoprefixer": "^6.4.0", "aws-sdk": "^2.0.25", "axios": "^0.16.0", "axios-progress-bar": "^0.1.7", "babel-core": "^6.0.0", "babel-eslint": "^7.2.3", "babel-loader": "^6.0.0", "babel-plugin-syntax-async-functions": "^6.13.0", "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-async-to-module-method": "^6.8.0", "babel-plugin-transform-object-rest-spread": "^6.16.0", "babel-plugin-transform-regenerator": "^6.16.1", "babel-polyfill": "^6.6.1", "babel-preset-es2015": "^6.6.0", "babel-register": "^6.6.0", "babel-runtime": "^6.11.6", "babelify": "^7.2.0", "bcrypt": "^1.0.2", "bluebird": "^3.3.5", "body-parser": "^1.15.0", "bootstrap": "4.0.0-alpha.6", "bootstrap-vue": "1.0.0-beta.7", "browserify": "~12.0.1", "compression": "^1.6.1", "connect-ratelimit": "0.0.7", "cookie-session": "^1.2.0", "coupon-code": "^0.4.5", "cross-env": "^4.0.0", "css-loader": "^0.28.0", "csv-stringify": "^1.0.2", "cwait": "~1.0.1", "domain-middleware": "~0.1.0", "estraverse": "^4.1.1", "express": "~4.14.0", "express-basic-auth": "^1.0.1", "express-csv": "~0.6.0", "express-validator": "^2.18.0", "extract-text-webpack-plugin": "^2.0.0-rc.3", "file-loader": "^0.10.0", "glob": "^4.3.5", "got": "^6.1.1", "gulp": "^3.9.0", "gulp-babel": "^6.1.2", "gulp-imagemin": "^2.4.0", "gulp-nodemon": "^2.0.4", "gulp-sourcemaps": "^1.6.0", "gulp-uglify": "^1.4.2", "gulp.spritesmith": "^4.1.0", "habitica-markdown": "^1.3.0", "hellojs": "^1.15.1", "html-webpack-plugin": "^2.8.1", "image-size": "~0.3.2", "in-app-purchase": "^1.1.6", "intro.js": "^2.6.0", "jade": "~1.11.0", "jquery": ">=3.0.0", "js2xmlparser": "~1.0.0", "lodash": "^4.17.4", "merge-stream": "^1.0.0", "method-override": "^2.3.5", "moment": "^2.13.0", "moment-recur": "git://github.com/habitrpg/moment-recur#f147ef27bbc26ca67638385f3db4a44084c76626", "mongoose": "~4.8.6", "mongoose-id-autoinc": "~2013.7.14-4", "morgan": "^1.7.0", "nconf": "~0.8.2", "nib": "^1.1.0", "node-gcm": "^0.14.4", "node-sass": "^4.5.0", "nodemailer": "^2.3.2", "object-path": "^0.9.2", "ora": "^1.1.0", "pageres": "^4.1.1", "passport": "^0.3.2", "passport-facebook": "^2.0.0", "passport-google-oauth20": "1.0.0", "paypal-ipn": "3.0.0", "paypal-rest-sdk": "^1.2.1", "popper.js": "^1.11.0", "postcss-easy-import": "^2.0.0", "pretty-data": "^0.40.0", "ps-tree": "^1.0.0", "pug": "^2.0.0-beta.12", "push-notify": "git://github.com/habitrpg/push-notify#6bc2b5fdb1bdc9649b9ec1964d79ca50187fc8a9", "pusher": "^1.3.0", "request": "~2.74.0", "rimraf": "^2.4.3", "run-sequence": "^1.1.4", "s3-upload-stream": "^1.0.6", "sass-loader": "^6.0.2", "serve-favicon": "^2.3.0", "shelljs": "^0.7.6", "sortablejs": "^1.6.1", "stripe": "^4.2.0", "superagent": "^3.4.3", "svg-inline-loader": "^0.7.1", "svg-url-loader": "^2.0.2", "svgo-loader": "^1.2.1", "universal-analytics": "~0.3.2", "url-loader": "^0.5.7", "useragent": "^2.1.9", "uuid": "^3.0.1", "validator": "^4.9.0", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0", "vue": "^2.1.0", "vue-loader": "^11.0.0", "vue-mugen-scroll": "^0.2.1", "vue-router": "^2.0.0-rc.5", "vue-style-loader": "^3.0.0", "vue-template-compiler": "^2.1.10", "vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker#45e607a7bccf4e3e089761b3b7b33e3f2c5dc21f", "webpack": "^2.2.1", "webpack-merge": "^4.0.0", "winston": "^2.1.0", "winston-loggly-bulk": "^1.4.2", "xml2js": "^0.4.4" }, "private": true, "engines": { "node": "^6.9.1", "npm": "^5.0.0" }, "scripts": { "lint": "eslint --ext .js,.vue .", "test": "npm run lint && gulp test && npm run client:unit && gulp apidoc", "test:build": "gulp test:prepare:build", "test:api-v3": "gulp test:api-v3", "test:api-v3:unit": "gulp test:api-v3:unit", "test:api-v3:integration": "gulp test:api-v3:integration", "test:api-v3:integration:separate-server": "NODE_ENV=test gulp test:api-v3:integration:separate-server", "test:sanity": "istanbul cover --dir coverage/sanity --report lcovonly node_modules/mocha/bin/_mocha -- test/sanity --recursive", "test:common": "istanbul cover --dir coverage/common --report lcovonly node_modules/mocha/bin/_mocha -- test/common --recursive", "test:content": "istanbul cover --dir coverage/content --report lcovonly node_modules/mocha/bin/_mocha -- test/content --recursive", "test:nodemon": "gulp test:nodemon", "coverage": "COVERAGE=true mocha --require register-handlers.js --reporter html-cov > coverage.html; open coverage.html", "sprites": "gulp sprites:compile", "client:dev": "gulp bootstrap && node webpack/dev-server.js", "client:build": "gulp build:client", "client:unit": "cross-env NODE_ENV=test karma start test/client/unit/karma.conf.js --single-run", "client:unit:watch": "cross-env NODE_ENV=test karma start test/client/unit/karma.conf.js", "client:e2e": "node test/client/e2e/runner.js", "client:test": "npm run client:unit && npm run client:e2e", "start": "gulp nodemon", "postinstall": "gulp build", "apidoc": "gulp apidoc" }, "devDependencies": { "babel-plugin-istanbul": "^4.0.0", "chai": "^3.4.0", "chai-as-promised": "^5.1.0", "chalk": "^1.1.3", "chromedriver": "^2.27.2", "connect-history-api-fallback": "^1.1.0", "coveralls": "^2.11.2", "cross-spawn": "^5.0.1", "csv": "~0.3.6", "deep-diff": "~0.1.4", "eslint": "^3.0.0", "eslint-config-habitrpg": "^3.0.0", "eslint-friendly-formatter": "^2.0.5", "eslint-loader": "^1.3.0", "eslint-plugin-html": "^2.0.0", "eslint-plugin-mocha": "^4.7.0", "event-stream": "^3.2.2", "eventsource-polyfill": "^0.9.6", "expect.js": "~0.2.0", "http-proxy-middleware": "^0.17.0", "inject-loader": "^3.0.0-beta4", "istanbul": "^1.1.0-alpha.1", "karma": "^1.3.0", "karma-babel-preprocessor": "^6.0.1", "karma-chai-plugins": "~0.6.0", "karma-coverage": "^0.5.3", "karma-mocha": "^0.2.0", "karma-mocha-reporter": "^1.1.1", "karma-phantomjs-launcher": "^1.0.0", "karma-sinon-chai": "~1.2.0", "karma-sinon-stub-promise": "^1.0.0", "karma-sourcemap-loader": "^0.3.7", "karma-spec-reporter": "0.0.24", "karma-webpack": "^2.0.2", "lcov-result-merger": "^1.0.2", "lolex": "^1.4.0", "mocha": "^3.2.0", "mongodb": "^2.0.46", "mongoskin": "~2.1.0", "monk": "^4.0.0", "nightwatch": "^0.9.12", "phantomjs-prebuilt": "^2.1.12", "protractor": "^3.1.1", "raw-loader": "^0.5.1", "require-again": "^2.0.0", "rewire": "^2.3.3", "selenium-server": "^3.0.1", "sinon": "^1.17.2", "sinon-chai": "^2.8.0", "sinon-stub-promise": "^4.0.0", "superagent-defaults": "^0.1.13", "vinyl-transform": "^1.0.0", "webpack-bundle-analyzer": "^2.2.1", "webpack-dev-middleware": "^1.10.0", "webpack-hot-middleware": "^2.6.1" } }