@zerotal/devtools 1.8.1 → 1.9.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 CHANGED
@@ -8,6 +8,16 @@ follows the Zerotal monorepo's unified versioning.
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [1.9.0] — 2026-08-29
12
+
13
+ ### Documented
14
+
15
+ - **Every promised export is documented.** The `docs-coverage` gate reads `maturity: stable` as a
16
+ promise about a package's exports, and measures how much of that promise is written down. It
17
+ was 798 gaps across the suite; it is now zero. This package's share is covered on its own
18
+ pages — types named, options shapes described, and the decisions behind them recorded where
19
+ somebody looking for them will find them.
20
+
11
21
  ## [1.8.1] — 2026-08-26
12
22
 
13
23
  ### Fixed
package/api-surface.md CHANGED
@@ -45,10 +45,6 @@ class TraceStore = {
45
45
  subscribe: (fn: Subscriber) => () => void
46
46
  }
47
47
 
48
- const traceSink = TraceSink
49
-
50
- function attributeBindings = (sql: string, count: number) => Array<string | undefined>
51
-
52
48
  function DevtoolsConfig = (options?: Partial<DevtoolsConfigShape>) => DevtoolsConfigShape
53
49
 
54
50
  function devtoolsEnabled = () => boolean
@@ -61,10 +57,6 @@ function redactCacheKey = (key: string, options?: RedactionOptions) => string
61
57
 
62
58
  function redactValue = (value: unknown, options?: RedactionOptions) => unknown
63
59
 
64
- function startDevtoolsStream = () => () => void
65
-
66
- function traceChannels = () => TraceChannelDescriptor[]
67
-
68
60
  function traceStore = () => TraceStore
69
61
 
70
62
  interface AuthInfo = {
@@ -94,8 +86,6 @@ interface DevtoolsConfigShape = {
94
86
  redact: RedactionOptions
95
87
  }
96
88
 
97
- interface DevtoolsInjectionOptions = {}
98
-
99
89
  interface DevtoolsPanelPlugin = {
100
90
  badge?: () => number | string | undefined
101
91
  id: string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerotal/devtools",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "license": "MIT",
5
5
  "maturity": "stable",
6
6
  "private": false,
@@ -31,11 +31,11 @@
31
31
  "typecheck": "tsc --noEmit"
32
32
  },
33
33
  "dependencies": {
34
- "@zerotal/core": "1.8.1"
34
+ "@zerotal/core": "1.9.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^5.8.0",
38
- "@zerotal/orm": "1.8.1"
38
+ "@zerotal/orm": "1.9.0"
39
39
  },
40
40
  "description": "In-browser developer tools for Zerotal — request traces, an inspector panel, and an extensible tab registry.",
41
41
  "keywords": [
@@ -43,6 +43,7 @@ async function _buildDashboardJs(): Promise<string> {
43
43
  return _dashboardJs;
44
44
  }
45
45
 
46
+ /** @internal */
46
47
  export interface DevtoolsInjectionOptions {
47
48
  // reserved for future use
48
49
  }
@@ -102,6 +103,8 @@ const SSE_HEARTBEAT_MS = 25_000;
102
103
  * built the one the app's config asks for.
103
104
  *
104
105
  * @returns A disposer that unsubscribes and closes connected clients.
106
+ *
107
+ * @internal
105
108
  */
106
109
  export function startDevtoolsStream(): () => void {
107
110
  const unsubscribe = traceStore().subscribe((trace) => {
package/src/redaction.ts CHANGED
@@ -247,6 +247,8 @@ export function redactBindings(
247
247
  * `SET col = ?`, and `WHERE col <op> ?` (including `IN (?, ?)`, where every
248
248
  * placeholder belongs to the same column). Returns `undefined` at any position it
249
249
  * cannot attribute.
250
+ *
251
+ * @internal
250
252
  */
251
253
  export function attributeBindings(sql: string, count: number): Array<string | undefined> {
252
254
  const out: Array<string | undefined> = new Array(count).fill(undefined);
package/src/tracing.ts CHANGED
@@ -99,6 +99,8 @@ const _channels = new Map<string, TraceChannelDescriptor>();
99
99
  *
100
100
  * A `hidden` channel is left out: its entries are still recorded and still reach
101
101
  * the panel on the trace, but whatever renders them is not this generic row list.
102
+ *
103
+ * @internal
102
104
  */
103
105
  export function traceChannels(): TraceChannelDescriptor[] {
104
106
  return [...(_channels.values() as Iterable<TraceChannelDescriptor>)]
@@ -199,6 +201,7 @@ export interface TraceSink {
199
201
  // nothing: by the time a panel draws a row, the unredacted copy has already been
200
202
  // streamed to the browser and written to `.zerotal/devtools.sqlite`, where it
201
203
  // sits for a day. The sink is the last point where "not recorded" is still true.
204
+ /** @internal */
202
205
  export const traceSink: TraceSink = {
203
206
  channel(descriptor: TraceChannelDescriptor): void {
204
207
  _channels.set(descriptor.id, descriptor);