vectorjson 0.3.0 → 0.3.2

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/README.md CHANGED
@@ -59,6 +59,24 @@ parser.destroy();
59
59
 
60
60
  `getValue()` returns a **live JS object** that grows incrementally on each `feed()`. No re-parsing — each byte is scanned exactly once.
61
61
 
62
+ **Schema-driven streaming** — pass a schema, get only what it defines. An LLM streams a 50KB tool call with `name`, `age`, `bio`, `metadata` — but your schema only needs `name` and `age`. Everything else is skipped at the byte level, never allocated in JS:
63
+
64
+ ```js
65
+ import { z } from "zod";
66
+ import { createParser } from "vectorjson";
67
+
68
+ const User = z.object({ name: z.string(), age: z.number() });
69
+
70
+ for await (const partial of createParser({ schema: User, source: response.body })) {
71
+ console.log(partial);
72
+ // { name: "Ali" } ← partial, render immediately
73
+ // { name: "Alice" }
74
+ // { name: "Alice", age: 30 } ← validated on complete
75
+ }
76
+ ```
77
+
78
+ The schema defines what to parse. Fields outside the schema are ignored during scanning — no objects created, no strings decoded, no memory wasted.
79
+
62
80
  **Or skip intermediate access entirely** — if you only need the final value:
63
81
 
64
82
  ```js
@@ -80,7 +98,6 @@ const parser = createEventParser();
80
98
 
81
99
  parser.on('tool', (e) => showToolUI(e.value)); // fires immediately
82
100
  parser.onDelta('code', (e) => editor.append(e.value)); // streams char-by-char
83
- parser.skip('explanation'); // never materialized
84
101
 
85
102
  for await (const chunk of llmStream) {
86
103
  parser.feed(chunk); // O(n) — only new bytes scanned
@@ -261,35 +278,12 @@ parser.onDelta('tool_calls[0].args.code', (e) => {
261
278
  editor.append(e.value); // just the new characters, decoded
262
279
  });
263
280
 
264
- // Don't waste CPU on fields you don't need
265
- parser.skip('tool_calls[*].args.explanation');
266
-
267
281
  for await (const chunk of llmStream) {
268
282
  parser.feed(chunk);
269
283
  }
270
284
  parser.destroy();
271
285
  ```
272
286
 
273
- ### Multi-root / NDJSON
274
-
275
- Some LLM APIs stream multiple JSON values separated by newlines. VectorJSON auto-resets between values:
276
-
277
- ```js
278
- import { createEventParser } from "vectorjson";
279
-
280
- const parser = createEventParser({
281
- multiRoot: true,
282
- onRoot(event) {
283
- console.log(`Root #${event.index}:`, event.value);
284
- }
285
- });
286
-
287
- for await (const chunk of ndjsonStream) {
288
- parser.feed(chunk);
289
- }
290
- parser.destroy();
291
- ```
292
-
293
287
  ### Mixed LLM output (chain-of-thought, code fences)
294
288
 
295
289
  Some models emit thinking text before JSON, or wrap JSON in code fences. VectorJSON finds the JSON automatically:
@@ -308,56 +302,33 @@ parser.onText((text) => thinkingPanel.append(text)); // opt-in
308
302
  parser.feed(llmOutput);
309
303
  ```
310
304
 
311
- ### Field picking — only parse what you need
312
-
313
- When streaming a large tool call, you often only need 2-3 fields. `pick` tells the parser to skip everything else during byte scanning — skipped fields never allocate JS objects:
314
-
315
- ```js
316
- import { createParser } from "vectorjson";
317
-
318
- const parser = createParser({ pick: ["name", "age"] });
319
- parser.feed('{"name":"Alice","age":30,"bio":"...10KB of text...","metadata":{}}');
320
- parser.getValue(); // { name: "Alice", age: 30 } — bio and metadata never materialized
321
- parser.destroy();
322
- ```
323
-
324
- Nested paths work with dot notation:
325
-
326
- ```js
327
- const parser = createParser({ pick: ["user.name", "user.age"] });
328
- parser.feed('{"user":{"name":"Bob","age":25,"role":"admin"},"extra":"data"}');
329
- parser.getValue(); // { user: { name: "Bob", age: 25 } }
330
- parser.destroy();
331
- ```
332
-
333
- ### `for await` — pull-based streaming from any source
305
+ ### Schema-driven streamingparse only what the schema defines
334
306
 
335
- Pass a `source` (ReadableStream or AsyncIterable) and iterate with `for await`. Each iteration yields the growing partial value:
307
+ Pass a schema and VectorJSON extracts only the fields it defines. Everything else is skipped at the byte level — no objects created, no strings decoded. Arrays are transparent: `{ users: z.array(z.object({ name })) }` picks through arrays automatically.
336
308
 
337
309
  ```js
310
+ import { z } from "zod";
338
311
  import { createParser } from "vectorjson";
339
312
 
340
- const parser = createParser({ source: response.body });
313
+ const User = z.object({ name: z.string(), age: z.number() });
341
314
 
342
- for await (const partial of parser) {
315
+ for await (const partial of createParser({ schema: User, source: response.body })) {
343
316
  console.log(partial);
344
- // { name: "Ali" }
345
- // { name: "Alice" }
346
- // { name: "Alice", age: 30 }
317
+ // { name: "Ali" } ← partial, render immediately
318
+ // { name: "Alice", age: 30 } ← validated on complete
347
319
  }
348
- // Parser auto-destroys when the source ends or you break out of the loop
349
320
  ```
350
321
 
351
- Combine `pick` + `source` for minimal allocation streaming:
322
+ Both `createParser` and `createEventParser` support `source` + `for await`:
352
323
 
353
324
  ```js
354
- const parser = createParser({
355
- pick: ["name", "age"],
356
- source: response.body,
357
- });
325
+ import { createEventParser } from "vectorjson";
326
+
327
+ const parser = createEventParser({ source: response.body });
328
+ parser.on('tool', (e) => showToolUI(e.value));
358
329
 
359
330
  for await (const partial of parser) {
360
- updateUI(partial); // only picked fields, growing incrementally
331
+ updateUI(partial); // growing partial value
361
332
  }
362
333
  ```
363
334
 
@@ -522,25 +493,29 @@ Each `feed()` processes only new bytes — O(n) total. Three overloads:
522
493
 
523
494
  ```ts
524
495
  createParser(); // no validation
525
- createParser(schema); // schema validation (Zod, Valibot, etc.)
526
- createParser({ pick, schema, source }); // options object
496
+ createParser(schema); // only parse schema fields, validate on complete
497
+ createParser({ schema, source }); // options object
527
498
  ```
528
499
 
529
500
  **Options object:**
530
501
 
531
502
  ```ts
532
503
  interface CreateParserOptions<T = unknown> {
533
- pick?: string[]; // only include these fields (dot-separated paths)
534
- schema?: ZodLike<T>; // validate on complete
504
+ schema?: ZodLike<T>; // only parse schema fields, validate on complete
535
505
  source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
536
506
  }
537
507
  ```
538
508
 
509
+ When a `schema` is provided:
510
+ - Only fields defined in the schema are parsed — everything else is skipped at the byte level
511
+ - Arrays are transparent — `z.array(z.object({ name }))` parses `name` inside each array element
512
+ - On complete, `safeParse()` validates the final value
513
+
539
514
  When `source` is provided, the parser becomes async-iterable — use `for await` to consume partial values:
540
515
 
541
516
  ```ts
542
- for await (const partial of createParser({ source: stream, pick: ["name"] })) {
543
- console.log(partial); // growing object with only picked fields
517
+ for await (const partial of createParser({ schema: User, source: stream })) {
518
+ console.log(partial); // growing object with only schema fields
544
519
  }
545
520
  ```
546
521
 
@@ -594,13 +569,39 @@ type DeepPartial<T> = T extends object
594
569
 
595
570
  Event-driven streaming parser. Events fire synchronously during `feed()`.
596
571
 
572
+ ```ts
573
+ createEventParser(); // basic
574
+ createEventParser({ source: stream }); // for-await iteration
575
+ createEventParser({ schema, source }); // schema + for-await
576
+ ```
577
+
578
+ **Options:**
579
+
580
+ ```ts
581
+ {
582
+ source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
583
+ schema?: ZodLike<T>; // only parse schema fields (same as createParser)
584
+ // format?: "json" | "jsonl"; // planned — JSONL support for both parsers
585
+ }
586
+ ```
587
+
588
+ When `source` is provided, the parser becomes async-iterable — `for await` yields growing partial values, just like `createParser`:
589
+
590
+ ```ts
591
+ const parser = createEventParser({ source: stream });
592
+ parser.on('tool', (e) => showToolUI(e.value));
593
+
594
+ for await (const partial of parser) {
595
+ updateUI(partial);
596
+ }
597
+ ```
598
+
597
599
  ```ts
598
600
  interface EventParser {
599
601
  on(path: string, callback: (event: PathEvent) => void): EventParser;
600
602
  on<T>(path: string, schema: { safeParse: Function }, callback: (event: PathEvent & { value: T }) => void): EventParser;
601
603
  onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser;
602
604
  onText(callback: (text: string) => void): EventParser;
603
- skip(...paths: string[]): EventParser;
604
605
  off(path: string, callback?: Function): EventParser;
605
606
  feed(chunk: string | Uint8Array): FeedStatus;
606
607
  getValue(): unknown | undefined; // undefined while incomplete, throws on parse errors
@@ -608,10 +609,11 @@ interface EventParser {
608
609
  getRawBuffer(): ArrayBuffer | null; // transferable buffer for Worker postMessage
609
610
  getStatus(): FeedStatus;
610
611
  destroy(): void;
612
+ [Symbol.asyncIterator](): AsyncIterableIterator<unknown | undefined>; // requires source
611
613
  }
612
614
  ```
613
615
 
614
- All methods return `self` for chaining: `parser.on(...).onDelta(...).skip(...)`.
616
+ All methods return `self` for chaining: `parser.on(...).onDelta(...)`.
615
617
 
616
618
  **Path syntax:**
617
619
  - `foo.bar` — exact key
@@ -641,11 +643,47 @@ interface DeltaEvent {
641
643
  length: number; // byte length of delta (raw bytes, not char count)
642
644
  }
643
645
 
644
- interface RootEvent {
645
- type: 'root';
646
- index: number; // which root value (0, 1, 2...)
647
- value: unknown; // parsed via doc_parse
646
+ ```
647
+
648
+ ### Parser comparison
649
+
650
+ | | `createParser` | `createEventParser` |
651
+ |---|---|---|
652
+ | **Completion** | `feed()` returns `"complete"` after one JSON value | Handles multiple JSON values — user calls `destroy()` when done |
653
+ | **Malformed JSON** | `feed()` returns `"error"` | Skips it, finds the next JSON |
654
+ | **Schema** | Pass Zod/Valibot, only schema fields are parsed | Same |
655
+ | **Skip non-JSON** (think tags, code fences, prose) | — | Always |
656
+ | **Field subscriptions** | — | `on()`, `onDelta()` |
657
+ | **JSONL** | `format: "jsonl"` (planned) | `format: "jsonl"` (planned) |
658
+ | **Text callbacks** | — | `onText()` |
659
+
660
+ **`createParser` parses one JSON value** and reports status — you check it and react:
661
+
662
+ ```js
663
+ const parser = createParser();
664
+ for await (const chunk of stream) {
665
+ const status = parser.feed(chunk);
666
+ if (status === "complete") break; // done — one JSON value parsed
667
+ if (status === "error") break; // malformed JSON detected
668
+ }
669
+ const result = parser.getValue();
670
+ parser.destroy();
671
+ ```
672
+
673
+ **`createEventParser` handles an entire LLM response** — text, thinking, code fences, all in one stream:
674
+
675
+ ```js
676
+ const parser = createEventParser();
677
+ parser.on('tool', (e) => showToolUI(e.value));
678
+ parser.onText((text) => thinkingPanel.append(text));
679
+
680
+ // LLM output with mixed content:
681
+ // <think>let me reason about this...</think>
682
+ // {"tool":"search","query":"weather"}
683
+ for await (const chunk of llmStream) {
684
+ parser.feed(chunk); // strips think tags, finds JSON, fires callbacks
648
685
  }
686
+ parser.destroy();
649
687
  ```
650
688
 
651
689
  ### `deepCompare(a, b, options?): boolean`
package/dist/index.d.ts CHANGED
@@ -55,8 +55,6 @@ export type ZodLike<T> = {
55
55
  };
56
56
  /** Options for createParser when using an options object. */
57
57
  export interface CreateParserOptions<T = unknown> {
58
- /** Only include these top-level or nested fields (dot-separated paths). */
59
- pick?: string[];
60
58
  /** Schema for validation on complete values. */
61
59
  schema?: ZodLike<T>;
62
60
  /** Stream source — makes the parser async-iterable via for-await. */
@@ -91,11 +89,6 @@ export interface DeltaEvent {
91
89
  offset: number;
92
90
  length: number;
93
91
  }
94
- export interface RootEvent {
95
- type: 'root';
96
- index: number;
97
- value: unknown;
98
- }
99
92
  export interface EventParser {
100
93
  on(path: string, callback: (event: PathEvent) => void): EventParser;
101
94
  on<T>(path: string, schema: {
@@ -108,7 +101,6 @@ export interface EventParser {
108
101
  }) => void): EventParser;
109
102
  onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser;
110
103
  onText(callback: (text: string) => void): EventParser;
111
- skip(...paths: string[]): EventParser;
112
104
  off(path: string, callback?: Function): EventParser;
113
105
  feed(chunk: string | Uint8Array): FeedStatus;
114
106
  getValue(): unknown | undefined;
@@ -117,6 +109,8 @@ export interface EventParser {
117
109
  /** Copy the accumulated stream buffer into a new ArrayBuffer (for Worker postMessage transfer). */
118
110
  getRawBuffer(): ArrayBuffer | null;
119
111
  destroy(): void;
112
+ /** Async iteration over partial values when a source was provided. */
113
+ [Symbol.asyncIterator](): AsyncIterableIterator<unknown | undefined>;
120
114
  }
121
115
  export interface VectorJSON {
122
116
  /**
@@ -228,11 +222,16 @@ export interface VectorJSON {
228
222
  }): PartialJsonResult<DeepPartial<T>>;
229
223
  /**
230
224
  * Create an event-driven streaming parser with path subscriptions,
231
- * string delta emission, multi-root support, and JSON boundary detection.
225
+ * string delta emission, and JSON boundary detection.
232
226
  */
233
227
  createEventParser(options?: {
234
- multiRoot?: boolean;
235
- onRoot?: (event: RootEvent) => void;
228
+ source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
229
+ schema?: {
230
+ safeParse: (v: unknown) => {
231
+ success: boolean;
232
+ data?: unknown;
233
+ };
234
+ };
236
235
  }): EventParser;
237
236
  }
238
237
  /**
@@ -266,8 +265,13 @@ export declare const createParser: {
266
265
  };
267
266
  /** Create an event-driven streaming parser with path subscriptions. */
268
267
  export declare const createEventParser: (options?: {
269
- multiRoot?: boolean;
270
- onRoot?: (event: RootEvent) => void;
268
+ source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
269
+ schema?: {
270
+ safeParse: (v: unknown) => {
271
+ success: boolean;
272
+ data?: unknown;
273
+ };
274
+ };
271
275
  }) => EventParser;
272
276
  /** Eagerly materialize a lazy proxy into plain JS objects. */
273
277
  export declare const materialize: (value: unknown) => unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"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"}