BillTracker/routes
null c481a5bdbf refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin
Standards-unification batch 4b (completes the route conversion program —
all 29 route files now emit errors through the canonical path or a
documented exception):

- profile.cts: full conversion; try/catch-500 wrappers removed
- transactions.cts: boundary adapter throwStandardized() rethrows the
  internal {error} parse/normalize results as ApiError (internal result
  convention unchanged); sendTransactionServiceError -> throwing
  toTransactionServiceError (4xx keep message/code, 5xx masked)
- admin.cts: user-management + bank-sync-config + rollback converted;
  coded rollback errors (NOT_APPLIED 404 / ROLLBACK_NOT_SUPPORTED 422)
  preserved as intentional messages
- aboutAdmin.cts: loose 400 converted; static no-path-disclosure 500s kept

Documented exceptions (intentional, commented inline): admin sendError
(backup download can fail mid-stream after headers sent), import.cts
sendImportError pipeline (error-id envelope), transactions bulk-unmatch
500 (carries per-item results), payments DUPLICATE_SUSPECTED 409 (carries
existing payment), calendarFeed text/plain 404 (ICS clients), authOidc
static 501/502 (rewritten wholesale in the openid-client v6 batch).

Server suite 252/252.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 17:18:28 -05:00
..
about.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
aboutAdmin.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
admin.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
analytics.cts refactor(routes): analytics + tracker → throw pattern (batch 1) 2026-07-06 14:59:29 -05:00
auth.cts refactor(auth): throw-pattern for auth.cts (login, TOTP, WebAuthn flows) 2026-07-10 17:06:08 -05:00
authOidc.cts feat(logging): redacted, level-gated logger; migrate all server console.* (Pillar D) 2026-07-06 16:05:18 -05:00
bills.cts refactor(routes): throw-pattern for bills.cts (largest route, 43+ sites) 2026-07-10 17:00:01 -05:00
calendar.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
calendarFeed.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
categories.cts refactor(categories): adopt Kysely for the /groups query (real production use) 2026-07-06 16:25:30 -05:00
dataSources.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
export.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
import.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
matches.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
monthly-starting-amounts.cts refactor(routes): monthly-starting-amounts → throw pattern; doc exemplar 2026-07-06 15:03:52 -05:00
notifications.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
payments.cts refactor(routes): throw-pattern for payments + subscriptions 2026-07-10 16:53:20 -05:00
privacy.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
profile.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
settings.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
snowball.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
spending.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
status.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
subscriptions.cts refactor(routes): throw-pattern for payments + subscriptions 2026-07-10 16:53:20 -05:00
summary.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
tracker.cts refactor(routes): analytics + tracker → throw pattern (batch 1) 2026-07-06 14:59:29 -05:00
transactions.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
user.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
version.cts refactor(routes): version → throw pattern; keep graceful update-status fallback 2026-07-06 15:01:35 -05:00