# What changed in sql.js

> 14 changes in sql.js 1 from its official release notes, upgrade guides and advisories: 2 breaking, 1 deprecations, 2 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/sql.js/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## sql.js 1

### Breaking changes

- Node.js users need version 18.3 or newer. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- WebAssembly support is required for the default and inline builds. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)

### Deprecations

- Asm.js builds are deprecated but remain in the npm package and sqljs-all.zip; inline WebAssembly builds are recommended for single-file integration. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)

### New APIs and options

- Adds an inline WebAssembly build that embeds the binary and needs no companion .wasm file or locateFile configuration. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- Adds an inline WebAssembly worker build that embeds the binary and needs no companion .wasm file or locateFile configuration. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)

### Behavior and default changes

- Updates SQLite from 3.49.1 to 3.54.0, which may affect available SQLite behavior. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)

### Fixes and other changes

- Aggregate callbacks are kept together to prevent SQL names ending in __finalize from colliding with another aggregate's internal finalizer. (1.15.1) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.1)
- Statement.getAsObject() and Database.each() preserve columns named __proto__ while returning ordinary objects. (1.15.1) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.1)
- Registrations are tracked by SQLite's ASCII case-insensitive name and argument count, allowing scalar and aggregate overloads to coexist and be replaced independently. (1.15.1) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.1)
- Allocates SQL strings on the heap, fixing failures with SQL larger than the WebAssembly stack. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- Allocates SQL strings on the heap, fixing failures with SQL larger than the WebAssembly stack. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- Frees statement iterator resources when a for...of loop exits early. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- Embedded NUL characters are preserved when binding or reading TEXT and when passing TEXT to or from JavaScript SQL functions. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
- Resets the worker database after close so subsequent requests can initialize a fresh database. (1.15.0) — [release notes](https://github.com/sql-js/sql.js/releases/tag/v1.15.0)
