Skip to content

v2.2.1

Choose a tag to compare

@github-actions github-actions released this 03 May 19:18
· 64 commits to master since this release
440b0d6

v2.2.1 — maintenance release

No consumer source changes. Resolves the v2.2.0 release-notes "known issue" on the c.basic-crud compound-primary-key route test, plus a round of test-suite reliability hardening, dev-tree advisory closures, and a brand refresh for GitHub dark-mode readers.

Fixed

  • cursor.spec cell 9 (soft-delete still applies in cursor mode) was selecting targetId as the last id of the first cursor page. The /users-cursor controller is configured with limit: 5, so under ?sort=id,ASC the first page returned ids [1..5] and targetId landed on user 5 — the row exercised by c.basic-crud's GET /users4/1/5 compound-key route test. The cell now POSTs a throwaway user, captures the returned id, and DELETEs that id; the seed range is no longer touched and execution order no longer matters. Test-fixture-only — no consumer code is affected.

Changed

  • test:typeorm:mysql script now passes --runInBand to jest. Single-worker execution avoids parallel-worker contention against the shared MySQL container that v2.2.0 hit.
  • The supertest done(callback) pattern is migrated to direct await across b.query-params.spec.ts, c.basic-crud.spec.ts, and the three real-db-smoke.spec.ts files (drizzle, mikro-orm, prisma). Failures now surface as Promise rejections with a clean stack instead of hanging to jest's 30s timeout.

Removed

  • The orphan mrepo.json file at the repo root is removed (the v2.2.0 mrepo→lerna swap left the config file behind; nothing reads it any more).

Internal

  • tmp 0.0.33 → ^0.2.4 (closes GHSA-52f5-9888-hmc6, low) and @conventional-changelog/git-client 1.0.1 → ^2.0.0 (closes GHSA-vh25-5764-9wcr, medium) force-pinned via root resolutions. uuid 11 → 14 (GHSA-w5hq-g745-h8pq, medium) intentionally NOT resolved — uuid 14 ships as "type": "module", breaks ts-jest CJS preset across all five jest configs. Carried concern; no consumer impact.
  • knip.json reduced to the entries knip 5 cannot auto-detect (16 hints → 0).
  • [Unreleased] sections promoted to [2.2.0] — 2026-05-03 across the 8 CHANGELOGs (the v2.2.0 publish itself missed the rename — process gap closed for next cycle).
  • img/logo.svg split into img/logo-{light,dark}.svg + matching icon pair; README.md hero now uses <picture> with prefers-color-scheme: dark so the wordmark is visible in either GitHub theme.

Verified locally

  • yarn build → exit 0
  • yarn test:typeorm:postgres → 15/15 suites
  • yarn test:typeorm:mysql → 15/15 suites (compound-key un-skipped, all 276 tests green)
  • yarn test:drizzle:postgres → 10/10 suites
  • yarn test:mikro-orm:postgres → 12/12 suites
  • yarn test:prisma:postgres → 13/13 suites
  • yarn test:parity → 1/1 suite (72 tests)
  • yarn knip → exit 0