Remove the imperative transaction(calls) batch API and replace it with a
declarative `-- TX:` chunk: `-- EXEC` made transactional (BEGIN/COMMIT,
ROLLBACK + rethrow on error). Transaction composition now lives in the .sql
file, not in application JS.
EXEC, TX, and PREP .run() return write metadata { changes, lastInsertRowid }.
The per-statement `bigint` flag is the single switch for all integer output:
flagged -> both fields BigInt (lossless past 2^53); unflagged -> number, and a
rowid past 2^53 throws rather than silently rounding. Codegen emits
SqlRiteResult / SqlRiteBigIntResult (+ prepared-statement variants) per flag.
BREAKING CHANGE: transaction(calls) is removed (it shipped in 4.0.0). Replace
sql.transaction([{ name, params }, ...]) with a `-- TX:` chunk called like any
other method. `-- EXEC` and `-- PREP .run()` now return { changes,
lastInsertRowid } instead of void / the native run() result.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>