mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-18 00:46:45 +00:00
* fix(sync): preserve offline ops and harden auth * fix(sync): prevent unverified passkey replacement Keep existing credentials until email ownership is verified and scope failed-delivery cleanup to the exact pending registration. Reject negative operation timestamps while still allowing old offline operations.\n\nRefs #8961 * test(sync): cover registration races in PostgreSQL * ci(sync): run PostgreSQL integration tests * fix(sync): bind passkeys to email verification
70 lines
2.9 KiB
JSON
70 lines
2.9 KiB
JSON
{
|
|
"name": "@super-productivity/super-sync-server",
|
|
"version": "1.0.0",
|
|
"description": "SuperSync server for Super Productivity",
|
|
"main": "dist/src/index.js",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/src/index.js",
|
|
"dev": "nodemon --watch src --ext ts --exec ts-node src/index.ts",
|
|
"pretest": "prisma generate",
|
|
"test": "vitest run",
|
|
"test:integration:postgres": "vitest run --config vitest.integration.config.ts --maxWorkers=1 tests/integration/registration-races.integration.spec.ts tests/integration/clean-slate-atomicity-sql.integration.spec.ts tests/integration/conflict-detection-sql.integration.spec.ts tests/integration/snapshot-vector-clock-sql.integration.spec.ts",
|
|
"docker:build": "./scripts/build-and-push.sh",
|
|
"docker:deploy": "./scripts/deploy.sh",
|
|
"docker:deploy:build": "./scripts/deploy.sh --build",
|
|
"docker:backup": "./scripts/backup.sh",
|
|
"docker:logs": "docker logs supersync-server -f",
|
|
"docker:monitor": "./scripts/docker-monitor.sh",
|
|
"docker:monitor:usage": "./scripts/docker-monitor.sh usage",
|
|
"docker:monitor:all": "./scripts/docker-monitor.sh monitor-all --save",
|
|
"docker:shell": "./scripts/docker-monitor.sh shell",
|
|
"delete-user": "ts-node scripts/delete-user.ts",
|
|
"clear-data": "ts-node scripts/clear-data.ts",
|
|
"recover-user": "ts-node --transpile-only scripts/recover-user.ts",
|
|
"monitor": "node dist/scripts/monitor.js",
|
|
"monitor:dev": "tsx scripts/monitor.ts",
|
|
"analyze-storage": "node dist/scripts/analyze-storage.js",
|
|
"analyze-storage:dev": "tsx scripts/analyze-storage.ts",
|
|
"monitor:all": "node dist/scripts/run-all-monitoring.js",
|
|
"monitor:all:dev": "tsx scripts/run-all-monitoring.ts",
|
|
"monitor:all:quick": "node dist/scripts/run-all-monitoring.js --quick",
|
|
"monitor:all:save": "node dist/scripts/run-all-monitoring.js --save",
|
|
"migrate-payload-bytes": "node dist/scripts/migrate-payload-bytes.js",
|
|
"migrate-payload-bytes:dev": "ts-node scripts/migrate-payload-bytes.ts"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/cors": "^11.1.0",
|
|
"@fastify/helmet": "^13.0.2",
|
|
"@fastify/rate-limit": "^10.3.0",
|
|
"@fastify/static": "^9.1.1",
|
|
"@fastify/websocket": "^11.2.0",
|
|
"@prisma/client": "5.22.0",
|
|
"@simplewebauthn/server": "^13.2.2",
|
|
"@simplewebauthn/types": "^12.0.0",
|
|
"@sp/shared-schema": "*",
|
|
"@sp/sync-core": "*",
|
|
"bcryptjs": "^3.0.3",
|
|
"dotenv": "^17.2.3",
|
|
"fastify": "^5.8.5",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"nodemailer": "^9.0.1",
|
|
"uuidv7": "^1.1.0",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@electric-sql/pglite": "^0.5.3",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"@types/node": "^20.0.0",
|
|
"@types/nodemailer": "^7.0.5",
|
|
"@types/supertest": "^7.2.0",
|
|
"@types/ws": "^8.18.1",
|
|
"nodemon": "^3.1.11",
|
|
"prisma": "5.22.0",
|
|
"supertest": "^7.1.4",
|
|
"ts-node": "^10.9.1",
|
|
"typescript": "^5.0.0",
|
|
"vitest": "^4.1.6"
|
|
}
|
|
}
|