## Context The dependency stack has drifted noticeably: - TypeScript `3.9` → current `5.x`. Likely the biggest pain point (strict null checks may shift, `@types/*` update, possible internal API tweaks). - Node `@types/node ^12` — outdated, doesn't cover modern APIs. Pin to whatever the minimum supported Node version is. - Jest `24` → `29.x` — lots of breaking changes between them, but `jest-codemods` is mature. - Babel 7 stays as a major, but `@babel/*` packages have minor fixes. - `yargs`, `koa`, `koa-router`, `gettext-parser` — check majors. Good moment to bring the foundation up to date while attention to the project is warm. ## Scope - [ ] Pin the minimum supported Node version in `engines` (`package.json`) and in README. Required to pick the right `@types/node`. - [ ] `npm outdated` + review each major separately. No bulk update. - [ ] TypeScript 3.9 → 5.x (separate PR — potentially biggest impact) - [ ] Jest 24 → 29 (separate PR; `jest-codemods` as a starting point) - [ ] `@types/node` → current LTS - [ ] Babel devDeps: bump `@babel/*` to latest 7.x patch/minor - [ ] Other devDeps (Prettier, ESLint, husky, lint-staged) — bulk-bump separately - [ ] Runtime deps (`yargs`, `gettext-parser`, `koa`, `vue-sfc-parser`, `svelte`) — review major breaking changes - [ ] `npm audit` after everything - [ ] Full test suite + smoke test on a real `.po` project ## Out of scope - Switching from yargs to commander/clipanion — separate discussion - Switching from Babel to SWC/esbuild for extraction — architectural change, not a dep bump ## Definition of Done - [ ] `npm outdated` shows only intentionally pinned versions - [ ] `npm audit` no high/critical - [ ] `npm test` green - [ ] Smoke test on a real project passes (extract → check → replace) - [ ] `engines.node` fixed and reflected in README
Activity