@zvndev/powdb-client 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +16 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.0 - 2026-07-16
|
|
4
|
+
|
|
5
|
+
- Version-alignment release in lockstep with workspace v0.14.0 (conjunction
|
|
6
|
+
index selection, embedded typed results, read-only snapshot serving). No
|
|
7
|
+
TypeScript API changes; servers in read-only mode return a terminal
|
|
8
|
+
"readonly mode: statement requires a writer" error for mutations, which
|
|
9
|
+
surfaces through the existing error path.
|
|
10
|
+
|
|
11
|
+
## 0.13.0 - 2026-07-15
|
|
12
|
+
|
|
13
|
+
- Added the **lossless native typed result API**: `queryNative(powql)`,
|
|
14
|
+
`querySqlNative(sql)`, and low-level `queryNativeRaw(...)` returning tagged
|
|
15
|
+
`WireValue` cells. Native results preserve exact cell types: 64-bit ints as
|
|
16
|
+
`bigint`, raw `bytes`, and JSON documents as parsed values plus the exact
|
|
17
|
+
PJ1 bytes (`pj1`). Empty (SQL NULL / missing) is distinct from JSON `null`
|
|
18
|
+
and from the string `"null"` in raw results.
|
|
19
|
+
- Added native parameterized queries over the new typed request frames.
|
|
20
|
+
- Added `SUPPORTED_CATALOG_VERSION` and `assertServerCatalogVersionSupported`
|
|
21
|
+
so clients fail with a clear error against servers newer than they support.
|
|
22
|
+
- Legacy `query()` / `querySql()` string results are unchanged and remain
|
|
23
|
+
byte-compatible; see README for when to prefer the native API.
|
|
24
|
+
|
|
25
|
+
## 0.12.0 - 2026-07-14
|
|
26
|
+
|
|
27
|
+
- Typed API: `"json"` column kind for the server's native JSON (PJ1) type.
|
|
28
|
+
JSON cells arrive as canonical JSON text on the legacy protocol.
|
|
29
|
+
- No breaking changes; released in lockstep with workspace v0.12.0.
|
|
30
|
+
|
|
31
|
+
## 0.11.0 - 2026-07-13
|
|
32
|
+
|
|
33
|
+
- Version-alignment release in lockstep with workspace v0.11.0 (overflow
|
|
34
|
+
pages, grouped aggregates). No TypeScript API changes.
|
|
35
|
+
|
|
36
|
+
## 0.10.0 - 2026-07-13
|
|
37
|
+
|
|
38
|
+
- Version-alignment release in lockstep with workspace v0.10.0. No
|
|
39
|
+
TypeScript API changes.
|
|
40
|
+
|
|
41
|
+
## 0.9.0 - 2026-07-12
|
|
42
|
+
|
|
43
|
+
- Added `execScript(...)`: transactional, statement-aware script execution
|
|
44
|
+
with all-or-nothing semantics.
|
|
45
|
+
- Connect is now pipelined and eager, reducing first-query latency.
|
|
46
|
+
|
|
3
47
|
## 0.8.0 - 2026-07-02
|
|
4
48
|
|
|
5
49
|
- Released in lockstep with PowDB workspace v0.8.0 (Embedded Sync Milestone 0).
|
package/README.md
CHANGED
|
@@ -357,6 +357,22 @@ Reach for `queryNativeRaw` when you need:
|
|
|
357
357
|
It accepts the same `$N` parameter array and `AbortSignal` options as
|
|
358
358
|
`queryNative`. For ordinary reads, prefer `queryNative`.
|
|
359
359
|
|
|
360
|
+
### Null vs missing: which API sees what
|
|
361
|
+
|
|
362
|
+
The legacy string protocol renders an absent value, a JSON `null`, and the
|
|
363
|
+
string `"null"` as the identical string `null`. This is frozen wire behavior:
|
|
364
|
+
existing decoders depend on it, so it will not change. If your application
|
|
365
|
+
(or a driver you maintain) needs to tell these apart, migrate reads to
|
|
366
|
+
`queryNativeRaw`, which is the sanctioned lossless surface.
|
|
367
|
+
|
|
368
|
+
One engine-level caveat applies to every API, native included: extracting a
|
|
369
|
+
scalar with `->` (for example `.data->maybe->leaf`) collapses "path missing"
|
|
370
|
+
and "explicit JSON null at the leaf" into the same empty value before results
|
|
371
|
+
are produced. When that distinction matters, either project the enclosing
|
|
372
|
+
JSON value (a `json` cell preserves `null` exactly) or ask the engine with
|
|
373
|
+
`json_type(.data->maybe->leaf)`, which returns the string `"null"` for an
|
|
374
|
+
explicit JSON null and an empty value for a missing path.
|
|
375
|
+
|
|
360
376
|
## Schema-coerced rows
|
|
361
377
|
|
|
362
378
|
The legacy wire protocol serialises every value as a string. If you want JS
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ import { EventEmitter } from "node:events";
|
|
|
19
19
|
import { type NativeJson, type SyncRepairAction, type WireRetainedUnit, type WireSyncStatus, type WireValue } from "./protocol.js";
|
|
20
20
|
import { type TypedRow, type TypedSchema } from "./typed.js";
|
|
21
21
|
/** Client library version. Compared to the server's reported version. */
|
|
22
|
-
export declare const CLIENT_VERSION = "0.
|
|
22
|
+
export declare const CLIENT_VERSION = "0.14.0";
|
|
23
23
|
/**
|
|
24
24
|
* The maximum catalog format version this client can read. State this as the
|
|
25
25
|
* `catalogVersion` in sync pull requests: the server accepts any replica whose
|
package/dist/cjs/index.js
CHANGED
|
@@ -59,7 +59,7 @@ const errors_js_1 = require("./errors.js");
|
|
|
59
59
|
const script_js_1 = require("./script.js");
|
|
60
60
|
const typed_js_1 = require("./typed.js");
|
|
61
61
|
/** Client library version. Compared to the server's reported version. */
|
|
62
|
-
exports.CLIENT_VERSION = "0.
|
|
62
|
+
exports.CLIENT_VERSION = "0.14.0";
|
|
63
63
|
/**
|
|
64
64
|
* The maximum catalog format version this client can read. State this as the
|
|
65
65
|
* `catalogVersion` in sync pull requests: the server accepts any replica whose
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ import { EventEmitter } from "node:events";
|
|
|
19
19
|
import { type NativeJson, type SyncRepairAction, type WireRetainedUnit, type WireSyncStatus, type WireValue } from "./protocol.js";
|
|
20
20
|
import { type TypedRow, type TypedSchema } from "./typed.js";
|
|
21
21
|
/** Client library version. Compared to the server's reported version. */
|
|
22
|
-
export declare const CLIENT_VERSION = "0.
|
|
22
|
+
export declare const CLIENT_VERSION = "0.14.0";
|
|
23
23
|
/**
|
|
24
24
|
* The maximum catalog format version this client can read. State this as the
|
|
25
25
|
* `catalogVersion` in sync pull requests: the server accepts any replica whose
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import { PowDBError, PowDBScriptError, isPowDBError } from "./errors.js";
|
|
|
22
22
|
import { splitStatements } from "./script.js";
|
|
23
23
|
import { coerceRows, } from "./typed.js";
|
|
24
24
|
/** Client library version. Compared to the server's reported version. */
|
|
25
|
-
export const CLIENT_VERSION = "0.
|
|
25
|
+
export const CLIENT_VERSION = "0.14.0";
|
|
26
26
|
/**
|
|
27
27
|
* The maximum catalog format version this client can read. State this as the
|
|
28
28
|
* `catalogVersion` in sync pull requests: the server accepts any replica whose
|