{ "name": "freecodecamp", "version": "0.1.0", "repository": { "type": "git", "url": "https://github.com/freecodecamp/freecodecamp.git" }, "scripts": { "only-once": "npm run create-rev && echo '\n\nseeding database\n\n' && node seed && echo '\n\nSeeding Completed\n\n'", "create-rev": "node -e \"var fs = require('fs'); fs.access('./server/rev-manifest.json', function(err) { if (err) { console.log('\\n\\ncreating manifest\\n\\n'); return fs.writeFileSync('server/rev-manifest.json', '{}'); } console.log('\\n\\nrev-manifest present\\n\\n'); });\"", "build": "NODE_ENV=production gulp build -p", "start": "babel-node server/server.js", "prestart-production": "bower cache clean && bower install && gulp build -p", "start-production": "node pm2Start", "lint": "npm run lint-js && npm run lint-json", "lint-challenges": "jsonlint -q seed/challenges/**/*.json", "lint-server": "jsonlint -q server/*.json", "lint-resources": "jsonlint -q server/resources/*.json", "lint-utils": "jsonlint -q server/utils/*.json", "prelint-js": "npm run create-rev", "lint-js": "eslint --ext=.js,.jsx server/ common/ config/ client/", "lint-json": "npm run lint-server && npm run lint-challenges && npm run lint-resources && npm run lint-utils", "pretest": "npm run create-rev && npm run lint", "snyk-protect": "snyk protect", "prepublish": "npm run snyk-protect", "test-challenges": "babel-node seed/test-challenges.js | tap-spec", "test-js": "npm run test-js-client && npm run test-js-common && npm run test-js-server", "test-js-client": "tape -r babel-register 'client/**/*.test.js' | tap-spec", "test-js-common": "tape -r babel-register 'common/**/*.test.js' | tap-spec", "test-js-server": "tape -r babel-register 'server/**/*.test.js' | tap-spec", "test": "npm run test-js && npm run test-challenges", "cover": "babel-node ./node_modules/.bin/babel-istanbul cover tape common/**/*.test.js", "coveralls": "npm run cover && istanbul-coveralls" }, "license": "(BSD-3-Clause AND CC-BY-SA-4.0)", "dependencies": { "accepts": "^1.3.0", "babel-core": "^6.3.26", "babel-preset-es2015": "^6.3.13", "babel-preset-react": "^6.3.13", "babel-register": "^6.3.0", "body-parser": "^1.13.2", "classnames": "^2.1.2", "compression": "^1.6.0", "connect-mongo": "^1.3.2", "cookie-parser": "^1.4.0", "csurf": "^1.8.3", "debug": "^2.2.0", "dedent": "~0.6.0", "dotenv": "^2.0.0", "emmet-codemirror": "^1.2.5", "errorhandler": "^1.4.2", "es6-map": "~0.1.1", "express": "^4.13.3", "express-flash": "~0.0.2", "express-session": "^1.12.1", "express-state": "^1.2.0", "express-validator": "^2.18.0", "fetchr": "~0.5.12", "frameguard": "^2.0.0", "gitter-sidecar": "^1.2.3", "helmet": "^2.0.0", "helmet-csp": "^1.0.3", "history": "^2.0.0", "invariant": "^2.2.1", "jade": "^1.11.0", "lodash": "^4.1.0", "loopback": "^2.22.0", "loopback-boot": "^2.13.0", "loopback-component-passport": "^2.0.0", "loopback-connector-mongodb": "1.15.2", "method-override": "^2.3.0", "moment": "^2.10.2", "moment-timezone": "^0.5.0", "mongodb": "^2.0.33", "morgan": "^1.6.1", "mousetrap": "^1.6.0", "node-emoji": "^1.4.1", "node-uuid": "^1.4.3", "nodemailer": "^2.1.0", "nodemailer-ses-transport": "^1.3.0", "normalize-url": "^1.3.1", "normalizr": "^2.0.0", "object.assign": "^4.0.3", "passport": "^0.2.1", "passport-facebook": "^2.0.0", "passport-github": "^1.0.0", "passport-google-oauth2": "~0.1.6", "passport-linkedin-oauth2": "^1.2.1", "passport-local": "^1.0.0", "passport-oauth": "^1.0.0", "passport-twitter": "^1.0.3", "pmx": "~0.6.2", "react": "^15.0.2", "react-bootstrap": "^0.30.0", "react-codemirror": "^0.2.6", "react-css-transition-replace": "^1.2.0-beta", "react-dom": "^15.0.2", "react-fontawesome": "^1.2.0", "react-images": "^0.5.1", "react-motion": "~0.4.2", "react-no-ssr": "^1.0.1", "react-notification": "https://github.com/BerkeleyTrue/react-notification#freecodecamp", "react-pure-render": "^1.0.2", "react-redux": "^4.0.6", "react-router": "^2.0.0", "react-router-bootstrap": "~0.23.1", "react-router-redux": "^4.0.5", "react-youtube": "^7.0.0", "redux": "^3.0.5", "redux-actions": "^0.10.0", "redux-epic": "^0.1.1", "redux-form": "^5.2.3", "request": "^2.65.0", "reselect": "^2.0.2", "rx": "^4.0.0", "sanitize-html": "^1.11.1", "snyk": "^1.19.1", "stampit": "^2.1.1", "store": "https://github.com/berkeleytrue/store.js.git#feature/noop-server", "validator": "^6.0.0" }, "devDependencies": { "adler32": "~0.1.7", "babel-cli": "^6.3.17", "babel-eslint": "^7.0.0", "babel-istanbul": "^0.11.0", "babel-loader": "^6.2.1", "babel-plugin-add-module-exports": "^0.2.1", "babel-preset-stage-0": "^6.3.13", "browser-sync": "^2.9.12", "chunk-manifest-webpack-plugin": "0.1.0", "del": "^2.2.0", "eslint": "^3.1.0", "eslint-plugin-import": "^1.9.2", "eslint-plugin-react": "^6.2.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.1", "gulp-concat": "^2.6.0", "gulp-eslint": "^3.0.1", "gulp-if": "^2.0.0", "gulp-jsonlint": "^1.1.0", "gulp-less": "^3.0.3", "gulp-nodemon": "^2.0.3", "gulp-notify": "^2.2.0", "gulp-plumber": "^1.0.1", "gulp-reduce-file": "0.0.1", "gulp-rev": "^7.0.0", "gulp-sourcemaps": "^2.0.0", "gulp-tape": "0.0.9", "gulp-uglify": "^2.0.0", "gulp-util": "^3.0.6", "istanbul-coveralls": "^1.0.3", "json-loader": "~0.5.2", "jsonlint": "^1.6.2", "less": "^2.5.1", "loopback-component-explorer": "^2.1.1", "merge-stream": "^1.0.0", "proxyquire": "^1.7.10", "react-hot-loader": "^1.3.0", "rev-del": "^1.0.5", "sinon": "^1.17.3", "sort-keys": "^1.1.1", "tap-spec": "^4.1.1", "tape": "^4.2.2", "webpack": "^1.9.12", "webpack-dev-middleware": "^1.8.3", "webpack-hot-middleware": "^2.12.2", "webpack-manifest-plugin": "^1.0.0", "webpack-stream": "^3.1.0", "yargs": "^5.0.0" }, "snyk": true }