2026-05-03 19:51:57 -05:00
{
"name" : "bill-tracker" ,
2026-07-10 17:31:27 -05:00
"version" : "0.41.1" ,
2026-05-03 19:51:57 -05:00
"description" : "Monthly bill tracking system" ,
2026-07-06 11:41:56 -05:00
"main" : "server.cts" ,
2026-07-05 18:54:50 -05:00
"engines" : {
"node" : ">=22.18.0"
} ,
2026-05-03 19:51:57 -05:00
"scripts" : {
2026-07-06 11:41:56 -05:00
"dev:api" : "node --watch server.cts" ,
2026-05-03 19:51:57 -05:00
"dev:ui" : "vite" ,
"dev" : "concurrently \"npm run dev:api\" \"npm run dev:ui\"" ,
"build" : "vite build" ,
2026-07-06 11:41:56 -05:00
"check:server" : "find server.cts db middleware routes services utils workers \\( -name '*.js' -o -name '*.mts' -o -name '*.cts' -o -name '*.ts' \\) -print0 | xargs -0 -n1 node --check" ,
2026-07-05 13:44:04 -05:00
"typecheck:server" : "tsc --noEmit -p tsconfig.server.json" ,
2026-07-06 14:23:53 -05:00
"lint" : "eslint ." ,
"format" : "prettier --write client routes services middleware db workers utils setup scripts tests e2e types server.cts \"*.{json,md,mjs}\"" ,
"format:check" : "prettier --check client routes services middleware db workers utils setup scripts tests e2e types server.cts \"*.{json,md,mjs}\"" ,
2026-07-03 21:33:26 -05:00
"typecheck" : "tsc --noEmit -p tsconfig.json" ,
2026-05-15 22:45:38 -05:00
"check" : "npm run check:server && npm run build" ,
2026-05-16 20:26:09 -05:00
"test" : "node --test tests/*.test.js" ,
2026-06-12 01:32:28 -05:00
"test:client" : "vitest run" ,
"test:all" : "npm run test && npm run test:client" ,
2026-07-02 20:36:09 -05:00
"test:e2e" : "node e2e/setup/prepare-db.js && playwright test --project=chromium-desktop --project=chromium-mobile" ,
"test:e2e:ui" : "node e2e/setup/prepare-db.js && playwright test --ui" ,
"test:e2e:update" : "node e2e/setup/prepare-db.js && playwright test --project=chromium-desktop --project=chromium-mobile --update-snapshots" ,
"test:e2e:probe" : "node e2e/setup/prepare-db.js && playwright test --project=probe" ,
2026-07-02 21:45:25 -05:00
"smoke:prod" : "bash scripts/prod-smoke.sh" ,
2026-07-06 14:27:03 -05:00
"knip" : "knip" ,
2026-07-06 14:23:53 -05:00
"ci" : "npm run format:check && npm run lint && npm run typecheck && npm run typecheck:server && npm run check:server && npm run test:all && npm run build" ,
2026-07-06 14:27:03 -05:00
"prepare" : "lefthook install" ,
2026-07-06 11:41:56 -05:00
"start" : "node server.cts"
2026-05-03 19:51:57 -05:00
} ,
"dependencies" : {
"@radix-ui/react-alert-dialog" : "^1.1.2" ,
"@radix-ui/react-checkbox" : "^1.1.2" ,
v0.25.0: roadmap redesign, import CSRF fix, AdminDashboard removed
- RoadmapPage: kanban-style priority lanes, shadcn Collapsible/Tabs,
lazy-loaded activity log, admin-only /api/about/roadmap + /dev-log endpoints
- Import CSRF fix: added x-csrf-token header to importAdminBackup,
previewSpreadsheetImport, previewUserDbImport raw fetch() calls
- Removed AdminDashboard.jsx, replaced by RoadmapPage
- Added @radix-ui/react-collapsible + collapsible shadcn component
- Security audit by Private_Hudson: PASS (CSRF fix verified,
admin endpoints gated, path traversal mitigated, XSS safe)
2026-05-11 21:42:36 -05:00
"@radix-ui/react-collapsible" : "^1.1.12" ,
2026-05-03 19:51:57 -05:00
"@radix-ui/react-dialog" : "^1.1.2" ,
"@radix-ui/react-dropdown-menu" : "^2.1.2" ,
"@radix-ui/react-label" : "^2.1.0" ,
"@radix-ui/react-select" : "^2.1.2" ,
"@radix-ui/react-slot" : "^1.1.0" ,
"@radix-ui/react-switch" : "^1.1.1" ,
"@radix-ui/react-tabs" : "^1.1.1" ,
"@radix-ui/react-tooltip" : "^1.1.3" ,
2026-06-07 02:03:00 -05:00
"@simplewebauthn/browser" : "^13.0.0" ,
"@simplewebauthn/server" : "^13.0.0" ,
2026-05-10 03:10:43 -05:00
"@tanstack/react-query" : "^5.100.9" ,
"@tanstack/react-query-devtools" : "^5.100.9" ,
2026-06-07 02:03:00 -05:00
"@tanstack/react-virtual" : "^3.14.2" ,
2026-07-10 17:35:39 -05:00
"bcryptjs" : "^3.0.3" ,
2026-05-09 13:03:36 -05:00
"better-sqlite3" : "^12.9.0" ,
2026-05-03 19:51:57 -05:00
"class-variance-authority" : "^0.7.0" ,
"clsx" : "^2.1.1" ,
"cookie-parser" : "^1.4.6" ,
"cors" : "^2.8.5" ,
2026-07-05 13:25:00 -05:00
"express" : "^5.2.1" ,
2026-05-03 19:51:57 -05:00
"express-rate-limit" : "^8.4.1" ,
2026-06-07 15:14:09 -05:00
"framer-motion" : "^12.40.0" ,
2026-07-06 16:23:50 -05:00
"kysely" : "^0.29.3" ,
2026-07-10 17:35:39 -05:00
"lucide-react" : "^1.24.0" ,
2026-05-28 03:59:35 -05:00
"node-cron" : "^4.2.1" ,
2026-07-10 17:34:51 -05:00
"nodemailer" : "^9.0.3" ,
2026-07-10 18:05:57 -05:00
"openid-client" : "^6.8.4" ,
2026-06-04 04:10:14 -05:00
"otplib" : "^13.4.1" ,
"qrcode" : "^1.5.4" ,
2026-06-07 14:23:19 -05:00
"react" : "^19.2.7" ,
"react-dom" : "^19.2.7" ,
2026-07-10 17:53:27 -05:00
"react-router-dom" : "^7.18.1" ,
2026-07-10 17:35:39 -05:00
"sonner" : "^2.0.7" ,
2026-07-10 18:03:15 -05:00
"tailwind-merge" : "^3.6.0" ,
2026-05-03 19:51:57 -05:00
"tailwindcss-animate" : "^1.0.7" ,
2026-07-10 17:34:51 -05:00
"xlsx" : "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
2026-05-03 19:51:57 -05:00
} ,
"devDependencies" : {
2026-07-02 20:36:09 -05:00
"@axe-core/playwright" : "^4.10.1" ,
2026-07-10 17:36:50 -05:00
"@eslint/js" : "^10.0.1" ,
2026-07-02 20:36:09 -05:00
"@playwright/test" : "^1.50.1" ,
2026-07-10 18:03:15 -05:00
"@tailwindcss/vite" : "^4.3.2" ,
2026-07-10 17:53:27 -05:00
"@testing-library/dom" : "^10.4.1" ,
2026-06-12 02:08:42 -05:00
"@testing-library/react" : "^16.3.2" ,
2026-07-05 13:44:04 -05:00
"@types/node" : "^26.1.0" ,
2026-07-03 21:33:26 -05:00
"@types/react" : "^19.2.17" ,
"@types/react-dom" : "^19.2.3" ,
2026-07-10 17:53:27 -05:00
"@vitejs/plugin-react" : "^6.0.3" ,
2026-07-03 21:20:26 -05:00
"babel-plugin-react-compiler" : "^1.0.0" ,
2026-07-10 17:35:39 -05:00
"concurrently" : "^10.0.3" ,
2026-07-10 17:36:50 -05:00
"eslint" : "^10.7.0" ,
"eslint-plugin-react-hooks" : "^7.1.1" ,
"eslint-plugin-react-refresh" : "^0.5.3" ,
2026-07-06 16:08:50 -05:00
"fast-check" : "^4.8.0" ,
2026-07-03 19:41:24 -05:00
"globals" : "^17.7.0" ,
2026-06-12 02:08:42 -05:00
"jsdom" : "^29.1.1" ,
2026-07-06 14:27:03 -05:00
"knip" : "^6.24.0" ,
"lefthook" : "^2.1.9" ,
2026-07-06 14:23:53 -05:00
"prettier" : "3.9.4" ,
2026-07-10 18:03:15 -05:00
"tailwindcss" : "^4.3.2" ,
2026-07-03 21:33:26 -05:00
"typescript" : "^6.0.3" ,
2026-07-03 21:44:35 -05:00
"typescript-eslint" : "^8.62.1" ,
2026-07-10 17:53:27 -05:00
"vite" : "^8.1.4" ,
2026-06-12 01:32:28 -05:00
"vite-plugin-pwa" : "^1.3.0" ,
"vitest" : "^4.1.8"
2026-05-09 13:03:36 -05:00
} ,
"directories" : {
"doc" : "docs"
} ,
"repository" : {
"type" : "git" ,
"url" : "ssh://forgejo/null/BillTracker.git"
} ,
"keywords" : [ ] ,
"author" : "" ,
"license" : "ISC" ,
"type" : "commonjs"
2026-05-03 19:51:57 -05:00
}