44d1b88e3d
iOS Safari (especially PWA/standalone mode) unreliably exposes cookies via document.cookie, causing CSRF token mismatch on state-changing requests. The CSRF token is now included in /auth/login and /auth/me response bodies and stored in-memory on the client. Cookie remains as fallback. Retry mechanism also improved to read token from response body and handle expired sessions.
44 lines
1.8 KiB
JSON
44 lines
1.8 KiB
JSON
{
|
|
"name": "oikos",
|
|
"version": "0.19.4",
|
|
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
|
"main": "server/index.js",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"scripts": {
|
|
"start": "node --import dotenv/config server/index.js",
|
|
"dev": "node --import dotenv/config --watch server/index.js",
|
|
"setup": "node --import dotenv/config setup.js",
|
|
"test:db": "node --experimental-sqlite test-db.js",
|
|
"test:dashboard": "node --experimental-sqlite test-dashboard.js",
|
|
"test:tasks": "node --experimental-sqlite test-tasks.js",
|
|
"test:shopping": "node --experimental-sqlite test-shopping.js",
|
|
"test:meals": "node --experimental-sqlite test-meals.js",
|
|
"test:calendar": "node --experimental-sqlite test-calendar.js",
|
|
"test:ncb": "node --experimental-sqlite test-notes-contacts-budget.js",
|
|
"test:ux-utils": "node test-ux-utils.js",
|
|
"test:modal-utils": "node --loader ./test-browser-loader.mjs test-modal-utils.js",
|
|
"test": "node --experimental-sqlite test-db.js && node --experimental-sqlite test-dashboard.js && node --experimental-sqlite test-tasks.js && node --experimental-sqlite test-shopping.js && node --experimental-sqlite test-meals.js && node --experimental-sqlite test-calendar.js && node --experimental-sqlite test-notes-contacts-budget.js && npm run test:ux-utils && npm run test:modal-utils"
|
|
},
|
|
"dependencies": {
|
|
"bcrypt": "^6.0.0",
|
|
"better-sqlite3": "^9.6.0",
|
|
"dotenv": "^16.4.7",
|
|
"express": "^4.21.2",
|
|
"express-rate-limit": "^7.5.0",
|
|
"express-session": "^1.18.1",
|
|
"helmet": "^8.0.0",
|
|
"node-fetch": "^3.3.2"
|
|
},
|
|
"optionalDependencies": {
|
|
"googleapis": "^144.0.0",
|
|
"tsdav": "^2.0.10"
|
|
},
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"sharp": "^0.34.5"
|
|
}
|
|
}
|