vectorjson 0.3.1 → 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 +44 -56
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,7 +98,6 @@ const parser = createEventParser();
|
|
|
98
98
|
|
|
99
99
|
parser.on('tool', (e) => showToolUI(e.value)); // fires immediately
|
|
100
100
|
parser.onDelta('code', (e) => editor.append(e.value)); // streams char-by-char
|
|
101
|
-
parser.skip('explanation'); // never materialized
|
|
102
101
|
|
|
103
102
|
for await (const chunk of llmStream) {
|
|
104
103
|
parser.feed(chunk); // O(n) — only new bytes scanned
|
|
@@ -279,35 +278,12 @@ parser.onDelta('tool_calls[0].args.code', (e) => {
|
|
|
279
278
|
editor.append(e.value); // just the new characters, decoded
|
|
280
279
|
});
|
|
281
280
|
|
|
282
|
-
// Don't waste CPU on fields you don't need
|
|
283
|
-
parser.skip('tool_calls[*].args.explanation');
|
|
284
|
-
|
|
285
281
|
for await (const chunk of llmStream) {
|
|
286
282
|
parser.feed(chunk);
|
|
287
283
|
}
|
|
288
284
|
parser.destroy();
|
|
289
285
|
```
|
|
290
286
|
|
|
291
|
-
### Multi-root / NDJSON
|
|
292
|
-
|
|
293
|
-
Some LLM APIs stream multiple JSON values separated by newlines. VectorJSON auto-resets between values:
|
|
294
|
-
|
|
295
|
-
```js
|
|
296
|
-
import { createEventParser } from "vectorjson";
|
|
297
|
-
|
|
298
|
-
const parser = createEventParser({
|
|
299
|
-
multiRoot: true,
|
|
300
|
-
onRoot(event) {
|
|
301
|
-
console.log(`Root #${event.index}:`, event.value);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
for await (const chunk of ndjsonStream) {
|
|
306
|
-
parser.feed(chunk);
|
|
307
|
-
}
|
|
308
|
-
parser.destroy();
|
|
309
|
-
```
|
|
310
|
-
|
|
311
287
|
### Mixed LLM output (chain-of-thought, code fences)
|
|
312
288
|
|
|
313
289
|
Some models emit thinking text before JSON, or wrap JSON in code fences. VectorJSON finds the JSON automatically:
|
|
@@ -343,15 +319,6 @@ for await (const partial of createParser({ schema: User, source: response.body }
|
|
|
343
319
|
}
|
|
344
320
|
```
|
|
345
321
|
|
|
346
|
-
Works on dirty LLM output — think tags, code fences, and leading prose are stripped automatically when a schema is provided:
|
|
347
|
-
|
|
348
|
-
```js
|
|
349
|
-
// All of these work with createParser(schema):
|
|
350
|
-
// <think>reasoning</think>{"name":"Alice","age":30}
|
|
351
|
-
// ```json\n{"name":"Alice","age":30}\n```
|
|
352
|
-
// Here's the result: {"name":"Alice","age":30}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
322
|
Both `createParser` and `createEventParser` support `source` + `for await`:
|
|
356
323
|
|
|
357
324
|
```js
|
|
@@ -526,7 +493,7 @@ Each `feed()` processes only new bytes — O(n) total. Three overloads:
|
|
|
526
493
|
|
|
527
494
|
```ts
|
|
528
495
|
createParser(); // no validation
|
|
529
|
-
createParser(schema); //
|
|
496
|
+
createParser(schema); // only parse schema fields, validate on complete
|
|
530
497
|
createParser({ schema, source }); // options object
|
|
531
498
|
```
|
|
532
499
|
|
|
@@ -534,16 +501,14 @@ createParser({ schema, source }); // options object
|
|
|
534
501
|
|
|
535
502
|
```ts
|
|
536
503
|
interface CreateParserOptions<T = unknown> {
|
|
537
|
-
schema?: ZodLike<T>; //
|
|
504
|
+
schema?: ZodLike<T>; // only parse schema fields, validate on complete
|
|
538
505
|
source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
|
|
539
|
-
pick?: string[]; // advanced: explicit field paths (overrides schema auto-pick)
|
|
540
506
|
}
|
|
541
507
|
```
|
|
542
508
|
|
|
543
509
|
When a `schema` is provided:
|
|
544
|
-
-
|
|
545
|
-
- Arrays are transparent — `
|
|
546
|
-
- Dirty input (think tags, code fences, leading prose) is stripped before parsing
|
|
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
|
|
547
512
|
- On complete, `safeParse()` validates the final value
|
|
548
513
|
|
|
549
514
|
When `source` is provided, the parser becomes async-iterable — use `for await` to consume partial values:
|
|
@@ -607,16 +572,16 @@ Event-driven streaming parser. Events fire synchronously during `feed()`.
|
|
|
607
572
|
```ts
|
|
608
573
|
createEventParser(); // basic
|
|
609
574
|
createEventParser({ source: stream }); // for-await iteration
|
|
610
|
-
createEventParser({
|
|
575
|
+
createEventParser({ schema, source }); // schema + for-await
|
|
611
576
|
```
|
|
612
577
|
|
|
613
578
|
**Options:**
|
|
614
579
|
|
|
615
580
|
```ts
|
|
616
581
|
{
|
|
617
|
-
multiRoot?: boolean; // auto-reset between JSON values (NDJSON)
|
|
618
|
-
onRoot?: (event: RootEvent) => void;
|
|
619
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
|
|
620
585
|
}
|
|
621
586
|
```
|
|
622
587
|
|
|
@@ -637,7 +602,6 @@ interface EventParser {
|
|
|
637
602
|
on<T>(path: string, schema: { safeParse: Function }, callback: (event: PathEvent & { value: T }) => void): EventParser;
|
|
638
603
|
onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser;
|
|
639
604
|
onText(callback: (text: string) => void): EventParser;
|
|
640
|
-
skip(...paths: string[]): EventParser;
|
|
641
605
|
off(path: string, callback?: Function): EventParser;
|
|
642
606
|
feed(chunk: string | Uint8Array): FeedStatus;
|
|
643
607
|
getValue(): unknown | undefined; // undefined while incomplete, throws on parse errors
|
|
@@ -649,7 +613,7 @@ interface EventParser {
|
|
|
649
613
|
}
|
|
650
614
|
```
|
|
651
615
|
|
|
652
|
-
All methods return `self` for chaining: `parser.on(...).onDelta(...)
|
|
616
|
+
All methods return `self` for chaining: `parser.on(...).onDelta(...)`.
|
|
653
617
|
|
|
654
618
|
**Path syntax:**
|
|
655
619
|
- `foo.bar` — exact key
|
|
@@ -679,24 +643,48 @@ interface DeltaEvent {
|
|
|
679
643
|
length: number; // byte length of delta (raw bytes, not char count)
|
|
680
644
|
}
|
|
681
645
|
|
|
682
|
-
interface RootEvent {
|
|
683
|
-
type: 'root';
|
|
684
|
-
index: number; // which root value (0, 1, 2...)
|
|
685
|
-
value: unknown; // parsed via doc_parse
|
|
686
|
-
}
|
|
687
646
|
```
|
|
688
647
|
|
|
689
648
|
### Parser comparison
|
|
690
649
|
|
|
691
650
|
| | `createParser` | `createEventParser` |
|
|
692
651
|
|---|---|---|
|
|
693
|
-
| **
|
|
694
|
-
| **
|
|
695
|
-
| **
|
|
696
|
-
|
|
|
697
|
-
| **Field subscriptions** |
|
|
698
|
-
| **
|
|
699
|
-
| **Text callbacks** |
|
|
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
|
|
685
|
+
}
|
|
686
|
+
parser.destroy();
|
|
687
|
+
```
|
|
700
688
|
|
|
701
689
|
### `deepCompare(a, b, options?): boolean`
|
|
702
690
|
|
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;
|
|
@@ -230,11 +222,16 @@ export interface VectorJSON {
|
|
|
230
222
|
}): PartialJsonResult<DeepPartial<T>>;
|
|
231
223
|
/**
|
|
232
224
|
* Create an event-driven streaming parser with path subscriptions,
|
|
233
|
-
* string delta emission,
|
|
225
|
+
* string delta emission, and JSON boundary detection.
|
|
234
226
|
*/
|
|
235
227
|
createEventParser(options?: {
|
|
236
|
-
|
|
237
|
-
|
|
228
|
+
source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
|
|
229
|
+
schema?: {
|
|
230
|
+
safeParse: (v: unknown) => {
|
|
231
|
+
success: boolean;
|
|
232
|
+
data?: unknown;
|
|
233
|
+
};
|
|
234
|
+
};
|
|
238
235
|
}): EventParser;
|
|
239
236
|
}
|
|
240
237
|
/**
|
|
@@ -268,8 +265,13 @@ export declare const createParser: {
|
|
|
268
265
|
};
|
|
269
266
|
/** Create an event-driven streaming parser with path subscriptions. */
|
|
270
267
|
export declare const createEventParser: (options?: {
|
|
271
|
-
|
|
272
|
-
|
|
268
|
+
source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;
|
|
269
|
+
schema?: {
|
|
270
|
+
safeParse: (v: unknown) => {
|
|
271
|
+
success: boolean;
|
|
272
|
+
data?: unknown;
|
|
273
|
+
};
|
|
274
|
+
};
|
|
273
275
|
}) => EventParser;
|
|
274
276
|
/** Eagerly materialize a lazy proxy into plain JS objects. */
|
|
275
277
|
export declare const materialize: (value: unknown) => unknown;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAE3E,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IACrC;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACjD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAEhD,sFAAsF;AACtF,MAAM,MAAM,WAAW,CAAC,CAAC,IACvB,CAAC,SAAS,MAAM,GACZ,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxC,CAAC,CAAC;AAER,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,uFAAuF;IACvF,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7C,qIAAqI;IACrI,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1B,+DAA+D;IAC/D,YAAY,IAAI,UAAU,GAAG,IAAI,CAAC;IAClC,mDAAmD;IACnD,SAAS,IAAI,UAAU,CAAC;IACxB,mGAAmG;IACnG,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC;IACnC,iDAAiD;IACjD,OAAO,IAAI,IAAI,CAAC;IAChB,sEAAsE;IACtE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAChE;AAED,qDAAqD;AACrD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"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"}
|