Adds TOTP setup with QR code, login challenge, recovery codes and trusted devices that let a browser skip the second factor for 30 days. Admins can reset another user's second factor by confirming with their own password.
111 lines
2.9 KiB
JSON
111 lines
2.9 KiB
JSON
{
|
|
"name": "planka-server",
|
|
"private": true,
|
|
"main": "app.js",
|
|
"scripts": {
|
|
"build": "node build.js",
|
|
"console": "dotenv sails console",
|
|
"db:create-admin-user": "node db/create-admin-user.js",
|
|
"db:init": "node db/init.js",
|
|
"db:migrate": "knex migrate:latest --cwd db",
|
|
"db:seed": "knex seed:run --cwd db",
|
|
"db:upgrade": "node db/upgrade.js",
|
|
"postinstall": "patch-package && npm run setup-python",
|
|
"lint": "eslint . --max-warnings=0 --report-unused-disable-directives && echo '✔ Your .js files look good.'",
|
|
"setup-python": "node setup-python.js",
|
|
"start": "nodemon",
|
|
"start:prod": "cross-env NODE_ENV=production node app.js --prod",
|
|
"swagger:generate": "node generate-swagger.js",
|
|
"test": "mocha test/lifecycle.test.js test/integration/**/*.test.js test/utils/**/*.test.js"
|
|
},
|
|
"eslintConfig": {
|
|
"plugins": [
|
|
"prettier"
|
|
],
|
|
"extends": [
|
|
"airbnb-base",
|
|
"plugin:prettier/recommended"
|
|
],
|
|
"rules": {
|
|
"no-throw-literal": "off",
|
|
"no-undef": "off",
|
|
"prettier/prettier": [
|
|
"error",
|
|
{
|
|
"printWidth": 100,
|
|
"singleQuote": true,
|
|
"trailingComma": "all"
|
|
}
|
|
]
|
|
},
|
|
"globals": {
|
|
"_": true,
|
|
"sails": true
|
|
}
|
|
},
|
|
"overrides": {
|
|
"body-parser": "^1.20.6",
|
|
"diff": "^8.0.4",
|
|
"multiparty": "^4.3.0",
|
|
"qs": "^6.15.2",
|
|
"serialize-javascript": "^7.0.7",
|
|
"uuid": "$uuid"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.1009.0",
|
|
"@aws-sdk/lib-storage": "^3.1009.0",
|
|
"bcrypt": "^6.0.0",
|
|
"bytes": "^3.1.2",
|
|
"cross-env": "^10.1.0",
|
|
"dotenv": "^17.3.1",
|
|
"dotenv-cli": "^11.0.0",
|
|
"escape-html": "^1.0.3",
|
|
"escape-markdown": "^1.0.4",
|
|
"file-type": "^21.3.2",
|
|
"fs-extra": "^11.3.4",
|
|
"i18n-2": "^0.7.3",
|
|
"ico-to-png": "^0.2.2",
|
|
"istextorbinary": "^9.5.0",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"knex": "^3.1.0",
|
|
"lodash": "^4.18.1",
|
|
"mime-types": "^3.0.2",
|
|
"moment": "^2.30.1",
|
|
"nodemailer": "^9.0.3",
|
|
"otplib": "^12.0.1",
|
|
"patch-package": "^8.0.1",
|
|
"pg": "^8.20.0",
|
|
"read": "^5.0.1",
|
|
"rimraf": "^6.1.3",
|
|
"sails": "^1.5.17",
|
|
"sails-hook-orm": "^4.0.3",
|
|
"sails-hook-sockets": "^3.0.2",
|
|
"sails-postgresql": "^5.0.1",
|
|
"serve-static": "^2.2.1",
|
|
"sharp": "^0.35.3",
|
|
"ua-parser-js": "^2.0.10",
|
|
"undici": "^7.24.0",
|
|
"uuid": "^11.1.1",
|
|
"validator": "^13.15.26",
|
|
"winston": "^3.19.0",
|
|
"zxcvbn": "^4.4.2"
|
|
},
|
|
"devDependencies": {
|
|
"chai": "^6.2.2",
|
|
"eslint": "^8.57.1",
|
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-prettier": "^5.5.5",
|
|
"ignore": "^7.0.5",
|
|
"mocha": "^11.7.5",
|
|
"nodemon": "^3.1.14",
|
|
"prettier": "3.8.1",
|
|
"supertest": "^7.2.2",
|
|
"swagger-jsdoc": "^6.2.8"
|
|
},
|
|
"engines": {
|
|
"node": ">=20"
|
|
}
|
|
}
|