# What changed in @clickhouse/client-web

> 45 changes in @clickhouse/client-web 1 from its official release notes, upgrade guides and advisories: 5 breaking, 5 deprecations, 14 new APIs and options. Each one cited. Sources checked 2026-10-22. HTML: https://unstale.sh/npm/@clickhouse/client-web/

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

## @clickhouse/client-web 1

### Breaking changes

- A standalone, dependency-free package parses ClickHouse data-type strings and emits a JSON AST, superseding parseColumnType. (1.23.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.0)
- @clickhouse/client-web rejects the zstd codec at client creation, so zstd compression cannot be configured for the web client. (1.22.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.22.0)
- Spans now follow OpenTelemetry database semantic conventions, replacing several ClickHouse-specific attribute names and recording standardized database and request attributes. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- Successful spans leave status unset; failed spans record error.type and server-side errors also record clickhouse.error.code. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- The client now detects server errors from this response header even with a successful HTTP status and rejects the request with a parsed ClickHouseError. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)

### Deprecations

- The package is deprecated and will no longer receive updates; import its previously available exports from @clickhouse/client or @clickhouse/client-web instead. (1.23.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.0)
- This function is deprecated and slated for removal in a future major version; use parseDataType from @clickhouse/datatype-parser instead. (1.23.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.0)
- This companion is deprecated and slated for removal in a future major version; use the standalone @clickhouse/datatype-parser package instead. (1.23.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.0)
- The utility function is deprecated because the client handles stream draining internally; use client.command() instead. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)
- The utility function is deprecated because it is not intended for use outside the client implementation; use setTimeout or a more full-featured utility library instead. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)

### New APIs and options

- Exports QueryParamsWithFormat, ClickHouseSummary, WithClickHouseSummary, ResultJSONType, RowJSONType, and PingParams from the package root. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- Adds a client option, defaulting to false, that attaches raw SQL to spans as db.query.text; bound query_params values and credentials are never traced. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- Per-request query params accept span_attributes to enrich the operation span with application-level context; caller attributes do not override client attributes. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- A package-neutral structural settings type is exported from @clickhouse/client-web, allowing a shared settings-producing helper to type its output for both Node.js and Web clients without casts. (1.23.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.0)
- The insert span records clickhouse.request.sent_rows for array-based inserts. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- Adds a client option, defaulting to false, that sends query_params as multipart/form-data for queries; it can also be overridden per query. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- Adds a client option, defaulting to false, that automatically sends query_params as multipart/form-data when their URL-encoded length exceeds 4096 characters; it can also be overridden per query. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- Re-exported ResponseHeaders from @clickhouse/client-web, allowing consumers to depend on the flavored package instead of @clickhouse/client-common. (1.19.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.19.0)
- Adds a Node.js-only option, defaulting to false, that destroys sockets idle longer than idle_socket_ttl immediately before each request. (1.18.3) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.3)
- Added http_status_code to query, insert, and exec commands. (1.17.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.17.0)
- Supports the Disposable API with the using keyword, which automatically closes the client when the scope ends, including when code throws. (1.16.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.16.0)
- Adds a Node.js-only parameter that lets callers manually handle request errors on the application side. (1.14.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.14.0)
- Allows specifying a custom parse function instead of JSON.parse for JSON* family formats. (1.14.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.14.0)
- Allows specifying a custom stringify function instead of JSON.stringify for JSON* family formats. (1.14.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.14.0)

### Performance

- Log messages are constructed only when the configured log level is appropriate, which can improve performance when message construction is expensive. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)

### Behavior and default changes

- The attribute is recorded for non-streaming result consumption, including json() on JSON formats. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- The Web client parses the summary header and attaches its keys as clickhouse.summary.<key> attributes to operation spans. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- Queries emit an HTTP-lifetime clickhouse.query span and a child clickhouse.query.stream span that tracks response consumption and records final stream metrics. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- Spans now record HTTP response status and available ClickHouse summary counters. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- The client warns when request_timeout exceeds 60 seconds and progress headers are not configured, since long-running queries may encounter load balancer idle timeouts. (1.18.3) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.3)
- When keep_alive is enabled, the client emits a WARN message after an ECONNRESET and suggests checking the configuration, including the server keep-alive timeout when available. (1.18.2) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.2)
- The client now passes rich context, including connection_id, query_id, request_id, and socket_id, to the logger args parameter. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)
- The default log level changes from ClickHouseLogLevel.OFF to ClickHouseLogLevel.WARN, making potential issues more visible by default. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)
- Setting log.level to ClickHouseLogLevel.TRACE enables additional HTTP request and socket lifecycle trace messages with connection, request, and socket context. (1.18.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.18.1)
- BigInt values are now supported in query parameters. (1.15.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.15.0)
- The TupleParam constructor now accepts readonly arrays, permitting more usages. (1.13.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.13.0)

### Fixes and other changes

- Date values nested in arrays, tuples, and maps are emitted as quoted UTC date strings; nested Array(DateTime) and Array(DateTime64) dates are bound at day precision. (1.24.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.24.0)
- Re-exported from @clickhouse/client-web after being missed when the @clickhouse/client-common public API was bundled into the client packages. (1.23.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.1)
- Re-exported from @clickhouse/client-web after being missed when the @clickhouse/client-common public API was bundled into the client packages. (1.23.1) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/client-web-1.23.1)
- The Web stream path now ends its query stream span when the source aborts or the consumer cancels, fixing a span leak. (1.21.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.21.0)
- On Node.js, fixed a race in json() and stream() for JSONEachRow and other streamable result sets that could throw “Stream has been already consumed” when the stream ended during internal checks. (1.20.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.20.0)
- Now unescapes backslash escape sequences in enum names, so returned values match ClickHouse string literal behavior. (1.19.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.19.0)
- Fixed ignore_error_response not being passed when using command. (1.17.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.17.0)
- Boolean values in Array, Tuple, and Map query parameters are formatted as TRUE/FALSE instead of 1/0 for ClickHouse type compatibility. (1.13.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.13.0)
- Server-side exceptions occurring mid-stream are now handled correctly; this requires ClickHouse 25.11 or later. Previous ClickHouse versions are unaffected. (1.13.0) — [release notes](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.13.0)
