mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-13 21:53:32 -05:00
* bcrypt -> argon2id * coderabbit feedback * copilot review * switch hashing settings * [AI] Add unit tests for sync-server password hashing Cover password.js, focused on the bcrypt -> argon2id migration: - loginWithPassword upgrades a legacy bcrypt hash to argon2id on a successful login, leaves it untouched on a failed login, and does not needlessly rehash an existing argon2id hash - hashPassword/verifyPassword round-trip, bcrypt backward-compat, and graceful handling of non-string/malformed hashes - bootstrapPassword/changePassword/checkPassword behaviour Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * dedupe minimatch --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
134 lines
5.6 KiB
JSON
134 lines
5.6 KiB
JSON
{
|
|
"name": "@actual-app/sync-server",
|
|
"version": "26.7.0",
|
|
"description": "actual syncing server",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/actualbudget/actual.git",
|
|
"directory": "packages/sync-server"
|
|
},
|
|
"bin": {
|
|
"actual-server": "./build/bin/actual-server.js"
|
|
},
|
|
"files": [
|
|
"build",
|
|
"LICENSE",
|
|
"README.md"
|
|
],
|
|
"type": "module",
|
|
"imports": {
|
|
"#db": "./src/db.js",
|
|
"#account-db": "./src/account-db.js",
|
|
"#load-config": "./src/load-config.js",
|
|
"#migrations": "./src/migrations.ts",
|
|
"#accounts/*": "./src/accounts/*.js",
|
|
"#app-enablebanking/services/*": "./src/app-enablebanking/services/*.ts",
|
|
"#app-enablebanking/utils/*": "./src/app-enablebanking/utils/*.ts",
|
|
"#app-enablebanking/*": "./src/app-enablebanking/*.ts",
|
|
"#app-gocardless/banks/bank.interface": "./src/app-gocardless/banks/bank.interface.ts",
|
|
"#app-gocardless/banks/*": "./src/app-gocardless/banks/*.js",
|
|
"#app-gocardless/errors": "./src/app-gocardless/errors.ts",
|
|
"#app-gocardless/gocardless-node.types": "./src/app-gocardless/gocardless-node.types.ts",
|
|
"#app-gocardless/gocardless.types": "./src/app-gocardless/gocardless.types.ts",
|
|
"#app-gocardless/services/*": "./src/app-gocardless/services/*.ts",
|
|
"#app-gocardless/services/tests/*": "./src/app-gocardless/services/tests/*.js",
|
|
"#app-gocardless/util/*": "./src/app-gocardless/util/*.js",
|
|
"#app-gocardless/*": "./src/app-gocardless/*.js",
|
|
"#app-pluggyai/*": "./src/app-pluggyai/*.js",
|
|
"#app-simplefin/*": "./src/app-simplefin/*.js",
|
|
"#app-sync/services/*": "./src/app-sync/services/*.js",
|
|
"#app-sync/*": "./src/app-sync/*.js",
|
|
"#scripts/*": "./src/scripts/*.js",
|
|
"#services/*": "./src/services/*.js",
|
|
"#util/title": "./src/util/title/index.js",
|
|
"#util/*": "./src/util/*.ts"
|
|
},
|
|
"publishConfig": {
|
|
"imports": {
|
|
"#db": "./build/src/db.js",
|
|
"#account-db": "./build/src/account-db.js",
|
|
"#load-config": "./build/src/load-config.js",
|
|
"#migrations": "./build/src/migrations.js",
|
|
"#accounts/*": "./build/src/accounts/*.js",
|
|
"#app-enablebanking/services/*": "./build/src/app-enablebanking/services/*.js",
|
|
"#app-enablebanking/utils/*": "./build/src/app-enablebanking/utils/*.js",
|
|
"#app-enablebanking/*": "./build/src/app-enablebanking/*.js",
|
|
"#app-gocardless/banks/bank.interface": "./build/src/app-gocardless/banks/bank.interface.js",
|
|
"#app-gocardless/banks/*": "./build/src/app-gocardless/banks/*.js",
|
|
"#app-gocardless/errors": "./build/src/app-gocardless/errors.js",
|
|
"#app-gocardless/gocardless-node.types": "./build/src/app-gocardless/gocardless-node.types.js",
|
|
"#app-gocardless/gocardless.types": "./build/src/app-gocardless/gocardless.types.js",
|
|
"#app-gocardless/services/*": "./build/src/app-gocardless/services/*.js",
|
|
"#app-gocardless/services/tests/*": "./build/src/app-gocardless/services/tests/*.js",
|
|
"#app-gocardless/util/*": "./build/src/app-gocardless/util/*.js",
|
|
"#app-gocardless/*": "./build/src/app-gocardless/*.js",
|
|
"#app-pluggyai/*": "./build/src/app-pluggyai/*.js",
|
|
"#app-simplefin/*": "./build/src/app-simplefin/*.js",
|
|
"#app-sync/services/*": "./build/src/app-sync/services/*.js",
|
|
"#app-sync/*": "./build/src/app-sync/*.js",
|
|
"#scripts/*": "./build/src/scripts/*.js",
|
|
"#services/*": "./build/src/services/*.js",
|
|
"#util/title": "./build/src/util/title/index.js",
|
|
"#util/*": "./build/src/util/*.js"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"start": "yarn build && node build/app.js",
|
|
"start-monitor": "nodemon --exec 'yarn build && node build/app.js' --ignore './build/**/*' --ext 'ts,js' build/app.js",
|
|
"build": "vite build",
|
|
"typecheck": "tsgo -b && tsc-strict",
|
|
"test": "NODE_ENV=test NODE_OPTIONS='--experimental-vm-modules --trace-warnings' vitest --run",
|
|
"db:migrate": "yarn build && cross-env NODE_ENV=development node build/scripts/run-migrations.js up",
|
|
"db:downgrade": "yarn build && cross-env NODE_ENV=development node build/scripts/run-migrations.js down",
|
|
"db:test-migrate": "yarn build && cross-env NODE_ENV=test node build/scripts/run-migrations.js up",
|
|
"db:test-downgrade": "yarn build && cross-env NODE_ENV=test node build/scripts/run-migrations.js down",
|
|
"reset-password": "yarn build && node build/scripts/reset-password.js",
|
|
"disable-openid": "yarn build && node build/scripts/disable-openid.js",
|
|
"health-check": "yarn build && node build/scripts/health-check.js"
|
|
},
|
|
"dependencies": {
|
|
"@actual-app/crdt": "workspace:*",
|
|
"@actual-app/web": "workspace:*",
|
|
"akahu": "^2.5.1",
|
|
"argon2": "^0.44.0",
|
|
"bcrypt": "^6.0.0",
|
|
"better-sqlite3": "^12.10.0",
|
|
"convict": "^6.2.5",
|
|
"cors": "^2.8.6",
|
|
"date-fns": "^4.4.0",
|
|
"debug": "^4.4.3",
|
|
"express": "^5.2.1",
|
|
"express-rate-limit": "^8.5.2",
|
|
"express-winston": "^4.2.0",
|
|
"ipaddr.js": "^2.4.0",
|
|
"jws": "^4.0.1",
|
|
"migrate": "^2.1.0",
|
|
"openid-client": "^5.7.1",
|
|
"pluggy-sdk": "^0.85.3",
|
|
"uuid": "^14.0.1",
|
|
"winston": "^3.19.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/convict": "^6",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^5.0.6",
|
|
"@types/jws": "^3.2.11",
|
|
"@types/node": "^22.19.21",
|
|
"@types/supertest": "^7.2.0",
|
|
"@typescript/native-preview": "beta",
|
|
"cross-env": "^10.1.0",
|
|
"http-proxy-middleware": "^4.1.1",
|
|
"nodemon": "^3.1.14",
|
|
"supertest": "^7.2.2",
|
|
"typescript-strict-plugin": "^2.4.4",
|
|
"vite": "^8.0.16",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"engines": {
|
|
"node": ">=22"
|
|
}
|
|
}
|